From eeb3083a0852640cc31778918b9e1b4cddbf7f21 Mon Sep 17 00:00:00 2001 From: Vijay Samuel Date: Thu, 30 Mar 2017 10:47:04 -0700 Subject: [PATCH] Govendor with autodiscovery (#3851) Attempting to change go dependency management from glide to govendor. This PR contains the following changes: Set a fixed version for mysql and postgresql modules in metricbeat Use govendor as dependency management instead of glide Support for vendor directory in modules by exluding modules from auto discovery Use auto discovery for global vendor directory Add dependencies for testing This PR didn't touch the dependencies in the docker module as they have some internal changes. --- CHANGELOG.asciidoc | 1 + NOTICE | 65 +- metricbeat/module/mysql/glide.yaml | 3 - .../github.com/go-sql-driver/mysql/AUTHORS | 9 + .../go-sql-driver/mysql/CHANGELOG.md | 38 +- .../go-sql-driver/mysql/CONTRIBUTING.md | 17 - .../github.com/go-sql-driver/mysql/README.md | 109 +- .../go-sql-driver/mysql/connection.go | 43 +- .../github.com/go-sql-driver/mysql/driver.go | 42 +- .../github.com/go-sql-driver/mysql/dsn.go | 63 +- .../github.com/go-sql-driver/mysql/errors.go | 3 +- .../github.com/go-sql-driver/mysql/infile.go | 18 +- .../github.com/go-sql-driver/mysql/packets.go | 168 +- .../github.com/go-sql-driver/mysql/rows.go | 122 +- .../go-sql-driver/mysql/statement.go | 61 +- metricbeat/module/mysql/vendor/vendor.json | 13 + metricbeat/module/postgresql/glide.yaml | 3 - .../vendor/github.com/lib/pq/README.md | 2 +- .../vendor/github.com/lib/pq/array.go | 45 +- .../vendor/github.com/lib/pq/certs/README | 3 - .../github.com/lib/pq/certs/bogus_root.crt | 19 - .../github.com/lib/pq/certs/postgresql.crt | 69 - .../github.com/lib/pq/certs/postgresql.key | 15 - .../vendor/github.com/lib/pq/certs/root.crt | 24 - .../vendor/github.com/lib/pq/certs/server.crt | 81 - .../vendor/github.com/lib/pq/certs/server.key | 27 - .../vendor/github.com/lib/pq/conn.go | 379 +- .../vendor/github.com/lib/pq/conn_go18.go | 107 + .../vendor/github.com/lib/pq/copy.go | 29 +- .../vendor/github.com/lib/pq/doc.go | 23 + .../vendor/github.com/lib/pq/encode.go | 8 +- .../vendor/github.com/lib/pq/hstore/hstore.go | 118 - .../github.com/lib/pq/listen_example/doc.go | 102 - .../vendor/github.com/lib/pq/oid/types.go | 12 + .../vendor/github.com/lib/pq/ssl.go | 158 + .../vendor/github.com/lib/pq/ssl_go1.7.go | 14 + .../github.com/lib/pq/ssl_permissions.go | 20 + .../github.com/lib/pq/ssl_renegotiation.go | 8 + .../vendor/github.com/lib/pq/ssl_windows.go | 9 + .../vendor/github.com/lib/pq/uuid.go | 23 + .../module/postgresql/vendor/vendor.json | 19 + .../Shopify/sarama/.github/CONTRIBUTING.md | 31 - .../Shopify/sarama/.github/ISSUE_TEMPLATE.md | 20 - .../Shopify/sarama/examples/README.md | 9 - .../sarama/examples/http_server/README.md | 7 - .../examples/http_server/http_server.go | 247 - .../github.com/Shopify/sarama/mocks/README.md | 13 - .../Shopify/sarama/mocks/async_producer.go | 174 - .../Shopify/sarama/mocks/consumer.go | 315 - .../github.com/Shopify/sarama/mocks/mocks.go | 48 - .../Shopify/sarama/mocks/sync_producer.go | 148 - .../github.com/Shopify/sarama/tools/README.md | 10 - .../tools/kafka-console-consumer/README.md | 29 - .../kafka-console-consumer.go | 145 - .../kafka-console-partitionconsumer/README.md | 28 - .../kafka-console-partitionconsumer.go | 102 - .../tools/kafka-console-producer/README.md | 34 - .../kafka-console-producer.go | 124 - .../Shopify/sarama/vagrant/boot_cluster.sh | 22 - .../Shopify/sarama/vagrant/create_topics.sh | 8 - .../Shopify/sarama/vagrant/install_cluster.sh | 49 - .../Shopify/sarama/vagrant/kafka.conf | 9 - .../Shopify/sarama/vagrant/provision.sh | 15 - .../Shopify/sarama/vagrant/run_toxiproxy.sh | 22 - .../Shopify/sarama/vagrant/server.properties | 127 - .../Shopify/sarama/vagrant/setup_services.sh | 29 - .../Shopify/sarama/vagrant/toxiproxy.conf | 6 - .../Shopify/sarama/vagrant/zookeeper.conf | 7 - .../sarama/vagrant/zookeeper.properties | 36 - .../StackExchange/wmi/swbemservices.go | 260 + vendor/github.com/StackExchange/wmi/wmi.go | 25 +- vendor/github.com/andrewkroh/sys/AUTHORS | 3 - .../github.com/andrewkroh/sys/CONTRIBUTING.md | 31 - vendor/github.com/andrewkroh/sys/CONTRIBUTORS | 3 - vendor/github.com/andrewkroh/sys/README | 3 - vendor/github.com/andrewkroh/sys/plan9/asm.s | 8 - .../andrewkroh/sys/plan9/asm_plan9_386.s | 30 - .../andrewkroh/sys/plan9/asm_plan9_amd64.s | 30 - .../andrewkroh/sys/plan9/const_plan9.go | 59 - .../andrewkroh/sys/plan9/dir_plan9.go | 212 - .../andrewkroh/sys/plan9/env_plan9.go | 27 - .../andrewkroh/sys/plan9/env_unset.go | 14 - .../andrewkroh/sys/plan9/errors_plan9.go | 50 - .../github.com/andrewkroh/sys/plan9/mkall.sh | 138 - .../andrewkroh/sys/plan9/mkerrors.sh | 246 - .../andrewkroh/sys/plan9/mksyscall.pl | 319 - .../andrewkroh/sys/plan9/mksysnum_plan9.sh | 25 - .../andrewkroh/sys/plan9/pwd_go15_plan9.go | 21 - .../andrewkroh/sys/plan9/pwd_plan9.go | 23 - .../github.com/andrewkroh/sys/plan9/race.go | 30 - .../github.com/andrewkroh/sys/plan9/race0.go | 25 - vendor/github.com/andrewkroh/sys/plan9/str.go | 22 - .../andrewkroh/sys/plan9/syscall.go | 74 - .../andrewkroh/sys/plan9/syscall_plan9.go | 349 - .../sys/plan9/zsyscall_plan9_386.go | 292 - .../sys/plan9/zsyscall_plan9_amd64.go | 292 - .../andrewkroh/sys/plan9/zsysnum_plan9.go | 49 - vendor/github.com/andrewkroh/sys/unix/asm.s | 10 - .../andrewkroh/sys/unix/asm_darwin_386.s | 29 - .../andrewkroh/sys/unix/asm_darwin_amd64.s | 29 - .../andrewkroh/sys/unix/asm_darwin_arm.s | 30 - .../andrewkroh/sys/unix/asm_darwin_arm64.s | 30 - .../andrewkroh/sys/unix/asm_dragonfly_386.s | 29 - .../andrewkroh/sys/unix/asm_dragonfly_amd64.s | 29 - .../andrewkroh/sys/unix/asm_freebsd_386.s | 29 - .../andrewkroh/sys/unix/asm_freebsd_amd64.s | 29 - .../andrewkroh/sys/unix/asm_freebsd_arm.s | 29 - .../andrewkroh/sys/unix/asm_linux_386.s | 35 - .../andrewkroh/sys/unix/asm_linux_amd64.s | 29 - .../andrewkroh/sys/unix/asm_linux_arm.s | 29 - .../andrewkroh/sys/unix/asm_linux_arm64.s | 24 - .../andrewkroh/sys/unix/asm_linux_ppc64x.s | 28 - .../andrewkroh/sys/unix/asm_netbsd_386.s | 29 - .../andrewkroh/sys/unix/asm_netbsd_amd64.s | 29 - .../andrewkroh/sys/unix/asm_netbsd_arm.s | 29 - .../andrewkroh/sys/unix/asm_openbsd_386.s | 29 - .../andrewkroh/sys/unix/asm_openbsd_amd64.s | 29 - .../andrewkroh/sys/unix/asm_solaris_amd64.s | 17 - .../andrewkroh/sys/unix/constants.go | 13 - .../andrewkroh/sys/unix/env_unix.go | 27 - .../andrewkroh/sys/unix/env_unset.go | 14 - .../github.com/andrewkroh/sys/unix/flock.go | 24 - .../andrewkroh/sys/unix/flock_linux_32bit.go | 13 - .../github.com/andrewkroh/sys/unix/gccgo.go | 46 - .../github.com/andrewkroh/sys/unix/gccgo_c.c | 41 - .../andrewkroh/sys/unix/gccgo_linux_amd64.go | 20 - .../github.com/andrewkroh/sys/unix/mkall.sh | 274 - .../andrewkroh/sys/unix/mkerrors.sh | 466 - .../andrewkroh/sys/unix/mksyscall.pl | 323 - .../andrewkroh/sys/unix/mksyscall_solaris.pl | 294 - .../andrewkroh/sys/unix/mksysctl_openbsd.pl | 264 - .../andrewkroh/sys/unix/mksysnum_darwin.pl | 39 - .../andrewkroh/sys/unix/mksysnum_dragonfly.pl | 50 - .../andrewkroh/sys/unix/mksysnum_freebsd.pl | 63 - .../andrewkroh/sys/unix/mksysnum_linux.pl | 58 - .../andrewkroh/sys/unix/mksysnum_netbsd.pl | 58 - .../andrewkroh/sys/unix/mksysnum_openbsd.pl | 50 - vendor/github.com/andrewkroh/sys/unix/race.go | 30 - .../github.com/andrewkroh/sys/unix/race0.go | 25 - .../andrewkroh/sys/unix/sockcmsg_linux.go | 36 - .../andrewkroh/sys/unix/sockcmsg_unix.go | 103 - vendor/github.com/andrewkroh/sys/unix/str.go | 26 - .../github.com/andrewkroh/sys/unix/syscall.go | 74 - .../andrewkroh/sys/unix/syscall_bsd.go | 628 - .../andrewkroh/sys/unix/syscall_darwin.go | 509 - .../andrewkroh/sys/unix/syscall_darwin_386.go | 79 - .../sys/unix/syscall_darwin_amd64.go | 81 - .../andrewkroh/sys/unix/syscall_darwin_arm.go | 73 - .../sys/unix/syscall_darwin_arm64.go | 79 - .../andrewkroh/sys/unix/syscall_dragonfly.go | 411 - .../sys/unix/syscall_dragonfly_386.go | 63 - .../sys/unix/syscall_dragonfly_amd64.go | 63 - .../andrewkroh/sys/unix/syscall_freebsd.go | 682 - .../sys/unix/syscall_freebsd_386.go | 63 - .../sys/unix/syscall_freebsd_amd64.go | 63 - .../sys/unix/syscall_freebsd_arm.go | 63 - .../andrewkroh/sys/unix/syscall_linux.go | 1086 - .../andrewkroh/sys/unix/syscall_linux_386.go | 388 - .../sys/unix/syscall_linux_amd64.go | 146 - .../andrewkroh/sys/unix/syscall_linux_arm.go | 233 - .../sys/unix/syscall_linux_arm64.go | 150 - .../sys/unix/syscall_linux_ppc64x.go | 96 - .../andrewkroh/sys/unix/syscall_netbsd.go | 492 - .../andrewkroh/sys/unix/syscall_netbsd_386.go | 44 - .../sys/unix/syscall_netbsd_amd64.go | 44 - .../andrewkroh/sys/unix/syscall_netbsd_arm.go | 44 - .../andrewkroh/sys/unix/syscall_no_getwd.go | 11 - .../andrewkroh/sys/unix/syscall_openbsd.go | 303 - .../sys/unix/syscall_openbsd_386.go | 44 - .../sys/unix/syscall_openbsd_amd64.go | 44 - .../andrewkroh/sys/unix/syscall_solaris.go | 713 - .../sys/unix/syscall_solaris_amd64.go | 37 - .../andrewkroh/sys/unix/syscall_unix.go | 297 - .../andrewkroh/sys/unix/types_darwin.go | 250 - .../andrewkroh/sys/unix/types_dragonfly.go | 242 - .../andrewkroh/sys/unix/types_freebsd.go | 353 - .../andrewkroh/sys/unix/types_linux.go | 399 - .../andrewkroh/sys/unix/types_netbsd.go | 232 - .../andrewkroh/sys/unix/types_openbsd.go | 244 - .../andrewkroh/sys/unix/types_solaris.go | 260 - .../andrewkroh/sys/unix/zerrors_darwin_386.go | 1576 - .../sys/unix/zerrors_darwin_amd64.go | 1576 - .../andrewkroh/sys/unix/zerrors_darwin_arm.go | 1293 - .../sys/unix/zerrors_darwin_arm64.go | 1576 - .../sys/unix/zerrors_dragonfly_386.go | 1530 - .../sys/unix/zerrors_dragonfly_amd64.go | 1530 - .../sys/unix/zerrors_freebsd_386.go | 1743 - .../sys/unix/zerrors_freebsd_amd64.go | 1748 - .../sys/unix/zerrors_freebsd_arm.go | 1729 - .../andrewkroh/sys/unix/zerrors_linux_386.go | 1761 - .../sys/unix/zerrors_linux_amd64.go | 1762 - .../andrewkroh/sys/unix/zerrors_linux_arm.go | 1577 - .../sys/unix/zerrors_linux_arm64.go | 1843 - .../sys/unix/zerrors_linux_ppc64.go | 1922 - .../sys/unix/zerrors_linux_ppc64le.go | 1921 - .../andrewkroh/sys/unix/zerrors_netbsd_386.go | 1712 - .../sys/unix/zerrors_netbsd_amd64.go | 1702 - .../andrewkroh/sys/unix/zerrors_netbsd_arm.go | 1688 - .../sys/unix/zerrors_openbsd_386.go | 1584 - .../sys/unix/zerrors_openbsd_amd64.go | 1583 - .../sys/unix/zerrors_solaris_amd64.go | 1436 - .../sys/unix/zsyscall_darwin_386.go | 1426 - .../sys/unix/zsyscall_darwin_amd64.go | 1442 - .../sys/unix/zsyscall_darwin_arm.go | 1426 - .../sys/unix/zsyscall_darwin_arm64.go | 1426 - .../sys/unix/zsyscall_dragonfly_386.go | 1412 - .../sys/unix/zsyscall_dragonfly_amd64.go | 1412 - .../sys/unix/zsyscall_freebsd_386.go | 1664 - .../sys/unix/zsyscall_freebsd_amd64.go | 1664 - .../sys/unix/zsyscall_freebsd_arm.go | 1664 - .../andrewkroh/sys/unix/zsyscall_linux_386.go | 1628 - .../sys/unix/zsyscall_linux_amd64.go | 1822 - .../andrewkroh/sys/unix/zsyscall_linux_arm.go | 1756 - .../sys/unix/zsyscall_linux_arm64.go | 1750 - .../sys/unix/zsyscall_linux_ppc64.go | 1792 - .../sys/unix/zsyscall_linux_ppc64le.go | 1792 - .../sys/unix/zsyscall_netbsd_386.go | 1326 - .../sys/unix/zsyscall_netbsd_amd64.go | 1326 - .../sys/unix/zsyscall_netbsd_arm.go | 1326 - .../sys/unix/zsyscall_openbsd_386.go | 1386 - .../sys/unix/zsyscall_openbsd_amd64.go | 1386 - .../sys/unix/zsyscall_solaris_amd64.go | 1559 - .../andrewkroh/sys/unix/zsysctl_openbsd.go | 270 - .../andrewkroh/sys/unix/zsysnum_darwin_386.go | 398 - .../sys/unix/zsysnum_darwin_amd64.go | 398 - .../andrewkroh/sys/unix/zsysnum_darwin_arm.go | 358 - .../sys/unix/zsysnum_darwin_arm64.go | 398 - .../sys/unix/zsysnum_dragonfly_386.go | 304 - .../sys/unix/zsysnum_dragonfly_amd64.go | 304 - .../sys/unix/zsysnum_freebsd_386.go | 351 - .../sys/unix/zsysnum_freebsd_amd64.go | 351 - .../sys/unix/zsysnum_freebsd_arm.go | 351 - .../andrewkroh/sys/unix/zsysnum_linux_386.go | 355 - .../sys/unix/zsysnum_linux_amd64.go | 321 - .../andrewkroh/sys/unix/zsysnum_linux_arm.go | 356 - .../sys/unix/zsysnum_linux_arm64.go | 272 - .../sys/unix/zsysnum_linux_ppc64.go | 360 - .../sys/unix/zsysnum_linux_ppc64le.go | 353 - .../andrewkroh/sys/unix/zsysnum_netbsd_386.go | 273 - .../sys/unix/zsysnum_netbsd_amd64.go | 273 - .../andrewkroh/sys/unix/zsysnum_netbsd_arm.go | 273 - .../sys/unix/zsysnum_openbsd_386.go | 207 - .../sys/unix/zsysnum_openbsd_amd64.go | 207 - .../sys/unix/zsysnum_solaris_amd64.go | 13 - .../andrewkroh/sys/unix/ztypes_darwin_386.go | 447 - .../sys/unix/ztypes_darwin_amd64.go | 462 - .../andrewkroh/sys/unix/ztypes_darwin_arm.go | 449 - .../sys/unix/ztypes_darwin_arm64.go | 457 - .../sys/unix/ztypes_dragonfly_386.go | 437 - .../sys/unix/ztypes_dragonfly_amd64.go | 443 - .../andrewkroh/sys/unix/ztypes_freebsd_386.go | 502 - .../sys/unix/ztypes_freebsd_amd64.go | 505 - .../andrewkroh/sys/unix/ztypes_freebsd_arm.go | 497 - .../andrewkroh/sys/unix/ztypes_linux_386.go | 592 - .../andrewkroh/sys/unix/ztypes_linux_amd64.go | 610 - .../andrewkroh/sys/unix/ztypes_linux_arm.go | 683 - .../andrewkroh/sys/unix/ztypes_linux_arm64.go | 597 - .../andrewkroh/sys/unix/ztypes_linux_ppc64.go | 607 - .../sys/unix/ztypes_linux_ppc64le.go | 607 - .../andrewkroh/sys/unix/ztypes_netbsd_386.go | 396 - .../sys/unix/ztypes_netbsd_amd64.go | 403 - .../andrewkroh/sys/unix/ztypes_netbsd_arm.go | 401 - .../andrewkroh/sys/unix/ztypes_openbsd_386.go | 441 - .../sys/unix/ztypes_openbsd_amd64.go | 448 - .../sys/unix/ztypes_solaris_amd64.go | 422 - .../github.com/andrewkroh/sys/windows/asm.s | 8 - .../andrewkroh/sys/windows/asm_windows_386.s | 13 - .../sys/windows/asm_windows_amd64.s | 13 - .../andrewkroh/sys/windows/dll_windows.go | 275 - .../andrewkroh/sys/windows/env_unset.go | 14 - .../andrewkroh/sys/windows/env_windows.go | 25 - .../andrewkroh/sys/windows/eventlog.go | 20 - .../andrewkroh/sys/windows/exec_windows.go | 97 - .../github.com/andrewkroh/sys/windows/race.go | 30 - .../andrewkroh/sys/windows/race0.go | 25 - .../andrewkroh/sys/windows/registry/key.go | 178 - .../sys/windows/registry/syscall.go | 33 - .../andrewkroh/sys/windows/registry/value.go | 384 - .../sys/windows/registry/zsyscall_windows.go | 82 - .../sys/windows/security_windows.go | 435 - .../andrewkroh/sys/windows/service.go | 143 - .../github.com/andrewkroh/sys/windows/str.go | 22 - .../andrewkroh/sys/windows/svc/debug/log.go | 56 - .../sys/windows/svc/debug/service.go | 45 - .../andrewkroh/sys/windows/svc/event.go | 48 - .../sys/windows/svc/example/beep.go | 22 - .../sys/windows/svc/example/install.go | 92 - .../sys/windows/svc/example/main.go | 76 - .../sys/windows/svc/example/manage.go | 62 - .../sys/windows/svc/example/service.go | 82 - .../andrewkroh/sys/windows/svc/go12.c | 24 - .../andrewkroh/sys/windows/svc/go12.go | 11 - .../andrewkroh/sys/windows/svc/go13.go | 31 - .../andrewkroh/sys/windows/svc/mgr/config.go | 139 - .../andrewkroh/sys/windows/svc/mgr/mgr.go | 116 - .../andrewkroh/sys/windows/svc/mgr/service.go | 74 - .../andrewkroh/sys/windows/svc/security.go | 62 - .../andrewkroh/sys/windows/svc/service.go | 316 - .../andrewkroh/sys/windows/svc/sys_386.s | 67 - .../andrewkroh/sys/windows/svc/sys_amd64.s | 41 - .../andrewkroh/sys/windows/syscall.go | 77 - .../andrewkroh/sys/windows/syscall_windows.go | 986 - .../sys/windows/zsyscall_windows.go | 2177 - .../andrewkroh/sys/windows/ztypes_windows.go | 1137 - .../sys/windows/ztypes_windows_386.go | 22 - .../sys/windows/ztypes_windows_amd64.go | 22 - vendor/github.com/armon/go-socks5/request.go | 58 +- vendor/github.com/armon/go-socks5/resolver.go | 10 +- vendor/github.com/armon/go-socks5/ruleset.go | 16 +- vendor/github.com/armon/go-socks5/socks5.go | 4 +- vendor/github.com/davecgh/go-spew/README.md | 194 - .../github.com/davecgh/go-spew/cov_report.sh | 22 - .../davecgh/go-spew/spew/testdata/dumpcgo.go | 82 - .../dustin/go-humanize/README.markdown | 26 +- .../github.com/dustin/go-humanize/bigbytes.go | 21 +- vendor/github.com/dustin/go-humanize/bytes.go | 21 +- vendor/github.com/dustin/go-humanize/comma.go | 9 +- .../github.com/dustin/go-humanize/humanize.go | 4 +- .../github.com/dustin/go-humanize/number.go | 2 +- vendor/github.com/dustin/go-humanize/si.go | 8 +- vendor/github.com/dustin/go-humanize/times.go | 73 +- .../eapache/go-resiliency/README.md | 21 - .../eapache/go-resiliency/batcher/README.md | 31 - .../eapache/go-resiliency/batcher/batcher.go | 108 - .../eapache/go-resiliency/deadline/README.md | 27 - .../go-resiliency/deadline/deadline.go | 45 - .../eapache/go-resiliency/retrier/README.md | 26 - .../eapache/go-resiliency/retrier/backoffs.go | 24 - .../go-resiliency/retrier/classifier.go | 66 - .../eapache/go-resiliency/retrier/retrier.go | 69 - .../eapache/go-resiliency/semaphore/README.md | 22 - .../go-resiliency/semaphore/semaphore.go | 45 - vendor/github.com/eapache/queue/queue.go | 32 +- vendor/github.com/elastic/go-lumber/README.md | 6 - .../elastic/go-lumber/client/doc.go | 2 - .../elastic/go-lumber/cmd/tst-lj/main.go | 96 - .../elastic/go-lumber/cmd/tst-send/main.go | 110 - vendor/github.com/elastic/go-lumber/doc.go | 2 - .../github.com/elastic/go-lumber/glide.yaml | 5 - .../elastic/go-lumber/protocol/doc.go | 3 - .../elastic/go-lumber/protocol/v1/protocol.go | 15 - .../elastic/go-lumber/server/doc.go | 3 - .../elastic/go-lumber/server/mux.go | 64 - .../elastic/go-lumber/server/opts.go | 108 - .../elastic/go-lumber/server/server.go | 248 - .../elastic/go-lumber/server/v1/doc.go | 2 - .../elastic/go-lumber/server/v1/opts.go | 61 - .../elastic/go-lumber/server/v1/reader.go | 181 - .../elastic/go-lumber/server/v1/server.go | 90 - .../elastic/go-lumber/server/v1/writer.go | 44 - .../message/arr_missing_nested_w_meta.golden | 1 - .../message/arr_missing_nested_wo_meta.golden | 1 - .../error/message/arr_missing_w_meta.golden | 1 - .../error/message/arr_missing_wo_meta.golden | 1 - .../message/arr_oob_nested_w_meta.golden | 1 - .../message/arr_oob_nested_wo_meta.golden | 1 - .../error/message/arr_oob_w_meta.golden | 1 - .../error/message/arr_oob_wo_meta.golden | 1 - .../message/array_size_nested_w_meta.golden | 1 - .../message/array_size_nested_wo_meta.golden | 1 - .../error/message/array_size_w_meta.golden | 1 - .../error/message/array_size_wo_meta.golden | 1 - .../message/conversion_nested_w_meta.golden | 1 - .../message/conversion_nested_wo_meta.golden | 1 - .../error/message/conversion_w_meta.golden | 1 - .../error/message/conversion_wo_meta.golden | 1 - .../message/duplicate_nested_w_meta.golden | 1 - .../message/duplicate_nested_wo_meta.golden | 1 - .../error/message/duplicate_w_meta.golden | 1 - .../error/message/duplicate_wo_meta.golden | 1 - .../expected_object_nested_w_meta.golden | 1 - .../expected_object_nested_wo_meta.golden | 1 - .../message/expected_object_w_meta.golden | 1 - .../message/expected_object_wo_meta.golden | 1 - .../error/message/inline_nested_w_meta.golden | 1 - .../message/inline_nested_wo_meta.golden | 1 - .../error/message/inline_w_meta.golden | 1 - .../error/message/inline_wo_meta.golden | 1 - .../message/invalid_duration_w_meta.golden | 1 - .../message/invalid_duration_wo_meta.golden | 1 - .../message/invalid_regexp_w_meta.golden | 1 - .../message/invalid_regexp_wo_meta.golden | 1 - .../invalid_type_merge_nested_w_meta.golden | 1 - .../invalid_type_merge_nested_wo_meta.golden | 1 - .../message/invalid_type_merge_w_meta.golden | 1 - .../message/invalid_type_merge_wo_meta.golden | 1 - .../invalid_type_top_level_w_meta.golden | 1 - .../invalid_type_top_level_wo_meta.golden | 1 - .../invalid_type_unpack_nested_w_meta.golden | 1 - .../invalid_type_unpack_nested_wo_meta.golden | 1 - .../message/invalid_type_unpack_w_meta.golden | 1 - .../invalid_type_unpack_wo_meta.golden | 1 - .../message/missing_msg_nested_w_meta.golden | 1 - .../message/missing_msg_nested_wo_meta.golden | 1 - .../error/message/missing_msg_w_meta.golden | 1 - .../error/message/missing_msg_wo_meta.golden | 1 - .../message/missing_nested_w_meta.golden | 1 - .../message/missing_nested_wo_meta.golden | 1 - .../error/message/missing_w_meta.golden | 1 - .../error/message/missing_wo_meta.golden | 1 - .../error/message/nil_config_error.golden | 1 - .../error/message/nil_value_error.golden | 1 - .../error/message/parse_splice_w_meta.golden | 1 - .../error/message/pointer_required.golden | 1 - .../error/message/squash_nested_w_meta.golden | 1 - .../message/squash_nested_wo_meta.golden | 1 - .../error/message/squash_w_meta.golden | 1 - .../error/message/squash_wo_meta.golden | 1 - ...to_type_not_supported_nested_w_meta.golden | 1 - ...o_type_not_supported_nested_wo_meta.golden | 1 - .../to_type_not_supported_w_meta.golden | 1 - .../to_type_not_supported_wo_meta.golden | 1 - ...nsupported_input_type_nested_w_meta.golden | 1 - ...supported_input_type_nested_wo_meta.golden | 1 - .../unsupported_input_type_w_meta.golden | 1 - .../unsupported_input_type_wo_meta.golden | 1 - .../message/validation_nested_w_meta.golden | 1 - .../message/validation_nested_wo_meta.golden | 1 - .../error/message/validation_w_meta.golden | 1 - .../error/message/validation_wo_meta.golden | 1 - .../elastic/gosigar/fakes/fake_sigar.go | 72 - .../elastic/gosigar/psnotify/README.md | 50 - .../elastic/gosigar/psnotify/psnotify.go | 138 - .../elastic/gosigar/psnotify/psnotify_bsd.go | 93 - .../gosigar/psnotify/psnotify_linux.go | 253 - vendor/github.com/elastic/procfs/Makefile | 6 + vendor/github.com/elastic/procfs/net_dev.go | 203 + vendor/github.com/elastic/procfs/proc_ns.go | 55 + .../garyburd/redigo/README.markdown | 50 - .../redigo/internal/redistest/testdb.go | 68 - .../github.com/garyburd/redigo/redis/doc.go | 17 +- .../garyburd/redigo/redisx/connmux.go | 152 - .../github.com/garyburd/redigo/redisx/doc.go | 17 - .../go-ole/go-ole/data/screenshot.png | Bin 14362 -> 0 bytes .../go-ole/go-ole/example/excel/excel.go | 31 - .../go-ole/go-ole/example/excel2/excel.go | 96 - .../github.com/go-ole/go-ole/example/ie/ie.go | 33 - .../go-ole/go-ole/example/itunes/itunes.go | 47 - .../go-ole/example/mediaplayer/mediaplayer.go | 29 - .../go-ole/go-ole/example/msagent/msagent.go | 24 - .../go-ole/go-ole/example/msxml/rssreader.go | 49 - .../go-ole/go-ole/example/outlook/outlook.go | 29 - .../go-ole/go-ole/example/winsock/winsock.go | 140 - vendor/github.com/go-ole/go-ole/guid.go | 210 +- .../go-ole/go-ole/idispatch_windows.go | 13 +- .../go-ole/go-ole/iinspectable_windows.go | 2 +- .../go-ole/oleutil/connection_windows.go | 1 + .../go-ole/go-ole/oleutil/oleutil.go | 24 + .../go-ole/go-ole/safearray_func.go | 8 +- .../go-ole/go-ole/safearray_windows.go | 9 +- .../go-ole/go-ole/safearrayconversion.go | 74 +- vendor/github.com/go-ole/go-ole/variant.go | 4 +- vendor/github.com/gocarina/gocsv/README.md | 6 +- vendor/github.com/gocarina/gocsv/csv.go | 57 +- vendor/github.com/gocarina/gocsv/decode.go | 32 +- vendor/github.com/gocarina/gocsv/encode.go | 13 +- vendor/github.com/gocarina/gocsv/types.go | 16 +- .../golang/snappy/cmd/snappytool/main.cpp | 77 - vendor/github.com/golang/snappy/encode.go | 2 +- .../github.com/golang/snappy/encode_amd64.go | 2 +- .../Mark.Twain-Tom.Sawyer.txt.rawsnappy | Bin 9871 -> 0 bytes .../gorhill/cronexpr/cronexpr/README.md | 122 - .../gorhill/cronexpr/cronexpr/main.go | 111 - .../gorhill/cronexpr/cronexpr_parse.go | 9 + .../github.com/klauspost/compress/README.md | 328 - .../klauspost/compress/flate/crc32_amd64.go | 8 +- .../klauspost/compress/flate/crc32_amd64.s | 119 +- .../klauspost/compress/flate/crc32_noasm.go | 9 +- .../klauspost/compress/flate/deflate.go | 235 +- .../klauspost/compress/flate/dict_decoder.go | 184 + .../klauspost/compress/flate/fixedhuff.go | 78 - .../compress/flate/huffman_bit_writer.go | 474 +- .../klauspost/compress/flate/huffman_code.go | 105 +- .../klauspost/compress/flate/inflate.go | 322 +- .../klauspost/compress/flate/snappy.go | 1398 +- .../testdata/huffman-null-max.dyn.expect | Bin 78 -> 0 bytes .../huffman-null-max.dyn.expect-noinput | Bin 78 -> 0 bytes .../flate/testdata/huffman-null-max.golden | Bin 8204 -> 0 bytes .../flate/testdata/huffman-null-max.in | Bin 65535 -> 0 bytes .../flate/testdata/huffman-null-max.wb.expect | Bin 78 -> 0 bytes .../huffman-null-max.wb.expect-noinput | Bin 78 -> 0 bytes .../flate/testdata/huffman-pi.dyn.expect | Bin 1696 -> 0 bytes .../testdata/huffman-pi.dyn.expect-noinput | Bin 1696 -> 0 bytes .../compress/flate/testdata/huffman-pi.golden | Bin 1606 -> 0 bytes .../compress/flate/testdata/huffman-pi.in | 1 - .../flate/testdata/huffman-pi.wb.expect | Bin 1696 -> 0 bytes .../testdata/huffman-pi.wb.expect-noinput | Bin 1696 -> 0 bytes .../flate/testdata/huffman-rand-1k.dyn.expect | Bin 1054 -> 0 bytes .../huffman-rand-1k.dyn.expect-noinput | Bin 1054 -> 0 bytes .../flate/testdata/huffman-rand-1k.golden | Bin 1005 -> 0 bytes .../flate/testdata/huffman-rand-1k.in | Bin 1000 -> 0 bytes .../flate/testdata/huffman-rand-1k.wb.expect | Bin 1005 -> 0 bytes .../huffman-rand-1k.wb.expect-noinput | Bin 1054 -> 0 bytes .../testdata/huffman-rand-limit.dyn.expect | Bin 229 -> 0 bytes .../huffman-rand-limit.dyn.expect-noinput | Bin 229 -> 0 bytes .../flate/testdata/huffman-rand-limit.golden | Bin 252 -> 0 bytes .../flate/testdata/huffman-rand-limit.in | 4 - .../testdata/huffman-rand-limit.wb.expect | Bin 186 -> 0 bytes .../huffman-rand-limit.wb.expect-noinput | Bin 186 -> 0 bytes .../flate/testdata/huffman-rand-max.golden | Bin 65540 -> 0 bytes .../flate/testdata/huffman-rand-max.in | Bin 65535 -> 0 bytes .../flate/testdata/huffman-shifts.dyn.expect | Bin 32 -> 0 bytes .../huffman-shifts.dyn.expect-noinput | Bin 32 -> 0 bytes .../flate/testdata/huffman-shifts.golden | Bin 1812 -> 0 bytes .../compress/flate/testdata/huffman-shifts.in | 2 - .../flate/testdata/huffman-shifts.wb.expect | Bin 32 -> 0 bytes .../testdata/huffman-shifts.wb.expect-noinput | Bin 32 -> 0 bytes .../testdata/huffman-text-shift.dyn.expect | Bin 231 -> 0 bytes .../huffman-text-shift.dyn.expect-noinput | Bin 231 -> 0 bytes .../flate/testdata/huffman-text-shift.golden | Bin 231 -> 0 bytes .../flate/testdata/huffman-text-shift.in | 14 - .../testdata/huffman-text-shift.wb.expect | Bin 231 -> 0 bytes .../huffman-text-shift.wb.expect-noinput | Bin 231 -> 0 bytes .../flate/testdata/huffman-text.dyn.expect | 1 - .../testdata/huffman-text.dyn.expect-noinput | 1 - .../flate/testdata/huffman-text.golden | 3 - .../compress/flate/testdata/huffman-text.in | 13 - .../flate/testdata/huffman-text.wb.expect | 1 - .../testdata/huffman-text.wb.expect-noinput | 1 - .../flate/testdata/huffman-zero.dyn.expect | Bin 17 -> 0 bytes .../testdata/huffman-zero.dyn.expect-noinput | Bin 17 -> 0 bytes .../flate/testdata/huffman-zero.golden | Bin 51 -> 0 bytes .../compress/flate/testdata/huffman-zero.in | 1 - .../flate/testdata/huffman-zero.wb.expect | Bin 6 -> 0 bytes .../testdata/huffman-zero.wb.expect-noinput | Bin 6 -> 0 bytes .../null-long-match.dyn.expect-noinput | Bin 206 -> 0 bytes .../null-long-match.wb.expect-noinput | Bin 206 -> 0 bytes .../klauspost/compress/flate/token.go | 14 +- .../klauspost/compress/gzip/gunzip.go | 342 - .../klauspost/compress/gzip/gzip.go | 274 - .../compress/gzip/testdata/issue6550.gz | Bin 65536 -> 0 bytes .../compress/gzip/testdata/test.json | 5902 -- .../klauspost/compress/snappy/AUTHORS | 14 - .../klauspost/compress/snappy/CONTRIBUTORS | 36 - .../klauspost/compress/snappy/README | 9 - .../klauspost/compress/snappy/asm_amd64.go | 32 - .../klauspost/compress/snappy/asm_amd64.s | 65 - .../klauspost/compress/snappy/asm_generic.go | 15 - .../klauspost/compress/snappy/decode.go | 294 - .../klauspost/compress/snappy/encode.go | 514 - .../klauspost/compress/snappy/snappy.go | 78 - .../compress/snappy/testdata/fireworks.jpeg | Bin 123093 -> 0 bytes .../compress/snappy/testdata/geo.protodata | Bin 118588 -> 0 bytes .../klauspost/compress/snappy/testdata/html | 1 - .../compress/snappy/testdata/html_x_4 | 1 - .../compress/snappy/testdata/kppkn.gtb | Bin 184320 -> 0 bytes .../compress/snappy/testdata/paper-100k.pdf | Bin 102400 -> 0 bytes .../klauspost/compress/snappy/testdata/random | Bin 1048576 -> 0 bytes .../compress/snappy/testdata/urls.10K | 10000 --- .../klauspost/compress/zip/reader.go | 521 - .../klauspost/compress/zip/register.go | 111 - .../klauspost/compress/zip/struct.go | 313 - .../zip/testdata/crc32-not-streamed.zip | Bin 314 -> 0 bytes .../klauspost/compress/zip/testdata/dd.zip | Bin 154 -> 0 bytes .../zip/testdata/go-no-datadesc-sig.zip | Bin 330 -> 0 bytes .../zip/testdata/go-with-datadesc-sig.zip | Bin 242 -> 0 bytes .../zip/testdata/gophercolor16x16.png | Bin 785 -> 0 bytes .../compress/zip/testdata/readme.notzip | Bin 1905 -> 0 bytes .../compress/zip/testdata/readme.zip | Bin 1885 -> 0 bytes .../compress/zip/testdata/symlink.zip | Bin 173 -> 0 bytes .../zip/testdata/test-trailing-junk.zip | Bin 1184 -> 0 bytes .../klauspost/compress/zip/testdata/test.zip | Bin 1170 -> 0 bytes .../klauspost/compress/zip/testdata/unix.zip | Bin 620 -> 0 bytes .../klauspost/compress/zip/testdata/winxp.zip | Bin 412 -> 0 bytes .../compress/zip/testdata/zip64-2.zip | Bin 266 -> 0 bytes .../klauspost/compress/zip/testdata/zip64.zip | Bin 242 -> 0 bytes .../klauspost/compress/zip/writer.go | 393 - .../klauspost/compress/zlib/reader.go | 58 +- .../klauspost/compress/zlib/writer.go | 9 +- .../klauspost/cpuid/private/README.md | 6 - .../klauspost/cpuid/private/cpuid.go | 987 - .../klauspost/cpuid/private/cpuid_386.s | 42 - .../klauspost/cpuid/private/cpuid_amd64.s | 42 - .../cpuid/private/cpuid_detect_intel.go | 17 - .../cpuid/private/cpuid_detect_ref.go | 23 - .../klauspost/cpuid/testdata/cpuid_data.zip | Bin 201312 -> 0 bytes .../klauspost/cpuid/testdata/getall.go | 77 - vendor/github.com/klauspost/crc32/README.md | 5 +- vendor/github.com/klauspost/crc32/crc32.go | 163 +- .../github.com/klauspost/crc32/crc32_amd64.go | 214 +- .../github.com/klauspost/crc32/crc32_amd64.s | 116 +- .../klauspost/crc32/crc32_amd64p32.go | 33 +- .../klauspost/crc32/crc32_generic.go | 92 +- .../klauspost/crc32/crc32_otherarch.go | 15 + .../github.com/klauspost/crc32/crc32_s390x.go | 91 + .../github.com/klauspost/crc32/crc32_s390x.s | 249 + vendor/github.com/miekg/dns/dnsutil/util.go | 79 - .../github.com/miekg/dns/idn/code_points.go | 2346 - vendor/github.com/miekg/dns/idn/punycode.go | 373 - .../mitchellh/hashstructure/hashstructure.go | 4 +- .../mitchellh/mapstructure/decode_hooks.go | 78 +- .../mitchellh/mapstructure/error.go | 18 - .../mitchellh/mapstructure/mapstructure.go | 146 +- vendor/github.com/pierrec/lz4/block.go | 41 +- vendor/github.com/pierrec/lz4/lz4.go | 13 - vendor/github.com/pierrec/lz4/lz4c/main.go | 108 - vendor/github.com/pierrec/lz4/writer.go | 13 +- vendor/github.com/pierrec/xxHash/README.md | 36 - .../pierrec/xxHash/xxHash64/xxHash64.go | 249 - .../github.com/pierrec/xxHash/xxhsum/main.go | 44 - vendor/github.com/pierrre/gotestcover/LICENSE | 0 .../github.com/pierrre/gotestcover/Makefile | 0 .../github.com/pierrre/gotestcover/README.md | 0 .../pierrre/gotestcover/gotestcover.go | 0 vendor/github.com/pkg/errors/LICENSE | 1 - vendor/github.com/pkg/errors/README.md | 2 + vendor/github.com/pkg/errors/errors.go | 170 +- vendor/github.com/pkg/errors/stack.go | 13 + .../github.com/pmezard/go-difflib/README.md | 50 - .../pmezard/go-difflib/difflib/difflib.go | 54 +- .../cmd/metrics-bench/metrics-bench.go | 20 - .../cmd/metrics-example/metrics-example.go | 154 - .../go-metrics/cmd/never-read/never-read.go | 22 - .../github.com/rcrowley/go-metrics/gauge.go | 4 +- .../rcrowley/go-metrics/librato/client.go | 102 - .../rcrowley/go-metrics/librato/librato.go | 235 - .../rcrowley/go-metrics/registry.go | 6 +- .../github.com/rcrowley/go-metrics/sample.go | 9 +- .../rcrowley/go-metrics/stathat/stathat.go | 69 - vendor/github.com/samuel/go-thrift/README.md | 91 - .../go-thrift/examples/scribe/thrift.go | 88 - .../go-thrift/examples/scribe_client/main.go | 26 - .../go-thrift/examples/scribe_server/main.go | 41 - .../samuel/go-thrift/generator/go.go | 687 - .../samuel/go-thrift/generator/main.go | 118 - .../samuel/go-thrift/testfiles/Hbase.thrift | 925 - .../go-thrift/testfiles/cassandra.thrift | 886 - .../samuel/go-thrift/thrift/client.go | 171 - .../samuel/go-thrift/thrift/decoder.go | 266 - .../samuel/go-thrift/thrift/encoder.go | 216 - .../samuel/go-thrift/thrift/framed.go | 121 - .../samuel/go-thrift/thrift/helpers.go | 41 - .../samuel/go-thrift/thrift/protocol.go | 96 - .../go-thrift/thrift/protocol_binary.go | 397 - .../go-thrift/thrift/protocol_compact.go | 598 - .../samuel/go-thrift/thrift/protocol_text.go | 229 - .../samuel/go-thrift/thrift/server.go | 114 - .../samuel/go-thrift/thrift/thrift.go | 414 - .../samuel/go-thrift/thrift/transport.go | 46 - .../samuel/go-thrift/thrift/util.go | 28 - vendor/github.com/satori/go.uuid/uuid.go | 17 +- vendor/github.com/shirou/gopsutil/LICENSE | 34 + vendor/github.com/shirou/gopsutil/Makefile | 18 - vendor/github.com/shirou/gopsutil/README.rst | 293 - vendor/github.com/shirou/gopsutil/coverall.sh | 26 - vendor/github.com/shirou/gopsutil/cpu/cpu.go | 76 - .../shirou/gopsutil/cpu/cpu_darwin.go | 106 - .../shirou/gopsutil/cpu/cpu_darwin_cgo.go | 107 - .../shirou/gopsutil/cpu/cpu_darwin_nocgo.go | 14 - .../shirou/gopsutil/cpu/cpu_freebsd.go | 147 - .../shirou/gopsutil/cpu/cpu_linux.go | 244 - .../shirou/gopsutil/cpu/cpu_unix.go | 59 - .../shirou/gopsutil/cpu/cpu_windows.go | 105 - .../github.com/shirou/gopsutil/disk/disk.go | 30 +- .../shirou/gopsutil/disk/disk_darwin.go | 7 + .../shirou/gopsutil/disk/disk_darwin_arm64.go | 58 + .../shirou/gopsutil/disk/disk_fallback.go | 17 + .../shirou/gopsutil/disk/disk_freebsd.go | 16 +- .../shirou/gopsutil/disk/disk_freebsd_386.go | 6 +- .../shirou/gopsutil/disk/disk_linux.go | 80 +- .../shirou/gopsutil/disk/disk_openbsd.go | 158 + .../gopsutil/disk/disk_openbsd_amd64.go | 91 + .../shirou/gopsutil/disk/disk_unix.go | 19 +- .../shirou/gopsutil/disk/types_openbsd.go | 70 + vendor/github.com/shirou/gopsutil/doc.go | 1 - .../shirou/gopsutil/docker/docker.go | 41 - .../shirou/gopsutil/docker/docker_linux.go | 212 - .../shirou/gopsutil/docker/docker_notlinux.go | 41 - .../github.com/shirou/gopsutil/host/host.go | 38 - .../shirou/gopsutil/host/host_darwin.go | 152 - .../shirou/gopsutil/host/host_darwin_amd64.go | 19 - .../shirou/gopsutil/host/host_freebsd.go | 196 - .../gopsutil/host/host_freebsd_amd64.go | 41 - .../shirou/gopsutil/host/host_linux.go | 431 - .../shirou/gopsutil/host/host_linux_386.go | 44 - .../shirou/gopsutil/host/host_linux_amd64.go | 42 - .../shirou/gopsutil/host/host_linux_arm.go | 42 - .../shirou/gopsutil/host/host_windows.go | 135 - .../shirou/gopsutil/host/types_darwin.go | 17 - .../shirou/gopsutil/host/types_freebsd.go | 43 - .../shirou/gopsutil/host/types_linux.go | 45 - .../shirou/gopsutil/internal/common/common.go | 129 +- .../internal/common/common_freebsd.go | 2 +- .../gopsutil/internal/common/common_linux.go | 40 + .../internal/common/common_openbsd.go | 70 + .../gopsutil/internal/common/common_unix.go | 2 +- .../github.com/shirou/gopsutil/load/load.go | 35 - .../shirou/gopsutil/load/load_darwin.go | 67 - .../shirou/gopsutil/load/load_freebsd.go | 65 - .../shirou/gopsutil/load/load_linux.go | 78 - .../shirou/gopsutil/load/load_windows.go | 19 - vendor/github.com/shirou/gopsutil/mem/mem.go | 64 - .../shirou/gopsutil/mem/mem_darwin.go | 69 - .../shirou/gopsutil/mem/mem_darwin_cgo.go | 53 - .../shirou/gopsutil/mem/mem_darwin_nocgo.go | 88 - .../shirou/gopsutil/mem/mem_freebsd.go | 134 - .../shirou/gopsutil/mem/mem_linux.go | 100 - .../shirou/gopsutil/mem/mem_windows.go | 50 - vendor/github.com/shirou/gopsutil/mktypes.sh | 37 - vendor/github.com/shirou/gopsutil/net/net.go | 18 +- .../shirou/gopsutil/net/net_darwin.go | 265 +- .../shirou/gopsutil/net/net_fallback.go | 25 + .../shirou/gopsutil/net/net_freebsd.go | 2 +- .../shirou/gopsutil/net/net_linux.go | 137 +- .../shirou/gopsutil/net/net_openbsd.go | 153 + .../shirou/gopsutil/net/net_unix.go | 11 + .../shirou/gopsutil/net/net_windows.go | 65 +- .../expected/darwin/%2Fbin%2Fps-ax-opid_fail | 10 - .../shirou/gopsutil/process/process.go | 166 - .../shirou/gopsutil/process/process_darwin.go | 451 - .../gopsutil/process/process_darwin_amd64.go | 234 - .../gopsutil/process/process_freebsd.go | 336 - .../gopsutil/process/process_freebsd_386.go | 141 - .../gopsutil/process/process_freebsd_amd64.go | 192 - .../shirou/gopsutil/process/process_linux.go | 733 - .../gopsutil/process/process_linux_386.go | 9 - .../gopsutil/process/process_linux_amd64.go | 9 - .../gopsutil/process/process_linux_arm.go | 9 - .../shirou/gopsutil/process/process_posix.go | 106 - .../gopsutil/process/process_windows.go | 357 - .../shirou/gopsutil/process/types_darwin.go | 160 - .../shirou/gopsutil/process/types_freebsd.go | 95 - .../github.com/shirou/gopsutil/v2migration.sh | 134 - .../shirou/gopsutil/windows_memo.rst | 36 - .../stretchr/objx/codegen/index.html | 86 - .../stretchr/testify/_codegen/main.go | 287 - .../tsg/gopacket/bytediff/bytediff.go | 217 - .../tsg/gopacket/dumpcommand/tcpdump.go | 84 - .../tsg/gopacket/examples/arpscan/arpscan.go | 188 - .../gopacket/examples/bidirectional/main.go | 192 - .../gopacket/examples/bytediff/bytediff.png | Bin 47462 -> 0 bytes .../tsg/gopacket/examples/bytediff/main.go | 96 - .../gopacket/examples/httpassembly/main.go | 127 - .../tsg/gopacket/examples/pcapdump/main.go | 73 - .../tsg/gopacket/examples/pfdump/main.go | 52 - .../gopacket/examples/statsassembly/main.go | 211 - .../tsg/gopacket/examples/synscan/main.go | 260 - .../tsg/gopacket/examples/util/util.go | 40 - .../tsg/gopacket/layers/test_creator.py | 152 +- vendor/github.com/tsg/gopacket/macs/doc.go | 12 - vendor/github.com/tsg/gopacket/macs/gen.go | 78 - .../tsg/gopacket/macs/valid_mac_prefixes.go | 19791 ----- .../pcap/gopacket_benchmark/benchmark.go | 247 - .../github.com/tsg/gopacket/pcapgo/write.go | 97 - .../github.com/tsg/gopacket/routing/common.go | 36 - .../github.com/tsg/gopacket/routing/other.go | 15 - .../tsg/gopacket/routing/routing.go | 241 - .../tsg/gopacket/tcpassembly/assembly.go | 771 - .../gopacket/tcpassembly/tcpreader/reader.go | 209 - .../snappy => golang.org/x/crypto}/LICENSE | 55 +- vendor/golang.org/x/crypto/PATENTS | 22 + vendor/golang.org/x/net/AUTHORS | 3 - vendor/golang.org/x/net/CONTRIBUTING.md | 31 - vendor/golang.org/x/net/CONTRIBUTORS | 3 - vendor/golang.org/x/net/README | 3 - vendor/golang.org/x/net/bpf/asm.go | 41 + vendor/golang.org/x/net/bpf/constants.go | 215 + vendor/golang.org/x/net/bpf/doc.go | 82 + vendor/golang.org/x/net/bpf/instructions.go | 434 + vendor/golang.org/x/net/bpf/vm.go | 140 + .../golang.org/x/net/bpf/vm_instructions.go | 174 + vendor/golang.org/x/net/context/context.go | 325 +- .../x/net/context/ctxhttp/cancelreq.go | 19 - .../x/net/context/ctxhttp/cancelreq_go14.go | 23 - .../x/net/context/ctxhttp/ctxhttp.go | 96 +- .../x/net/context/ctxhttp/ctxhttp_pre17.go | 147 + vendor/golang.org/x/net/context/go17.go | 72 + vendor/golang.org/x/net/context/pre_go17.go | 300 + vendor/golang.org/x/net/dict/dict.go | 210 - vendor/golang.org/x/net/html/atom/atom.go | 78 - vendor/golang.org/x/net/html/atom/gen.go | 648 - vendor/golang.org/x/net/html/atom/table.go | 713 - .../golang.org/x/net/html/charset/charset.go | 257 - .../html/charset/testdata/HTTP-charset.html | 48 - .../charset/testdata/HTTP-vs-UTF-8-BOM.html | 48 - .../testdata/HTTP-vs-meta-charset.html | 49 - .../testdata/HTTP-vs-meta-content.html | 49 - .../testdata/No-encoding-declaration.html | 47 - .../x/net/html/charset/testdata/README | 9 - .../html/charset/testdata/UTF-16BE-BOM.html | Bin 2670 -> 0 bytes .../html/charset/testdata/UTF-16LE-BOM.html | Bin 2682 -> 0 bytes .../testdata/UTF-8-BOM-vs-meta-charset.html | 49 - .../testdata/UTF-8-BOM-vs-meta-content.html | 48 - .../testdata/meta-charset-attribute.html | 48 - .../testdata/meta-content-attribute.html | 48 - vendor/golang.org/x/net/html/const.go | 102 - vendor/golang.org/x/net/html/doc.go | 106 - vendor/golang.org/x/net/html/doctype.go | 156 - vendor/golang.org/x/net/html/entity.go | 2253 - vendor/golang.org/x/net/html/escape.go | 258 - vendor/golang.org/x/net/html/foreign.go | 226 - vendor/golang.org/x/net/html/node.go | 193 - vendor/golang.org/x/net/html/parse.go | 2094 - vendor/golang.org/x/net/html/render.go | 271 - .../golang.org/x/net/html/testdata/go1.html | 2237 - .../x/net/html/testdata/webkit/README | 28 - .../x/net/html/testdata/webkit/adoption01.dat | 194 - .../x/net/html/testdata/webkit/adoption02.dat | 31 - .../x/net/html/testdata/webkit/comments01.dat | 135 - .../x/net/html/testdata/webkit/doctype01.dat | 370 - .../x/net/html/testdata/webkit/entities01.dat | 603 - .../x/net/html/testdata/webkit/entities02.dat | 249 - .../html/testdata/webkit/html5test-com.dat | 246 - .../x/net/html/testdata/webkit/inbody01.dat | 43 - .../x/net/html/testdata/webkit/isindex.dat | 40 - ...pending-spec-changes-plain-text-unsafe.dat | Bin 115 -> 0 bytes .../testdata/webkit/pending-spec-changes.dat | 52 - .../testdata/webkit/plain-text-unsafe.dat | Bin 4166 -> 0 bytes .../net/html/testdata/webkit/scriptdata01.dat | 308 - .../testdata/webkit/scripted/adoption01.dat | 15 - .../testdata/webkit/scripted/webkit01.dat | 28 - .../x/net/html/testdata/webkit/tables01.dat | 212 - .../x/net/html/testdata/webkit/tests1.dat | 1952 - .../x/net/html/testdata/webkit/tests10.dat | 799 - .../x/net/html/testdata/webkit/tests11.dat | 482 - .../x/net/html/testdata/webkit/tests12.dat | 62 - .../x/net/html/testdata/webkit/tests14.dat | 74 - .../x/net/html/testdata/webkit/tests15.dat | 208 - .../x/net/html/testdata/webkit/tests16.dat | 2299 - .../x/net/html/testdata/webkit/tests17.dat | 153 - .../x/net/html/testdata/webkit/tests18.dat | 269 - .../x/net/html/testdata/webkit/tests19.dat | 1237 - .../x/net/html/testdata/webkit/tests2.dat | 763 - .../x/net/html/testdata/webkit/tests20.dat | 455 - .../x/net/html/testdata/webkit/tests21.dat | 221 - .../x/net/html/testdata/webkit/tests22.dat | 157 - .../x/net/html/testdata/webkit/tests23.dat | 155 - .../x/net/html/testdata/webkit/tests24.dat | 79 - .../x/net/html/testdata/webkit/tests25.dat | 219 - .../x/net/html/testdata/webkit/tests26.dat | 313 - .../x/net/html/testdata/webkit/tests3.dat | 305 - .../x/net/html/testdata/webkit/tests4.dat | 59 - .../x/net/html/testdata/webkit/tests5.dat | 191 - .../x/net/html/testdata/webkit/tests6.dat | 663 - .../x/net/html/testdata/webkit/tests7.dat | 390 - .../x/net/html/testdata/webkit/tests8.dat | 148 - .../x/net/html/testdata/webkit/tests9.dat | 457 - .../testdata/webkit/tests_innerHTML_1.dat | 741 - .../x/net/html/testdata/webkit/tricky01.dat | 261 - .../x/net/html/testdata/webkit/webkit01.dat | 610 - .../x/net/html/testdata/webkit/webkit02.dat | 159 - vendor/golang.org/x/net/html/token.go | 1219 - vendor/golang.org/x/net/http2/Dockerfile | 51 - vendor/golang.org/x/net/http2/Makefile | 3 - vendor/golang.org/x/net/http2/README | 20 - .../x/net/http2/client_conn_pool.go | 225 - .../x/net/http2/configure_transport.go | 89 - vendor/golang.org/x/net/http2/errors.go | 122 - vendor/golang.org/x/net/http2/fixed_buffer.go | 60 - vendor/golang.org/x/net/http2/flow.go | 50 - vendor/golang.org/x/net/http2/frame.go | 1496 - vendor/golang.org/x/net/http2/go15.go | 11 - vendor/golang.org/x/net/http2/gotrack.go | 170 - vendor/golang.org/x/net/http2/h2demo/Makefile | 8 - vendor/golang.org/x/net/http2/h2demo/README | 16 - .../golang.org/x/net/http2/h2demo/h2demo.go | 504 - .../golang.org/x/net/http2/h2demo/launch.go | 302 - .../golang.org/x/net/http2/h2demo/rootCA.key | 27 - .../golang.org/x/net/http2/h2demo/rootCA.pem | 26 - .../golang.org/x/net/http2/h2demo/rootCA.srl | 1 - .../golang.org/x/net/http2/h2demo/server.crt | 20 - .../golang.org/x/net/http2/h2demo/server.key | 27 - vendor/golang.org/x/net/http2/h2i/README.md | 97 - vendor/golang.org/x/net/http2/h2i/h2i.go | 501 - vendor/golang.org/x/net/http2/headermap.go | 78 - vendor/golang.org/x/net/http2/hpack/encode.go | 251 - vendor/golang.org/x/net/http2/hpack/hpack.go | 542 - .../golang.org/x/net/http2/hpack/huffman.go | 190 - vendor/golang.org/x/net/http2/hpack/tables.go | 352 - vendor/golang.org/x/net/http2/http2.go | 429 - vendor/golang.org/x/net/http2/not_go15.go | 11 - vendor/golang.org/x/net/http2/not_go16.go | 13 - vendor/golang.org/x/net/http2/pipe.go | 147 - vendor/golang.org/x/net/http2/server.go | 2149 - .../testdata/draft-ietf-httpbis-http2.xml | 5021 -- vendor/golang.org/x/net/http2/transport.go | 1666 - vendor/golang.org/x/net/http2/write.go | 263 - vendor/golang.org/x/net/http2/writesched.go | 283 - vendor/golang.org/x/net/icmp/endpoint.go | 2 +- vendor/golang.org/x/net/idna/idna.go | 68 - vendor/golang.org/x/net/idna/punycode.go | 200 - .../x/net/internal/nettest/error_posix.go | 31 - .../x/net/internal/nettest/error_stub.go | 11 - .../x/net/internal/nettest/interface.go | 94 - .../x/net/internal/nettest/rlimit.go | 11 - .../x/net/internal/nettest/rlimit_stub.go | 9 - .../x/net/internal/nettest/rlimit_unix.go | 17 - .../x/net/internal/nettest/rlimit_windows.go | 7 - .../x/net/internal/nettest/stack.go | 36 - .../x/net/internal/nettest/stack_stub.go | 18 - .../x/net/internal/nettest/stack_unix.go | 22 - .../x/net/internal/nettest/stack_windows.go | 32 - .../x/net/internal/timeseries/timeseries.go | 525 - vendor/golang.org/x/net/ipv4/bpfopt_linux.go | 27 + vendor/golang.org/x/net/ipv4/bpfopt_stub.go | 16 + vendor/golang.org/x/net/ipv4/defs_linux.go | 9 + vendor/golang.org/x/net/ipv4/gen.go | 4 +- .../x/net/ipv4/sockopt_asmreq_unix.go | 4 +- .../x/net/ipv4/sockopt_asmreqn_unix.go | 2 +- .../x/net/ipv4/sockopt_ssmreq_unix.go | 4 +- vendor/golang.org/x/net/ipv4/sockopt_unix.go | 10 +- vendor/golang.org/x/net/ipv4/sys_bsd.go | 2 - vendor/golang.org/x/net/ipv4/sys_darwin.go | 2 - vendor/golang.org/x/net/ipv4/sys_freebsd.go | 2 - vendor/golang.org/x/net/ipv4/sys_linux.go | 2 - vendor/golang.org/x/net/ipv4/sys_openbsd.go | 2 - vendor/golang.org/x/net/ipv4/sys_stub.go | 2 - .../x/net/ipv4/syscall_linux_386.go | 4 +- vendor/golang.org/x/net/ipv4/syscall_unix.go | 4 +- .../golang.org/x/net/ipv4/zsys_linux_386.go | 16 + .../golang.org/x/net/ipv4/zsys_linux_amd64.go | 16 + .../golang.org/x/net/ipv4/zsys_linux_arm.go | 16 + .../golang.org/x/net/ipv4/zsys_linux_arm64.go | 16 + .../x/net/ipv4/zsys_linux_mips64.go | 16 + .../x/net/ipv4/zsys_linux_mips64le.go | 16 + .../golang.org/x/net/ipv4/zsys_linux_ppc.go | 148 + .../golang.org/x/net/ipv4/zsys_linux_ppc64.go | 16 + .../x/net/ipv4/zsys_linux_ppc64le.go | 16 + .../golang.org/x/net/ipv4/zsys_linux_s390x.go | 150 + vendor/golang.org/x/net/ipv6/bpfopt_linux.go | 27 + vendor/golang.org/x/net/ipv6/bpfopt_stub.go | 16 + vendor/golang.org/x/net/ipv6/defs_linux.go | 9 + vendor/golang.org/x/net/ipv6/gen.go | 4 +- .../x/net/ipv6/sockopt_ssmreq_unix.go | 4 +- vendor/golang.org/x/net/ipv6/sockopt_unix.go | 12 +- vendor/golang.org/x/net/ipv6/sys_bsd.go | 2 - vendor/golang.org/x/net/ipv6/sys_darwin.go | 2 - vendor/golang.org/x/net/ipv6/sys_freebsd.go | 2 - vendor/golang.org/x/net/ipv6/sys_linux.go | 2 - vendor/golang.org/x/net/ipv6/sys_stub.go | 2 - .../x/net/ipv6/syscall_linux_386.go | 4 +- vendor/golang.org/x/net/ipv6/syscall_unix.go | 4 +- .../golang.org/x/net/ipv6/zsys_linux_386.go | 16 + .../golang.org/x/net/ipv6/zsys_linux_amd64.go | 16 + .../golang.org/x/net/ipv6/zsys_linux_arm.go | 16 + .../golang.org/x/net/ipv6/zsys_linux_arm64.go | 16 + .../x/net/ipv6/zsys_linux_mips64.go | 16 + .../x/net/ipv6/zsys_linux_mips64le.go | 16 + .../golang.org/x/net/ipv6/zsys_linux_ppc.go | 170 + .../golang.org/x/net/ipv6/zsys_linux_ppc64.go | 16 + .../x/net/ipv6/zsys_linux_ppc64le.go | 16 + .../golang.org/x/net/ipv6/zsys_linux_s390x.go | 172 + vendor/golang.org/x/net/netutil/listen.go | 48 - vendor/golang.org/x/net/publicsuffix/gen.go | 291 +- vendor/golang.org/x/net/publicsuffix/list.go | 2 + vendor/golang.org/x/net/publicsuffix/table.go | 17637 ++-- vendor/golang.org/x/net/trace/events.go | 524 - vendor/golang.org/x/net/trace/histogram.go | 356 - vendor/golang.org/x/net/trace/trace.go | 1059 - vendor/golang.org/x/net/webdav/file.go | 795 - vendor/golang.org/x/net/webdav/if.go | 173 - .../x/net/webdav/internal/xml/README | 11 - .../x/net/webdav/internal/xml/marshal.go | 1223 - .../x/net/webdav/internal/xml/read.go | 692 - .../x/net/webdav/internal/xml/typeinfo.go | 371 - .../x/net/webdav/internal/xml/xml.go | 1998 - .../x/net/webdav/litmus_test_server.go | 94 - vendor/golang.org/x/net/webdav/lock.go | 445 - vendor/golang.org/x/net/webdav/prop.go | 389 - vendor/golang.org/x/net/webdav/webdav.go | 707 - vendor/golang.org/x/net/webdav/xml.go | 469 - vendor/golang.org/x/net/websocket/client.go | 113 - vendor/golang.org/x/net/websocket/hybi.go | 586 - vendor/golang.org/x/net/websocket/server.go | 113 - .../golang.org/x/net/websocket/websocket.go | 412 - vendor/golang.org/x/net/xsrftoken/xsrf.go | 88 - vendor/golang.org/x/sys/AUTHORS | 3 - vendor/golang.org/x/sys/CONTRIBUTING.md | 31 - vendor/golang.org/x/sys/CONTRIBUTORS | 3 - vendor/golang.org/x/sys/README | 3 - vendor/golang.org/x/sys/plan9/asm.s | 8 - vendor/golang.org/x/sys/plan9/asm_plan9_386.s | 30 - .../golang.org/x/sys/plan9/asm_plan9_amd64.s | 30 - vendor/golang.org/x/sys/plan9/const_plan9.go | 70 - vendor/golang.org/x/sys/plan9/dir_plan9.go | 212 - vendor/golang.org/x/sys/plan9/env_plan9.go | 27 - vendor/golang.org/x/sys/plan9/env_unset.go | 14 - vendor/golang.org/x/sys/plan9/errors_plan9.go | 50 - vendor/golang.org/x/sys/plan9/mkall.sh | 138 - vendor/golang.org/x/sys/plan9/mkerrors.sh | 246 - vendor/golang.org/x/sys/plan9/mksyscall.pl | 319 - .../golang.org/x/sys/plan9/mksysnum_plan9.sh | 23 - .../golang.org/x/sys/plan9/pwd_go15_plan9.go | 21 - vendor/golang.org/x/sys/plan9/pwd_plan9.go | 23 - vendor/golang.org/x/sys/plan9/race.go | 30 - vendor/golang.org/x/sys/plan9/race0.go | 25 - vendor/golang.org/x/sys/plan9/str.go | 22 - vendor/golang.org/x/sys/plan9/syscall.go | 74 - .../golang.org/x/sys/plan9/syscall_plan9.go | 349 - .../x/sys/plan9/zsyscall_plan9_386.go | 292 - .../x/sys/plan9/zsyscall_plan9_amd64.go | 292 - .../golang.org/x/sys/plan9/zsysnum_plan9.go | 49 - vendor/golang.org/x/sys/unix/asm.s | 10 - 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_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_solaris_amd64.s | 17 - .../golang.org/x/sys/unix/bluetooth_linux.go | 35 - vendor/golang.org/x/sys/unix/constants.go | 13 - vendor/golang.org/x/sys/unix/env_unix.go | 27 - vendor/golang.org/x/sys/unix/env_unset.go | 14 - vendor/golang.org/x/sys/unix/flock.go | 24 - .../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 - vendor/golang.org/x/sys/unix/mkall.sh | 285 - vendor/golang.org/x/sys/unix/mkerrors.sh | 476 - vendor/golang.org/x/sys/unix/mkpost.go | 62 - vendor/golang.org/x/sys/unix/mksyscall.pl | 323 - .../x/sys/unix/mksyscall_solaris.pl | 294 - .../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 | 63 - .../golang.org/x/sys/unix/mksysnum_linux.pl | 58 - .../golang.org/x/sys/unix/mksysnum_netbsd.pl | 58 - .../golang.org/x/sys/unix/mksysnum_openbsd.pl | 50 - 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 | 103 - vendor/golang.org/x/sys/unix/str.go | 26 - vendor/golang.org/x/sys/unix/syscall.go | 76 - vendor/golang.org/x/sys/unix/syscall_bsd.go | 628 - .../golang.org/x/sys/unix/syscall_darwin.go | 509 - .../x/sys/unix/syscall_darwin_386.go | 77 - .../x/sys/unix/syscall_darwin_amd64.go | 79 - .../x/sys/unix/syscall_darwin_arm.go | 71 - .../x/sys/unix/syscall_darwin_arm64.go | 77 - .../x/sys/unix/syscall_dragonfly.go | 411 - .../x/sys/unix/syscall_dragonfly_amd64.go | 61 - .../golang.org/x/sys/unix/syscall_freebsd.go | 682 - .../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 | 1115 - .../x/sys/unix/syscall_linux_386.go | 399 - .../x/sys/unix/syscall_linux_amd64.go | 157 - .../x/sys/unix/syscall_linux_arm.go | 263 - .../x/sys/unix/syscall_linux_arm64.go | 192 - .../x/sys/unix/syscall_linux_mips64x.go | 215 - .../x/sys/unix/syscall_linux_ppc64x.go | 135 - .../x/sys/unix/syscall_linux_s390x.go | 329 - .../golang.org/x/sys/unix/syscall_netbsd.go | 492 - .../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 | 303 - .../x/sys/unix/syscall_openbsd_386.go | 42 - .../x/sys/unix/syscall_openbsd_amd64.go | 42 - .../golang.org/x/sys/unix/syscall_solaris.go | 713 - .../x/sys/unix/syscall_solaris_amd64.go | 35 - vendor/golang.org/x/sys/unix/syscall_unix.go | 297 - vendor/golang.org/x/sys/unix/types_darwin.go | 250 - .../golang.org/x/sys/unix/types_dragonfly.go | 242 - vendor/golang.org/x/sys/unix/types_freebsd.go | 353 - vendor/golang.org/x/sys/unix/types_linux.go | 450 - vendor/golang.org/x/sys/unix/types_netbsd.go | 232 - vendor/golang.org/x/sys/unix/types_openbsd.go | 244 - vendor/golang.org/x/sys/unix/types_solaris.go | 260 - .../x/sys/unix/zerrors_darwin_386.go | 1576 - .../x/sys/unix/zerrors_darwin_amd64.go | 1576 - .../x/sys/unix/zerrors_darwin_arm.go | 1293 - .../x/sys/unix/zerrors_darwin_arm64.go | 1576 - .../x/sys/unix/zerrors_dragonfly_amd64.go | 1530 - .../x/sys/unix/zerrors_freebsd_386.go | 1743 - .../x/sys/unix/zerrors_freebsd_amd64.go | 1748 - .../x/sys/unix/zerrors_freebsd_arm.go | 1729 - .../x/sys/unix/zerrors_linux_386.go | 1819 - .../x/sys/unix/zerrors_linux_amd64.go | 1820 - .../x/sys/unix/zerrors_linux_arm.go | 1743 - .../x/sys/unix/zerrors_linux_arm64.go | 1897 - .../x/sys/unix/zerrors_linux_mips64.go | 1917 - .../x/sys/unix/zerrors_linux_mips64le.go | 1917 - .../x/sys/unix/zerrors_linux_ppc64.go | 1970 - .../x/sys/unix/zerrors_linux_ppc64le.go | 1969 - .../x/sys/unix/zerrors_linux_s390x.go | 2027 - .../x/sys/unix/zerrors_netbsd_386.go | 1712 - .../x/sys/unix/zerrors_netbsd_amd64.go | 1702 - .../x/sys/unix/zerrors_netbsd_arm.go | 1688 - .../x/sys/unix/zerrors_openbsd_386.go | 1584 - .../x/sys/unix/zerrors_openbsd_amd64.go | 1583 - .../x/sys/unix/zerrors_solaris_amd64.go | 1436 - .../x/sys/unix/zsyscall_darwin_386.go | 1427 - .../x/sys/unix/zsyscall_darwin_amd64.go | 1443 - .../x/sys/unix/zsyscall_darwin_arm.go | 1427 - .../x/sys/unix/zsyscall_darwin_arm64.go | 1427 - .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1413 - .../x/sys/unix/zsyscall_freebsd_386.go | 1665 - .../x/sys/unix/zsyscall_freebsd_amd64.go | 1665 - .../x/sys/unix/zsyscall_freebsd_arm.go | 1665 - .../x/sys/unix/zsyscall_linux_386.go | 1660 - .../x/sys/unix/zsyscall_linux_amd64.go | 1854 - .../x/sys/unix/zsyscall_linux_arm.go | 1761 - .../x/sys/unix/zsyscall_linux_arm64.go | 1734 - .../x/sys/unix/zsyscall_linux_mips64.go | 1803 - .../x/sys/unix/zsyscall_linux_mips64le.go | 1803 - .../x/sys/unix/zsyscall_linux_ppc64.go | 1865 - .../x/sys/unix/zsyscall_linux_ppc64le.go | 1865 - .../x/sys/unix/zsyscall_linux_s390x.go | 1645 - .../x/sys/unix/zsyscall_netbsd_386.go | 1327 - .../x/sys/unix/zsyscall_netbsd_amd64.go | 1327 - .../x/sys/unix/zsyscall_netbsd_arm.go | 1327 - .../x/sys/unix/zsyscall_openbsd_386.go | 1387 - .../x/sys/unix/zsyscall_openbsd_amd64.go | 1387 - .../x/sys/unix/zsyscall_solaris_amd64.go | 1559 - .../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 | 358 - .../x/sys/unix/zsysnum_darwin_arm64.go | 398 - .../x/sys/unix/zsysnum_dragonfly_amd64.go | 304 - .../x/sys/unix/zsysnum_freebsd_386.go | 351 - .../x/sys/unix/zsysnum_freebsd_amd64.go | 351 - .../x/sys/unix/zsysnum_freebsd_arm.go | 351 - .../x/sys/unix/zsysnum_linux_386.go | 355 - .../x/sys/unix/zsysnum_linux_amd64.go | 321 - .../x/sys/unix/zsysnum_linux_arm.go | 356 - .../x/sys/unix/zsysnum_linux_arm64.go | 272 - .../x/sys/unix/zsysnum_linux_mips64.go | 327 - .../x/sys/unix/zsysnum_linux_mips64le.go | 327 - .../x/sys/unix/zsysnum_linux_ppc64.go | 360 - .../x/sys/unix/zsysnum_linux_ppc64le.go | 353 - .../x/sys/unix/zsysnum_linux_s390x.go | 328 - .../x/sys/unix/zsysnum_netbsd_386.go | 273 - .../x/sys/unix/zsysnum_netbsd_amd64.go | 273 - .../x/sys/unix/zsysnum_netbsd_arm.go | 273 - .../x/sys/unix/zsysnum_openbsd_386.go | 207 - .../x/sys/unix/zsysnum_openbsd_amd64.go | 207 - .../x/sys/unix/zsysnum_solaris_amd64.go | 13 - .../x/sys/unix/ztypes_darwin_386.go | 447 - .../x/sys/unix/ztypes_darwin_amd64.go | 462 - .../x/sys/unix/ztypes_darwin_arm.go | 449 - .../x/sys/unix/ztypes_darwin_arm64.go | 457 - .../x/sys/unix/ztypes_dragonfly_amd64.go | 443 - .../x/sys/unix/ztypes_freebsd_386.go | 502 - .../x/sys/unix/ztypes_freebsd_amd64.go | 505 - .../x/sys/unix/ztypes_freebsd_arm.go | 497 - .../golang.org/x/sys/unix/ztypes_linux_386.go | 627 - .../x/sys/unix/ztypes_linux_amd64.go | 645 - .../golang.org/x/sys/unix/ztypes_linux_arm.go | 607 - .../x/sys/unix/ztypes_linux_arm64.go | 624 - .../x/sys/unix/ztypes_linux_mips64.go | 627 - .../x/sys/unix/ztypes_linux_mips64le.go | 627 - .../x/sys/unix/ztypes_linux_ppc64.go | 634 - .../x/sys/unix/ztypes_linux_ppc64le.go | 634 - .../x/sys/unix/ztypes_linux_s390x.go | 649 - .../x/sys/unix/ztypes_netbsd_386.go | 396 - .../x/sys/unix/ztypes_netbsd_amd64.go | 403 - .../x/sys/unix/ztypes_netbsd_arm.go | 401 - .../x/sys/unix/ztypes_openbsd_386.go | 441 - .../x/sys/unix/ztypes_openbsd_amd64.go | 448 - .../x/sys/unix/ztypes_solaris_amd64.go | 422 - .../x/sys/windows/svc/eventlog/install.go | 80 - .../x/sys/windows/svc/eventlog/log.go | 70 - .../x/sys/windows/svc/example/beep.go | 22 - .../x/sys/windows/svc/example/install.go | 92 - .../x/sys/windows/svc/example/main.go | 76 - .../x/sys/windows/svc/example/manage.go | 62 - .../x/sys/windows/svc/example/service.go | 82 - .../x/sys/windows/svc/mgr/config.go | 139 - .../golang.org/x/sys/windows/svc/mgr/mgr.go | 119 - .../x/sys/windows/svc/mgr/service.go | 74 - vendor/golang.org/x/text/AUTHORS | 3 - vendor/golang.org/x/text/CONTRIBUTING.md | 31 - vendor/golang.org/x/text/CONTRIBUTORS | 3 - vendor/golang.org/x/text/LICENSE | 0 vendor/golang.org/x/text/PATENTS | 0 vendor/golang.org/x/text/README | 3 - vendor/golang.org/x/text/cases/cases.go | 129 - vendor/golang.org/x/text/cases/context.go | 281 - vendor/golang.org/x/text/cases/fold.go | 26 - vendor/golang.org/x/text/cases/gen.go | 831 - vendor/golang.org/x/text/cases/gen_trieval.go | 217 - vendor/golang.org/x/text/cases/info.go | 83 - vendor/golang.org/x/text/cases/map.go | 599 - vendor/golang.org/x/text/cases/tables.go | 2213 - vendor/golang.org/x/text/cases/trieval.go | 213 - .../x/text/collate/build/builder.go | 699 - .../x/text/collate/build/colelem.go | 294 - .../x/text/collate/build/contract.go | 307 - .../golang.org/x/text/collate/build/order.go | 393 - .../golang.org/x/text/collate/build/table.go | 120 - .../golang.org/x/text/collate/build/trie.go | 290 - vendor/golang.org/x/text/collate/collate.go | 405 - .../x/text/collate/colltab/collelem.go | 371 - .../x/text/collate/colltab/colltab.go | 31 - .../x/text/collate/colltab/contract.go | 145 - .../x/text/collate/colltab/export.go | 36 - .../x/text/collate/colltab/numeric.go | 236 - .../x/text/collate/colltab/table.go | 275 - .../golang.org/x/text/collate/colltab/trie.go | 159 - vendor/golang.org/x/text/collate/index.go | 44 - .../golang.org/x/text/collate/maketables.go | 553 - vendor/golang.org/x/text/collate/option.go | 239 - vendor/golang.org/x/text/collate/sort.go | 81 - vendor/golang.org/x/text/collate/tables.go | 73789 ---------------- .../x/text/collate/tools/colcmp/Makefile | 7 - .../x/text/collate/tools/colcmp/chars.go | 1156 - .../x/text/collate/tools/colcmp/col.go | 97 - .../x/text/collate/tools/colcmp/colcmp.go | 529 - .../x/text/collate/tools/colcmp/darwin.go | 111 - .../x/text/collate/tools/colcmp/gen.go | 183 - .../x/text/collate/tools/colcmp/icu.go | 209 - vendor/golang.org/x/text/currency/common.go | 66 - vendor/golang.org/x/text/currency/currency.go | 185 - vendor/golang.org/x/text/currency/format.go | 215 - vendor/golang.org/x/text/currency/gen.go | 400 - .../golang.org/x/text/currency/gen_common.go | 70 - vendor/golang.org/x/text/currency/query.go | 152 - vendor/golang.org/x/text/currency/tables.go | 2480 - vendor/golang.org/x/text/doc.go | 13 - .../x/text/encoding/charmap/charmap.go | 0 .../x/text/encoding/charmap/maketables.go | 0 .../x/text/encoding/charmap/tables.go | 0 vendor/golang.org/x/text/encoding/encoding.go | 8 +- .../x/text/encoding/htmlindex/gen.go | 0 .../x/text/encoding/htmlindex/htmlindex.go | 0 .../x/text/encoding/htmlindex/map.go | 0 .../x/text/encoding/htmlindex/tables.go | 0 .../x/text/encoding/ianaindex/ianaindex.go | 64 - .../text/encoding/internal/identifier/gen.go | 0 .../internal/identifier/identifier.go | 0 .../text/encoding/internal/identifier/mib.go | 0 .../x/text/encoding/internal/internal.go | 0 .../x/text/encoding/japanese/all.go | 0 .../x/text/encoding/japanese/eucjp.go | 0 .../x/text/encoding/japanese/iso2022jp.go | 0 .../x/text/encoding/japanese/maketables.go | 0 .../x/text/encoding/japanese/shiftjis.go | 0 .../x/text/encoding/japanese/tables.go | 0 .../x/text/encoding/korean/euckr.go | 0 .../x/text/encoding/korean/maketables.go | 0 .../x/text/encoding/korean/tables.go | 0 .../x/text/encoding/simplifiedchinese/all.go | 0 .../x/text/encoding/simplifiedchinese/gbk.go | 0 .../encoding/simplifiedchinese/hzgb2312.go | 0 .../encoding/simplifiedchinese/maketables.go | 0 .../text/encoding/simplifiedchinese/tables.go | 0 .../text/encoding/traditionalchinese/big5.go | 0 .../encoding/traditionalchinese/maketables.go | 0 .../encoding/traditionalchinese/tables.go | 0 .../x/text/encoding/unicode/override.go | 0 .../x/text/encoding/unicode/unicode.go | 0 .../x/text/encoding/unicode/utf32/utf32.go | 296 - vendor/golang.org/x/text/gen.go | 177 - .../x/text/internal/colltab/colltab.go | 105 - .../x/text/internal/colltab/contract.go | 145 - .../x/text/internal/colltab/iter.go | 182 - .../x/text/internal/format/format.go | 43 - .../x/text/internal/format/plural/plural.go | 38 - vendor/golang.org/x/text/internal/gen.go | 52 - vendor/golang.org/x/text/internal/gen/code.go | 338 - vendor/golang.org/x/text/internal/gen/gen.go | 226 - vendor/golang.org/x/text/internal/internal.go | 51 - vendor/golang.org/x/text/internal/match.go | 65 - .../x/text/internal/number/common.go | 92 - .../x/text/internal/number/decimal.go | 416 - .../x/text/internal/number/extfloat.go | 671 - .../golang.org/x/text/internal/number/ftoa.go | 448 - .../golang.org/x/text/internal/number/gen.go | 466 - .../x/text/internal/number/gen_common.go | 96 - .../x/text/internal/number/gen_plural.go | 471 - .../golang.org/x/text/internal/number/itoa.go | 111 - .../x/text/internal/number/number.go | 145 - .../x/text/internal/number/pattern.go | 386 - .../x/text/internal/number/plural.go | 119 - .../x/text/internal/number/tables.go | 1633 - .../x/text/internal/stringset/set.go | 86 - vendor/golang.org/x/text/internal/tables.go | 116 - vendor/golang.org/x/text/internal/tag/tag.go | 0 .../x/text/internal/testtext/codesize.go | 53 - .../x/text/internal/testtext/flag.go | 22 - .../golang.org/x/text/internal/testtext/gc.go | 14 - .../x/text/internal/testtext/gccgo.go | 11 - .../x/text/internal/testtext/go1_6.go | 14 - .../x/text/internal/testtext/go1_7.go | 13 - .../x/text/internal/testtext/text.go | 105 - .../x/text/internal/triegen/compact.go | 58 - .../x/text/internal/triegen/print.go | 251 - .../x/text/internal/triegen/triegen.go | 494 - vendor/golang.org/x/text/internal/ucd/ucd.go | 363 - .../internal/utf8internal/utf8internal.go | 0 vendor/golang.org/x/text/language/Makefile | 0 vendor/golang.org/x/text/language/common.go | 0 vendor/golang.org/x/text/language/coverage.go | 0 .../x/text/language/display/dict.go | 92 - .../x/text/language/display/display.go | 343 - .../x/text/language/display/lookup.go | 238 - .../x/text/language/display/maketables.go | 596 - .../x/text/language/display/tables.go | 45235 ---------- .../golang.org/x/text/language/gen_common.go | 0 .../golang.org/x/text/language/gen_index.go | 0 vendor/golang.org/x/text/language/go1_1.go | 0 vendor/golang.org/x/text/language/go1_2.go | 0 vendor/golang.org/x/text/language/index.go | 0 vendor/golang.org/x/text/language/language.go | 0 vendor/golang.org/x/text/language/lookup.go | 0 .../golang.org/x/text/language/maketables.go | 0 vendor/golang.org/x/text/language/match.go | 0 vendor/golang.org/x/text/language/parse.go | 0 vendor/golang.org/x/text/language/tables.go | 0 vendor/golang.org/x/text/language/tags.go | 0 vendor/golang.org/x/text/message/catalog.go | 113 - vendor/golang.org/x/text/message/message.go | 185 - vendor/golang.org/x/text/runes/cond.go | 0 vendor/golang.org/x/text/runes/runes.go | 0 vendor/golang.org/x/text/search/index.go | 47 - vendor/golang.org/x/text/search/pattern.go | 156 - vendor/golang.org/x/text/search/search.go | 238 - vendor/golang.org/x/text/search/tables.go | 12448 --- .../x/text/secure/bidirule/bidirule.go | 290 - vendor/golang.org/x/text/secure/doc.go | 6 - .../golang.org/x/text/secure/precis/class.go | 36 - .../x/text/secure/precis/context.go | 139 - vendor/golang.org/x/text/secure/precis/doc.go | 14 - vendor/golang.org/x/text/secure/precis/gen.go | 310 - .../x/text/secure/precis/gen_trieval.go | 68 - .../x/text/secure/precis/nickname.go | 70 - .../x/text/secure/precis/options.go | 106 - .../x/text/secure/precis/profile.go | 330 - .../x/text/secure/precis/profiles.go | 56 - .../golang.org/x/text/secure/precis/tables.go | 3788 - .../x/text/secure/precis/transformer.go | 32 - .../x/text/secure/precis/trieval.go | 64 - .../golang.org/x/text/transform/transform.go | 0 vendor/golang.org/x/text/unicode/bidi/bidi.go | 198 - .../golang.org/x/text/unicode/bidi/bracket.go | 307 - vendor/golang.org/x/text/unicode/bidi/core.go | 1055 - vendor/golang.org/x/text/unicode/bidi/gen.go | 133 - .../x/text/unicode/bidi/gen_ranges.go | 57 - .../x/text/unicode/bidi/gen_trieval.go | 64 - vendor/golang.org/x/text/unicode/bidi/prop.go | 206 - .../golang.org/x/text/unicode/bidi/tables.go | 1779 - .../golang.org/x/text/unicode/bidi/trieval.go | 60 - vendor/golang.org/x/text/unicode/cldr/base.go | 110 - vendor/golang.org/x/text/unicode/cldr/cldr.go | 130 - .../golang.org/x/text/unicode/cldr/collate.go | 359 - .../golang.org/x/text/unicode/cldr/decode.go | 171 - .../golang.org/x/text/unicode/cldr/makexml.go | 400 - .../golang.org/x/text/unicode/cldr/resolve.go | 602 - .../golang.org/x/text/unicode/cldr/slice.go | 144 - vendor/golang.org/x/text/unicode/cldr/xml.go | 1440 - vendor/golang.org/x/text/unicode/doc.go | 8 - .../x/text/unicode/norm/composition.go | 514 - .../x/text/unicode/norm/forminfo.go | 256 - .../golang.org/x/text/unicode/norm/input.go | 105 - vendor/golang.org/x/text/unicode/norm/iter.go | 450 - .../x/text/unicode/norm/maketables.go | 978 - .../x/text/unicode/norm/normalize.go | 576 - .../x/text/unicode/norm/readwriter.go | 126 - .../golang.org/x/text/unicode/norm/tables.go | 7627 -- .../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 - .../x/text/unicode/rangetable/gen.go | 113 - .../x/text/unicode/rangetable/merge.go | 260 - .../x/text/unicode/rangetable/rangetable.go | 70 - .../x/text/unicode/rangetable/tables.go | 5735 -- vendor/golang.org/x/text/width/gen.go | 115 - vendor/golang.org/x/text/width/gen_common.go | 96 - vendor/golang.org/x/text/width/gen_trieval.go | 34 - vendor/golang.org/x/text/width/kind_string.go | 16 - vendor/golang.org/x/text/width/tables.go | 1284 - vendor/golang.org/x/text/width/transform.go | 162 - vendor/golang.org/x/text/width/trieval.go | 30 - vendor/golang.org/x/text/width/width.go | 201 - vendor/gopkg.in/mgo.v2/Makefile | 4 +- vendor/gopkg.in/mgo.v2/bson/bson.go | 23 +- vendor/gopkg.in/mgo.v2/bson/decimal.go | 310 + vendor/gopkg.in/mgo.v2/bson/decode.go | 5 + vendor/gopkg.in/mgo.v2/bson/encode.go | 71 +- vendor/gopkg.in/mgo.v2/bson/json.go | 380 + .../gopkg.in/mgo.v2/bson/specdata/update.sh | 27 - vendor/gopkg.in/mgo.v2/cluster.go | 5 +- vendor/gopkg.in/mgo.v2/dbtest/dbserver.go | 196 - vendor/gopkg.in/mgo.v2/gridfs.go | 2 +- vendor/gopkg.in/mgo.v2/internal/json/LICENSE | 27 + .../gopkg.in/mgo.v2/internal/json/decode.go | 1685 + .../gopkg.in/mgo.v2/internal/json/encode.go | 1256 + .../mgo.v2/internal/json/extension.go | 95 + vendor/gopkg.in/mgo.v2/internal/json/fold.go | 143 + .../gopkg.in/mgo.v2/internal/json/indent.go | 141 + .../gopkg.in/mgo.v2/internal/json/scanner.go | 697 + .../gopkg.in/mgo.v2/internal/json/stream.go | 510 + .../mgo.v2/internal/json}/tags.go | 17 +- .../mgo.v2/internal/sasl/sasl_windows.c | 20 +- .../mgo.v2/internal/sasl/sasl_windows.go | 12 +- .../mgo.v2/internal/sasl/sasl_windows.h | 2 +- vendor/gopkg.in/mgo.v2/server.go | 11 + vendor/gopkg.in/mgo.v2/session.go | 137 +- vendor/gopkg.in/mgo.v2/testdb/client.pem | 57 - vendor/gopkg.in/mgo.v2/testdb/dropall.js | 66 - vendor/gopkg.in/mgo.v2/testdb/init.js | 132 - vendor/gopkg.in/mgo.v2/testdb/server.pem | 50 - vendor/gopkg.in/mgo.v2/testdb/setup.sh | 58 - .../gopkg.in/mgo.v2/testdb/supervisord.conf | 68 - vendor/gopkg.in/mgo.v2/testdb/wait.js | 67 - .../gopkg.in/mgo.v2/testserver/testserver.go | 168 - vendor/gopkg.in/mgo.v2/txn/chaos.go | 68 - vendor/gopkg.in/mgo.v2/txn/debug.go | 109 - vendor/gopkg.in/mgo.v2/txn/flusher.go | 985 - vendor/gopkg.in/mgo.v2/txn/tarjan.go | 94 - vendor/gopkg.in/mgo.v2/txn/txn.go | 611 - vendor/gopkg.in/yaml.v2/readerc.go | 7 +- vendor/gopkg.in/yaml.v2/scannerc.go | 2 +- vendor/gopkg.in/yaml.v2/yaml.go | 2 +- vendor/vendor.json | 578 +- 1427 files changed, 24282 insertions(+), 542224 deletions(-) delete mode 100644 metricbeat/module/mysql/glide.yaml create mode 100644 metricbeat/module/mysql/vendor/vendor.json delete mode 100644 metricbeat/module/postgresql/glide.yaml delete mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/README delete mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/bogus_root.crt delete mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/postgresql.crt delete mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/postgresql.key delete mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/root.crt delete mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/server.crt delete mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/server.key create mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/conn_go18.go delete mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/hstore/hstore.go delete mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/listen_example/doc.go create mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl.go create mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_go1.7.go create mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_permissions.go create mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_renegotiation.go create mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_windows.go create mode 100644 metricbeat/module/postgresql/vendor/github.com/lib/pq/uuid.go create mode 100644 metricbeat/module/postgresql/vendor/vendor.json delete mode 100644 vendor/github.com/Shopify/sarama/.github/CONTRIBUTING.md delete mode 100644 vendor/github.com/Shopify/sarama/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/github.com/Shopify/sarama/examples/README.md delete mode 100644 vendor/github.com/Shopify/sarama/examples/http_server/README.md delete mode 100644 vendor/github.com/Shopify/sarama/examples/http_server/http_server.go delete mode 100644 vendor/github.com/Shopify/sarama/mocks/README.md delete mode 100644 vendor/github.com/Shopify/sarama/mocks/async_producer.go delete mode 100644 vendor/github.com/Shopify/sarama/mocks/consumer.go delete mode 100644 vendor/github.com/Shopify/sarama/mocks/mocks.go delete mode 100644 vendor/github.com/Shopify/sarama/mocks/sync_producer.go delete mode 100644 vendor/github.com/Shopify/sarama/tools/README.md delete mode 100644 vendor/github.com/Shopify/sarama/tools/kafka-console-consumer/README.md delete mode 100644 vendor/github.com/Shopify/sarama/tools/kafka-console-consumer/kafka-console-consumer.go delete mode 100644 vendor/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/README.md delete mode 100644 vendor/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/kafka-console-partitionconsumer.go delete mode 100644 vendor/github.com/Shopify/sarama/tools/kafka-console-producer/README.md delete mode 100644 vendor/github.com/Shopify/sarama/tools/kafka-console-producer/kafka-console-producer.go delete mode 100755 vendor/github.com/Shopify/sarama/vagrant/boot_cluster.sh delete mode 100755 vendor/github.com/Shopify/sarama/vagrant/create_topics.sh delete mode 100755 vendor/github.com/Shopify/sarama/vagrant/install_cluster.sh delete mode 100644 vendor/github.com/Shopify/sarama/vagrant/kafka.conf delete mode 100755 vendor/github.com/Shopify/sarama/vagrant/provision.sh delete mode 100755 vendor/github.com/Shopify/sarama/vagrant/run_toxiproxy.sh delete mode 100644 vendor/github.com/Shopify/sarama/vagrant/server.properties delete mode 100755 vendor/github.com/Shopify/sarama/vagrant/setup_services.sh delete mode 100644 vendor/github.com/Shopify/sarama/vagrant/toxiproxy.conf delete mode 100644 vendor/github.com/Shopify/sarama/vagrant/zookeeper.conf delete mode 100644 vendor/github.com/Shopify/sarama/vagrant/zookeeper.properties create mode 100644 vendor/github.com/StackExchange/wmi/swbemservices.go delete mode 100644 vendor/github.com/andrewkroh/sys/AUTHORS delete mode 100644 vendor/github.com/andrewkroh/sys/CONTRIBUTING.md delete mode 100644 vendor/github.com/andrewkroh/sys/CONTRIBUTORS delete mode 100644 vendor/github.com/andrewkroh/sys/README delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/asm.s delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/asm_plan9_386.s delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/asm_plan9_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/const_plan9.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/dir_plan9.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/env_plan9.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/env_unset.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/errors_plan9.go delete mode 100755 vendor/github.com/andrewkroh/sys/plan9/mkall.sh delete mode 100755 vendor/github.com/andrewkroh/sys/plan9/mkerrors.sh delete mode 100755 vendor/github.com/andrewkroh/sys/plan9/mksyscall.pl delete mode 100755 vendor/github.com/andrewkroh/sys/plan9/mksysnum_plan9.sh delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/pwd_go15_plan9.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/pwd_plan9.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/race.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/race0.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/str.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/syscall.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/syscall_plan9.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/zsyscall_plan9_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/zsyscall_plan9_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/plan9/zsysnum_plan9.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_darwin_386.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_darwin_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_darwin_arm.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_darwin_arm64.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_dragonfly_386.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_dragonfly_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_freebsd_386.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_freebsd_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_freebsd_arm.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_linux_386.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_linux_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_linux_arm.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_linux_arm64.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_linux_ppc64x.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_netbsd_386.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_netbsd_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_netbsd_arm.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_openbsd_386.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_openbsd_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/asm_solaris_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/unix/constants.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/env_unix.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/env_unset.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/flock.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/flock_linux_32bit.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/gccgo.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/gccgo_c.c delete mode 100644 vendor/github.com/andrewkroh/sys/unix/gccgo_linux_amd64.go delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mkall.sh delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mkerrors.sh delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mksyscall.pl delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mksyscall_solaris.pl delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mksysctl_openbsd.pl delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mksysnum_darwin.pl delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mksysnum_dragonfly.pl delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mksysnum_freebsd.pl delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mksysnum_linux.pl delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mksysnum_netbsd.pl delete mode 100755 vendor/github.com/andrewkroh/sys/unix/mksysnum_openbsd.pl delete mode 100644 vendor/github.com/andrewkroh/sys/unix/race.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/race0.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/sockcmsg_linux.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/sockcmsg_unix.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/str.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_bsd.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_darwin.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_darwin_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_darwin_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_darwin_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_darwin_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_dragonfly.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_dragonfly_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_dragonfly_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_freebsd.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_freebsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_freebsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_freebsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_linux.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_linux_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_linux_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_linux_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_linux_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_linux_ppc64x.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_netbsd.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_netbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_netbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_netbsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_no_getwd.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_openbsd.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_openbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_openbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_solaris.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_solaris_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/syscall_unix.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/types_darwin.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/types_dragonfly.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/types_freebsd.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/types_linux.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/types_netbsd.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/types_openbsd.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/types_solaris.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_dragonfly_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_dragonfly_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_freebsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_freebsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_freebsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_linux_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_linux_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_linux_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_linux_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_linux_ppc64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_linux_ppc64le.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_netbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_netbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_netbsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_openbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_openbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zerrors_solaris_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_dragonfly_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_dragonfly_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_ppc64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_ppc64le.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_openbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_openbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsyscall_solaris_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysctl_openbsd.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_dragonfly_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_dragonfly_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_ppc64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_ppc64le.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_openbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_openbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/zsysnum_solaris_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_dragonfly_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_dragonfly_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_linux_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_linux_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_linux_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_linux_arm64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_linux_ppc64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_linux_ppc64le.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_arm.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_openbsd_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_openbsd_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/unix/ztypes_solaris_amd64.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/asm.s delete mode 100644 vendor/github.com/andrewkroh/sys/windows/asm_windows_386.s delete mode 100644 vendor/github.com/andrewkroh/sys/windows/asm_windows_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/windows/dll_windows.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/env_unset.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/env_windows.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/eventlog.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/exec_windows.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/race.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/race0.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/registry/key.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/registry/syscall.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/registry/value.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/registry/zsyscall_windows.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/security_windows.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/service.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/str.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/debug/log.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/debug/service.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/event.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/example/beep.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/example/install.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/example/main.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/example/manage.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/example/service.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/go12.c delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/go12.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/go13.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/mgr/config.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/mgr/mgr.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/mgr/service.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/security.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/service.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/sys_386.s delete mode 100644 vendor/github.com/andrewkroh/sys/windows/svc/sys_amd64.s delete mode 100644 vendor/github.com/andrewkroh/sys/windows/syscall.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/syscall_windows.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/zsyscall_windows.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/ztypes_windows.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/ztypes_windows_386.go delete mode 100644 vendor/github.com/andrewkroh/sys/windows/ztypes_windows_amd64.go delete mode 100644 vendor/github.com/davecgh/go-spew/README.md delete mode 100644 vendor/github.com/davecgh/go-spew/cov_report.sh delete mode 100644 vendor/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go delete mode 100644 vendor/github.com/eapache/go-resiliency/README.md delete mode 100644 vendor/github.com/eapache/go-resiliency/batcher/README.md delete mode 100644 vendor/github.com/eapache/go-resiliency/batcher/batcher.go delete mode 100644 vendor/github.com/eapache/go-resiliency/deadline/README.md delete mode 100644 vendor/github.com/eapache/go-resiliency/deadline/deadline.go delete mode 100644 vendor/github.com/eapache/go-resiliency/retrier/README.md delete mode 100644 vendor/github.com/eapache/go-resiliency/retrier/backoffs.go delete mode 100644 vendor/github.com/eapache/go-resiliency/retrier/classifier.go delete mode 100644 vendor/github.com/eapache/go-resiliency/retrier/retrier.go delete mode 100644 vendor/github.com/eapache/go-resiliency/semaphore/README.md delete mode 100644 vendor/github.com/eapache/go-resiliency/semaphore/semaphore.go delete mode 100644 vendor/github.com/elastic/go-lumber/README.md delete mode 100644 vendor/github.com/elastic/go-lumber/client/doc.go delete mode 100644 vendor/github.com/elastic/go-lumber/cmd/tst-lj/main.go delete mode 100644 vendor/github.com/elastic/go-lumber/cmd/tst-send/main.go delete mode 100644 vendor/github.com/elastic/go-lumber/doc.go delete mode 100644 vendor/github.com/elastic/go-lumber/glide.yaml delete mode 100644 vendor/github.com/elastic/go-lumber/protocol/doc.go delete mode 100644 vendor/github.com/elastic/go-lumber/protocol/v1/protocol.go delete mode 100644 vendor/github.com/elastic/go-lumber/server/doc.go delete mode 100644 vendor/github.com/elastic/go-lumber/server/mux.go delete mode 100644 vendor/github.com/elastic/go-lumber/server/opts.go delete mode 100644 vendor/github.com/elastic/go-lumber/server/server.go delete mode 100644 vendor/github.com/elastic/go-lumber/server/v1/doc.go delete mode 100644 vendor/github.com/elastic/go-lumber/server/v1/opts.go delete mode 100644 vendor/github.com/elastic/go-lumber/server/v1/reader.go delete mode 100644 vendor/github.com/elastic/go-lumber/server/v1/server.go delete mode 100644 vendor/github.com/elastic/go-lumber/server/v1/writer.go delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_duration_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_duration_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_regexp_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_regexp_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_top_level_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_top_level_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/nil_config_error.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/nil_value_error.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/parse_splice_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/pointer_required.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_nested_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_nested_wo_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_w_meta.golden delete mode 100644 vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_wo_meta.golden delete mode 100644 vendor/github.com/elastic/gosigar/fakes/fake_sigar.go delete mode 100644 vendor/github.com/elastic/gosigar/psnotify/README.md delete mode 100644 vendor/github.com/elastic/gosigar/psnotify/psnotify.go delete mode 100644 vendor/github.com/elastic/gosigar/psnotify/psnotify_bsd.go delete mode 100644 vendor/github.com/elastic/gosigar/psnotify/psnotify_linux.go create mode 100644 vendor/github.com/elastic/procfs/Makefile create mode 100644 vendor/github.com/elastic/procfs/net_dev.go create mode 100644 vendor/github.com/elastic/procfs/proc_ns.go delete mode 100644 vendor/github.com/garyburd/redigo/README.markdown delete mode 100644 vendor/github.com/garyburd/redigo/internal/redistest/testdb.go delete mode 100644 vendor/github.com/garyburd/redigo/redisx/connmux.go delete mode 100644 vendor/github.com/garyburd/redigo/redisx/doc.go delete mode 100644 vendor/github.com/go-ole/go-ole/data/screenshot.png delete mode 100644 vendor/github.com/go-ole/go-ole/example/excel/excel.go delete mode 100644 vendor/github.com/go-ole/go-ole/example/excel2/excel.go delete mode 100644 vendor/github.com/go-ole/go-ole/example/ie/ie.go delete mode 100644 vendor/github.com/go-ole/go-ole/example/itunes/itunes.go delete mode 100644 vendor/github.com/go-ole/go-ole/example/mediaplayer/mediaplayer.go delete mode 100644 vendor/github.com/go-ole/go-ole/example/msagent/msagent.go delete mode 100644 vendor/github.com/go-ole/go-ole/example/msxml/rssreader.go delete mode 100644 vendor/github.com/go-ole/go-ole/example/outlook/outlook.go delete mode 100644 vendor/github.com/go-ole/go-ole/example/winsock/winsock.go delete mode 100644 vendor/github.com/golang/snappy/cmd/snappytool/main.cpp delete mode 100644 vendor/github.com/golang/snappy/testdata/Mark.Twain-Tom.Sawyer.txt.rawsnappy delete mode 100644 vendor/github.com/gorhill/cronexpr/cronexpr/README.md delete mode 100644 vendor/github.com/gorhill/cronexpr/cronexpr/main.go delete mode 100644 vendor/github.com/klauspost/compress/README.md create mode 100644 vendor/github.com/klauspost/compress/flate/dict_decoder.go delete mode 100644 vendor/github.com/klauspost/compress/flate/fixedhuff.go delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.dyn.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.dyn.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.golden delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.in delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.wb.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.wb.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.dyn.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.dyn.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.golden delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.in delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.wb.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.wb.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.dyn.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.dyn.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.golden delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.in delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.wb.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.wb.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.dyn.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.dyn.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.golden delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.in delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.wb.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.wb.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-max.golden delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-max.in delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.dyn.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.dyn.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.golden delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.in delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.wb.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.wb.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text-shift.dyn.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text-shift.dyn.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text-shift.golden delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text-shift.in delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text-shift.wb.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text-shift.wb.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text.dyn.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text.dyn.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text.golden delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text.in delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text.wb.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-text.wb.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.dyn.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.dyn.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.golden delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.in delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.wb.expect delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.wb.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/null-long-match.dyn.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/flate/testdata/null-long-match.wb.expect-noinput delete mode 100644 vendor/github.com/klauspost/compress/gzip/gunzip.go delete mode 100644 vendor/github.com/klauspost/compress/gzip/gzip.go delete mode 100644 vendor/github.com/klauspost/compress/gzip/testdata/issue6550.gz delete mode 100644 vendor/github.com/klauspost/compress/gzip/testdata/test.json delete mode 100644 vendor/github.com/klauspost/compress/snappy/AUTHORS delete mode 100644 vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS delete mode 100644 vendor/github.com/klauspost/compress/snappy/README delete mode 100644 vendor/github.com/klauspost/compress/snappy/asm_amd64.go delete mode 100644 vendor/github.com/klauspost/compress/snappy/asm_amd64.s delete mode 100644 vendor/github.com/klauspost/compress/snappy/asm_generic.go delete mode 100644 vendor/github.com/klauspost/compress/snappy/decode.go delete mode 100644 vendor/github.com/klauspost/compress/snappy/encode.go delete mode 100644 vendor/github.com/klauspost/compress/snappy/snappy.go delete mode 100644 vendor/github.com/klauspost/compress/snappy/testdata/fireworks.jpeg delete mode 100644 vendor/github.com/klauspost/compress/snappy/testdata/geo.protodata delete mode 100644 vendor/github.com/klauspost/compress/snappy/testdata/html delete mode 100644 vendor/github.com/klauspost/compress/snappy/testdata/html_x_4 delete mode 100644 vendor/github.com/klauspost/compress/snappy/testdata/kppkn.gtb delete mode 100644 vendor/github.com/klauspost/compress/snappy/testdata/paper-100k.pdf delete mode 100644 vendor/github.com/klauspost/compress/snappy/testdata/random delete mode 100644 vendor/github.com/klauspost/compress/snappy/testdata/urls.10K delete mode 100644 vendor/github.com/klauspost/compress/zip/reader.go delete mode 100644 vendor/github.com/klauspost/compress/zip/register.go delete mode 100644 vendor/github.com/klauspost/compress/zip/struct.go delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/crc32-not-streamed.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/dd.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/go-no-datadesc-sig.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/go-with-datadesc-sig.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/gophercolor16x16.png delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/readme.notzip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/readme.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/symlink.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/test-trailing-junk.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/test.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/unix.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/winxp.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/zip64-2.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/testdata/zip64.zip delete mode 100644 vendor/github.com/klauspost/compress/zip/writer.go delete mode 100644 vendor/github.com/klauspost/cpuid/private/README.md delete mode 100644 vendor/github.com/klauspost/cpuid/private/cpuid.go delete mode 100644 vendor/github.com/klauspost/cpuid/private/cpuid_386.s delete mode 100644 vendor/github.com/klauspost/cpuid/private/cpuid_amd64.s delete mode 100644 vendor/github.com/klauspost/cpuid/private/cpuid_detect_intel.go delete mode 100644 vendor/github.com/klauspost/cpuid/private/cpuid_detect_ref.go delete mode 100644 vendor/github.com/klauspost/cpuid/testdata/cpuid_data.zip delete mode 100644 vendor/github.com/klauspost/cpuid/testdata/getall.go create mode 100644 vendor/github.com/klauspost/crc32/crc32_otherarch.go create mode 100644 vendor/github.com/klauspost/crc32/crc32_s390x.go create mode 100644 vendor/github.com/klauspost/crc32/crc32_s390x.s delete mode 100644 vendor/github.com/miekg/dns/dnsutil/util.go delete mode 100644 vendor/github.com/miekg/dns/idn/code_points.go delete mode 100644 vendor/github.com/miekg/dns/idn/punycode.go delete mode 100644 vendor/github.com/pierrec/lz4/lz4c/main.go delete mode 100644 vendor/github.com/pierrec/xxHash/README.md delete mode 100644 vendor/github.com/pierrec/xxHash/xxHash64/xxHash64.go delete mode 100644 vendor/github.com/pierrec/xxHash/xxhsum/main.go mode change 100755 => 100644 vendor/github.com/pierrre/gotestcover/LICENSE mode change 100755 => 100644 vendor/github.com/pierrre/gotestcover/Makefile mode change 100755 => 100644 vendor/github.com/pierrre/gotestcover/README.md mode change 100755 => 100644 vendor/github.com/pierrre/gotestcover/gotestcover.go delete mode 100644 vendor/github.com/pmezard/go-difflib/README.md delete mode 100644 vendor/github.com/rcrowley/go-metrics/cmd/metrics-bench/metrics-bench.go delete mode 100644 vendor/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go delete mode 100644 vendor/github.com/rcrowley/go-metrics/cmd/never-read/never-read.go delete mode 100644 vendor/github.com/rcrowley/go-metrics/librato/client.go delete mode 100644 vendor/github.com/rcrowley/go-metrics/librato/librato.go delete mode 100644 vendor/github.com/rcrowley/go-metrics/stathat/stathat.go delete mode 100644 vendor/github.com/samuel/go-thrift/README.md delete mode 100644 vendor/github.com/samuel/go-thrift/examples/scribe/thrift.go delete mode 100644 vendor/github.com/samuel/go-thrift/examples/scribe_client/main.go delete mode 100644 vendor/github.com/samuel/go-thrift/examples/scribe_server/main.go delete mode 100644 vendor/github.com/samuel/go-thrift/generator/go.go delete mode 100644 vendor/github.com/samuel/go-thrift/generator/main.go delete mode 100644 vendor/github.com/samuel/go-thrift/testfiles/Hbase.thrift delete mode 100644 vendor/github.com/samuel/go-thrift/testfiles/cassandra.thrift delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/client.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/decoder.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/encoder.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/framed.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/helpers.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/protocol.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/protocol_binary.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/protocol_compact.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/protocol_text.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/server.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/thrift.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/transport.go delete mode 100644 vendor/github.com/samuel/go-thrift/thrift/util.go delete mode 100644 vendor/github.com/shirou/gopsutil/Makefile delete mode 100644 vendor/github.com/shirou/gopsutil/README.rst delete mode 100644 vendor/github.com/shirou/gopsutil/coverall.sh delete mode 100644 vendor/github.com/shirou/gopsutil/cpu/cpu.go delete mode 100644 vendor/github.com/shirou/gopsutil/cpu/cpu_darwin.go delete mode 100644 vendor/github.com/shirou/gopsutil/cpu/cpu_darwin_cgo.go delete mode 100644 vendor/github.com/shirou/gopsutil/cpu/cpu_darwin_nocgo.go delete mode 100644 vendor/github.com/shirou/gopsutil/cpu/cpu_freebsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/cpu/cpu_linux.go delete mode 100644 vendor/github.com/shirou/gopsutil/cpu/cpu_unix.go delete mode 100644 vendor/github.com/shirou/gopsutil/cpu/cpu_windows.go create mode 100644 vendor/github.com/shirou/gopsutil/disk/disk_darwin_arm64.go create mode 100644 vendor/github.com/shirou/gopsutil/disk/disk_fallback.go create mode 100644 vendor/github.com/shirou/gopsutil/disk/disk_openbsd.go create mode 100644 vendor/github.com/shirou/gopsutil/disk/disk_openbsd_amd64.go create mode 100644 vendor/github.com/shirou/gopsutil/disk/types_openbsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/doc.go delete mode 100644 vendor/github.com/shirou/gopsutil/docker/docker.go delete mode 100644 vendor/github.com/shirou/gopsutil/docker/docker_linux.go delete mode 100644 vendor/github.com/shirou/gopsutil/docker/docker_notlinux.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host_darwin.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host_darwin_amd64.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host_freebsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host_freebsd_amd64.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host_linux.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host_linux_386.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host_linux_amd64.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host_linux_arm.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/host_windows.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/types_darwin.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/types_freebsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/host/types_linux.go create mode 100644 vendor/github.com/shirou/gopsutil/internal/common/common_openbsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/load/load.go delete mode 100644 vendor/github.com/shirou/gopsutil/load/load_darwin.go delete mode 100644 vendor/github.com/shirou/gopsutil/load/load_freebsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/load/load_linux.go delete mode 100644 vendor/github.com/shirou/gopsutil/load/load_windows.go delete mode 100644 vendor/github.com/shirou/gopsutil/mem/mem.go delete mode 100644 vendor/github.com/shirou/gopsutil/mem/mem_darwin.go delete mode 100644 vendor/github.com/shirou/gopsutil/mem/mem_darwin_cgo.go delete mode 100644 vendor/github.com/shirou/gopsutil/mem/mem_darwin_nocgo.go delete mode 100644 vendor/github.com/shirou/gopsutil/mem/mem_freebsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/mem/mem_linux.go delete mode 100644 vendor/github.com/shirou/gopsutil/mem/mem_windows.go delete mode 100644 vendor/github.com/shirou/gopsutil/mktypes.sh create mode 100644 vendor/github.com/shirou/gopsutil/net/net_fallback.go create mode 100644 vendor/github.com/shirou/gopsutil/net/net_openbsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/expected/darwin/%2Fbin%2Fps-ax-opid_fail delete mode 100644 vendor/github.com/shirou/gopsutil/process/process.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_darwin.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_darwin_amd64.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_freebsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_freebsd_386.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_freebsd_amd64.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_linux.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_linux_386.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_linux_amd64.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_linux_arm.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_posix.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/process_windows.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/types_darwin.go delete mode 100644 vendor/github.com/shirou/gopsutil/process/types_freebsd.go delete mode 100644 vendor/github.com/shirou/gopsutil/v2migration.sh delete mode 100644 vendor/github.com/shirou/gopsutil/windows_memo.rst delete mode 100644 vendor/github.com/stretchr/objx/codegen/index.html delete mode 100644 vendor/github.com/stretchr/testify/_codegen/main.go delete mode 100644 vendor/github.com/tsg/gopacket/bytediff/bytediff.go delete mode 100644 vendor/github.com/tsg/gopacket/dumpcommand/tcpdump.go delete mode 100644 vendor/github.com/tsg/gopacket/examples/arpscan/arpscan.go delete mode 100644 vendor/github.com/tsg/gopacket/examples/bidirectional/main.go delete mode 100644 vendor/github.com/tsg/gopacket/examples/bytediff/bytediff.png delete mode 100644 vendor/github.com/tsg/gopacket/examples/bytediff/main.go delete mode 100644 vendor/github.com/tsg/gopacket/examples/httpassembly/main.go delete mode 100644 vendor/github.com/tsg/gopacket/examples/pcapdump/main.go delete mode 100644 vendor/github.com/tsg/gopacket/examples/pfdump/main.go delete mode 100644 vendor/github.com/tsg/gopacket/examples/statsassembly/main.go delete mode 100644 vendor/github.com/tsg/gopacket/examples/synscan/main.go delete mode 100644 vendor/github.com/tsg/gopacket/examples/util/util.go delete mode 100644 vendor/github.com/tsg/gopacket/macs/doc.go delete mode 100644 vendor/github.com/tsg/gopacket/macs/gen.go delete mode 100644 vendor/github.com/tsg/gopacket/macs/valid_mac_prefixes.go delete mode 100644 vendor/github.com/tsg/gopacket/pcap/gopacket_benchmark/benchmark.go delete mode 100644 vendor/github.com/tsg/gopacket/pcapgo/write.go delete mode 100644 vendor/github.com/tsg/gopacket/routing/common.go delete mode 100644 vendor/github.com/tsg/gopacket/routing/other.go delete mode 100644 vendor/github.com/tsg/gopacket/routing/routing.go delete mode 100644 vendor/github.com/tsg/gopacket/tcpassembly/assembly.go delete mode 100644 vendor/github.com/tsg/gopacket/tcpassembly/tcpreader/reader.go rename vendor/{github.com/klauspost/compress/snappy => golang.org/x/crypto}/LICENSE (90%) create mode 100644 vendor/golang.org/x/crypto/PATENTS delete mode 100644 vendor/golang.org/x/net/AUTHORS delete mode 100644 vendor/golang.org/x/net/CONTRIBUTING.md delete mode 100644 vendor/golang.org/x/net/CONTRIBUTORS delete mode 100644 vendor/golang.org/x/net/README create mode 100644 vendor/golang.org/x/net/bpf/asm.go create mode 100644 vendor/golang.org/x/net/bpf/constants.go create mode 100644 vendor/golang.org/x/net/bpf/doc.go create mode 100644 vendor/golang.org/x/net/bpf/instructions.go create mode 100644 vendor/golang.org/x/net/bpf/vm.go create mode 100644 vendor/golang.org/x/net/bpf/vm_instructions.go delete mode 100644 vendor/golang.org/x/net/context/ctxhttp/cancelreq.go delete mode 100644 vendor/golang.org/x/net/context/ctxhttp/cancelreq_go14.go create mode 100644 vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17.go create mode 100644 vendor/golang.org/x/net/context/go17.go create mode 100644 vendor/golang.org/x/net/context/pre_go17.go delete mode 100644 vendor/golang.org/x/net/dict/dict.go delete mode 100644 vendor/golang.org/x/net/html/atom/atom.go delete mode 100644 vendor/golang.org/x/net/html/atom/gen.go delete mode 100644 vendor/golang.org/x/net/html/atom/table.go delete mode 100644 vendor/golang.org/x/net/html/charset/charset.go delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/HTTP-charset.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-charset.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-content.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/No-encoding-declaration.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/README delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/meta-charset-attribute.html delete mode 100644 vendor/golang.org/x/net/html/charset/testdata/meta-content-attribute.html delete mode 100644 vendor/golang.org/x/net/html/const.go delete mode 100644 vendor/golang.org/x/net/html/doc.go delete mode 100644 vendor/golang.org/x/net/html/doctype.go delete mode 100644 vendor/golang.org/x/net/html/entity.go delete mode 100644 vendor/golang.org/x/net/html/escape.go delete mode 100644 vendor/golang.org/x/net/html/foreign.go delete mode 100644 vendor/golang.org/x/net/html/node.go delete mode 100644 vendor/golang.org/x/net/html/parse.go delete mode 100644 vendor/golang.org/x/net/html/render.go delete mode 100644 vendor/golang.org/x/net/html/testdata/go1.html delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/README delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/adoption01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/adoption02.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/comments01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/doctype01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/entities01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/entities02.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/html5test-com.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/inbody01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/isindex.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/pending-spec-changes.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/plain-text-unsafe.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/scriptdata01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/scripted/adoption01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/scripted/webkit01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tables01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests1.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests10.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests11.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests12.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests14.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests15.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests16.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests17.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests18.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests19.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests2.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests20.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests21.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests22.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests23.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests24.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests25.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests26.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests3.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests4.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests5.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests6.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests7.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests8.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests9.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests_innerHTML_1.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tricky01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/webkit01.dat delete mode 100644 vendor/golang.org/x/net/html/testdata/webkit/webkit02.dat delete mode 100644 vendor/golang.org/x/net/html/token.go delete mode 100644 vendor/golang.org/x/net/http2/Dockerfile delete mode 100644 vendor/golang.org/x/net/http2/Makefile delete mode 100644 vendor/golang.org/x/net/http2/README delete mode 100644 vendor/golang.org/x/net/http2/client_conn_pool.go delete mode 100644 vendor/golang.org/x/net/http2/configure_transport.go delete mode 100644 vendor/golang.org/x/net/http2/errors.go delete mode 100644 vendor/golang.org/x/net/http2/fixed_buffer.go delete mode 100644 vendor/golang.org/x/net/http2/flow.go delete mode 100644 vendor/golang.org/x/net/http2/frame.go delete mode 100644 vendor/golang.org/x/net/http2/go15.go delete mode 100644 vendor/golang.org/x/net/http2/gotrack.go delete mode 100644 vendor/golang.org/x/net/http2/h2demo/Makefile delete mode 100644 vendor/golang.org/x/net/http2/h2demo/README delete mode 100644 vendor/golang.org/x/net/http2/h2demo/h2demo.go delete mode 100644 vendor/golang.org/x/net/http2/h2demo/launch.go delete mode 100644 vendor/golang.org/x/net/http2/h2demo/rootCA.key delete mode 100644 vendor/golang.org/x/net/http2/h2demo/rootCA.pem delete mode 100644 vendor/golang.org/x/net/http2/h2demo/rootCA.srl delete mode 100644 vendor/golang.org/x/net/http2/h2demo/server.crt delete mode 100644 vendor/golang.org/x/net/http2/h2demo/server.key delete mode 100644 vendor/golang.org/x/net/http2/h2i/README.md delete mode 100644 vendor/golang.org/x/net/http2/h2i/h2i.go delete mode 100644 vendor/golang.org/x/net/http2/headermap.go delete mode 100644 vendor/golang.org/x/net/http2/hpack/encode.go delete mode 100644 vendor/golang.org/x/net/http2/hpack/hpack.go delete mode 100644 vendor/golang.org/x/net/http2/hpack/huffman.go delete mode 100644 vendor/golang.org/x/net/http2/hpack/tables.go delete mode 100644 vendor/golang.org/x/net/http2/http2.go delete mode 100644 vendor/golang.org/x/net/http2/not_go15.go delete mode 100644 vendor/golang.org/x/net/http2/not_go16.go delete mode 100644 vendor/golang.org/x/net/http2/pipe.go delete mode 100644 vendor/golang.org/x/net/http2/server.go delete mode 100644 vendor/golang.org/x/net/http2/testdata/draft-ietf-httpbis-http2.xml delete mode 100644 vendor/golang.org/x/net/http2/transport.go delete mode 100644 vendor/golang.org/x/net/http2/write.go delete mode 100644 vendor/golang.org/x/net/http2/writesched.go delete mode 100644 vendor/golang.org/x/net/idna/idna.go delete mode 100644 vendor/golang.org/x/net/idna/punycode.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/error_posix.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/error_stub.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/interface.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/rlimit.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/rlimit_stub.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/rlimit_unix.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/rlimit_windows.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/stack.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/stack_stub.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/stack_unix.go delete mode 100644 vendor/golang.org/x/net/internal/nettest/stack_windows.go delete mode 100644 vendor/golang.org/x/net/internal/timeseries/timeseries.go create mode 100644 vendor/golang.org/x/net/ipv4/bpfopt_linux.go create mode 100644 vendor/golang.org/x/net/ipv4/bpfopt_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go create mode 100644 vendor/golang.org/x/net/ipv6/bpfopt_linux.go create mode 100644 vendor/golang.org/x/net/ipv6/bpfopt_stub.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_linux_ppc.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_linux_s390x.go delete mode 100644 vendor/golang.org/x/net/netutil/listen.go delete mode 100644 vendor/golang.org/x/net/trace/events.go delete mode 100644 vendor/golang.org/x/net/trace/histogram.go delete mode 100644 vendor/golang.org/x/net/trace/trace.go delete mode 100644 vendor/golang.org/x/net/webdav/file.go delete mode 100644 vendor/golang.org/x/net/webdav/if.go delete mode 100644 vendor/golang.org/x/net/webdav/internal/xml/README delete mode 100644 vendor/golang.org/x/net/webdav/internal/xml/marshal.go delete mode 100644 vendor/golang.org/x/net/webdav/internal/xml/read.go delete mode 100644 vendor/golang.org/x/net/webdav/internal/xml/typeinfo.go delete mode 100644 vendor/golang.org/x/net/webdav/internal/xml/xml.go delete mode 100644 vendor/golang.org/x/net/webdav/litmus_test_server.go delete mode 100644 vendor/golang.org/x/net/webdav/lock.go delete mode 100644 vendor/golang.org/x/net/webdav/prop.go delete mode 100644 vendor/golang.org/x/net/webdav/webdav.go delete mode 100644 vendor/golang.org/x/net/webdav/xml.go delete mode 100644 vendor/golang.org/x/net/websocket/client.go delete mode 100644 vendor/golang.org/x/net/websocket/hybi.go delete mode 100644 vendor/golang.org/x/net/websocket/server.go delete mode 100644 vendor/golang.org/x/net/websocket/websocket.go delete mode 100644 vendor/golang.org/x/net/xsrftoken/xsrf.go delete mode 100644 vendor/golang.org/x/sys/AUTHORS delete mode 100644 vendor/golang.org/x/sys/CONTRIBUTING.md delete mode 100644 vendor/golang.org/x/sys/CONTRIBUTORS delete mode 100644 vendor/golang.org/x/sys/README delete mode 100644 vendor/golang.org/x/sys/plan9/asm.s delete mode 100644 vendor/golang.org/x/sys/plan9/asm_plan9_386.s delete mode 100644 vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s delete mode 100644 vendor/golang.org/x/sys/plan9/const_plan9.go delete mode 100644 vendor/golang.org/x/sys/plan9/dir_plan9.go delete mode 100644 vendor/golang.org/x/sys/plan9/env_plan9.go delete mode 100644 vendor/golang.org/x/sys/plan9/env_unset.go delete mode 100644 vendor/golang.org/x/sys/plan9/errors_plan9.go delete mode 100755 vendor/golang.org/x/sys/plan9/mkall.sh delete mode 100755 vendor/golang.org/x/sys/plan9/mkerrors.sh delete mode 100755 vendor/golang.org/x/sys/plan9/mksyscall.pl delete mode 100755 vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh delete mode 100644 vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go delete mode 100644 vendor/golang.org/x/sys/plan9/pwd_plan9.go delete mode 100644 vendor/golang.org/x/sys/plan9/race.go delete mode 100644 vendor/golang.org/x/sys/plan9/race0.go delete mode 100644 vendor/golang.org/x/sys/plan9/str.go delete mode 100644 vendor/golang.org/x/sys/plan9/syscall.go delete mode 100644 vendor/golang.org/x/sys/plan9/syscall_plan9.go delete mode 100644 vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go delete mode 100644 vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go delete mode 100644 vendor/golang.org/x/sys/plan9/zsysnum_plan9.go delete mode 100644 vendor/golang.org/x/sys/unix/asm.s 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_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_solaris_amd64.s delete mode 100644 vendor/golang.org/x/sys/unix/bluetooth_linux.go delete mode 100644 vendor/golang.org/x/sys/unix/constants.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/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 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_linux.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/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_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_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_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_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/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_linux.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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_solaris_amd64.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/eventlog/install.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/eventlog/log.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/example/beep.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/example/install.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/example/main.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/example/manage.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/example/service.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/mgr/config.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/mgr/mgr.go delete mode 100644 vendor/golang.org/x/sys/windows/svc/mgr/service.go delete mode 100755 vendor/golang.org/x/text/AUTHORS delete mode 100755 vendor/golang.org/x/text/CONTRIBUTING.md delete mode 100755 vendor/golang.org/x/text/CONTRIBUTORS mode change 100755 => 100644 vendor/golang.org/x/text/LICENSE mode change 100755 => 100644 vendor/golang.org/x/text/PATENTS delete mode 100755 vendor/golang.org/x/text/README delete mode 100755 vendor/golang.org/x/text/cases/cases.go delete mode 100755 vendor/golang.org/x/text/cases/context.go delete mode 100755 vendor/golang.org/x/text/cases/fold.go delete mode 100755 vendor/golang.org/x/text/cases/gen.go delete mode 100755 vendor/golang.org/x/text/cases/gen_trieval.go delete mode 100755 vendor/golang.org/x/text/cases/info.go delete mode 100755 vendor/golang.org/x/text/cases/map.go delete mode 100755 vendor/golang.org/x/text/cases/tables.go delete mode 100755 vendor/golang.org/x/text/cases/trieval.go delete mode 100755 vendor/golang.org/x/text/collate/build/builder.go delete mode 100755 vendor/golang.org/x/text/collate/build/colelem.go delete mode 100755 vendor/golang.org/x/text/collate/build/contract.go delete mode 100755 vendor/golang.org/x/text/collate/build/order.go delete mode 100755 vendor/golang.org/x/text/collate/build/table.go delete mode 100755 vendor/golang.org/x/text/collate/build/trie.go delete mode 100755 vendor/golang.org/x/text/collate/collate.go delete mode 100755 vendor/golang.org/x/text/collate/colltab/collelem.go delete mode 100755 vendor/golang.org/x/text/collate/colltab/colltab.go delete mode 100755 vendor/golang.org/x/text/collate/colltab/contract.go delete mode 100755 vendor/golang.org/x/text/collate/colltab/export.go delete mode 100755 vendor/golang.org/x/text/collate/colltab/numeric.go delete mode 100755 vendor/golang.org/x/text/collate/colltab/table.go delete mode 100755 vendor/golang.org/x/text/collate/colltab/trie.go delete mode 100755 vendor/golang.org/x/text/collate/index.go delete mode 100755 vendor/golang.org/x/text/collate/maketables.go delete mode 100755 vendor/golang.org/x/text/collate/option.go delete mode 100755 vendor/golang.org/x/text/collate/sort.go delete mode 100755 vendor/golang.org/x/text/collate/tables.go delete mode 100755 vendor/golang.org/x/text/collate/tools/colcmp/Makefile delete mode 100755 vendor/golang.org/x/text/collate/tools/colcmp/chars.go delete mode 100755 vendor/golang.org/x/text/collate/tools/colcmp/col.go delete mode 100755 vendor/golang.org/x/text/collate/tools/colcmp/colcmp.go delete mode 100755 vendor/golang.org/x/text/collate/tools/colcmp/darwin.go delete mode 100755 vendor/golang.org/x/text/collate/tools/colcmp/gen.go delete mode 100755 vendor/golang.org/x/text/collate/tools/colcmp/icu.go delete mode 100755 vendor/golang.org/x/text/currency/common.go delete mode 100755 vendor/golang.org/x/text/currency/currency.go delete mode 100755 vendor/golang.org/x/text/currency/format.go delete mode 100755 vendor/golang.org/x/text/currency/gen.go delete mode 100755 vendor/golang.org/x/text/currency/gen_common.go delete mode 100755 vendor/golang.org/x/text/currency/query.go delete mode 100755 vendor/golang.org/x/text/currency/tables.go delete mode 100755 vendor/golang.org/x/text/doc.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/charmap/charmap.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/charmap/maketables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/charmap/tables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/encoding.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/htmlindex/gen.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/htmlindex/map.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/htmlindex/tables.go delete mode 100755 vendor/golang.org/x/text/encoding/ianaindex/ianaindex.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/internal/identifier/gen.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/internal/identifier/identifier.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/internal/identifier/mib.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/internal/internal.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/japanese/all.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/japanese/eucjp.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/japanese/iso2022jp.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/japanese/maketables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/japanese/shiftjis.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/japanese/tables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/korean/euckr.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/korean/maketables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/korean/tables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/all.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/traditionalchinese/big5.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/traditionalchinese/tables.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/unicode/override.go mode change 100755 => 100644 vendor/golang.org/x/text/encoding/unicode/unicode.go delete mode 100755 vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go delete mode 100755 vendor/golang.org/x/text/gen.go delete mode 100755 vendor/golang.org/x/text/internal/colltab/colltab.go delete mode 100755 vendor/golang.org/x/text/internal/colltab/contract.go delete mode 100755 vendor/golang.org/x/text/internal/colltab/iter.go delete mode 100755 vendor/golang.org/x/text/internal/format/format.go delete mode 100755 vendor/golang.org/x/text/internal/format/plural/plural.go delete mode 100755 vendor/golang.org/x/text/internal/gen.go delete mode 100755 vendor/golang.org/x/text/internal/gen/code.go delete mode 100755 vendor/golang.org/x/text/internal/gen/gen.go delete mode 100755 vendor/golang.org/x/text/internal/internal.go delete mode 100755 vendor/golang.org/x/text/internal/match.go delete mode 100755 vendor/golang.org/x/text/internal/number/common.go delete mode 100755 vendor/golang.org/x/text/internal/number/decimal.go delete mode 100755 vendor/golang.org/x/text/internal/number/extfloat.go delete mode 100755 vendor/golang.org/x/text/internal/number/ftoa.go delete mode 100755 vendor/golang.org/x/text/internal/number/gen.go delete mode 100755 vendor/golang.org/x/text/internal/number/gen_common.go delete mode 100755 vendor/golang.org/x/text/internal/number/gen_plural.go delete mode 100755 vendor/golang.org/x/text/internal/number/itoa.go delete mode 100755 vendor/golang.org/x/text/internal/number/number.go delete mode 100755 vendor/golang.org/x/text/internal/number/pattern.go delete mode 100755 vendor/golang.org/x/text/internal/number/plural.go delete mode 100755 vendor/golang.org/x/text/internal/number/tables.go delete mode 100755 vendor/golang.org/x/text/internal/stringset/set.go delete mode 100755 vendor/golang.org/x/text/internal/tables.go mode change 100755 => 100644 vendor/golang.org/x/text/internal/tag/tag.go delete mode 100755 vendor/golang.org/x/text/internal/testtext/codesize.go delete mode 100755 vendor/golang.org/x/text/internal/testtext/flag.go delete mode 100755 vendor/golang.org/x/text/internal/testtext/gc.go delete mode 100755 vendor/golang.org/x/text/internal/testtext/gccgo.go delete mode 100755 vendor/golang.org/x/text/internal/testtext/go1_6.go delete mode 100755 vendor/golang.org/x/text/internal/testtext/go1_7.go delete mode 100755 vendor/golang.org/x/text/internal/testtext/text.go delete mode 100755 vendor/golang.org/x/text/internal/triegen/compact.go delete mode 100755 vendor/golang.org/x/text/internal/triegen/print.go delete mode 100755 vendor/golang.org/x/text/internal/triegen/triegen.go delete mode 100755 vendor/golang.org/x/text/internal/ucd/ucd.go mode change 100755 => 100644 vendor/golang.org/x/text/internal/utf8internal/utf8internal.go mode change 100755 => 100644 vendor/golang.org/x/text/language/Makefile mode change 100755 => 100644 vendor/golang.org/x/text/language/common.go mode change 100755 => 100644 vendor/golang.org/x/text/language/coverage.go delete mode 100755 vendor/golang.org/x/text/language/display/dict.go delete mode 100755 vendor/golang.org/x/text/language/display/display.go delete mode 100755 vendor/golang.org/x/text/language/display/lookup.go delete mode 100755 vendor/golang.org/x/text/language/display/maketables.go delete mode 100755 vendor/golang.org/x/text/language/display/tables.go mode change 100755 => 100644 vendor/golang.org/x/text/language/gen_common.go mode change 100755 => 100644 vendor/golang.org/x/text/language/gen_index.go mode change 100755 => 100644 vendor/golang.org/x/text/language/go1_1.go mode change 100755 => 100644 vendor/golang.org/x/text/language/go1_2.go mode change 100755 => 100644 vendor/golang.org/x/text/language/index.go mode change 100755 => 100644 vendor/golang.org/x/text/language/language.go mode change 100755 => 100644 vendor/golang.org/x/text/language/lookup.go mode change 100755 => 100644 vendor/golang.org/x/text/language/maketables.go mode change 100755 => 100644 vendor/golang.org/x/text/language/match.go mode change 100755 => 100644 vendor/golang.org/x/text/language/parse.go mode change 100755 => 100644 vendor/golang.org/x/text/language/tables.go mode change 100755 => 100644 vendor/golang.org/x/text/language/tags.go delete mode 100755 vendor/golang.org/x/text/message/catalog.go delete mode 100755 vendor/golang.org/x/text/message/message.go mode change 100755 => 100644 vendor/golang.org/x/text/runes/cond.go mode change 100755 => 100644 vendor/golang.org/x/text/runes/runes.go delete mode 100755 vendor/golang.org/x/text/search/index.go delete mode 100755 vendor/golang.org/x/text/search/pattern.go delete mode 100755 vendor/golang.org/x/text/search/search.go delete mode 100755 vendor/golang.org/x/text/search/tables.go delete mode 100755 vendor/golang.org/x/text/secure/bidirule/bidirule.go delete mode 100755 vendor/golang.org/x/text/secure/doc.go delete mode 100755 vendor/golang.org/x/text/secure/precis/class.go delete mode 100755 vendor/golang.org/x/text/secure/precis/context.go delete mode 100755 vendor/golang.org/x/text/secure/precis/doc.go delete mode 100755 vendor/golang.org/x/text/secure/precis/gen.go delete mode 100755 vendor/golang.org/x/text/secure/precis/gen_trieval.go delete mode 100755 vendor/golang.org/x/text/secure/precis/nickname.go delete mode 100755 vendor/golang.org/x/text/secure/precis/options.go delete mode 100755 vendor/golang.org/x/text/secure/precis/profile.go delete mode 100755 vendor/golang.org/x/text/secure/precis/profiles.go delete mode 100755 vendor/golang.org/x/text/secure/precis/tables.go delete mode 100755 vendor/golang.org/x/text/secure/precis/transformer.go delete mode 100755 vendor/golang.org/x/text/secure/precis/trieval.go mode change 100755 => 100644 vendor/golang.org/x/text/transform/transform.go delete mode 100755 vendor/golang.org/x/text/unicode/bidi/bidi.go delete mode 100755 vendor/golang.org/x/text/unicode/bidi/bracket.go delete mode 100755 vendor/golang.org/x/text/unicode/bidi/core.go delete mode 100755 vendor/golang.org/x/text/unicode/bidi/gen.go delete mode 100755 vendor/golang.org/x/text/unicode/bidi/gen_ranges.go delete mode 100755 vendor/golang.org/x/text/unicode/bidi/gen_trieval.go delete mode 100755 vendor/golang.org/x/text/unicode/bidi/prop.go delete mode 100755 vendor/golang.org/x/text/unicode/bidi/tables.go delete mode 100755 vendor/golang.org/x/text/unicode/bidi/trieval.go delete mode 100755 vendor/golang.org/x/text/unicode/cldr/base.go delete mode 100755 vendor/golang.org/x/text/unicode/cldr/cldr.go delete mode 100755 vendor/golang.org/x/text/unicode/cldr/collate.go delete mode 100755 vendor/golang.org/x/text/unicode/cldr/decode.go delete mode 100755 vendor/golang.org/x/text/unicode/cldr/makexml.go delete mode 100755 vendor/golang.org/x/text/unicode/cldr/resolve.go delete mode 100755 vendor/golang.org/x/text/unicode/cldr/slice.go delete mode 100755 vendor/golang.org/x/text/unicode/cldr/xml.go delete mode 100755 vendor/golang.org/x/text/unicode/doc.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/composition.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/forminfo.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/input.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/iter.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/maketables.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/normalize.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/readwriter.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/tables.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/transform.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/trie.go delete mode 100755 vendor/golang.org/x/text/unicode/norm/triegen.go delete mode 100755 vendor/golang.org/x/text/unicode/rangetable/gen.go delete mode 100755 vendor/golang.org/x/text/unicode/rangetable/merge.go delete mode 100755 vendor/golang.org/x/text/unicode/rangetable/rangetable.go delete mode 100755 vendor/golang.org/x/text/unicode/rangetable/tables.go delete mode 100755 vendor/golang.org/x/text/width/gen.go delete mode 100755 vendor/golang.org/x/text/width/gen_common.go delete mode 100755 vendor/golang.org/x/text/width/gen_trieval.go delete mode 100755 vendor/golang.org/x/text/width/kind_string.go delete mode 100755 vendor/golang.org/x/text/width/tables.go delete mode 100755 vendor/golang.org/x/text/width/transform.go delete mode 100755 vendor/golang.org/x/text/width/trieval.go delete mode 100755 vendor/golang.org/x/text/width/width.go create mode 100644 vendor/gopkg.in/mgo.v2/bson/decimal.go create mode 100644 vendor/gopkg.in/mgo.v2/bson/json.go delete mode 100755 vendor/gopkg.in/mgo.v2/bson/specdata/update.sh delete mode 100644 vendor/gopkg.in/mgo.v2/dbtest/dbserver.go create mode 100644 vendor/gopkg.in/mgo.v2/internal/json/LICENSE create mode 100644 vendor/gopkg.in/mgo.v2/internal/json/decode.go create mode 100644 vendor/gopkg.in/mgo.v2/internal/json/encode.go create mode 100644 vendor/gopkg.in/mgo.v2/internal/json/extension.go create mode 100644 vendor/gopkg.in/mgo.v2/internal/json/fold.go create mode 100644 vendor/gopkg.in/mgo.v2/internal/json/indent.go create mode 100644 vendor/gopkg.in/mgo.v2/internal/json/scanner.go create mode 100644 vendor/gopkg.in/mgo.v2/internal/json/stream.go rename vendor/{github.com/samuel/go-thrift/thrift => gopkg.in/mgo.v2/internal/json}/tags.go (69%) delete mode 100644 vendor/gopkg.in/mgo.v2/testdb/client.pem delete mode 100644 vendor/gopkg.in/mgo.v2/testdb/dropall.js delete mode 100644 vendor/gopkg.in/mgo.v2/testdb/init.js delete mode 100644 vendor/gopkg.in/mgo.v2/testdb/server.pem delete mode 100755 vendor/gopkg.in/mgo.v2/testdb/setup.sh delete mode 100644 vendor/gopkg.in/mgo.v2/testdb/supervisord.conf delete mode 100644 vendor/gopkg.in/mgo.v2/testdb/wait.js delete mode 100644 vendor/gopkg.in/mgo.v2/testserver/testserver.go delete mode 100644 vendor/gopkg.in/mgo.v2/txn/chaos.go delete mode 100644 vendor/gopkg.in/mgo.v2/txn/debug.go delete mode 100644 vendor/gopkg.in/mgo.v2/txn/flusher.go delete mode 100644 vendor/gopkg.in/mgo.v2/txn/tarjan.go delete mode 100644 vendor/gopkg.in/mgo.v2/txn/txn.go diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 5383c43e26a..ac2e5247e79 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -18,6 +18,7 @@ https://github.com/elastic/beats/compare/v5.1.1...master[Check the HEAD diff] - Configuration files must be owned by the user running the beat or by root, and they must not be writable by others. {pull}3544[3544] {pull}3689[3689] - Usage of field `_type` is now ignored and hardcoded to `doc`. {pull}3757[3757] +- Change vendor manager from glide to govendor {pull}3851[3851] *Filebeat* - Always use absolute path for event and registry. This can lead to issues when relative paths were used before. {pull}3328[3328] diff --git a/NOTICE b/NOTICE index 43fd915fcfe..3de8c5c941b 100644 --- a/NOTICE +++ b/NOTICE @@ -608,7 +608,6 @@ 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. - -------------------------------------------------------------------- github.com/pmezard/go-difflib -------------------------------------------------------------------- @@ -757,6 +756,39 @@ 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. + +------- +internal/common/binary.go in the gopsutil is copied and modifid from golang/encoding/binary.go. + + + +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. -------------------------------------------------------------------- github.com/stretchr/objx -------------------------------------------------------------------- @@ -842,6 +874,37 @@ 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. +-------------------------------------------------------------------- +golang.org/x/crypto +-------------------------------------------------------------------- +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. + -------------------------------------------------------------------- golang.org/x/net -------------------------------------------------------------------- diff --git a/metricbeat/module/mysql/glide.yaml b/metricbeat/module/mysql/glide.yaml deleted file mode 100644 index 294bd539357..00000000000 --- a/metricbeat/module/mysql/glide.yaml +++ /dev/null @@ -1,3 +0,0 @@ -package: github.com/elastic/beats/metricbeat/module/mysql -import: -- package: github.com/go-sql-driver/mysql diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/AUTHORS b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/AUTHORS index 986f017cbed..e47e5425cba 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/AUTHORS +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/AUTHORS @@ -16,13 +16,16 @@ Arne Hormann Carlos Nieto Chris Moos Daniel Nichter +Daniël van Eeden DisposaBoy +Egor Smolyakov Frederick Mayle Gustavo Kristic Hanno Braun Henri Yandell Hirotaka Yamamoto INADA Naoki +Jacek Szwec James Harr Jian Zhen Joshua Prunier @@ -30,18 +33,24 @@ Julien Lefevre Julien Schmidt Kamil Dziedzic Kevin Malachowski +Lennart Rudolph Leonardo YongUk Kim Luca Looz Lucas Liu Luke Scott Michael Woolnough Nicola Peduzzi +Olivier Mengué +Paul Bonser +Peter Schultz Runrioter Wung Soroush Pour Stan Putrya Stanley Gunawan +Xiangyu Hu Xiaobing Jiang Xiuming Chen +Zhenye Xie # Organizations diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md index 381d91825d2..6bcad7eaa17 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md @@ -1,18 +1,35 @@ -## HEAD +## Version 1.3 (2016-12-01) Changes: - Go 1.1 is no longer supported - - Use decimals field from MySQL to format time types (#249) + - Use decimals fields in MySQL to format time types (#249) - Buffer optimizations (#269) - TLS ServerName defaults to the host (#283) + - Refactoring (#400, #410, #437) + - Adjusted documentation for second generation CloudSQL (#485) + - Documented DSN system var quoting rules (#502) + - Made statement.Close() calls idempotent to avoid errors in Go 1.6+ (#512) -Bugfixes: +New Features: - Enable microsecond resolution on TIME, DATETIME and TIMESTAMP (#249) + - Support for returning table alias on Columns() (#289, #359, #382) + - Placeholder interpolation, can be actived with the DSN parameter `interpolateParams=true` (#309, #318, #490) + - Support for uint64 parameters with high bit set (#332, #345) + - Cleartext authentication plugin support (#327) + - Exported ParseDSN function and the Config struct (#403, #419, #429) + - Read / Write timeouts (#401) + - Support for JSON field type (#414) + - Support for multi-statements and multi-results (#411, #431) + - DSN parameter to set the driver-side max_allowed_packet value manually (#489) + - Native password authentication plugin support (#494, #524) + +Bugfixes: + - Fixed handling of queries without columns and rows (#255) - Fixed a panic when SetKeepAlive() failed (#298) - - Support receiving ERR packet while reading rows (#321) + - Handle ERR packets while reading rows (#321) - Fixed reading NULL length-encoded integers in MySQL 5.6+ (#349) - Fixed absolute paths support in LOAD LOCAL DATA INFILE (#356) - Actually zero out bytes in handshake response (#378) @@ -20,13 +37,12 @@ Bugfixes: - Fixed tests with MySQL 5.7.9+ (#380) - QueryUnescape TLS config names (#397) - Fixed "broken pipe" error by writing to closed socket (#390) - -New Features: - - Support for returning table alias on Columns() (#289, #359, #382) - - Placeholder interpolation, can be actived with the DSN parameter `interpolateParams=true` (#309, #318) - - Support for uint64 parameters with high bit set (#332, #345) - - Cleartext authentication plugin support (#327) - + - Fixed LOAD LOCAL DATA INFILE buffering (#424) + - Fixed parsing of floats into float64 when placeholders are used (#434) + - Fixed DSN tests with Go 1.7+ (#459) + - Handle ERR packets while waiting for EOF (#473) + - Invalidate connection on error while discarding additional results (#513) + - Allow terminating packets of length 0 (#516) ## Version 1.2 (2014-06-03) diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md index f87c19824cc..8fe16bcb497 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md @@ -4,28 +4,11 @@ Before creating a new Issue, please check first if a similar Issue [already exists](https://github.com/go-sql-driver/mysql/issues?state=open) or was [recently closed](https://github.com/go-sql-driver/mysql/issues?direction=desc&page=1&sort=updated&state=closed). -Please provide the following minimum information: -* Your Go-MySQL-Driver version (or git SHA) -* Your Go version (run `go version` in your console) -* A detailed issue description -* Error Log if present -* If possible, a short example - - ## Contributing Code By contributing to this project, you share your code under the Mozilla Public License 2, as specified in the LICENSE file. Don't forget to add yourself to the AUTHORS file. -### Pull Requests Checklist - -Please check the following points before submitting your pull request: -- [x] Code compiles correctly -- [x] Created tests, if possible -- [x] All tests pass -- [x] Extended the README / documentation, if necessary -- [x] Added yourself to the AUTHORS file - ### Code Review Everyone is invited to review and comment on pull requests. diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/README.md b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/README.md index 3adedc6a566..a060e3cfd4b 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/README.md +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/README.md @@ -1,13 +1,9 @@ # Go-MySQL-Driver -A MySQL-Driver for Go's [database/sql](http://golang.org/pkg/database/sql) package +A MySQL-Driver for Go's [database/sql](https://golang.org/pkg/database/sql/) package ![Go-MySQL-Driver logo](https://raw.github.com/wiki/go-sql-driver/mysql/gomysql_m.png "Golang Gopher holding the MySQL Dolphin") -**Latest stable Release:** [Version 1.2 (June 03, 2014)](https://github.com/go-sql-driver/mysql/releases) - -[![Build Status](https://travis-ci.org/go-sql-driver/mysql.png?branch=master)](https://travis-ci.org/go-sql-driver/mysql) - --------------------------------------- * [Features](#features) * [Requirements](#requirements) @@ -19,6 +15,7 @@ A MySQL-Driver for Go's [database/sql](http://golang.org/pkg/database/sql) packa * [Address](#address) * [Parameters](#parameters) * [Examples](#examples) + * [Connection pool and timeouts](#connection-pool-and-timeouts) * [LOAD DATA LOCAL INFILE support](#load-data-local-infile-support) * [time.Time support](#timetime-support) * [Unicode support](#unicode-support) @@ -30,11 +27,11 @@ A MySQL-Driver for Go's [database/sql](http://golang.org/pkg/database/sql) packa ## Features * Lightweight and [fast](https://github.com/go-sql-driver/sql-benchmark "golang MySQL-Driver performance") * Native Go implementation. No C-bindings, just pure Go - * Connections over TCP/IPv4, TCP/IPv6, Unix domain sockets or [custom protocols](http://godoc.org/github.com/go-sql-driver/mysql#DialFunc) + * Connections over TCP/IPv4, TCP/IPv6, Unix domain sockets or [custom protocols](https://godoc.org/github.com/go-sql-driver/mysql#DialFunc) * Automatic handling of broken connections * Automatic Connection Pooling *(by database/sql package)* * Supports queries larger than 16MB - * Full [`sql.RawBytes`](http://golang.org/pkg/database/sql/#RawBytes) support. + * Full [`sql.RawBytes`](https://golang.org/pkg/database/sql/#RawBytes) support. * Intelligent `LONG DATA` handling in prepared statements * Secure `LOAD DATA LOCAL INFILE` support with file Whitelisting and `io.Reader` support * Optional `time.Time` parsing @@ -47,14 +44,14 @@ A MySQL-Driver for Go's [database/sql](http://golang.org/pkg/database/sql) packa --------------------------------------- ## Installation -Simple install the package to your [$GOPATH](http://code.google.com/p/go-wiki/wiki/GOPATH "GOPATH") with the [go tool](http://golang.org/cmd/go/ "go command") from shell: +Simple install the package to your [$GOPATH](https://github.com/golang/go/wiki/GOPATH "GOPATH") with the [go tool](https://golang.org/cmd/go/ "go command") from shell: ```bash $ go get github.com/go-sql-driver/mysql ``` -Make sure [Git is installed](http://git-scm.com/downloads) on your machine and in your system's `PATH`. +Make sure [Git is installed](https://git-scm.com/downloads) on your machine and in your system's `PATH`. ## Usage -_Go MySQL Driver_ is an implementation of Go's `database/sql/driver` interface. You only need to import the driver and can use the full [`database/sql`](http://golang.org/pkg/database/sql) API then. +_Go MySQL Driver_ is an implementation of Go's `database/sql/driver` interface. You only need to import the driver and can use the full [`database/sql`](https://golang.org/pkg/database/sql/) API then. Use `mysql` as `driverName` and a valid [DSN](#dsn-data-source-name) as `dataSourceName`: ```go @@ -99,13 +96,13 @@ Alternatively, [Config.FormatDSN](https://godoc.org/github.com/go-sql-driver/mys Passwords can consist of any character. Escaping is **not** necessary. #### Protocol -See [net.Dial](http://golang.org/pkg/net/#Dial) for more information which networks are available. +See [net.Dial](https://golang.org/pkg/net/#Dial) for more information which networks are available. In general you should use an Unix domain socket if available and TCP otherwise for best performance. #### Address For TCP and UDP networks, addresses have the form `host:port`. If `host` is a literal IPv6 address, it must be enclosed in square brackets. -The functions [net.JoinHostPort](http://golang.org/pkg/net/#JoinHostPort) and [net.SplitHostPort](http://golang.org/pkg/net/#SplitHostPort) manipulate addresses in this form. +The functions [net.JoinHostPort](https://golang.org/pkg/net/#JoinHostPort) and [net.SplitHostPort](https://golang.org/pkg/net/#SplitHostPort) manipulate addresses in this form. For Unix domain sockets the address is the absolute path to the MySQL-Server-socket, e.g. `/var/run/mysqld/mysqld.sock` or `/tmp/mysql.sock`. @@ -135,6 +132,15 @@ Default: false `allowCleartextPasswords=true` allows using the [cleartext client side plugin](http://dev.mysql.com/doc/en/cleartext-authentication-plugin.html) if required by an account, such as one defined with the [PAM authentication plugin](http://dev.mysql.com/doc/en/pam-authentication-plugin.html). Sending passwords in clear text may be a security problem in some configurations. To avoid problems if there is any possibility that the password would be intercepted, clients should connect to MySQL Server using a method that protects the password. Possibilities include [TLS / SSL](#tls), IPsec, or a private network. +##### `allowNativePasswords` + +``` +Type: bool +Valid Values: true, false +Default: false +``` +`allowNativePasswords=true` allows the usage of the mysql native password method. + ##### `allowOldPasswords` ``` @@ -215,11 +221,19 @@ Valid Values: Default: UTC ``` -Sets the location for time.Time values (when using `parseTime=true`). *"Local"* sets the system's location. See [time.LoadLocation](http://golang.org/pkg/time/#LoadLocation) for details. +Sets the location for time.Time values (when using `parseTime=true`). *"Local"* sets the system's location. See [time.LoadLocation](https://golang.org/pkg/time/#LoadLocation) for details. Note that this sets the location for time.Time values but does not change MySQL's [time_zone setting](https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html). For that see the [time_zone system variable](#system-variables), which can also be set as a DSN parameter. -Please keep in mind, that param values must be [url.QueryEscape](http://golang.org/pkg/net/url/#QueryEscape)'ed. Alternatively you can manually replace the `/` with `%2F`. For example `US/Pacific` would be `loc=US%2FPacific`. +Please keep in mind, that param values must be [url.QueryEscape](https://golang.org/pkg/net/url/#QueryEscape)'ed. Alternatively you can manually replace the `/` with `%2F`. For example `US/Pacific` would be `loc=US%2FPacific`. + +##### `maxAllowedPacket` +``` +Type: decimal number +Default: 0 +``` + +Max packet size allowed in bytes. Use `maxAllowedPacket=0` to automatically fetch the `max_allowed_packet` variable from server. ##### `multiStatements` @@ -231,6 +245,7 @@ Default: false Allow multiple statements in one query. While this allows batch queries, it also greatly increases the risk of SQL injections. Only the result of the first query is returned, all other results are silently discarded. +When `multiStatements` is used, `?` parameters must only be used in the first statement. ##### `parseTime` @@ -246,12 +261,11 @@ Default: false ##### `readTimeout` ``` -Type: decimal number +Type: duration Default: 0 ``` -I/O read timeout. The value must be a decimal number with an unit suffix ( *"ms"*, *"s"*, *"m"*, *"h"* ), such as *"30s"*, *"0.5m"* or *"1m30s"*. - +I/O read timeout. The value must be a decimal number with a unit suffix (*"ms"*, *"s"*, *"m"*, *"h"*), such as *"30s"*, *"0.5m"* or *"1m30s"*. ##### `strict` @@ -261,20 +275,20 @@ Valid Values: true, false Default: false ``` -`strict=true` enables the strict mode in which MySQL warnings are treated as errors. +`strict=true` enables a driver-side strict mode in which MySQL warnings are treated as errors. This mode should not be used in production as it may lead to data corruption in certain situations. -By default MySQL also treats notes as warnings. Use [`sql_notes=false`](http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_sql_notes) to ignore notes. See the [examples](#examples) for an DSN example. +A server-side strict mode, which is safe for production use, can be set via the [`sql_mode`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html) system variable. +By default MySQL also treats notes as warnings. Use [`sql_notes=false`](http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_sql_notes) to ignore notes. ##### `timeout` ``` -Type: decimal number +Type: duration Default: OS default ``` -*Driver* side connection timeout. The value must be a decimal number with an unit suffix ( *"ms"*, *"s"*, *"m"*, *"h"* ), such as *"30s"*, *"0.5m"* or *"1m30s"*. To set a server side timeout, use the parameter [`wait_timeout`](http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout). - +Timeout for establishing connections, aka dial timeout. The value must be a decimal number with a unit suffix (*"ms"*, *"s"*, *"m"*, *"h"*), such as *"30s"*, *"0.5m"* or *"1m30s"*. ##### `tls` @@ -284,28 +298,35 @@ Valid Values: true, false, skip-verify, Default: false ``` -`tls=true` enables TLS / SSL encrypted connection to the server. Use `skip-verify` if you want to use a self-signed or invalid certificate (server side). Use a custom value registered with [`mysql.RegisterTLSConfig`](http://godoc.org/github.com/go-sql-driver/mysql#RegisterTLSConfig). - +`tls=true` enables TLS / SSL encrypted connection to the server. Use `skip-verify` if you want to use a self-signed or invalid certificate (server side). Use a custom value registered with [`mysql.RegisterTLSConfig`](https://godoc.org/github.com/go-sql-driver/mysql#RegisterTLSConfig). ##### `writeTimeout` ``` -Type: decimal number +Type: duration Default: 0 ``` -I/O write timeout. The value must be a decimal number with an unit suffix ( *"ms"*, *"s"*, *"m"*, *"h"* ), such as *"30s"*, *"0.5m"* or *"1m30s"*. +I/O write timeout. The value must be a decimal number with a unit suffix (*"ms"*, *"s"*, *"m"*, *"h"*), such as *"30s"*, *"0.5m"* or *"1m30s"*. ##### System Variables -All other parameters are interpreted as system variables: - * `autocommit`: `"SET autocommit="` - * [`time_zone`](https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html): `"SET time_zone="` - * [`tx_isolation`](https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_tx_isolation): `"SET tx_isolation="` - * `param`: `"SET ="` +Any other parameters are interpreted as system variables: + * `=`: `SET =` + * `=`: `SET =` + * `=%27%27`: `SET =''` + +Rules: +* The values for string variables must be quoted with ' +* The values must also be [url.QueryEscape](http://golang.org/pkg/net/url/#QueryEscape)'ed! + (which implies values of string variables must be wrapped with `%27`) + +Examples: + * `autocommit=1`: `SET autocommit=1` + * [`time_zone=%27Europe%2FParis%27`](https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html): `SET time_zone='Europe/Paris'` + * [`tx_isolation=%27REPEATABLE-READ%27`](https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_tx_isolation): `SET tx_isolation='REPEATABLE-READ'` -*The values must be [url.QueryEscape](http://golang.org/pkg/net/url/#QueryEscape)'ed!* #### Examples ``` @@ -320,9 +341,9 @@ root:pw@unix(/tmp/mysql.sock)/myDatabase?loc=Local user:password@tcp(localhost:5555)/dbname?tls=skip-verify&autocommit=true ``` -Use the [strict mode](#strict) but ignore notes: +Treat warnings as errors by setting the system variable [`sql_mode`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html): ``` -user:password@/dbname?strict=true&sql_notes=false +user:password@/dbname?sql_mode=TRADITIONAL ``` TCP via IPv6: @@ -335,11 +356,16 @@ TCP on a remote host, e.g. Amazon RDS: id:password@tcp(your-amazonaws-uri.com:3306)/dbname ``` -Google Cloud SQL on App Engine: +Google Cloud SQL on App Engine (First Generation MySQL Server): ``` user@cloudsql(project-id:instance-name)/dbname ``` +Google Cloud SQL on App Engine (Second Generation MySQL Server): +``` +user@cloudsql(project-id:regionname:instance-name)/dbname +``` + TCP using default port (3306) on localhost: ``` user:password@tcp/dbname?charset=utf8mb4,utf8&sys_var=esc%40ped @@ -355,6 +381,11 @@ No Database preselected: user:password@/ ``` + +### Connection pool and timeouts +The connection pool is managed by Go's database/sql package. For details on how to configure the size of the pool and how long connections stay in the pool see `*DB.SetMaxOpenConns`, `*DB.SetMaxIdleConns`, and `*DB.SetConnMaxLifetime` in the [database/sql documentation](https://golang.org/pkg/database/sql/). The read, write, and dial timeouts for each individual connection are configured with the DSN parameters [`readTimeout`](#readtimeout), [`writeTimeout`](#writetimeout), and [`timeout`](#timeout), respectively. + + ### `LOAD DATA LOCAL INFILE` support For this feature you need direct access to the package. Therefore you must change the import path (no `_`): ```go @@ -365,17 +396,17 @@ Files must be whitelisted by registering them with `mysql.RegisterLocalFile(file To use a `io.Reader` a handler function must be registered with `mysql.RegisterReaderHandler(name, handler)` which returns a `io.Reader` or `io.ReadCloser`. The Reader is available with the filepath `Reader::` then. Choose different names for different handlers and `DeregisterReaderHandler` when you don't need it anymore. -See the [godoc of Go-MySQL-Driver](http://godoc.org/github.com/go-sql-driver/mysql "golang mysql driver documentation") for details. +See the [godoc of Go-MySQL-Driver](https://godoc.org/github.com/go-sql-driver/mysql "golang mysql driver documentation") for details. ### `time.Time` support The default internal output type of MySQL `DATE` and `DATETIME` values is `[]byte` which allows you to scan the value into a `[]byte`, `string` or `sql.RawBytes` variable in your programm. -However, many want to scan MySQL `DATE` and `DATETIME` values into `time.Time` variables, which is the logical opposite in Go to `DATE` and `DATETIME` in MySQL. You can do that by changing the internal output type from `[]byte` to `time.Time` with the DSN parameter `parseTime=true`. You can set the default [`time.Time` location](http://golang.org/pkg/time/#Location) with the `loc` DSN parameter. +However, many want to scan MySQL `DATE` and `DATETIME` values into `time.Time` variables, which is the logical opposite in Go to `DATE` and `DATETIME` in MySQL. You can do that by changing the internal output type from `[]byte` to `time.Time` with the DSN parameter `parseTime=true`. You can set the default [`time.Time` location](https://golang.org/pkg/time/#Location) with the `loc` DSN parameter. **Caution:** As of Go 1.1, this makes `time.Time` the only variable type you can scan `DATE` and `DATETIME` values into. This breaks for example [`sql.RawBytes` support](https://github.com/go-sql-driver/mysql/wiki/Examples#rawbytes). -Alternatively you can use the [`NullTime`](http://godoc.org/github.com/go-sql-driver/mysql#NullTime) type as the scan destination, which works with both `time.Time` and `string` / `[]byte`. +Alternatively you can use the [`NullTime`](https://godoc.org/github.com/go-sql-driver/mysql#NullTime) type as the scan destination, which works with both `time.Time` and `string` / `[]byte`. ### Unicode support @@ -410,7 +441,7 @@ That means: * When distributing, you **must publish** the source code of any **changed files** licensed under the MPL 2.0 under a) the MPL 2.0 itself or b) a compatible license (e.g. GPL 3.0 or Apache License 2.0) * You **needn't publish** the source code of your library as long as the files licensed under the MPL 2.0 are **unchanged** -Please read the [MPL 2.0 FAQ](http://www.mozilla.org/MPL/2.0/FAQ.html) if you have further questions regarding the license. +Please read the [MPL 2.0 FAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) if you have further questions regarding the license. You can read the full terms here: [LICENSE](https://raw.github.com/go-sql-driver/mysql/master/LICENSE) diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/connection.go b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/connection.go index c3899de0eb1..08e5fadeb25 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/connection.go +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/connection.go @@ -10,6 +10,7 @@ package mysql import ( "database/sql/driver" + "io" "net" "strconv" "strings" @@ -22,7 +23,7 @@ type mysqlConn struct { affectedRows uint64 insertId uint64 cfg *Config - maxPacketAllowed int + maxAllowedPacket int maxWriteSize int writeTimeout time.Duration flags clientFlag @@ -135,6 +136,11 @@ func (mc *mysqlConn) Prepare(query string) (driver.Stmt, error) { } func (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (string, error) { + // Number of ? should be same to len(args) + if strings.Count(query, "?") != len(args) { + return "", driver.ErrSkip + } + buf := mc.buf.takeCompleteBuffer() if buf == nil { // can not take the buffer. Something must be wrong with the connection @@ -241,7 +247,7 @@ func (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (strin return "", driver.ErrSkip } - if len(buf)+4 > mc.maxPacketAllowed { + if len(buf)+4 > mc.maxAllowedPacket { return "", driver.ErrSkip } } @@ -284,22 +290,29 @@ func (mc *mysqlConn) Exec(query string, args []driver.Value) (driver.Result, err // Internal function to execute commands func (mc *mysqlConn) exec(query string) error { // Send command - err := mc.writeCommandPacketStr(comQuery, query) - if err != nil { + if err := mc.writeCommandPacketStr(comQuery, query); err != nil { return err } // Read Result resLen, err := mc.readResultSetHeaderPacket() - if err == nil && resLen > 0 { - if err = mc.readUntilEOF(); err != nil { + if err != nil { + return err + } + + if resLen > 0 { + // columns + if err := mc.readUntilEOF(); err != nil { return err } - err = mc.readUntilEOF() + // rows + if err := mc.readUntilEOF(); err != nil { + return err + } } - return err + return mc.discardResults() } func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, error) { @@ -330,11 +343,17 @@ func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, erro rows.mc = mc if resLen == 0 { - // no columns, no more data - return emptyRows{}, nil + rows.rs.done = true + + switch err := rows.NextResultSet(); err { + case nil, io.EOF: + return rows, nil + default: + return nil, err + } } // Columns - rows.columns, err = mc.readColumns(resLen) + rows.rs.columns, err = mc.readColumns(resLen) return rows, err } } @@ -354,7 +373,7 @@ func (mc *mysqlConn) getSystemVar(name string) ([]byte, error) { if err == nil { rows := new(textRows) rows.mc = mc - rows.columns = []mysqlField{{fieldType: fieldTypeVarChar}} + rows.rs.columns = []mysqlField{{fieldType: fieldTypeVarChar}} if resLen > 0 { // Columns diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/driver.go b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/driver.go index 899f955fbb3..0022d1f1e50 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/driver.go +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/driver.go @@ -50,7 +50,7 @@ func (d MySQLDriver) Open(dsn string) (driver.Conn, error) { // New mysqlConn mc := &mysqlConn{ - maxPacketAllowed: maxPacketSize, + maxAllowedPacket: maxPacketSize, maxWriteSize: maxPacketSize - 1, } mc.cfg, err = ParseDSN(dsn) @@ -109,15 +109,19 @@ func (d MySQLDriver) Open(dsn string) (driver.Conn, error) { return nil, err } - // Get max allowed packet size - maxap, err := mc.getSystemVar("max_allowed_packet") - if err != nil { - mc.Close() - return nil, err + if mc.cfg.MaxAllowedPacket > 0 { + mc.maxAllowedPacket = mc.cfg.MaxAllowedPacket + } else { + // Get max allowed packet size + maxap, err := mc.getSystemVar("max_allowed_packet") + if err != nil { + mc.Close() + return nil, err + } + mc.maxAllowedPacket = stringToInt(maxap) - 1 } - mc.maxPacketAllowed = stringToInt(maxap) - 1 - if mc.maxPacketAllowed < maxPacketSize { - mc.maxWriteSize = mc.maxPacketAllowed + if mc.maxAllowedPacket < maxPacketSize { + mc.maxWriteSize = mc.maxAllowedPacket } // Handle DSN Params @@ -130,9 +134,9 @@ func (d MySQLDriver) Open(dsn string) (driver.Conn, error) { return mc, nil } -func handleAuthResult(mc *mysqlConn, cipher []byte) error { +func handleAuthResult(mc *mysqlConn, oldCipher []byte) error { // Read Result Packet - err := mc.readResultOK() + cipher, err := mc.readResultOK() if err == nil { return nil // auth successful } @@ -146,10 +150,17 @@ func handleAuthResult(mc *mysqlConn, cipher []byte) error { // Retry with old authentication method. Note: there are edge cases // where this should work but doesn't; this is currently "wontfix": // https://github.com/go-sql-driver/mysql/issues/184 + + // If CLIENT_PLUGIN_AUTH capability is not supported, no new cipher is + // sent and we have to keep using the cipher sent in the init packet. + if cipher == nil { + cipher = oldCipher + } + if err = mc.writeOldAuthPacket(cipher); err != nil { return err } - err = mc.readResultOK() + _, err = mc.readResultOK() } else if mc.cfg.AllowCleartextPasswords && err == ErrCleartextPassword { // Retry with clear text password for // http://dev.mysql.com/doc/refman/5.7/en/cleartext-authentication-plugin.html @@ -157,7 +168,12 @@ func handleAuthResult(mc *mysqlConn, cipher []byte) error { if err = mc.writeClearAuthPacket(); err != nil { return err } - err = mc.readResultOK() + _, err = mc.readResultOK() + } else if mc.cfg.AllowNativePasswords && err == ErrNativePassword { + if err = mc.writeNativeAuthPacket(cipher); err != nil { + return err + } + _, err = mc.readResultOK() } return err } diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/dsn.go b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/dsn.go index 29cce2d860a..ac00dcedd51 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/dsn.go +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/dsn.go @@ -15,6 +15,7 @@ import ( "fmt" "net" "net/url" + "strconv" "strings" "time" ) @@ -28,22 +29,24 @@ var ( // Config is a configuration parsed from a DSN string type Config struct { - User string // Username - Passwd string // Password - Net string // Network type - Addr string // Network address - DBName string // Database name - Params map[string]string // Connection parameters - Collation string // Connection collation - Loc *time.Location // Location for time.Time values - TLSConfig string // TLS configuration name - tls *tls.Config // TLS configuration - Timeout time.Duration // Dial timeout - ReadTimeout time.Duration // I/O read timeout - WriteTimeout time.Duration // I/O write timeout + User string // Username + Passwd string // Password (requires User) + Net string // Network type + Addr string // Network address (requires Net) + DBName string // Database name + Params map[string]string // Connection parameters + Collation string // Connection collation + Loc *time.Location // Location for time.Time values + MaxAllowedPacket int // Max packet size allowed + TLSConfig string // TLS configuration name + tls *tls.Config // TLS configuration + Timeout time.Duration // Dial timeout + ReadTimeout time.Duration // I/O read timeout + WriteTimeout time.Duration // I/O write timeout AllowAllFiles bool // Allow all files to be used with LOAD DATA LOCAL INFILE AllowCleartextPasswords bool // Allows the cleartext client side plugin + AllowNativePasswords bool // Allows the native password authentication method AllowOldPasswords bool // Allows the old insecure password method ClientFoundRows bool // Return number of matching rows instead of rows changed ColumnsWithAlias bool // Prepend table alias to column names @@ -99,6 +102,15 @@ func (cfg *Config) FormatDSN() string { } } + if cfg.AllowNativePasswords { + if hasParam { + buf.WriteString("&allowNativePasswords=true") + } else { + hasParam = true + buf.WriteString("?allowNativePasswords=true") + } + } + if cfg.AllowOldPasswords { if hasParam { buf.WriteString("&allowOldPasswords=true") @@ -222,6 +234,17 @@ func (cfg *Config) FormatDSN() string { buf.WriteString(cfg.WriteTimeout.String()) } + if cfg.MaxAllowedPacket > 0 { + if hasParam { + buf.WriteString("&maxAllowedPacket=") + } else { + hasParam = true + buf.WriteString("?maxAllowedPacket=") + } + buf.WriteString(strconv.Itoa(cfg.MaxAllowedPacket)) + + } + // other params if cfg.Params != nil { for param, value := range cfg.Params { @@ -368,6 +391,14 @@ func parseDSNParams(cfg *Config, params string) (err error) { return errors.New("invalid bool value: " + value) } + // Use native password authentication + case "allowNativePasswords": + var isBool bool + cfg.AllowNativePasswords, isBool = readBool(value) + if !isBool { + return errors.New("invalid bool value: " + value) + } + // Use old authentication mode (pre MySQL 4.1) case "allowOldPasswords": var isBool bool @@ -496,7 +527,11 @@ func parseDSNParams(cfg *Config, params string) (err error) { if err != nil { return } - + case "maxAllowedPacket": + cfg.MaxAllowedPacket, err = strconv.Atoi(value) + if err != nil { + return + } default: // lazy init if cfg.Params == nil { diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/errors.go b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/errors.go index 1543a80546c..857854e1476 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/errors.go +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/errors.go @@ -22,8 +22,9 @@ var ( ErrInvalidConn = errors.New("invalid connection") ErrMalformPkt = errors.New("malformed packet") ErrNoTLS = errors.New("TLS requested but server does not support TLS") - ErrOldPassword = errors.New("this user requires old password authentication. If you still want to use it, please add 'allowOldPasswords=1' to your DSN. See also https://github.com/go-sql-driver/mysql/wiki/old_passwords") ErrCleartextPassword = errors.New("this user requires clear text authentication. If you still want to use it, please add 'allowCleartextPasswords=1' to your DSN") + ErrNativePassword = errors.New("this user requires mysql native password authentication.") + ErrOldPassword = errors.New("this user requires old password authentication. If you still want to use it, please add 'allowOldPasswords=1' to your DSN. See also https://github.com/go-sql-driver/mysql/wiki/old_passwords") ErrUnknownPlugin = errors.New("this authentication plugin is not supported") ErrOldProtocol = errors.New("MySQL server does not support required protocol 41+") ErrPktSync = errors.New("commands out of sync. You can't run this command now") diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/infile.go b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/infile.go index e3e5e47d9a4..547357cfa76 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/infile.go +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/infile.go @@ -96,6 +96,10 @@ func deferredClose(err *error, closer io.Closer) { func (mc *mysqlConn) handleInFileRequest(name string) (err error) { var rdr io.Reader var data []byte + packetSize := 16 * 1024 // 16KB is small enough for disk readahead and large enough for TCP + if mc.maxWriteSize < packetSize { + packetSize = mc.maxWriteSize + } if idx := strings.Index(name, "Reader::"); idx == 0 || (idx > 0 && name[idx-1] == '/') { // io.Reader // The server might return an an absolute path. See issue #355. @@ -108,8 +112,6 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) { if inMap { rdr = handler() if rdr != nil { - data = make([]byte, 4+mc.maxWriteSize) - if cl, ok := rdr.(io.Closer); ok { defer deferredClose(&err, cl) } @@ -134,12 +136,8 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) { // get file size if fi, err = file.Stat(); err == nil { rdr = file - if fileSize := int(fi.Size()); fileSize <= mc.maxWriteSize { - data = make([]byte, 4+fileSize) - } else if fileSize <= mc.maxPacketAllowed { - data = make([]byte, 4+mc.maxWriteSize) - } else { - err = fmt.Errorf("local file '%s' too large: size: %d, max: %d", name, fileSize, mc.maxPacketAllowed) + if fileSize := int(fi.Size()); fileSize < packetSize { + packetSize = fileSize } } } @@ -150,6 +148,7 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) { // send content packets if err == nil { + data := make([]byte, 4+packetSize) var n int for err == nil { n, err = rdr.Read(data[4:]) @@ -174,7 +173,8 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) { // read OK packet if err == nil { - return mc.readResultOK() + _, err = mc.readResultOK() + return err } mc.readPacket() diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/packets.go b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/packets.go index d5ea888fd4f..41b4d3d5509 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/packets.go +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/packets.go @@ -25,9 +25,9 @@ import ( // Read packet to buffer 'data' func (mc *mysqlConn) readPacket() ([]byte, error) { - var payload []byte + var prevData []byte for { - // Read packet header + // read packet header data, err := mc.buf.readNext(4) if err != nil { errLog.Print(err) @@ -35,16 +35,10 @@ func (mc *mysqlConn) readPacket() ([]byte, error) { return nil, driver.ErrBadConn } - // Packet Length [24 bit] + // packet length [24 bit] pktLen := int(uint32(data[0]) | uint32(data[1])<<8 | uint32(data[2])<<16) - if pktLen < 1 { - errLog.Print(ErrMalformPkt) - mc.Close() - return nil, driver.ErrBadConn - } - - // Check Packet Sync [8 bit] + // check packet sync [8 bit] if data[3] != mc.sequence { if data[3] > mc.sequence { return nil, ErrPktSyncMul @@ -53,7 +47,20 @@ func (mc *mysqlConn) readPacket() ([]byte, error) { } mc.sequence++ - // Read packet body [pktLen bytes] + // packets with length 0 terminate a previous packet which is a + // multiple of (2^24)−1 bytes long + if pktLen == 0 { + // there was no previous packet + if prevData == nil { + errLog.Print(ErrMalformPkt) + mc.Close() + return nil, driver.ErrBadConn + } + + return prevData, nil + } + + // read packet body [pktLen bytes] data, err = mc.buf.readNext(pktLen) if err != nil { errLog.Print(err) @@ -61,18 +68,17 @@ func (mc *mysqlConn) readPacket() ([]byte, error) { return nil, driver.ErrBadConn } - isLastPacket := (pktLen < maxPacketSize) + // return data if this was the last packet + if pktLen < maxPacketSize { + // zero allocations for non-split packets + if prevData == nil { + return data, nil + } - // Zero allocations for non-splitting packets - if isLastPacket && payload == nil { - return data, nil + return append(prevData, data...), nil } - payload = append(payload, data...) - - if isLastPacket { - return payload, nil - } + prevData = append(prevData, data...) } } @@ -80,7 +86,7 @@ func (mc *mysqlConn) readPacket() ([]byte, error) { func (mc *mysqlConn) writePacket(data []byte) error { pktLen := len(data) - 4 - if pktLen > mc.maxPacketAllowed { + if pktLen > mc.maxAllowedPacket { return ErrPktTooLarge } @@ -372,6 +378,26 @@ func (mc *mysqlConn) writeClearAuthPacket() error { return mc.writePacket(data) } +// Native password authentication method +// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse +func (mc *mysqlConn) writeNativeAuthPacket(cipher []byte) error { + scrambleBuff := scramblePassword(cipher, []byte(mc.cfg.Passwd)) + + // Calculate the packet length and add a tailing 0 + pktLen := len(scrambleBuff) + data := mc.buf.takeSmallBuffer(4 + pktLen) + if data == nil { + // can not take the buffer. Something must be wrong with the connection + errLog.Print(ErrBusyBuffer) + return driver.ErrBadConn + } + + // Add the scramble + copy(data[4:], scrambleBuff) + + return mc.writePacket(data) +} + /****************************************************************************** * Command Packets * ******************************************************************************/ @@ -445,36 +471,43 @@ func (mc *mysqlConn) writeCommandPacketUint32(command byte, arg uint32) error { ******************************************************************************/ // Returns error if Packet is not an 'Result OK'-Packet -func (mc *mysqlConn) readResultOK() error { +func (mc *mysqlConn) readResultOK() ([]byte, error) { data, err := mc.readPacket() if err == nil { // packet indicator switch data[0] { case iOK: - return mc.handleOkPacket(data) + return nil, mc.handleOkPacket(data) case iEOF: if len(data) > 1 { - plugin := string(data[1:bytes.IndexByte(data, 0x00)]) + pluginEndIndex := bytes.IndexByte(data, 0x00) + plugin := string(data[1:pluginEndIndex]) + cipher := data[pluginEndIndex+1 : len(data)-1] + if plugin == "mysql_old_password" { // using old_passwords - return ErrOldPassword + return cipher, ErrOldPassword } else if plugin == "mysql_clear_password" { // using clear text password - return ErrCleartextPassword + return cipher, ErrCleartextPassword + } else if plugin == "mysql_native_password" { + // using mysql default authentication method + return cipher, ErrNativePassword } else { - return ErrUnknownPlugin + return cipher, ErrUnknownPlugin } } else { - return ErrOldPassword + // https://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::OldAuthSwitchRequest + return nil, ErrOldPassword } default: // Error otherwise - return mc.handleErrorPacket(data) + return nil, mc.handleErrorPacket(data) } } - return err + return nil, err } // Result Set Header Packet @@ -551,8 +584,8 @@ func (mc *mysqlConn) handleOkPacket(data []byte) error { // server_status [2 bytes] mc.status = readStatus(data[1+n+m : 1+n+m+2]) - if err := mc.discardResults(); err != nil { - return err + if mc.status&statusMoreResultsExists != 0 { + return nil } // warning count [2 bytes] @@ -665,6 +698,10 @@ func (mc *mysqlConn) readColumns(count int) ([]mysqlField, error) { func (rows *textRows) readRow(dest []driver.Value) error { mc := rows.mc + if rows.rs.done { + return io.EOF + } + data, err := mc.readPacket() if err != nil { return err @@ -674,10 +711,10 @@ func (rows *textRows) readRow(dest []driver.Value) error { if data[0] == iEOF && len(data) == 5 { // server_status [2 bytes] rows.mc.status = readStatus(data[3:]) - if err := rows.mc.discardResults(); err != nil { - return err + rows.rs.done = true + if !rows.HasNextResultSet() { + rows.mc = nil } - rows.mc = nil return io.EOF } if data[0] == iERR { @@ -699,7 +736,7 @@ func (rows *textRows) readRow(dest []driver.Value) error { if !mc.parseTime { continue } else { - switch rows.columns[i].fieldType { + switch rows.rs.columns[i].fieldType { case fieldTypeTimestamp, fieldTypeDateTime, fieldTypeDate, fieldTypeNewDate: dest[i], err = parseDateTime( @@ -729,16 +766,19 @@ func (rows *textRows) readRow(dest []driver.Value) error { func (mc *mysqlConn) readUntilEOF() error { for { data, err := mc.readPacket() - - // No Err and no EOF Packet - if err == nil && data[0] != iEOF { - continue - } - if err == nil && data[0] == iEOF && len(data) == 5 { - mc.status = readStatus(data[3:]) + if err != nil { + return err } - return err // Err or EOF + switch data[0] { + case iERR: + return mc.handleErrorPacket(data) + case iEOF: + if len(data) == 5 { + mc.status = readStatus(data[3:]) + } + return nil + } } } @@ -783,7 +823,7 @@ func (stmt *mysqlStmt) readPrepareResultPacket() (uint16, error) { // http://dev.mysql.com/doc/internals/en/com-stmt-send-long-data.html func (stmt *mysqlStmt) writeCommandLongData(paramID int, arg []byte) error { - maxLen := stmt.mc.maxPacketAllowed - 1 + maxLen := stmt.mc.maxAllowedPacket - 1 pktLen := maxLen // After the header (bytes 0-3) follows before the data: @@ -974,7 +1014,7 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error { paramTypes[i+i] = fieldTypeString paramTypes[i+i+1] = 0x00 - if len(v) < mc.maxPacketAllowed-pos-len(paramValues)-(len(args)-(i+1))*64 { + if len(v) < mc.maxAllowedPacket-pos-len(paramValues)-(len(args)-(i+1))*64 { paramValues = appendLengthEncodedInteger(paramValues, uint64(len(v)), ) @@ -996,7 +1036,7 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error { paramTypes[i+i] = fieldTypeString paramTypes[i+i+1] = 0x00 - if len(v) < mc.maxPacketAllowed-pos-len(paramValues)-(len(args)-(i+1))*64 { + if len(v) < mc.maxAllowedPacket-pos-len(paramValues)-(len(args)-(i+1))*64 { paramValues = appendLengthEncodedInteger(paramValues, uint64(len(v)), ) @@ -1057,8 +1097,6 @@ func (mc *mysqlConn) discardResults() error { if err := mc.readUntilEOF(); err != nil { return err } - } else { - mc.status &^= statusMoreResultsExists } } return nil @@ -1076,10 +1114,10 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { // EOF Packet if data[0] == iEOF && len(data) == 5 { rows.mc.status = readStatus(data[3:]) - if err := rows.mc.discardResults(); err != nil { - return err + rows.rs.done = true + if !rows.HasNextResultSet() { + rows.mc = nil } - rows.mc = nil return io.EOF } rows.mc = nil @@ -1101,14 +1139,14 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { } // Convert to byte-coded string - switch rows.columns[i].fieldType { + switch rows.rs.columns[i].fieldType { case fieldTypeNULL: dest[i] = nil continue // Numeric Types case fieldTypeTiny: - if rows.columns[i].flags&flagUnsigned != 0 { + if rows.rs.columns[i].flags&flagUnsigned != 0 { dest[i] = int64(data[pos]) } else { dest[i] = int64(int8(data[pos])) @@ -1117,7 +1155,7 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { continue case fieldTypeShort, fieldTypeYear: - if rows.columns[i].flags&flagUnsigned != 0 { + if rows.rs.columns[i].flags&flagUnsigned != 0 { dest[i] = int64(binary.LittleEndian.Uint16(data[pos : pos+2])) } else { dest[i] = int64(int16(binary.LittleEndian.Uint16(data[pos : pos+2]))) @@ -1126,7 +1164,7 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { continue case fieldTypeInt24, fieldTypeLong: - if rows.columns[i].flags&flagUnsigned != 0 { + if rows.rs.columns[i].flags&flagUnsigned != 0 { dest[i] = int64(binary.LittleEndian.Uint32(data[pos : pos+4])) } else { dest[i] = int64(int32(binary.LittleEndian.Uint32(data[pos : pos+4]))) @@ -1135,7 +1173,7 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { continue case fieldTypeLongLong: - if rows.columns[i].flags&flagUnsigned != 0 { + if rows.rs.columns[i].flags&flagUnsigned != 0 { val := binary.LittleEndian.Uint64(data[pos : pos+8]) if val > math.MaxInt64 { dest[i] = uint64ToString(val) @@ -1149,7 +1187,7 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { continue case fieldTypeFloat: - dest[i] = float64(math.Float32frombits(binary.LittleEndian.Uint32(data[pos : pos+4]))) + dest[i] = float32(math.Float32frombits(binary.LittleEndian.Uint32(data[pos : pos+4]))) pos += 4 continue @@ -1189,10 +1227,10 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { case isNull: dest[i] = nil continue - case rows.columns[i].fieldType == fieldTypeTime: + case rows.rs.columns[i].fieldType == fieldTypeTime: // database/sql does not support an equivalent to TIME, return a string var dstlen uint8 - switch decimals := rows.columns[i].decimals; decimals { + switch decimals := rows.rs.columns[i].decimals; decimals { case 0x00, 0x1f: dstlen = 8 case 1, 2, 3, 4, 5, 6: @@ -1200,7 +1238,7 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { default: return fmt.Errorf( "protocol error, illegal decimals value %d", - rows.columns[i].decimals, + rows.rs.columns[i].decimals, ) } dest[i], err = formatBinaryDateTime(data[pos:pos+int(num)], dstlen, true) @@ -1208,10 +1246,10 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { dest[i], err = parseBinaryDateTime(num, data[pos:], rows.mc.cfg.Loc) default: var dstlen uint8 - if rows.columns[i].fieldType == fieldTypeDate { + if rows.rs.columns[i].fieldType == fieldTypeDate { dstlen = 10 } else { - switch decimals := rows.columns[i].decimals; decimals { + switch decimals := rows.rs.columns[i].decimals; decimals { case 0x00, 0x1f: dstlen = 19 case 1, 2, 3, 4, 5, 6: @@ -1219,7 +1257,7 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { default: return fmt.Errorf( "protocol error, illegal decimals value %d", - rows.columns[i].decimals, + rows.rs.columns[i].decimals, ) } } @@ -1235,7 +1273,7 @@ func (rows *binaryRows) readRow(dest []driver.Value) error { // Please report if this happens! default: - return fmt.Errorf("unknown field type %d", rows.columns[i].fieldType) + return fmt.Errorf("unknown field type %d", rows.rs.columns[i].fieldType) } } diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/rows.go b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/rows.go index c08255eeec8..900f548ae5f 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/rows.go +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/rows.go @@ -21,40 +21,49 @@ type mysqlField struct { decimals byte } -type mysqlRows struct { - mc *mysqlConn +type resultSet struct { columns []mysqlField + done bool +} + +type mysqlRows struct { + mc *mysqlConn + rs resultSet } type binaryRows struct { mysqlRows + // stmtCols is a pointer to the statement's cached columns for different + // result sets. + stmtCols *[][]mysqlField + // i is a number of the current result set. It is used to fetch proper + // columns from stmtCols. + i int } type textRows struct { mysqlRows } -type emptyRows struct{} - func (rows *mysqlRows) Columns() []string { - columns := make([]string, len(rows.columns)) + columns := make([]string, len(rows.rs.columns)) if rows.mc != nil && rows.mc.cfg.ColumnsWithAlias { for i := range columns { - if tableName := rows.columns[i].tableName; len(tableName) > 0 { - columns[i] = tableName + "." + rows.columns[i].name + if tableName := rows.rs.columns[i].tableName; len(tableName) > 0 { + columns[i] = tableName + "." + rows.rs.columns[i].name } else { - columns[i] = rows.columns[i].name + columns[i] = rows.rs.columns[i].name } } } else { for i := range columns { - columns[i] = rows.columns[i].name + columns[i] = rows.rs.columns[i].name } } return columns } -func (rows *mysqlRows) Close() error { +func (rows *mysqlRows) Close() (err error) { mc := rows.mc if mc == nil { return nil @@ -64,7 +73,9 @@ func (rows *mysqlRows) Close() error { } // Remove unread packets from stream - err := mc.readUntilEOF() + if !rows.rs.done { + err = mc.readUntilEOF() + } if err == nil { if err = mc.discardResults(); err != nil { return err @@ -75,6 +86,73 @@ func (rows *mysqlRows) Close() error { return err } +func (rows *mysqlRows) HasNextResultSet() (b bool) { + if rows.mc == nil { + return false + } + return rows.mc.status&statusMoreResultsExists != 0 +} + +func (rows *mysqlRows) nextResultSet() (int, error) { + if rows.mc == nil { + return 0, io.EOF + } + if rows.mc.netConn == nil { + return 0, ErrInvalidConn + } + + // Remove unread packets from stream + if !rows.rs.done { + if err := rows.mc.readUntilEOF(); err != nil { + return 0, err + } + rows.rs.done = true + } + + if !rows.HasNextResultSet() { + rows.mc = nil + return 0, io.EOF + } + rows.rs = resultSet{} + return rows.mc.readResultSetHeaderPacket() +} + +func (rows *mysqlRows) nextNotEmptyResultSet() (int, error) { + for { + resLen, err := rows.nextResultSet() + if err != nil { + return 0, err + } + + if resLen > 0 { + return resLen, nil + } + + rows.rs.done = true + } +} + +func (rows *binaryRows) NextResultSet() (err error) { + resLen, err := rows.nextNotEmptyResultSet() + if err != nil { + return err + } + + // get columns, if not cached, read them and cache them. + if rows.i >= len(*rows.stmtCols) { + rows.rs.columns, err = rows.mc.readColumns(resLen) + *rows.stmtCols = append(*rows.stmtCols, rows.rs.columns) + } else { + rows.rs.columns = (*rows.stmtCols)[rows.i] + if err := rows.mc.readUntilEOF(); err != nil { + return err + } + } + + rows.i++ + return nil +} + func (rows *binaryRows) Next(dest []driver.Value) error { if mc := rows.mc; mc != nil { if mc.netConn == nil { @@ -87,6 +165,16 @@ func (rows *binaryRows) Next(dest []driver.Value) error { return io.EOF } +func (rows *textRows) NextResultSet() (err error) { + resLen, err := rows.nextNotEmptyResultSet() + if err != nil { + return err + } + + rows.rs.columns, err = rows.mc.readColumns(resLen) + return err +} + func (rows *textRows) Next(dest []driver.Value) error { if mc := rows.mc; mc != nil { if mc.netConn == nil { @@ -98,15 +186,3 @@ func (rows *textRows) Next(dest []driver.Value) error { } return io.EOF } - -func (rows emptyRows) Columns() []string { - return nil -} - -func (rows emptyRows) Close() error { - return nil -} - -func (rows emptyRows) Next(dest []driver.Value) error { - return io.EOF -} diff --git a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/statement.go b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/statement.go index ead9a6bf471..b8877167476 100644 --- a/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/statement.go +++ b/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/statement.go @@ -11,6 +11,7 @@ package mysql import ( "database/sql/driver" "fmt" + "io" "reflect" "strconv" ) @@ -19,12 +20,15 @@ type mysqlStmt struct { mc *mysqlConn id uint32 paramCount int - columns []mysqlField // cached from the first query + columns [][]mysqlField // cached from the first query } func (stmt *mysqlStmt) Close() error { if stmt.mc == nil || stmt.mc.netConn == nil { - errLog.Print(ErrInvalidConn) + // driver.Stmt.Close can be called more than once, thus this function + // has to be idempotent. + // See also Issue #450 and golang/go#16019. + //errLog.Print(ErrInvalidConn) return driver.ErrBadConn } @@ -59,26 +63,30 @@ func (stmt *mysqlStmt) Exec(args []driver.Value) (driver.Result, error) { // Read Result resLen, err := mc.readResultSetHeaderPacket() - if err == nil { - if resLen > 0 { - // Columns - err = mc.readUntilEOF() - if err != nil { - return nil, err - } + if err != nil { + return nil, err + } - // Rows - err = mc.readUntilEOF() + if resLen > 0 { + // Columns + if err = mc.readUntilEOF(); err != nil { + return nil, err } - if err == nil { - return &mysqlResult{ - affectedRows: int64(mc.affectedRows), - insertId: int64(mc.insertId), - }, nil + + // Rows + if err := mc.readUntilEOF(); err != nil { + return nil, err } } - return nil, err + if err := mc.discardResults(); err != nil { + return nil, err + } + + return &mysqlResult{ + affectedRows: int64(mc.affectedRows), + insertId: int64(mc.insertId), + }, nil } func (stmt *mysqlStmt) Query(args []driver.Value) (driver.Rows, error) { @@ -101,18 +109,29 @@ func (stmt *mysqlStmt) Query(args []driver.Value) (driver.Rows, error) { } rows := new(binaryRows) + rows.stmtCols = &stmt.columns if resLen > 0 { rows.mc = mc + rows.i++ // Columns // If not cached, read them and cache them - if stmt.columns == nil { - rows.columns, err = mc.readColumns(resLen) - stmt.columns = rows.columns + if len(stmt.columns) == 0 { + rows.rs.columns, err = mc.readColumns(resLen) + stmt.columns = append(stmt.columns, rows.rs.columns) } else { - rows.columns = stmt.columns + rows.rs.columns = stmt.columns[0] err = mc.readUntilEOF() } + } else { + rows.rs.done = true + + switch err := rows.NextResultSet(); err { + case nil, io.EOF: + return rows, nil + default: + return nil, err + } } return rows, err diff --git a/metricbeat/module/mysql/vendor/vendor.json b/metricbeat/module/mysql/vendor/vendor.json new file mode 100644 index 00000000000..a9041f95c1e --- /dev/null +++ b/metricbeat/module/mysql/vendor/vendor.json @@ -0,0 +1,13 @@ +{ + "comment": "", + "ignore": "test github.com/elastic/beats", + "package": [ + { + "checksumSHA1": "42vkdsxNaLyPu+FktCzZ/8zsNSE=", + "path": "github.com/go-sql-driver/mysql", + "revision": "9dee4ca50b83acdf57a35fb9e6fb4be640afa2f3", + "revisionTime": "2017-03-27T11:30:21Z" + } + ], + "rootPath": "github.com/elastic/beats/metricbeat/module/mysql" +} diff --git a/metricbeat/module/postgresql/glide.yaml b/metricbeat/module/postgresql/glide.yaml deleted file mode 100644 index 511e9b5c781..00000000000 --- a/metricbeat/module/postgresql/glide.yaml +++ /dev/null @@ -1,3 +0,0 @@ -package: github.com/elastic/beats/metricbeat/module/postgresql -import: -- package: github.com/lib/pq diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/README.md b/metricbeat/module/postgresql/vendor/github.com/lib/pq/README.md index 5eb9e144504..7670fc87a51 100644 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/README.md +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/README.md @@ -1,6 +1,6 @@ # pq - A pure Go postgres driver for Go's database/sql package -[![Build Status](https://travis-ci.org/lib/pq.png?branch=master)](https://travis-ci.org/lib/pq) +[![Build Status](https://travis-ci.org/lib/pq.svg?branch=master)](https://travis-ci.org/lib/pq) ## Install diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/array.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/array.go index 27eb07a9e17..e7b2145d67b 100644 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/array.go +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/array.go @@ -70,6 +70,9 @@ func (a *BoolArray) Scan(src interface{}) error { return a.scanBytes(src) case string: return a.scanBytes([]byte(src)) + case nil: + *a = nil + return nil } return fmt.Errorf("pq: cannot convert %T to BoolArray", src) @@ -80,7 +83,7 @@ func (a *BoolArray) scanBytes(src []byte) error { if err != nil { return err } - if len(elems) == 0 { + if *a != nil && len(elems) == 0 { *a = (*a)[:0] } else { b := make(BoolArray, len(elems)) @@ -141,6 +144,9 @@ func (a *ByteaArray) Scan(src interface{}) error { return a.scanBytes(src) case string: return a.scanBytes([]byte(src)) + case nil: + *a = nil + return nil } return fmt.Errorf("pq: cannot convert %T to ByteaArray", src) @@ -151,7 +157,7 @@ func (a *ByteaArray) scanBytes(src []byte) error { if err != nil { return err } - if len(elems) == 0 { + if *a != nil && len(elems) == 0 { *a = (*a)[:0] } else { b := make(ByteaArray, len(elems)) @@ -210,6 +216,9 @@ func (a *Float64Array) Scan(src interface{}) error { return a.scanBytes(src) case string: return a.scanBytes([]byte(src)) + case nil: + *a = nil + return nil } return fmt.Errorf("pq: cannot convert %T to Float64Array", src) @@ -220,7 +229,7 @@ func (a *Float64Array) scanBytes(src []byte) error { if err != nil { return err } - if len(elems) == 0 { + if *a != nil && len(elems) == 0 { *a = (*a)[:0] } else { b := make(Float64Array, len(elems)) @@ -320,6 +329,11 @@ func (a GenericArray) Scan(src interface{}) error { return a.scanBytes(src, dv) case string: return a.scanBytes([]byte(src), dv) + case nil: + if dv.Kind() == reflect.Slice { + dv.Set(reflect.Zero(dv.Type())) + return nil + } } return fmt.Errorf("pq: cannot convert %T to %s", src, dv.Type()) @@ -386,7 +400,13 @@ func (a GenericArray) Value() (driver.Value, error) { rv := reflect.ValueOf(a.A) - if k := rv.Kind(); k != reflect.Array && k != reflect.Slice { + switch rv.Kind() { + case reflect.Slice: + if rv.IsNil() { + return nil, nil + } + case reflect.Array: + default: return nil, fmt.Errorf("pq: Unable to convert %T to array", a.A) } @@ -412,6 +432,9 @@ func (a *Int64Array) Scan(src interface{}) error { return a.scanBytes(src) case string: return a.scanBytes([]byte(src)) + case nil: + *a = nil + return nil } return fmt.Errorf("pq: cannot convert %T to Int64Array", src) @@ -422,7 +445,7 @@ func (a *Int64Array) scanBytes(src []byte) error { if err != nil { return err } - if len(elems) == 0 { + if *a != nil && len(elems) == 0 { *a = (*a)[:0] } else { b := make(Int64Array, len(elems)) @@ -470,6 +493,9 @@ func (a *StringArray) Scan(src interface{}) error { return a.scanBytes(src) case string: return a.scanBytes([]byte(src)) + case nil: + *a = nil + return nil } return fmt.Errorf("pq: cannot convert %T to StringArray", src) @@ -480,7 +506,7 @@ func (a *StringArray) scanBytes(src []byte) error { if err != nil { return err } - if len(elems) == 0 { + if *a != nil && len(elems) == 0 { *a = (*a)[:0] } else { b := make(StringArray, len(elems)) @@ -639,6 +665,9 @@ Element: for i < len(src) { switch src[i] { case '{': + if depth == len(dims) { + break Element + } depth++ dims[depth-1] = 0 i++ @@ -680,11 +709,11 @@ Element: } for i < len(src) { - if bytes.HasPrefix(src[i:], del) { + if bytes.HasPrefix(src[i:], del) && depth > 0 { dims[depth-1]++ i += len(del) goto Element - } else if src[i] == '}' { + } else if src[i] == '}' && depth > 0 { dims[depth-1]++ depth-- i++ diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/README b/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/README deleted file mode 100644 index 24ab7b25698..00000000000 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/README +++ /dev/null @@ -1,3 +0,0 @@ -This directory contains certificates and private keys for testing some -SSL-related functionality in Travis. Do NOT use these certificates for -anything other than testing. diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/bogus_root.crt b/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/bogus_root.crt deleted file mode 100644 index 1239db3a482..00000000000 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/bogus_root.crt +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDBjCCAe6gAwIBAgIQSnDYp/Naet9HOZljF5PuwDANBgkqhkiG9w0BAQsFADAr -MRIwEAYDVQQKEwlDb2Nrcm9hY2gxFTATBgNVBAMTDENvY2tyb2FjaCBDQTAeFw0x -NjAyMDcxNjQ0MzdaFw0xNzAyMDYxNjQ0MzdaMCsxEjAQBgNVBAoTCUNvY2tyb2Fj -aDEVMBMGA1UEAxMMQ29ja3JvYWNoIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAxdln3/UdgP7ayA/G1kT7upjLe4ERwQjYQ25q0e1+vgsB5jhiirxJ -e0+WkhhYu/mwoSAXzvlsbZ2PWFyfdanZeD/Lh6SvIeWXVVaPcWVWL1TEcoN2jr5+ -E85MMHmbbmaT2he8s6br2tM/UZxyTQ2XRprIzApbDssyw1c0Yufcpu3C6267FLEl -IfcWrzDhnluFhthhtGXv3ToD8IuMScMC5qlKBXtKmD1B5x14ngO/ecNJ+OlEi0HU -mavK4KWgI2rDXRZ2EnCpyTZdkc3kkRnzKcg653oOjMDRZdrhfIrha+Jq38ACsUmZ -Su7Sp5jkIHOCO8Zg+l6GKVSq37dKMapD8wIDAQABoyYwJDAOBgNVHQ8BAf8EBAMC -AuQwEgYDVR0TAQH/BAgwBgEB/wIBATANBgkqhkiG9w0BAQsFAAOCAQEAwZ2Tu0Yu -rrSVdMdoPEjT1IZd+5OhM/SLzL0ddtvTithRweLHsw2lDQYlXFqr24i3UGZJQ1sp -cqSrNwswgLUQT3vWyTjmM51HEb2vMYWKmjZ+sBQYAUP1CadrN/+OTfNGnlF1+B4w -IXOzh7EvQmJJnNybLe4a/aRvj1NE2n8Z898B76SVU9WbfKKz8VwLzuIPDqkKcZda -lMy5yzthyztV9YjcWs2zVOUGZvGdAhDrvZuUq6mSmxrBEvR2LBOggmVf3tGRT+Ls -lW7c9Lrva5zLHuqmoPP07A+vuI9a0D1X44jwGDuPWJ5RnTOQ63Uez12mKNjqleHw -DnkwNanuO8dhAA== ------END CERTIFICATE----- diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/postgresql.crt b/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/postgresql.crt deleted file mode 100644 index 6e6b4284a1f..00000000000 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/postgresql.crt +++ /dev/null @@ -1,69 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=Nevada, L=Las Vegas, O=github.com/lib/pq, CN=pq CA - Validity - Not Before: Oct 11 15:10:11 2014 GMT - Not After : Oct 8 15:10:11 2024 GMT - Subject: C=US, ST=Nevada, L=Las Vegas, O=github.com/lib/pq, CN=pqgosslcert - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:e3:8c:06:9a:70:54:51:d1:34:34:83:39:cd:a2: - 59:0f:05:ed:8d:d8:0e:34:d0:92:f4:09:4d:ee:8c: - 78:55:49:24:f8:3c:e0:34:58:02:b2:e7:94:58:c1: - e8:e5:bb:d1:af:f6:54:c1:40:b1:90:70:79:0d:35: - 54:9c:8f:16:e9:c2:f0:92:e6:64:49:38:c1:76:f8: - 47:66:c4:5b:4a:b6:a9:43:ce:c8:be:6c:4d:2b:94: - 97:3c:55:bc:d1:d0:6e:b7:53:ae:89:5c:4b:6b:86: - 40:be:c1:ae:1e:64:ce:9c:ae:87:0a:69:e5:c8:21: - 12:be:ae:1d:f6:45:df:16:a7 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - 9B:25:31:63:A2:D8:06:FF:CB:E3:E9:96:FF:0D:BA:DC:12:7D:04:CF - X509v3 Authority Key Identifier: - keyid:52:93:ED:1E:76:0A:9F:65:4F:DE:19:66:C1:D5:22:40:35:CB:A0:72 - - X509v3 Basic Constraints: - CA:FALSE - X509v3 Key Usage: - Digital Signature, Non Repudiation, Key Encipherment - Signature Algorithm: sha256WithRSAEncryption - 3e:f5:f8:0b:4e:11:bd:00:86:1f:ce:dc:97:02:98:91:11:f5: - 65:f6:f2:8a:b2:3e:47:92:05:69:28:c9:e9:b4:f7:cf:93:d1: - 2d:81:5d:00:3c:23:be:da:70:ea:59:e1:2c:d3:25:49:ae:a6: - 95:54:c1:10:df:23:e3:fe:d6:e4:76:c7:6b:73:ad:1b:34:7c: - e2:56:cc:c0:37:ae:c5:7a:11:20:6c:3d:05:0e:99:cd:22:6c: - cf:59:a1:da:28:d4:65:ba:7d:2f:2b:3d:69:6d:a6:c1:ae:57: - bf:56:64:13:79:f8:48:46:65:eb:81:67:28:0b:7b:de:47:10: - b3:80:3c:31:d1:58:94:01:51:4a:c7:c8:1a:01:a8:af:c4:cd: - bb:84:a5:d9:8b:b4:b9:a1:64:3e:95:d9:90:1d:d5:3f:67:cc: - 3b:ba:f5:b4:d1:33:77:ee:c2:d2:3e:7e:c5:66:6e:b7:35:4c: - 60:57:b0:b8:be:36:c8:f3:d3:95:8c:28:4a:c9:f7:27:a4:0d: - e5:96:99:eb:f5:c8:bd:f3:84:6d:ef:02:f9:8a:36:7d:6b:5f: - 36:68:37:41:d9:74:ae:c6:78:2e:44:86:a1:ad:43:ca:fb:b5: - 3e:ba:10:23:09:02:ac:62:d1:d0:83:c8:95:b9:e3:5e:30:ff: - 5b:2b:38:fa ------BEGIN CERTIFICATE----- -MIIDEzCCAfugAwIBAgIBAjANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJVUzEP -MA0GA1UECBMGTmV2YWRhMRIwEAYDVQQHEwlMYXMgVmVnYXMxGjAYBgNVBAoTEWdp -dGh1Yi5jb20vbGliL3BxMQ4wDAYDVQQDEwVwcSBDQTAeFw0xNDEwMTExNTEwMTFa -Fw0yNDEwMDgxNTEwMTFaMGQxCzAJBgNVBAYTAlVTMQ8wDQYDVQQIEwZOZXZhZGEx -EjAQBgNVBAcTCUxhcyBWZWdhczEaMBgGA1UEChMRZ2l0aHViLmNvbS9saWIvcHEx -FDASBgNVBAMTC3BxZ29zc2xjZXJ0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB -gQDjjAaacFRR0TQ0gznNolkPBe2N2A400JL0CU3ujHhVSST4POA0WAKy55RYwejl -u9Gv9lTBQLGQcHkNNVScjxbpwvCS5mRJOMF2+EdmxFtKtqlDzsi+bE0rlJc8VbzR -0G63U66JXEtrhkC+wa4eZM6crocKaeXIIRK+rh32Rd8WpwIDAQABo1owWDAdBgNV -HQ4EFgQUmyUxY6LYBv/L4+mW/w263BJ9BM8wHwYDVR0jBBgwFoAUUpPtHnYKn2VP -3hlmwdUiQDXLoHIwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcNAQEL -BQADggEBAD71+AtOEb0Ahh/O3JcCmJER9WX28oqyPkeSBWkoyem098+T0S2BXQA8 -I77acOpZ4SzTJUmuppVUwRDfI+P+1uR2x2tzrRs0fOJWzMA3rsV6ESBsPQUOmc0i -bM9Zodoo1GW6fS8rPWltpsGuV79WZBN5+EhGZeuBZygLe95HELOAPDHRWJQBUUrH -yBoBqK/EzbuEpdmLtLmhZD6V2ZAd1T9nzDu69bTRM3fuwtI+fsVmbrc1TGBXsLi+ -Nsjz05WMKErJ9yekDeWWmev1yL3zhG3vAvmKNn1rXzZoN0HZdK7GeC5EhqGtQ8r7 -tT66ECMJAqxi0dCDyJW5414w/1srOPo= ------END CERTIFICATE----- diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/postgresql.key b/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/postgresql.key deleted file mode 100644 index eb8b20be96d..00000000000 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/postgresql.key +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICWwIBAAKBgQDjjAaacFRR0TQ0gznNolkPBe2N2A400JL0CU3ujHhVSST4POA0 -WAKy55RYwejlu9Gv9lTBQLGQcHkNNVScjxbpwvCS5mRJOMF2+EdmxFtKtqlDzsi+ -bE0rlJc8VbzR0G63U66JXEtrhkC+wa4eZM6crocKaeXIIRK+rh32Rd8WpwIDAQAB -AoGAM5dM6/kp9P700i8qjOgRPym96Zoh5nGfz/rIE5z/r36NBkdvIg8OVZfR96nH -b0b9TOMR5lsPp0sI9yivTWvX6qyvLJRWy2vvx17hXK9NxXUNTAm0PYZUTvCtcPeX -RnJpzQKNZQPkFzF0uXBc4CtPK2Vz0+FGvAelrhYAxnw1dIkCQQD+9qaW5QhXjsjb -Nl85CmXgxPmGROcgLQCO+omfrjf9UXrituU9Dz6auym5lDGEdMFnkzfr+wpasEy9 -mf5ZZOhDAkEA5HjXfVGaCtpydOt6hDon/uZsyssCK2lQ7NSuE3vP+sUsYMzIpEoy -t3VWXqKbo+g9KNDTP4WEliqp1aiSIylzzQJANPeqzihQnlgEdD4MdD4rwhFJwVIp -Le8Lcais1KaN7StzOwxB/XhgSibd2TbnPpw+3bSg5n5lvUdo+e62/31OHwJAU1jS -I+F09KikQIr28u3UUWT2IzTT4cpVv1AHAQyV3sG3YsjSGT0IK20eyP9BEBZU2WL0 -7aNjrvR5aHxKc5FXsQJABsFtyGpgI5X4xufkJZVZ+Mklz2n7iXa+XPatMAHFxAtb -EEMt60rngwMjXAzBSC6OYuYogRRAY3UCacNC5VhLYQ== ------END RSA PRIVATE KEY----- diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/root.crt b/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/root.crt deleted file mode 100644 index aecf8f6213b..00000000000 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/root.crt +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIJANmheROCdW1NMA0GCSqGSIb3DQEBBQUAMF4xCzAJBgNV -BAYTAlVTMQ8wDQYDVQQIEwZOZXZhZGExEjAQBgNVBAcTCUxhcyBWZWdhczEaMBgG -A1UEChMRZ2l0aHViLmNvbS9saWIvcHExDjAMBgNVBAMTBXBxIENBMB4XDTE0MTAx -MTE1MDQyOVoXDTI0MTAwODE1MDQyOVowXjELMAkGA1UEBhMCVVMxDzANBgNVBAgT -Bk5ldmFkYTESMBAGA1UEBxMJTGFzIFZlZ2FzMRowGAYDVQQKExFnaXRodWIuY29t -L2xpYi9wcTEOMAwGA1UEAxMFcHEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCV4PxP7ShzWBzUCThcKk3qZtOLtHmszQVtbqhvgTpm1kTRtKBdVMu0 -pLAHQ3JgJCnAYgH0iZxVGoMP16T3irdgsdC48+nNTFM2T0cCdkfDURGIhSFN47cb -Pgy306BcDUD2q7ucW33+dlFSRuGVewocoh4BWM/vMtMvvWzdi4Ag/L/jhb+5wZxZ -sWymsadOVSDePEMKOvlCa3EdVwVFV40TVyDb+iWBUivDAYsS2a3KajuJrO6MbZiE -Sp2RCIkZS2zFmzWxVRi9ZhzIZhh7EVF9JAaNC3T52jhGUdlRq3YpBTMnd89iOh74 -6jWXG7wSuPj3haFzyNhmJ0ZUh+2Ynoh1AgMBAAGjgcMwgcAwHQYDVR0OBBYEFFKT -7R52Cp9lT94ZZsHVIkA1y6ByMIGQBgNVHSMEgYgwgYWAFFKT7R52Cp9lT94ZZsHV -IkA1y6ByoWKkYDBeMQswCQYDVQQGEwJVUzEPMA0GA1UECBMGTmV2YWRhMRIwEAYD -VQQHEwlMYXMgVmVnYXMxGjAYBgNVBAoTEWdpdGh1Yi5jb20vbGliL3BxMQ4wDAYD -VQQDEwVwcSBDQYIJANmheROCdW1NMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF -BQADggEBAAEhCLWkqJNMI8b4gkbmj5fqQ/4+oO83bZ3w2Oqf6eZ8I8BC4f2NOyE6 -tRUlq5+aU7eqC1cOAvGjO+YHN/bF/DFpwLlzvUSXt+JP/pYcUjL7v+pIvwqec9hD -ndvM4iIbkD/H/OYQ3L+N3W+G1x7AcFIX+bGCb3PzYVQAjxreV6//wgKBosMGFbZo -HPxT9RPMun61SViF04H5TNs0derVn1+5eiiYENeAhJzQNyZoOOUuX1X/Inx9bEPh -C5vFBtSMgIytPgieRJVWAiMLYsfpIAStrHztRAbBs2DU01LmMgRvHdxgFEKinC/d -UHZZQDP+6pT+zADrGhQGXe4eThaO6f0= ------END CERTIFICATE----- diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/server.crt b/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/server.crt deleted file mode 100644 index ddc995a6d61..00000000000 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/server.crt +++ /dev/null @@ -1,81 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=US, ST=Nevada, L=Las Vegas, O=github.com/lib/pq, CN=pq CA - Validity - Not Before: Oct 11 15:05:15 2014 GMT - Not After : Oct 8 15:05:15 2024 GMT - Subject: C=US, ST=Nevada, L=Las Vegas, O=github.com/lib/pq, CN=postgres - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (2048 bit) - Modulus (2048 bit): - 00:d7:8a:4c:85:fb:17:a5:3c:8f:e0:72:11:29:ce: - 3f:b0:1f:3f:7d:c6:ee:7f:a7:fc:02:2b:35:47:08: - a6:3d:90:df:5c:56:14:94:00:c7:6d:d1:d2:e2:61: - 95:77:b8:e3:a6:66:31:f9:1f:21:7d:62:e1:27:da: - 94:37:61:4a:ea:63:53:a0:61:b8:9c:bb:a5:e2:e7: - b7:a6:d8:0f:05:04:c7:29:e2:ea:49:2b:7f:de:15: - 00:a6:18:70:50:c7:0c:de:9a:f9:5a:96:b0:e1:94: - 06:c6:6d:4a:21:3b:b4:0f:a5:6d:92:86:34:b2:4e: - d7:0e:a7:19:c0:77:0b:7b:87:c8:92:de:42:ff:86: - d2:b7:9a:a4:d4:15:23:ca:ad:a5:69:21:b8:ce:7e: - 66:cb:85:5d:b9:ed:8b:2d:09:8d:94:e4:04:1e:72: - ec:ef:d0:76:90:15:5a:a4:f7:91:4b:e9:ce:4e:9d: - 5d:9a:70:17:9c:d8:e9:73:83:ea:3d:61:99:a6:cd: - ac:91:40:5a:88:77:e5:4e:2a:8e:3d:13:f3:f9:38: - 6f:81:6b:8a:95:ca:0e:07:ab:6f:da:b4:8c:d9:ff: - aa:78:03:aa:c7:c2:cf:6f:64:92:d3:d8:83:d5:af: - f1:23:18:a7:2e:7b:17:0b:e7:7d:f1:fa:a8:41:a3: - 04:57 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - EE:F0:B3:46:DC:C7:09:EB:0E:B6:2F:E5:FE:62:60:45:44:9F:59:CC - X509v3 Authority Key Identifier: - keyid:52:93:ED:1E:76:0A:9F:65:4F:DE:19:66:C1:D5:22:40:35:CB:A0:72 - - X509v3 Basic Constraints: - CA:FALSE - X509v3 Key Usage: - Digital Signature, Non Repudiation, Key Encipherment - Signature Algorithm: sha256WithRSAEncryption - 7e:5a:6e:be:bf:d2:6c:c1:d6:fa:b6:fb:3f:06:53:36:08:87: - 9d:95:b1:39:af:9e:f6:47:38:17:39:da:25:7c:f2:ad:0c:e3: - ab:74:19:ca:fb:8c:a0:50:c0:1d:19:8a:9c:21:ed:0f:3a:d1: - 96:54:2e:10:09:4f:b8:70:f7:2b:99:43:d2:c6:15:bc:3f:24: - 7d:28:39:32:3f:8d:a4:4f:40:75:7f:3e:0d:1c:d1:69:f2:4e: - 98:83:47:97:d2:25:ac:c9:36:86:2f:04:a6:c4:86:c7:c4:00: - 5f:7f:b9:ad:fc:bf:e9:f5:78:d7:82:1a:51:0d:fc:ab:9e:92: - 1d:5f:0c:18:d1:82:e0:14:c9:ce:91:89:71:ff:49:49:ff:35: - bf:7b:44:78:42:c1:d0:66:65:bb:28:2e:60:ca:9b:20:12:a9: - 90:61:b1:96:ec:15:46:c9:37:f7:07:90:8a:89:45:2a:3f:37: - ec:dc:e3:e5:8f:c3:3a:57:80:a5:54:60:0c:e1:b2:26:99:2b: - 40:7e:36:d1:9a:70:02:ec:63:f4:3b:72:ae:81:fb:30:20:6d: - cb:48:46:c6:b5:8f:39:b1:84:05:25:55:8d:f5:62:f6:1b:46: - 2e:da:a3:4c:26:12:44:d7:56:b6:b8:a9:ca:d3:ab:71:45:7c: - 9f:48:6d:1e ------BEGIN CERTIFICATE----- -MIIDlDCCAnygAwIBAgIBATANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJVUzEP -MA0GA1UECBMGTmV2YWRhMRIwEAYDVQQHEwlMYXMgVmVnYXMxGjAYBgNVBAoTEWdp -dGh1Yi5jb20vbGliL3BxMQ4wDAYDVQQDEwVwcSBDQTAeFw0xNDEwMTExNTA1MTVa -Fw0yNDEwMDgxNTA1MTVaMGExCzAJBgNVBAYTAlVTMQ8wDQYDVQQIEwZOZXZhZGEx -EjAQBgNVBAcTCUxhcyBWZWdhczEaMBgGA1UEChMRZ2l0aHViLmNvbS9saWIvcHEx -ETAPBgNVBAMTCHBvc3RncmVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEA14pMhfsXpTyP4HIRKc4/sB8/fcbuf6f8Ais1RwimPZDfXFYUlADHbdHS4mGV -d7jjpmYx+R8hfWLhJ9qUN2FK6mNToGG4nLul4ue3ptgPBQTHKeLqSSt/3hUAphhw -UMcM3pr5Wpaw4ZQGxm1KITu0D6VtkoY0sk7XDqcZwHcLe4fIkt5C/4bSt5qk1BUj -yq2laSG4zn5my4Vdue2LLQmNlOQEHnLs79B2kBVapPeRS+nOTp1dmnAXnNjpc4Pq -PWGZps2skUBaiHflTiqOPRPz+ThvgWuKlcoOB6tv2rSM2f+qeAOqx8LPb2SS09iD -1a/xIxinLnsXC+d98fqoQaMEVwIDAQABo1owWDAdBgNVHQ4EFgQU7vCzRtzHCesO -ti/l/mJgRUSfWcwwHwYDVR0jBBgwFoAUUpPtHnYKn2VP3hlmwdUiQDXLoHIwCQYD -VR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcNAQELBQADggEBAH5abr6/0mzB -1vq2+z8GUzYIh52VsTmvnvZHOBc52iV88q0M46t0Gcr7jKBQwB0Zipwh7Q860ZZU -LhAJT7hw9yuZQ9LGFbw/JH0oOTI/jaRPQHV/Pg0c0WnyTpiDR5fSJazJNoYvBKbE -hsfEAF9/ua38v+n1eNeCGlEN/Kuekh1fDBjRguAUyc6RiXH/SUn/Nb97RHhCwdBm -ZbsoLmDKmyASqZBhsZbsFUbJN/cHkIqJRSo/N+zc4+WPwzpXgKVUYAzhsiaZK0B+ -NtGacALsY/Q7cq6B+zAgbctIRsa1jzmxhAUlVY31YvYbRi7ao0wmEkTXVra4qcrT -q3FFfJ9IbR4= ------END CERTIFICATE----- diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/server.key b/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/server.key deleted file mode 100644 index bd7b019b655..00000000000 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/certs/server.key +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEogIBAAKCAQEA14pMhfsXpTyP4HIRKc4/sB8/fcbuf6f8Ais1RwimPZDfXFYU -lADHbdHS4mGVd7jjpmYx+R8hfWLhJ9qUN2FK6mNToGG4nLul4ue3ptgPBQTHKeLq -SSt/3hUAphhwUMcM3pr5Wpaw4ZQGxm1KITu0D6VtkoY0sk7XDqcZwHcLe4fIkt5C -/4bSt5qk1BUjyq2laSG4zn5my4Vdue2LLQmNlOQEHnLs79B2kBVapPeRS+nOTp1d -mnAXnNjpc4PqPWGZps2skUBaiHflTiqOPRPz+ThvgWuKlcoOB6tv2rSM2f+qeAOq -x8LPb2SS09iD1a/xIxinLnsXC+d98fqoQaMEVwIDAQABAoIBAF3ZoihUhJ82F4+r -Gz4QyDpv4L1reT2sb1aiabhcU8ZK5nbWJG+tRyjSS/i2dNaEcttpdCj9HR/zhgZM -bm0OuAgG58rVwgS80CZUruq++Qs+YVojq8/gWPTiQD4SNhV2Fmx3HkwLgUk3oxuT -SsvdqzGE3okGVrutCIcgy126eA147VPMoej1Bb3fO6npqK0pFPhZfAc0YoqJuM+k -obRm5pAnGUipyLCFXjA9HYPKwYZw2RtfdA3CiImHeanSdqS+ctrC9y8BV40Th7gZ -haXdKUNdjmIxV695QQ1mkGqpKLZFqhzKioGQ2/Ly2d1iaKN9fZltTusu8unepWJ2 -tlT9qMECgYEA9uHaF1t2CqE+AJvWTihHhPIIuLxoOQXYea1qvxfcH/UMtaLKzCNm -lQ5pqCGsPvp+10f36yttO1ZehIvlVNXuJsjt0zJmPtIolNuJY76yeussfQ9jHheB -5uPEzCFlHzxYbBUyqgWaF6W74okRGzEGJXjYSP0yHPPdU4ep2q3bGiUCgYEA34Af -wBSuQSK7uLxArWHvQhyuvi43ZGXls6oRGl+Ysj54s8BP6XGkq9hEJ6G4yxgyV+BR -DUOs5X8/TLT8POuIMYvKTQthQyCk0eLv2FLdESDuuKx0kBVY3s8lK3/z5HhrdOiN -VMNZU+xDKgKc3hN9ypkk8vcZe6EtH7Y14e0rVcsCgYBTgxi8F/M5K0wG9rAqphNz -VFBA9XKn/2M33cKjO5X5tXIEKzpAjaUQvNxexG04rJGljzG8+mar0M6ONahw5yD1 -O7i/XWgazgpuOEkkVYiYbd8RutfDgR4vFVMn3hAP3eDnRtBplRWH9Ec3HTiNIys6 -F8PKBOQjyRZQQC7jyzW3hQKBgACe5HeuFwXLSOYsb6mLmhR+6+VPT4wR1F95W27N -USk9jyxAnngxfpmTkiziABdgS9N+pfr5cyN4BP77ia/Jn6kzkC5Cl9SN5KdIkA3z -vPVtN/x/ThuQU5zaymmig1ThGLtMYggYOslG4LDfLPxY5YKIhle+Y+259twdr2yf -Mf2dAoGAaGv3tWMgnIdGRk6EQL/yb9PKHo7ShN+tKNlGaK7WwzBdKs+Fe8jkgcr7 -pz4Ne887CmxejdISzOCcdT+Zm9Bx6I/uZwWOtDvWpIgIxVX9a9URj/+D1MxTE/y4 -d6H+c89yDY62I2+drMpdjCd3EtCaTlxpTbRS+s1eAHMH7aEkcCE= ------END RSA PRIVATE KEY----- diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn.go index 8e1aee9f012..3e3a5cabcd7 100644 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn.go +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn.go @@ -3,15 +3,12 @@ package pq import ( "bufio" "crypto/md5" - "crypto/tls" - "crypto/x509" "database/sql" "database/sql/driver" "encoding/binary" "errors" "fmt" "io" - "io/ioutil" "net" "os" "os/user" @@ -32,16 +29,20 @@ var ( ErrSSLNotSupported = errors.New("pq: SSL is not enabled on the server") ErrSSLKeyHasWorldPermissions = errors.New("pq: Private key file has group or world access. Permissions should be u=rw (0600) or less.") ErrCouldNotDetectUsername = errors.New("pq: Could not detect default username. Please provide one explicitly.") + + errUnexpectedReady = errors.New("unexpected ReadyForQuery") + errNoRowsAffected = errors.New("no RowsAffected available after the empty statement") + errNoLastInsertId = errors.New("no LastInsertId available after the empty statement") ) -type drv struct{} +type Driver struct{} -func (d *drv) Open(name string) (driver.Conn, error) { +func (d *Driver) Open(name string) (driver.Conn, error) { return Open(name) } func init() { - sql.Register("postgres", &drv{}) + sql.Register("postgres", &Driver{}) } type parameterStatus struct { @@ -97,6 +98,15 @@ type conn struct { namei int scratch [512]byte txnStatus transactionStatus + txnFinish func() + + // Save connection arguments to use during CancelRequest. + dialer Dialer + opts values + + // Cancellation key data for use with CancelRequest messages. + processID int + secretKey int parameterStatus parameterStatus @@ -115,12 +125,15 @@ type conn struct { // Whether to always send []byte parameters over as binary. Enables single // round-trip mode for non-prepared Query calls. binaryParameters bool + + // If true this connection is in the middle of a COPY + inCopy bool } // Handle driver-side settings in parsed connection string. func (c *conn) handleDriverSettings(o values) (err error) { boolSetting := func(key string, val *bool) error { - if value := o.Get(key); value != "" { + if value, ok := o[key]; ok { if value == "yes" { *val = true } else if value == "no" { @@ -145,8 +158,7 @@ func (c *conn) handleDriverSettings(o values) (err error) { func (c *conn) handlePgpass(o values) { // if a password was supplied, do not process .pgpass - _, ok := o["password"] - if ok { + if _, ok := o["password"]; ok { return } filename := os.Getenv("PGPASSFILE") @@ -174,11 +186,11 @@ func (c *conn) handlePgpass(o values) { } defer file.Close() scanner := bufio.NewScanner(io.Reader(file)) - hostname := o.Get("host") + hostname := o["host"] ntw, _ := network(o) - port := o.Get("port") - db := o.Get("dbname") - username := o.Get("user") + port := o["port"] + db := o["dbname"] + username := o["user"] // From: https://github.com/tg/pgpass/blob/master/reader.go getFields := func(s string) []string { fs := make([]string, 0, 5) @@ -243,13 +255,13 @@ func DialOpen(d Dialer, name string) (_ driver.Conn, err error) { // * Very low precedence defaults applied in every situation // * Environment variables // * Explicitly passed connection information - o.Set("host", "localhost") - o.Set("port", "5432") + o["host"] = "localhost" + o["port"] = "5432" // N.B.: Extra float digits should be set to 3, but that breaks // Postgres 8.4 and older, where the max is 2. - o.Set("extra_float_digits", "2") + o["extra_float_digits"] = "2" for k, v := range parseEnviron(os.Environ()) { - o.Set(k, v) + o[k] = v } if strings.HasPrefix(name, "postgres://") || strings.HasPrefix(name, "postgresql://") { @@ -264,9 +276,9 @@ func DialOpen(d Dialer, name string) (_ driver.Conn, err error) { } // Use the "fallback" application name if necessary - if fallback := o.Get("fallback_application_name"); fallback != "" { - if !o.Isset("application_name") { - o.Set("application_name", fallback) + if fallback, ok := o["fallback_application_name"]; ok { + if _, ok := o["application_name"]; !ok { + o["application_name"] = fallback } } @@ -277,33 +289,36 @@ func DialOpen(d Dialer, name string) (_ driver.Conn, err error) { // parsing its value is not worth it. Instead, we always explicitly send // client_encoding as a separate run-time parameter, which should override // anything set in options. - if enc := o.Get("client_encoding"); enc != "" && !isUTF8(enc) { + if enc, ok := o["client_encoding"]; ok && !isUTF8(enc) { return nil, errors.New("client_encoding must be absent or 'UTF8'") } - o.Set("client_encoding", "UTF8") + o["client_encoding"] = "UTF8" // DateStyle needs a similar treatment. - if datestyle := o.Get("datestyle"); datestyle != "" { + if datestyle, ok := o["datestyle"]; ok { if datestyle != "ISO, MDY" { panic(fmt.Sprintf("setting datestyle must be absent or %v; got %v", "ISO, MDY", datestyle)) } } else { - o.Set("datestyle", "ISO, MDY") + o["datestyle"] = "ISO, MDY" } // If a user is not provided by any other means, the last // resort is to use the current operating system provided user // name. - if o.Get("user") == "" { + if _, ok := o["user"]; !ok { u, err := userCurrent() if err != nil { return nil, err } else { - o.Set("user", u) + o["user"] = u } } - cn := &conn{} + cn := &conn{ + opts: o, + dialer: d, + } err = cn.handleDriverSettings(o) if err != nil { return nil, err @@ -319,7 +334,7 @@ func DialOpen(d Dialer, name string) (_ driver.Conn, err error) { cn.startup(o) // reset the deadline, in case one was set (see dial) - if timeout := o.Get("connect_timeout"); timeout != "" && timeout != "0" { + if timeout, ok := o["connect_timeout"]; ok && timeout != "0" { err = cn.c.SetDeadline(time.Time{}) } return cn, err @@ -333,7 +348,7 @@ func dial(d Dialer, o values) (net.Conn, error) { } // Zero or not specified means wait indefinitely. - if timeout := o.Get("connect_timeout"); timeout != "" && timeout != "0" { + if timeout, ok := o["connect_timeout"]; ok && timeout != "0" { seconds, err := strconv.ParseInt(timeout, 10, 0) if err != nil { return nil, fmt.Errorf("invalid value for parameter connect_timeout: %s", err) @@ -355,31 +370,18 @@ func dial(d Dialer, o values) (net.Conn, error) { } func network(o values) (string, string) { - host := o.Get("host") + host := o["host"] if strings.HasPrefix(host, "/") { - sockPath := path.Join(host, ".s.PGSQL."+o.Get("port")) + sockPath := path.Join(host, ".s.PGSQL."+o["port"]) return "unix", sockPath } - return "tcp", net.JoinHostPort(host, o.Get("port")) + return "tcp", net.JoinHostPort(host, o["port"]) } type values map[string]string -func (vs values) Set(k, v string) { - vs[k] = v -} - -func (vs values) Get(k string) (v string) { - return vs[k] -} - -func (vs values) Isset(k string) bool { - _, ok := vs[k] - return ok -} - // scanner implements a tokenizer for libpq-style option strings. type scanner struct { s []rune @@ -450,7 +452,7 @@ func parseOpts(name string, o values) error { // Skip any whitespace after the = if r, ok = s.SkipSpaces(); !ok { // If we reach the end here, the last value is just an empty string as per libpq. - o.Set(string(keyRunes), "") + o[string(keyRunes)] = "" break } @@ -485,7 +487,7 @@ func parseOpts(name string, o values) error { } } - o.Set(string(keyRunes), string(valRunes)) + o[string(keyRunes)] = string(valRunes) } return nil @@ -525,7 +527,14 @@ func (cn *conn) Begin() (_ driver.Tx, err error) { return cn, nil } +func (cn *conn) closeTxn() { + if finish := cn.txnFinish; finish != nil { + finish() + } +} + func (cn *conn) Commit() (err error) { + defer cn.closeTxn() if cn.bad { return driver.ErrBadConn } @@ -561,6 +570,7 @@ func (cn *conn) Commit() (err error) { } func (cn *conn) Rollback() (err error) { + defer cn.closeTxn() if cn.bad { return driver.ErrBadConn } @@ -598,11 +608,16 @@ func (cn *conn) simpleExec(q string) (res driver.Result, commandTag string, err res, commandTag = cn.parseComplete(r.string()) case 'Z': cn.processReadyForQuery(r) + if res == nil && err == nil { + err = errUnexpectedReady + } // done return case 'E': err = parseError(r) - case 'T', 'D', 'I': + case 'I': + res = emptyRows + case 'T', 'D': // ignore any results default: cn.bad = true @@ -635,6 +650,12 @@ func (cn *conn) simpleQuery(q string) (res *rows, err error) { cn: cn, } } + // Set the result and tag to the last command complete if there wasn't a + // query already run. Although queries usually return from here and cede + // control to Next, a query with zero results does not. + if t == 'C' && res.colNames == nil { + res.result, res.tag = cn.parseComplete(r.string()) + } res.done = true case 'Z': cn.processReadyForQuery(r) @@ -666,6 +687,20 @@ func (cn *conn) simpleQuery(q string) (res *rows, err error) { } } +type noRows struct{} + +var emptyRows noRows + +var _ driver.Result = noRows{} + +func (noRows) LastInsertId() (int64, error) { + return 0, errNoLastInsertId +} + +func (noRows) RowsAffected() (int64, error) { + return 0, errNoRowsAffected +} + // Decides which column formats to use for a prepared statement. The input is // an array of type oids, one element per result column. func decideColumnFormats(colTyps []oid.Oid, forceText bool) (colFmts []format, colFmtData []byte) { @@ -692,6 +727,8 @@ func decideColumnFormats(colTyps []oid.Oid, forceText bool) (colFmts []format, c case oid.T_int4: fallthrough case oid.T_int2: + fallthrough + case oid.T_uuid: colFmts[i] = formatBinary allText = false @@ -743,32 +780,45 @@ func (cn *conn) Prepare(q string) (_ driver.Stmt, err error) { defer cn.errRecover(&err) if len(q) >= 4 && strings.EqualFold(q[:4], "COPY") { - return cn.prepareCopyIn(q) + s, err := cn.prepareCopyIn(q) + if err == nil { + cn.inCopy = true + } + return s, err } return cn.prepareTo(q, cn.gname()), nil } func (cn *conn) Close() (err error) { - if cn.bad { - return driver.ErrBadConn - } + // Skip cn.bad return here because we always want to close a connection. defer cn.errRecover(&err) + // Ensure that cn.c.Close is always run. Since error handling is done with + // panics and cn.errRecover, the Close must be in a defer. + defer func() { + cerr := cn.c.Close() + if err == nil { + err = cerr + } + }() + // Don't go through send(); ListenerConn relies on us not scribbling on the // scratch buffer of this connection. - err = cn.sendSimpleMessage('X') - if err != nil { - return err - } - - return cn.c.Close() + return cn.sendSimpleMessage('X') } // Implement the "Queryer" interface -func (cn *conn) Query(query string, args []driver.Value) (_ driver.Rows, err error) { +func (cn *conn) Query(query string, args []driver.Value) (driver.Rows, error) { + return cn.query(query, args) +} + +func (cn *conn) query(query string, args []driver.Value) (_ *rows, err error) { if cn.bad { return nil, driver.ErrBadConn } + if cn.inCopy { + return nil, errCopyInProgress + } defer cn.errRecover(&err) // Check to see if we can use the "simpleQuery" interface, which is @@ -842,16 +892,9 @@ func (cn *conn) send(m *writeBuf) { } } -func (cn *conn) sendStartupPacket(m *writeBuf) { - // sanity check - if m.buf[0] != 0 { - panic("oops") - } - +func (cn *conn) sendStartupPacket(m *writeBuf) error { _, err := cn.c.Write((m.wrap())[1:]) - if err != nil { - panic(err) - } + return err } // Send a message of type typ to the server on the other end of cn. The @@ -965,45 +1008,17 @@ func (cn *conn) recv1() (t byte, r *readBuf) { } func (cn *conn) ssl(o values) { - verifyCaOnly := false - tlsConf := tls.Config{} - switch mode := o.Get("sslmode"); mode { - // "require" is the default. - case "", "require": - // We must skip TLS's own verification since it requires full - // verification since Go 1.3. - tlsConf.InsecureSkipVerify = true - - // From http://www.postgresql.org/docs/current/static/libpq-ssl.html: - // Note: For backwards compatibility with earlier versions of PostgreSQL, if a - // root CA file exists, the behavior of sslmode=require will be the same as - // that of verify-ca, meaning the server certificate is validated against the - // CA. Relying on this behavior is discouraged, and applications that need - // certificate validation should always use verify-ca or verify-full. - if _, err := os.Stat(o.Get("sslrootcert")); err == nil { - verifyCaOnly = true - } else { - o.Set("sslrootcert", "") - } - case "verify-ca": - // We must skip TLS's own verification since it requires full - // verification since Go 1.3. - tlsConf.InsecureSkipVerify = true - verifyCaOnly = true - case "verify-full": - tlsConf.ServerName = o.Get("host") - case "disable": + upgrade := ssl(o) + if upgrade == nil { + // Nothing to do return - default: - errorf(`unsupported sslmode %q; only "require" (default), "verify-full", "verify-ca", and "disable" supported`, mode) } - cn.setupSSLClientCertificates(&tlsConf, o) - cn.setupSSLCA(&tlsConf, o) - w := cn.writeBuf(0) w.int32(80877103) - cn.sendStartupPacket(w) + if err := cn.sendStartupPacket(w); err != nil { + panic(err) + } b := cn.scratch[:1] _, err := io.ReadFull(cn.c, b) @@ -1015,114 +1030,7 @@ func (cn *conn) ssl(o values) { panic(ErrSSLNotSupported) } - client := tls.Client(cn.c, &tlsConf) - if verifyCaOnly { - cn.verifyCA(client, &tlsConf) - } - cn.c = client -} - -// verifyCA carries out a TLS handshake to the server and verifies the -// presented certificate against the effective CA, i.e. the one specified in -// sslrootcert or the system CA if sslrootcert was not specified. -func (cn *conn) verifyCA(client *tls.Conn, tlsConf *tls.Config) { - err := client.Handshake() - if err != nil { - panic(err) - } - certs := client.ConnectionState().PeerCertificates - opts := x509.VerifyOptions{ - DNSName: client.ConnectionState().ServerName, - Intermediates: x509.NewCertPool(), - Roots: tlsConf.RootCAs, - } - for i, cert := range certs { - if i == 0 { - continue - } - opts.Intermediates.AddCert(cert) - } - _, err = certs[0].Verify(opts) - if err != nil { - panic(err) - } -} - -// This function sets up SSL client certificates based on either the "sslkey" -// and "sslcert" settings (possibly set via the environment variables PGSSLKEY -// and PGSSLCERT, respectively), or if they aren't set, from the .postgresql -// directory in the user's home directory. If the file paths are set -// explicitly, the files must exist. The key file must also not be -// world-readable, or this function will panic with -// ErrSSLKeyHasWorldPermissions. -func (cn *conn) setupSSLClientCertificates(tlsConf *tls.Config, o values) { - var missingOk bool - - sslkey := o.Get("sslkey") - sslcert := o.Get("sslcert") - if sslkey != "" && sslcert != "" { - // If the user has set an sslkey and sslcert, they *must* exist. - missingOk = false - } else { - // Automatically load certificates from ~/.postgresql. - user, err := user.Current() - if err != nil { - // user.Current() might fail when cross-compiling. We have to - // ignore the error and continue without client certificates, since - // we wouldn't know where to load them from. - return - } - - sslkey = filepath.Join(user.HomeDir, ".postgresql", "postgresql.key") - sslcert = filepath.Join(user.HomeDir, ".postgresql", "postgresql.crt") - missingOk = true - } - - // Check that both files exist, and report the error or stop, depending on - // which behaviour we want. Note that we don't do any more extensive - // checks than this (such as checking that the paths aren't directories); - // LoadX509KeyPair() will take care of the rest. - keyfinfo, err := os.Stat(sslkey) - if err != nil && missingOk { - return - } else if err != nil { - panic(err) - } - _, err = os.Stat(sslcert) - if err != nil && missingOk { - return - } else if err != nil { - panic(err) - } - - // If we got this far, the key file must also have the correct permissions - kmode := keyfinfo.Mode() - if kmode != kmode&0600 { - panic(ErrSSLKeyHasWorldPermissions) - } - - cert, err := tls.LoadX509KeyPair(sslcert, sslkey) - if err != nil { - panic(err) - } - tlsConf.Certificates = []tls.Certificate{cert} -} - -// Sets up RootCAs in the TLS configuration if sslrootcert is set. -func (cn *conn) setupSSLCA(tlsConf *tls.Config, o values) { - if sslrootcert := o.Get("sslrootcert"); sslrootcert != "" { - tlsConf.RootCAs = x509.NewCertPool() - - cert, err := ioutil.ReadFile(sslrootcert) - if err != nil { - panic(err) - } - - ok := tlsConf.RootCAs.AppendCertsFromPEM(cert) - if !ok { - errorf("couldn't parse pem in sslrootcert") - } - } + cn.c = upgrade(cn.c) } // isDriverSetting returns true iff a setting is purely for configuring the @@ -1171,12 +1079,15 @@ func (cn *conn) startup(o values) { w.string(v) } w.string("") - cn.sendStartupPacket(w) + if err := cn.sendStartupPacket(w); err != nil { + panic(err) + } for { t, r := cn.recv() switch t { case 'K': + cn.processBackendKeyData(r) case 'S': cn.processParameterStatus(r) case 'R': @@ -1196,7 +1107,7 @@ func (cn *conn) auth(r *readBuf, o values) { // OK case 3: w := cn.writeBuf('p') - w.string(o.Get("password")) + w.string(o["password"]) cn.send(w) t, r := cn.recv() @@ -1210,7 +1121,7 @@ func (cn *conn) auth(r *readBuf, o values) { case 5: s := string(r.next(4)) w := cn.writeBuf('p') - w.string("md5" + md5s(md5s(o.Get("password")+o.Get("user"))+s)) + w.string("md5" + md5s(md5s(o["password"]+o["user"])+s)) cn.send(w) t, r := cn.recv() @@ -1404,14 +1315,20 @@ func (cn *conn) parseComplete(commandTag string) (driver.Result, string) { type rows struct { cn *conn + finish func() colNames []string colTyps []oid.Oid colFmts []format done bool rb readBuf + result driver.Result + tag string } func (rs *rows) Close() error { + if finish := rs.finish; finish != nil { + defer finish() + } // no need to look at cn.bad as Next() will for { err := rs.Next(nil) @@ -1429,6 +1346,17 @@ func (rs *rows) Columns() []string { return rs.colNames } +func (rs *rows) Result() driver.Result { + if rs.result == nil { + return emptyRows + } + return rs.result +} + +func (rs *rows) Tag() string { + return rs.tag +} + func (rs *rows) Next(dest []driver.Value) (err error) { if rs.done { return io.EOF @@ -1446,6 +1374,9 @@ func (rs *rows) Next(dest []driver.Value) (err error) { case 'E': err = parseError(&rs.rb) case 'C', 'I': + if t == 'C' { + rs.result, rs.tag = conn.parseComplete(rs.rb.string()) + } continue case 'Z': conn.processReadyForQuery(&rs.rb) @@ -1472,12 +1403,23 @@ func (rs *rows) Next(dest []driver.Value) (err error) { dest[i] = decode(&conn.parameterStatus, rs.rb.next(l), rs.colTyps[i], rs.colFmts[i]) } return + case 'T': + rs.colNames, rs.colFmts, rs.colTyps = parsePortalRowDescribe(&rs.rb) + return io.EOF default: errorf("unexpected message after execute: %q", t) } } } +func (rs *rows) HasNextResultSet() bool { + return !rs.done +} + +func (rs *rows) NextResultSet() error { + return nil +} + // QuoteIdentifier quotes an "identifier" (e.g. a table or a column name) to be // used as part of an SQL statement. For example: // @@ -1605,6 +1547,11 @@ func (cn *conn) readReadyForQuery() { } } +func (c *conn) processBackendKeyData(r *readBuf) { + c.processID = r.int32() + c.secretKey = r.int32() +} + func (cn *conn) readParseResponse() { t, r := cn.recv1() switch t { @@ -1720,6 +1667,9 @@ func (cn *conn) readExecuteResponse(protocolState string) (res driver.Result, co res, commandTag = cn.parseComplete(r.string()) case 'Z': cn.processReadyForQuery(r) + if res == nil && err == nil { + err = errUnexpectedReady + } return res, commandTag, err case 'E': err = parseError(r) @@ -1728,6 +1678,9 @@ func (cn *conn) readExecuteResponse(protocolState string) (res driver.Result, co cn.bad = true errorf("unexpected %q after error %s", t, err) } + if t == 'I' { + res = emptyRows + } // ignore any results default: cn.bad = true diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn_go18.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn_go18.go new file mode 100644 index 00000000000..fa3755d9942 --- /dev/null +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn_go18.go @@ -0,0 +1,107 @@ +// +build go1.8 + +package pq + +import ( + "context" + "database/sql/driver" + "errors" + "io" + "io/ioutil" +) + +// Implement the "QueryerContext" interface +func (cn *conn) QueryContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Rows, error) { + list := make([]driver.Value, len(args)) + for i, nv := range args { + list[i] = nv.Value + } + finish := cn.watchCancel(ctx) + r, err := cn.query(query, list) + if err != nil { + return nil, err + } + r.finish = finish + return r, nil +} + +// Implement the "ExecerContext" interface +func (cn *conn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Result, error) { + list := make([]driver.Value, len(args)) + for i, nv := range args { + list[i] = nv.Value + } + + if finish := cn.watchCancel(ctx); finish != nil { + defer finish() + } + + return cn.Exec(query, list) +} + +// Implement the "ConnBeginTx" interface +func (cn *conn) BeginTx(ctx context.Context, opts driver.TxOptions) (driver.Tx, error) { + if opts.Isolation != 0 { + return nil, errors.New("isolation levels not supported") + } + if opts.ReadOnly { + return nil, errors.New("read-only transactions not supported") + } + tx, err := cn.Begin() + if err != nil { + return nil, err + } + cn.txnFinish = cn.watchCancel(ctx) + return tx, nil +} + +func (cn *conn) watchCancel(ctx context.Context) func() { + if done := ctx.Done(); done != nil { + finished := make(chan struct{}) + go func() { + select { + case <-done: + _ = cn.cancel() + finished <- struct{}{} + case <-finished: + } + }() + return func() { + select { + case <-finished: + case finished <- struct{}{}: + } + } + } + return nil +} + +func (cn *conn) cancel() error { + c, err := dial(cn.dialer, cn.opts) + if err != nil { + return err + } + defer c.Close() + + { + can := conn{ + c: c, + } + can.ssl(cn.opts) + + w := can.writeBuf(0) + w.int32(80877102) // cancel request code + w.int32(cn.processID) + w.int32(cn.secretKey) + + if err := can.sendStartupPacket(w); err != nil { + return err + } + } + + // Read until EOF to ensure that the server received the cancel. + { + _, err := io.Copy(ioutil.Discard, c) + return err + } +} diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/copy.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/copy.go index 101f111330c..345c2398f6c 100644 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/copy.go +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/copy.go @@ -13,6 +13,7 @@ var ( errBinaryCopyNotSupported = errors.New("pq: only text format supported for COPY") errCopyToNotSupported = errors.New("pq: COPY TO is not supported") errCopyNotSupportedOutsideTxn = errors.New("pq: COPY is only allowed inside a transaction") + errCopyInProgress = errors.New("pq: COPY in progress") ) // CopyIn creates a COPY FROM statement which can be prepared with @@ -96,13 +97,13 @@ awaitCopyInResponse: err = parseError(r) case 'Z': if err == nil { - cn.bad = true + ci.setBad() errorf("unexpected ReadyForQuery in response to COPY") } cn.processReadyForQuery(r) return nil, err default: - cn.bad = true + ci.setBad() errorf("unknown response for copy query: %q", t) } } @@ -121,7 +122,7 @@ awaitCopyInResponse: cn.processReadyForQuery(r) return nil, err default: - cn.bad = true + ci.setBad() errorf("unknown response for CopyFail: %q", t) } } @@ -142,7 +143,7 @@ func (ci *copyin) resploop() { var r readBuf t, err := ci.cn.recvMessage(&r) if err != nil { - ci.cn.bad = true + ci.setBad() ci.setError(err) ci.done <- true return @@ -160,7 +161,7 @@ func (ci *copyin) resploop() { err := parseError(&r) ci.setError(err) default: - ci.cn.bad = true + ci.setBad() ci.setError(fmt.Errorf("unknown response during CopyIn: %q", t)) ci.done <- true return @@ -168,6 +169,19 @@ func (ci *copyin) resploop() { } } +func (ci *copyin) setBad() { + ci.Lock() + ci.cn.bad = true + ci.Unlock() +} + +func (ci *copyin) isBad() bool { + ci.Lock() + b := ci.cn.bad + ci.Unlock() + return b +} + func (ci *copyin) isErrorSet() bool { ci.Lock() isSet := (ci.err != nil) @@ -205,7 +219,7 @@ func (ci *copyin) Exec(v []driver.Value) (r driver.Result, err error) { return nil, errCopyInClosed } - if ci.cn.bad { + if ci.isBad() { return nil, driver.ErrBadConn } defer ci.cn.errRecover(&err) @@ -243,7 +257,7 @@ func (ci *copyin) Close() (err error) { } ci.closed = true - if ci.cn.bad { + if ci.isBad() { return driver.ErrBadConn } defer ci.cn.errRecover(&err) @@ -258,6 +272,7 @@ func (ci *copyin) Close() (err error) { } <-ci.done + ci.cn.inCopy = false if ci.isErrorSet() { err = ci.err diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/doc.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/doc.go index 19798dfc921..6d252ecee21 100644 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/doc.go +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/doc.go @@ -89,8 +89,10 @@ provided connection parameters. The pgpass mechanism as described in http://www.postgresql.org/docs/current/static/libpq-pgpass.html is supported, but on Windows PGPASSFILE must be specified explicitly. + Queries + database/sql does not dictate any specific format for parameter markers in query strings, and pq uses the Postgres-native ordinal markers, as shown above. The same marker can be reused for the same parameter: @@ -114,8 +116,29 @@ For more details on RETURNING, see the Postgres documentation: For additional instructions on querying see the documentation for the database/sql package. + +Data Types + + +Parameters pass through driver.DefaultParameterConverter before they are handled +by this package. When the binary_parameters connection option is enabled, +[]byte values are sent directly to the backend as data in binary format. + +This package returns the following types for values from the PostgreSQL backend: + + - integer types smallint, integer, and bigint are returned as int64 + - floating-point types real and double precision are returned as float64 + - character types char, varchar, and text are returned as string + - temporal types date, time, timetz, timestamp, and timestamptz are returned as time.Time + - the boolean type is returned as bool + - the bytea type is returned as []byte + +All other types are returned directly from the backend as []byte values in text format. + + Errors + pq may return errors of type *pq.Error which can be interrogated for error details: if err, ok := err.(*pq.Error); ok { diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/encode.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/encode.go index 29e8f6ff7ce..88a322cda82 100644 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/encode.go +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/encode.go @@ -76,6 +76,12 @@ func binaryDecode(parameterStatus *parameterStatus, s []byte, typ oid.Oid) inter return int64(int32(binary.BigEndian.Uint32(s))) case oid.T_int2: return int64(int16(binary.BigEndian.Uint16(s))) + case oid.T_uuid: + b, err := decodeUUIDBinary(s) + if err != nil { + panic(err) + } + return b default: errorf("don't know how to decode binary parameter of type %d", uint32(typ)) @@ -471,7 +477,7 @@ func FormatTimestamp(t time.Time) []byte { t = t.AddDate((-t.Year())*2+1, 0, 0) bc = true } - b := []byte(t.Format(time.RFC3339Nano)) + b := []byte(t.Format("2006-01-02 15:04:05.999999999Z07:00")) _, offset := t.Zone() offset = offset % 60 diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/hstore/hstore.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/hstore/hstore.go deleted file mode 100644 index 72d5abf51df..00000000000 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/hstore/hstore.go +++ /dev/null @@ -1,118 +0,0 @@ -package hstore - -import ( - "database/sql" - "database/sql/driver" - "strings" -) - -// A wrapper for transferring Hstore values back and forth easily. -type Hstore struct { - Map map[string]sql.NullString -} - -// escapes and quotes hstore keys/values -// s should be a sql.NullString or string -func hQuote(s interface{}) string { - var str string - switch v := s.(type) { - case sql.NullString: - if !v.Valid { - return "NULL" - } - str = v.String - case string: - str = v - default: - panic("not a string or sql.NullString") - } - - str = strings.Replace(str, "\\", "\\\\", -1) - return `"` + strings.Replace(str, "\"", "\\\"", -1) + `"` -} - -// Scan implements the Scanner interface. -// -// Note h.Map is reallocated before the scan to clear existing values. If the -// hstore column's database value is NULL, then h.Map is set to nil instead. -func (h *Hstore) Scan(value interface{}) error { - if value == nil { - h.Map = nil - return nil - } - h.Map = make(map[string]sql.NullString) - var b byte - pair := [][]byte{{}, {}} - pi := 0 - inQuote := false - didQuote := false - sawSlash := false - bindex := 0 - for bindex, b = range value.([]byte) { - if sawSlash { - pair[pi] = append(pair[pi], b) - sawSlash = false - continue - } - - switch b { - case '\\': - sawSlash = true - continue - case '"': - inQuote = !inQuote - if !didQuote { - didQuote = true - } - continue - default: - if !inQuote { - switch b { - case ' ', '\t', '\n', '\r': - continue - case '=': - continue - case '>': - pi = 1 - didQuote = false - continue - case ',': - s := string(pair[1]) - if !didQuote && len(s) == 4 && strings.ToLower(s) == "null" { - h.Map[string(pair[0])] = sql.NullString{String: "", Valid: false} - } else { - h.Map[string(pair[0])] = sql.NullString{String: string(pair[1]), Valid: true} - } - pair[0] = []byte{} - pair[1] = []byte{} - pi = 0 - continue - } - } - } - pair[pi] = append(pair[pi], b) - } - if bindex > 0 { - s := string(pair[1]) - if !didQuote && len(s) == 4 && strings.ToLower(s) == "null" { - h.Map[string(pair[0])] = sql.NullString{String: "", Valid: false} - } else { - h.Map[string(pair[0])] = sql.NullString{String: string(pair[1]), Valid: true} - } - } - return nil -} - -// Value implements the driver Valuer interface. Note if h.Map is nil, the -// database column value will be set to NULL. -func (h Hstore) Value() (driver.Value, error) { - if h.Map == nil { - return nil, nil - } - parts := []string{} - for key, val := range h.Map { - thispart := hQuote(key) + "=>" + hQuote(val) - parts = append(parts, thispart) - } - return []byte(strings.Join(parts, ",")), nil -} diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/listen_example/doc.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/listen_example/doc.go deleted file mode 100644 index 5bc99f5c192..00000000000 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/listen_example/doc.go +++ /dev/null @@ -1,102 +0,0 @@ -/* - -Below you will find a self-contained Go program which uses the LISTEN / NOTIFY -mechanism to avoid polling the database while waiting for more work to arrive. - - // - // You can see the program in action by defining a function similar to - // the following: - // - // CREATE OR REPLACE FUNCTION public.get_work() - // RETURNS bigint - // LANGUAGE sql - // AS $$ - // SELECT CASE WHEN random() >= 0.2 THEN int8 '1' END - // $$ - // ; - - package main - - import ( - "database/sql" - "fmt" - "time" - - "github.com/lib/pq" - ) - - func doWork(db *sql.DB, work int64) { - // work here - } - - func getWork(db *sql.DB) { - for { - // get work from the database here - var work sql.NullInt64 - err := db.QueryRow("SELECT get_work()").Scan(&work) - if err != nil { - fmt.Println("call to get_work() failed: ", err) - time.Sleep(10 * time.Second) - continue - } - if !work.Valid { - // no more work to do - fmt.Println("ran out of work") - return - } - - fmt.Println("starting work on ", work.Int64) - go doWork(db, work.Int64) - } - } - - func waitForNotification(l *pq.Listener) { - for { - select { - case <-l.Notify: - fmt.Println("received notification, new work available") - return - case <-time.After(90 * time.Second): - go func() { - l.Ping() - }() - // Check if there's more work available, just in case it takes - // a while for the Listener to notice connection loss and - // reconnect. - fmt.Println("received no work for 90 seconds, checking for new work") - return - } - } - } - - func main() { - var conninfo string = "" - - db, err := sql.Open("postgres", conninfo) - if err != nil { - panic(err) - } - - reportProblem := func(ev pq.ListenerEventType, err error) { - if err != nil { - fmt.Println(err.Error()) - } - } - - listener := pq.NewListener(conninfo, 10 * time.Second, time.Minute, reportProblem) - err = listener.Listen("getwork") - if err != nil { - panic(err) - } - - fmt.Println("entering main loop") - for { - // process all available work before waiting for notifications - getWork(db) - waitForNotification(listener) - } - } - - -*/ -package listen_example diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/types.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/types.go index 03df05a617a..a3390c23a8a 100644 --- a/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/types.go +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/types.go @@ -18,6 +18,7 @@ const ( T_xid Oid = 28 T_cid Oid = 29 T_oidvector Oid = 30 + T_pg_ddl_command Oid = 32 T_pg_type Oid = 71 T_pg_attribute Oid = 75 T_pg_proc Oid = 81 @@ -28,6 +29,7 @@ const ( T_pg_node_tree Oid = 194 T__json Oid = 199 T_smgr Oid = 210 + T_index_am_handler Oid = 325 T_point Oid = 600 T_lseg Oid = 601 T_path Oid = 602 @@ -133,6 +135,9 @@ const ( T__uuid Oid = 2951 T_txid_snapshot Oid = 2970 T_fdw_handler Oid = 3115 + T_pg_lsn Oid = 3220 + T__pg_lsn Oid = 3221 + T_tsm_handler Oid = 3310 T_anyenum Oid = 3500 T_tsvector Oid = 3614 T_tsquery Oid = 3615 @@ -144,6 +149,8 @@ const ( T__regconfig Oid = 3735 T_regdictionary Oid = 3769 T__regdictionary Oid = 3770 + T_jsonb Oid = 3802 + T__jsonb Oid = 3807 T_anyrange Oid = 3831 T_event_trigger Oid = 3838 T_int4range Oid = 3904 @@ -158,4 +165,9 @@ const ( T__daterange Oid = 3913 T_int8range Oid = 3926 T__int8range Oid = 3927 + T_pg_shseclabel Oid = 4066 + T_regnamespace Oid = 4089 + T__regnamespace Oid = 4090 + T_regrole Oid = 4096 + T__regrole Oid = 4097 ) diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl.go new file mode 100644 index 00000000000..7deb304366f --- /dev/null +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl.go @@ -0,0 +1,158 @@ +package pq + +import ( + "crypto/tls" + "crypto/x509" + "io/ioutil" + "net" + "os" + "os/user" + "path/filepath" +) + +// ssl generates a function to upgrade a net.Conn based on the "sslmode" and +// related settings. The function is nil when no upgrade should take place. +func ssl(o values) func(net.Conn) net.Conn { + verifyCaOnly := false + tlsConf := tls.Config{} + switch mode := o["sslmode"]; mode { + // "require" is the default. + case "", "require": + // We must skip TLS's own verification since it requires full + // verification since Go 1.3. + tlsConf.InsecureSkipVerify = true + + // From http://www.postgresql.org/docs/current/static/libpq-ssl.html: + // + // Note: For backwards compatibility with earlier versions of + // PostgreSQL, if a root CA file exists, the behavior of + // sslmode=require will be the same as that of verify-ca, meaning the + // server certificate is validated against the CA. Relying on this + // behavior is discouraged, and applications that need certificate + // validation should always use verify-ca or verify-full. + if sslrootcert, ok := o["sslrootcert"]; ok { + if _, err := os.Stat(sslrootcert); err == nil { + verifyCaOnly = true + } else { + delete(o, "sslrootcert") + } + } + case "verify-ca": + // We must skip TLS's own verification since it requires full + // verification since Go 1.3. + tlsConf.InsecureSkipVerify = true + verifyCaOnly = true + case "verify-full": + tlsConf.ServerName = o["host"] + case "disable": + return nil + default: + errorf(`unsupported sslmode %q; only "require" (default), "verify-full", "verify-ca", and "disable" supported`, mode) + } + + sslClientCertificates(&tlsConf, o) + sslCertificateAuthority(&tlsConf, o) + sslRenegotiation(&tlsConf) + + return func(conn net.Conn) net.Conn { + client := tls.Client(conn, &tlsConf) + if verifyCaOnly { + sslVerifyCertificateAuthority(client, &tlsConf) + } + return client + } +} + +// sslClientCertificates adds the certificate specified in the "sslcert" and +// "sslkey" settings, or if they aren't set, from the .postgresql directory +// in the user's home directory. The configured files must exist and have +// the correct permissions. +func sslClientCertificates(tlsConf *tls.Config, o values) { + // user.Current() might fail when cross-compiling. We have to ignore the + // error and continue without home directory defaults, since we wouldn't + // know from where to load them. + user, _ := user.Current() + + // In libpq, the client certificate is only loaded if the setting is not blank. + // + // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L1036-L1037 + sslcert := o["sslcert"] + if len(sslcert) == 0 && user != nil { + sslcert = filepath.Join(user.HomeDir, ".postgresql", "postgresql.crt") + } + // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L1045 + if len(sslcert) == 0 { + return + } + // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L1050:L1054 + if _, err := os.Stat(sslcert); os.IsNotExist(err) { + return + } else if err != nil { + panic(err) + } + + // In libpq, the ssl key is only loaded if the setting is not blank. + // + // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L1123-L1222 + sslkey := o["sslkey"] + if len(sslkey) == 0 && user != nil { + sslkey = filepath.Join(user.HomeDir, ".postgresql", "postgresql.key") + } + + if len(sslkey) > 0 { + if err := sslKeyPermissions(sslkey); err != nil { + panic(err) + } + } + + cert, err := tls.LoadX509KeyPair(sslcert, sslkey) + if err != nil { + panic(err) + } + tlsConf.Certificates = []tls.Certificate{cert} +} + +// sslCertificateAuthority adds the RootCA specified in the "sslrootcert" setting. +func sslCertificateAuthority(tlsConf *tls.Config, o values) { + // In libpq, the root certificate is only loaded if the setting is not blank. + // + // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L950-L951 + if sslrootcert := o["sslrootcert"]; len(sslrootcert) > 0 { + tlsConf.RootCAs = x509.NewCertPool() + + cert, err := ioutil.ReadFile(sslrootcert) + if err != nil { + panic(err) + } + + if !tlsConf.RootCAs.AppendCertsFromPEM(cert) { + errorf("couldn't parse pem in sslrootcert") + } + } +} + +// sslVerifyCertificateAuthority carries out a TLS handshake to the server and +// verifies the presented certificate against the CA, i.e. the one specified in +// sslrootcert or the system CA if sslrootcert was not specified. +func sslVerifyCertificateAuthority(client *tls.Conn, tlsConf *tls.Config) { + err := client.Handshake() + if err != nil { + panic(err) + } + certs := client.ConnectionState().PeerCertificates + opts := x509.VerifyOptions{ + DNSName: client.ConnectionState().ServerName, + Intermediates: x509.NewCertPool(), + Roots: tlsConf.RootCAs, + } + for i, cert := range certs { + if i == 0 { + continue + } + opts.Intermediates.AddCert(cert) + } + _, err = certs[0].Verify(opts) + if err != nil { + panic(err) + } +} diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_go1.7.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_go1.7.go new file mode 100644 index 00000000000..d7ba43b32a1 --- /dev/null +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_go1.7.go @@ -0,0 +1,14 @@ +// +build go1.7 + +package pq + +import "crypto/tls" + +// Accept renegotiation requests initiated by the backend. +// +// Renegotiation was deprecated then removed from PostgreSQL 9.5, but +// the default configuration of older versions has it enabled. Redshift +// also initiates renegotiations and cannot be reconfigured. +func sslRenegotiation(conf *tls.Config) { + conf.Renegotiation = tls.RenegotiateFreelyAsClient +} diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_permissions.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_permissions.go new file mode 100644 index 00000000000..3b7c3a2a319 --- /dev/null +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_permissions.go @@ -0,0 +1,20 @@ +// +build !windows + +package pq + +import "os" + +// sslKeyPermissions checks the permissions on user-supplied ssl key files. +// The key file should have very little access. +// +// libpq does not check key file permissions on Windows. +func sslKeyPermissions(sslkey string) error { + info, err := os.Stat(sslkey) + if err != nil { + return err + } + if info.Mode().Perm()&0077 != 0 { + return ErrSSLKeyHasWorldPermissions + } + return nil +} diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_renegotiation.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_renegotiation.go new file mode 100644 index 00000000000..85ed5e437fb --- /dev/null +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_renegotiation.go @@ -0,0 +1,8 @@ +// +build !go1.7 + +package pq + +import "crypto/tls" + +// Renegotiation is not supported by crypto/tls until Go 1.7. +func sslRenegotiation(*tls.Config) {} diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_windows.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_windows.go new file mode 100644 index 00000000000..5d2c763cebc --- /dev/null +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_windows.go @@ -0,0 +1,9 @@ +// +build windows + +package pq + +// sslKeyPermissions checks the permissions on user-supplied ssl key files. +// The key file should have very little access. +// +// libpq does not check key file permissions on Windows. +func sslKeyPermissions(string) error { return nil } diff --git a/metricbeat/module/postgresql/vendor/github.com/lib/pq/uuid.go b/metricbeat/module/postgresql/vendor/github.com/lib/pq/uuid.go new file mode 100644 index 00000000000..9a1b9e0748e --- /dev/null +++ b/metricbeat/module/postgresql/vendor/github.com/lib/pq/uuid.go @@ -0,0 +1,23 @@ +package pq + +import ( + "encoding/hex" + "fmt" +) + +// decodeUUIDBinary interprets the binary format of a uuid, returning it in text format. +func decodeUUIDBinary(src []byte) ([]byte, error) { + if len(src) != 16 { + return nil, fmt.Errorf("pq: unable to decode uuid; bad length: %d", len(src)) + } + + dst := make([]byte, 36) + dst[8], dst[13], dst[18], dst[23] = '-', '-', '-', '-' + hex.Encode(dst[0:], src[0:4]) + hex.Encode(dst[9:], src[4:6]) + hex.Encode(dst[14:], src[6:8]) + hex.Encode(dst[19:], src[8:10]) + hex.Encode(dst[24:], src[10:16]) + + return dst, nil +} diff --git a/metricbeat/module/postgresql/vendor/vendor.json b/metricbeat/module/postgresql/vendor/vendor.json new file mode 100644 index 00000000000..e93f617b403 --- /dev/null +++ b/metricbeat/module/postgresql/vendor/vendor.json @@ -0,0 +1,19 @@ +{ + "comment": "", + "ignore": "test github.com/elastic/beats", + "package": [ + { + "checksumSHA1": "uTUsjF7bymOuKvXbW2BpkK/w4Vg=", + "path": "github.com/lib/pq", + "revision": "2704adc878c21e1329f46f6e56a1c387d788ff94", + "revisionTime": "2017-03-24T20:46:54Z" + }, + { + "checksumSHA1": "Gk3jTNQ5uGDUE0WMJFWcYz9PMps=", + "path": "github.com/lib/pq/oid", + "revision": "2704adc878c21e1329f46f6e56a1c387d788ff94", + "revisionTime": "2017-03-24T20:46:54Z" + } + ], + "rootPath": "github.com/elastic/beats/metricbeat/module/postgresql" +} diff --git a/vendor/github.com/Shopify/sarama/.github/CONTRIBUTING.md b/vendor/github.com/Shopify/sarama/.github/CONTRIBUTING.md deleted file mode 100644 index b0f107cbc76..00000000000 --- a/vendor/github.com/Shopify/sarama/.github/CONTRIBUTING.md +++ /dev/null @@ -1,31 +0,0 @@ -# Contributing - -Contributions are always welcome, both reporting issues and submitting pull requests! - -### Reporting issues - -Please make sure to include any potentially useful information in the issue, so we can pinpoint the issue faster without going back and forth. - -- What SHA of Sarama are you running? If this is not the latest SHA on the master branch, please try if the problem persists with the latest version. -- You can set `sarama.Logger` to a [log.Logger](http://golang.org/pkg/log/#Logger) instance to capture debug output. Please include it in your issue description. -- Also look at the logs of the Kafka broker you are connected to. If you see anything out of the ordinary, please include it. - -Also, please include the following information about your environment, so we can help you faster: - -- What version of Kafka are you using? -- What version of Go are you using? -- What are the values of your Producer/Consumer/Client configuration? - - -### Submitting pull requests - -We will gladly accept bug fixes, or additions to this library. Please fork this library, commit & push your changes, and open a pull request. Because this library is in production use by many people and applications, we code review all additions. To make the review process go as smooth as possible, please consider the following. - -- If you plan to work on something major, please open an issue to discuss the design first. -- Don't break backwards compatibility. If you really have to, open an issue to discuss this first. -- Make sure to use the `go fmt` command to format your code according to the standards. Even better, set up your editor to do this for you when saving. -- Run [go vet](https://godoc.org/golang.org/x/tools/cmd/vet) to detect any suspicious constructs in your code that could be bugs. -- Explicitly handle all error return values. If you really want to ignore an error value, you can assign it to `_`.You can use [errcheck](https://github.com/kisielk/errcheck) to verify whether you have handled all errors. -- You may also want to run [golint](https://github.com/golang/lint) as well to detect style problems. -- Add tests that cover the changes you made. Make sure to run `go test` with the `-race` argument to test for race conditions. -- Make sure your code is supported by all the Go versions we support. You can rely on [Travis CI](https://travis-ci.org/Shopify/sarama) for testing older Go versions diff --git a/vendor/github.com/Shopify/sarama/.github/ISSUE_TEMPLATE.md b/vendor/github.com/Shopify/sarama/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 7ccafb62472..00000000000 --- a/vendor/github.com/Shopify/sarama/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,20 +0,0 @@ -##### Versions - -*Please specify real version numbers or git SHAs, not just "Latest" since that changes fairly regularly.* -Sarama Version: -Kafka Version: -Go Version: - -##### Configuration - -What configuration values are you using for Sarama and Kafka? - -##### Logs - -When filing an issue please provide logs from Sarama and Kafka if at all -possible. You can set `sarama.Logger` to a `log.Logger` to capture Sarama debug -output. - -##### Problem Description - - diff --git a/vendor/github.com/Shopify/sarama/examples/README.md b/vendor/github.com/Shopify/sarama/examples/README.md deleted file mode 100644 index b6588051eb3..00000000000 --- a/vendor/github.com/Shopify/sarama/examples/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Sarama examples - -This folder contains example applications to demonstrate the use of Sarama. For code snippet examples on how to use the different types in Sarama, see [Sarams's API documentation on godoc.org](https://godoc.org/github.com/Shopify/sarama) - -In these examples, we use `github.com/Shopify/sarama` as import path. We do this to ensure all the examples are up to date with the latest changes in Sarama. For your own applications, you may want to use `gopkg.in/Shopify/sarama.v1` to lock into a stable API version. - -#### HTTP server - -[http_server](./http_server) is a simple HTTP server uses both the sync producer to produce data as part of the request handling cycle, as well as the async producer to maintain an access log. It also uses the [mocks subpackage](https://godoc.org/github.com/Shopify/sarama/mocks) to test both. diff --git a/vendor/github.com/Shopify/sarama/examples/http_server/README.md b/vendor/github.com/Shopify/sarama/examples/http_server/README.md deleted file mode 100644 index 5ff2bc2533b..00000000000 --- a/vendor/github.com/Shopify/sarama/examples/http_server/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# HTTP server example - -This HTTP server example shows you how to use the AsyncProducer and SyncProducer, and how to test them using mocks. The server simply sends the data of the HTTP request's query string to Kafka, and send a 200 result if that succeeds. For every request, it will send an access log entry to Kafka as well in the background. - -If you need to know whether a message was successfully sent to the Kafka cluster before you can send your HTTP response, using the `SyncProducer` is probably the simplest way to achieve this. If you don't care, e.g. for the access log, using the `AsyncProducer` will let you fire and forget. You can send the HTTP response, while the message is being produced in the background. - -One important thing to note is that both the `SyncProducer` and `AsyncProducer` are **thread-safe**. Go's `http.Server` handles requests concurrently in different goroutines, but you can use a single producer safely. This will actually achieve efficiency gains as the producer will be able to batch messages from concurrent requests together. diff --git a/vendor/github.com/Shopify/sarama/examples/http_server/http_server.go b/vendor/github.com/Shopify/sarama/examples/http_server/http_server.go deleted file mode 100644 index b6d83c5dc9d..00000000000 --- a/vendor/github.com/Shopify/sarama/examples/http_server/http_server.go +++ /dev/null @@ -1,247 +0,0 @@ -package main - -import ( - "github.com/Shopify/sarama" - - "crypto/tls" - "crypto/x509" - "encoding/json" - "flag" - "fmt" - "io/ioutil" - "log" - "net/http" - "os" - "strings" - "time" -) - -var ( - addr = flag.String("addr", ":8080", "The address to bind to") - brokers = flag.String("brokers", os.Getenv("KAFKA_PEERS"), "The Kafka brokers to connect to, as a comma separated list") - verbose = flag.Bool("verbose", false, "Turn on Sarama logging") - certFile = flag.String("certificate", "", "The optional certificate file for client authentication") - keyFile = flag.String("key", "", "The optional key file for client authentication") - caFile = flag.String("ca", "", "The optional certificate authority file for TLS client authentication") - verifySsl = flag.Bool("verify", false, "Optional verify ssl certificates chain") -) - -func main() { - flag.Parse() - - if *verbose { - sarama.Logger = log.New(os.Stdout, "[sarama] ", log.LstdFlags) - } - - if *brokers == "" { - flag.PrintDefaults() - os.Exit(1) - } - - brokerList := strings.Split(*brokers, ",") - log.Printf("Kafka brokers: %s", strings.Join(brokerList, ", ")) - - server := &Server{ - DataCollector: newDataCollector(brokerList), - AccessLogProducer: newAccessLogProducer(brokerList), - } - defer func() { - if err := server.Close(); err != nil { - log.Println("Failed to close server", err) - } - }() - - log.Fatal(server.Run(*addr)) -} - -func createTlsConfiguration() (t *tls.Config) { - if *certFile != "" && *keyFile != "" && *caFile != "" { - cert, err := tls.LoadX509KeyPair(*certFile, *keyFile) - if err != nil { - log.Fatal(err) - } - - caCert, err := ioutil.ReadFile(*caFile) - if err != nil { - log.Fatal(err) - } - - caCertPool := x509.NewCertPool() - caCertPool.AppendCertsFromPEM(caCert) - - t = &tls.Config{ - Certificates: []tls.Certificate{cert}, - RootCAs: caCertPool, - InsecureSkipVerify: *verifySsl, - } - } - // will be nil by default if nothing is provided - return t -} - -type Server struct { - DataCollector sarama.SyncProducer - AccessLogProducer sarama.AsyncProducer -} - -func (s *Server) Close() error { - if err := s.DataCollector.Close(); err != nil { - log.Println("Failed to shut down data collector cleanly", err) - } - - if err := s.AccessLogProducer.Close(); err != nil { - log.Println("Failed to shut down access log producer cleanly", err) - } - - return nil -} - -func (s *Server) Handler() http.Handler { - return s.withAccessLog(s.collectQueryStringData()) -} - -func (s *Server) Run(addr string) error { - httpServer := &http.Server{ - Addr: addr, - Handler: s.Handler(), - } - - log.Printf("Listening for requests on %s...\n", addr) - return httpServer.ListenAndServe() -} - -func (s *Server) collectQueryStringData() http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.URL.Path != "/" { - http.NotFound(w, r) - return - } - - // We are not setting a message key, which means that all messages will - // be distributed randomly over the different partitions. - partition, offset, err := s.DataCollector.SendMessage(&sarama.ProducerMessage{ - Topic: "important", - Value: sarama.StringEncoder(r.URL.RawQuery), - }) - - if err != nil { - w.WriteHeader(http.StatusInternalServerError) - fmt.Fprintf(w, "Failed to store your data:, %s", err) - } else { - // The tuple (topic, partition, offset) can be used as a unique identifier - // for a message in a Kafka cluster. - fmt.Fprintf(w, "Your data is stored with unique identifier important/%d/%d", partition, offset) - } - }) -} - -type accessLogEntry struct { - Method string `json:"method"` - Host string `json:"host"` - Path string `json:"path"` - IP string `json:"ip"` - ResponseTime float64 `json:"response_time"` - - encoded []byte - err error -} - -func (ale *accessLogEntry) ensureEncoded() { - if ale.encoded == nil && ale.err == nil { - ale.encoded, ale.err = json.Marshal(ale) - } -} - -func (ale *accessLogEntry) Length() int { - ale.ensureEncoded() - return len(ale.encoded) -} - -func (ale *accessLogEntry) Encode() ([]byte, error) { - ale.ensureEncoded() - return ale.encoded, ale.err -} - -func (s *Server) withAccessLog(next http.Handler) http.Handler { - - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - started := time.Now() - - next.ServeHTTP(w, r) - - entry := &accessLogEntry{ - Method: r.Method, - Host: r.Host, - Path: r.RequestURI, - IP: r.RemoteAddr, - ResponseTime: float64(time.Since(started)) / float64(time.Second), - } - - // We will use the client's IP address as key. This will cause - // all the access log entries of the same IP address to end up - // on the same partition. - s.AccessLogProducer.Input() <- &sarama.ProducerMessage{ - Topic: "access_log", - Key: sarama.StringEncoder(r.RemoteAddr), - Value: entry, - } - }) -} - -func newDataCollector(brokerList []string) sarama.SyncProducer { - - // For the data collector, we are looking for strong consistency semantics. - // Because we don't change the flush settings, sarama will try to produce messages - // as fast as possible to keep latency low. - config := sarama.NewConfig() - config.Producer.RequiredAcks = sarama.WaitForAll // Wait for all in-sync replicas to ack the message - config.Producer.Retry.Max = 10 // Retry up to 10 times to produce the message - config.Producer.Return.Successes = true - tlsConfig := createTlsConfiguration() - if tlsConfig != nil { - config.Net.TLS.Config = tlsConfig - config.Net.TLS.Enable = true - } - - // On the broker side, you may want to change the following settings to get - // stronger consistency guarantees: - // - For your broker, set `unclean.leader.election.enable` to false - // - For the topic, you could increase `min.insync.replicas`. - - producer, err := sarama.NewSyncProducer(brokerList, config) - if err != nil { - log.Fatalln("Failed to start Sarama producer:", err) - } - - return producer -} - -func newAccessLogProducer(brokerList []string) sarama.AsyncProducer { - - // For the access log, we are looking for AP semantics, with high throughput. - // By creating batches of compressed messages, we reduce network I/O at a cost of more latency. - config := sarama.NewConfig() - tlsConfig := createTlsConfiguration() - if tlsConfig != nil { - config.Net.TLS.Enable = true - config.Net.TLS.Config = tlsConfig - } - config.Producer.RequiredAcks = sarama.WaitForLocal // Only wait for the leader to ack - config.Producer.Compression = sarama.CompressionSnappy // Compress messages - config.Producer.Flush.Frequency = 500 * time.Millisecond // Flush batches every 500ms - - producer, err := sarama.NewAsyncProducer(brokerList, config) - if err != nil { - log.Fatalln("Failed to start Sarama producer:", err) - } - - // We will just log to STDOUT if we're not able to produce messages. - // Note: messages will only be returned here after all retry attempts are exhausted. - go func() { - for err := range producer.Errors() { - log.Println("Failed to write access log entry:", err) - } - }() - - return producer -} diff --git a/vendor/github.com/Shopify/sarama/mocks/README.md b/vendor/github.com/Shopify/sarama/mocks/README.md deleted file mode 100644 index 55a6c2e61cd..00000000000 --- a/vendor/github.com/Shopify/sarama/mocks/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# sarama/mocks - -The `mocks` subpackage includes mock implementations that implement the interfaces of the major sarama types. -You can use them to test your sarama applications using dependency injection. - -The following mock objects are available: - -- [Consumer](https://godoc.org/github.com/Shopify/sarama/mocks#Consumer), which will create [PartitionConsumer](https://godoc.org/github.com/Shopify/sarama/mocks#PartitionConsumer) mocks. -- [AsyncProducer](https://godoc.org/github.com/Shopify/sarama/mocks#AsyncProducer) -- [SyncProducer](https://godoc.org/github.com/Shopify/sarama/mocks#SyncProducer) - -The mocks allow you to set expectations on them. When you close the mocks, the expectations will be verified, -and the results will be reported to the `*testing.T` object you provided when creating the mock. diff --git a/vendor/github.com/Shopify/sarama/mocks/async_producer.go b/vendor/github.com/Shopify/sarama/mocks/async_producer.go deleted file mode 100644 index d1d9ba416f8..00000000000 --- a/vendor/github.com/Shopify/sarama/mocks/async_producer.go +++ /dev/null @@ -1,174 +0,0 @@ -package mocks - -import ( - "sync" - - "github.com/Shopify/sarama" -) - -// AsyncProducer implements sarama's Producer interface for testing purposes. -// Before you can send messages to it's Input channel, you have to set expectations -// so it knows how to handle the input; it returns an error if the number of messages -// received is bigger then the number of expectations set. You can also set a -// function in each expectation so that the message value is checked by this function -// and an error is returned if the match fails. -type AsyncProducer struct { - l sync.Mutex - t ErrorReporter - expectations []*producerExpectation - closed chan struct{} - input chan *sarama.ProducerMessage - successes chan *sarama.ProducerMessage - errors chan *sarama.ProducerError - lastOffset int64 -} - -// NewAsyncProducer instantiates a new Producer mock. The t argument should -// be the *testing.T instance of your test method. An error will be written to it if -// an expectation is violated. The config argument is used to determine whether it -// should ack successes on the Successes channel. -func NewAsyncProducer(t ErrorReporter, config *sarama.Config) *AsyncProducer { - if config == nil { - config = sarama.NewConfig() - } - mp := &AsyncProducer{ - t: t, - closed: make(chan struct{}, 0), - expectations: make([]*producerExpectation, 0), - input: make(chan *sarama.ProducerMessage, config.ChannelBufferSize), - successes: make(chan *sarama.ProducerMessage, config.ChannelBufferSize), - errors: make(chan *sarama.ProducerError, config.ChannelBufferSize), - } - - go func() { - defer func() { - close(mp.successes) - close(mp.errors) - }() - - for msg := range mp.input { - mp.l.Lock() - if mp.expectations == nil || len(mp.expectations) == 0 { - mp.expectations = nil - mp.t.Errorf("No more expectation set on this mock producer to handle the input message.") - } else { - expectation := mp.expectations[0] - mp.expectations = mp.expectations[1:] - if expectation.CheckFunction != nil { - if val, err := msg.Value.Encode(); err != nil { - mp.t.Errorf("Input message encoding failed: %s", err.Error()) - mp.errors <- &sarama.ProducerError{Err: err, Msg: msg} - } else { - err = expectation.CheckFunction(val) - if err != nil { - mp.t.Errorf("Check function returned an error: %s", err.Error()) - mp.errors <- &sarama.ProducerError{Err: err, Msg: msg} - } - } - } - if expectation.Result == errProduceSuccess { - mp.lastOffset++ - if config.Producer.Return.Successes { - msg.Offset = mp.lastOffset - mp.successes <- msg - } - } else { - if config.Producer.Return.Errors { - mp.errors <- &sarama.ProducerError{Err: expectation.Result, Msg: msg} - } - } - } - mp.l.Unlock() - } - - mp.l.Lock() - if len(mp.expectations) > 0 { - mp.t.Errorf("Expected to exhaust all expectations, but %d are left.", len(mp.expectations)) - } - mp.l.Unlock() - - close(mp.closed) - }() - - return mp -} - -//////////////////////////////////////////////// -// Implement Producer interface -//////////////////////////////////////////////// - -// AsyncClose corresponds with the AsyncClose method of sarama's Producer implementation. -// By closing a mock producer, you also tell it that no more input will be provided, so it will -// write an error to the test state if there's any remaining expectations. -func (mp *AsyncProducer) AsyncClose() { - close(mp.input) -} - -// Close corresponds with the Close method of sarama's Producer implementation. -// By closing a mock producer, you also tell it that no more input will be provided, so it will -// write an error to the test state if there's any remaining expectations. -func (mp *AsyncProducer) Close() error { - mp.AsyncClose() - <-mp.closed - return nil -} - -// Input corresponds with the Input method of sarama's Producer implementation. -// You have to set expectations on the mock producer before writing messages to the Input -// channel, so it knows how to handle them. If there is no more remaining expectations and -// a messages is written to the Input channel, the mock producer will write an error to the test -// state object. -func (mp *AsyncProducer) Input() chan<- *sarama.ProducerMessage { - return mp.input -} - -// Successes corresponds with the Successes method of sarama's Producer implementation. -func (mp *AsyncProducer) Successes() <-chan *sarama.ProducerMessage { - return mp.successes -} - -// Errors corresponds with the Errors method of sarama's Producer implementation. -func (mp *AsyncProducer) Errors() <-chan *sarama.ProducerError { - return mp.errors -} - -//////////////////////////////////////////////// -// Setting expectations -//////////////////////////////////////////////// - -// ExpectInputWithCheckerFunctionAndSucceed sets an expectation on the mock producer that a message -// will be provided on the input channel. The mock producer will call the given function to check -// the message value. If an error is returned it will be made available on the Errors channel -// otherwise the mock will handle the message as if it produced successfully, i.e. it will make -// it available on the Successes channel if the Producer.Return.Successes setting is set to true. -func (mp *AsyncProducer) ExpectInputWithCheckerFunctionAndSucceed(cf ValueChecker) { - mp.l.Lock() - defer mp.l.Unlock() - mp.expectations = append(mp.expectations, &producerExpectation{Result: errProduceSuccess, CheckFunction: cf}) -} - -// ExpectInputWithCheckerFunctionAndSucceed sets an expectation on the mock producer that a message -// will be provided on the input channel. The mock producer will first call the given function to -// check the message value. If an error is returned it will be made available on the Errors channel -// otherwise the mock will handle the message as if it failed to produce successfully. This means -// it will make a ProducerError available on the Errors channel. -func (mp *AsyncProducer) ExpectInputWithCheckerFunctionAndFail(cf ValueChecker, err error) { - mp.l.Lock() - defer mp.l.Unlock() - mp.expectations = append(mp.expectations, &producerExpectation{Result: err, CheckFunction: cf}) -} - -// ExpectInputAndSucceed sets an expectation on the mock producer that a message will be provided -// on the input channel. The mock producer will handle the message as if it is produced successfully, -// i.e. it will make it available on the Successes channel if the Producer.Return.Successes setting -// is set to true. -func (mp *AsyncProducer) ExpectInputAndSucceed() { - mp.ExpectInputWithCheckerFunctionAndSucceed(nil) -} - -// ExpectInputAndFail sets an expectation on the mock producer that a message will be provided -// on the input channel. The mock producer will handle the message as if it failed to produce -// successfully. This means it will make a ProducerError available on the Errors channel. -func (mp *AsyncProducer) ExpectInputAndFail(err error) { - mp.ExpectInputWithCheckerFunctionAndFail(nil, err) -} diff --git a/vendor/github.com/Shopify/sarama/mocks/consumer.go b/vendor/github.com/Shopify/sarama/mocks/consumer.go deleted file mode 100644 index a524190a01e..00000000000 --- a/vendor/github.com/Shopify/sarama/mocks/consumer.go +++ /dev/null @@ -1,315 +0,0 @@ -package mocks - -import ( - "sync" - "sync/atomic" - - "github.com/Shopify/sarama" -) - -// Consumer implements sarama's Consumer interface for testing purposes. -// Before you can start consuming from this consumer, you have to register -// topic/partitions using ExpectConsumePartition, and set expectations on them. -type Consumer struct { - l sync.Mutex - t ErrorReporter - config *sarama.Config - partitionConsumers map[string]map[int32]*PartitionConsumer - metadata map[string][]int32 -} - -// NewConsumer returns a new mock Consumer instance. The t argument should -// be the *testing.T instance of your test method. An error will be written to it if -// an expectation is violated. The config argument is currently unused and can be set to nil. -func NewConsumer(t ErrorReporter, config *sarama.Config) *Consumer { - if config == nil { - config = sarama.NewConfig() - } - - c := &Consumer{ - t: t, - config: config, - partitionConsumers: make(map[string]map[int32]*PartitionConsumer), - } - return c -} - -/////////////////////////////////////////////////// -// Consumer interface implementation -/////////////////////////////////////////////////// - -// ConsumePartition implements the ConsumePartition method from the sarama.Consumer interface. -// Before you can start consuming a partition, you have to set expectations on it using -// ExpectConsumePartition. You can only consume a partition once per consumer. -func (c *Consumer) ConsumePartition(topic string, partition int32, offset int64) (sarama.PartitionConsumer, error) { - c.l.Lock() - defer c.l.Unlock() - - if c.partitionConsumers[topic] == nil || c.partitionConsumers[topic][partition] == nil { - c.t.Errorf("No expectations set for %s/%d", topic, partition) - return nil, errOutOfExpectations - } - - pc := c.partitionConsumers[topic][partition] - if pc.consumed { - return nil, sarama.ConfigurationError("The topic/partition is already being consumed") - } - - if pc.offset != AnyOffset && pc.offset != offset { - c.t.Errorf("Unexpected offset when calling ConsumePartition for %s/%d. Expected %d, got %d.", topic, partition, pc.offset, offset) - } - - pc.consumed = true - return pc, nil -} - -// Topics returns a list of topics, as registered with SetMetadata -func (c *Consumer) Topics() ([]string, error) { - c.l.Lock() - defer c.l.Unlock() - - if c.metadata == nil { - c.t.Errorf("Unexpected call to Topics. Initialize the mock's topic metadata with SetMetadata.") - return nil, sarama.ErrOutOfBrokers - } - - var result []string - for topic := range c.metadata { - result = append(result, topic) - } - return result, nil -} - -// Partitions returns the list of parititons for the given topic, as registered with SetMetadata -func (c *Consumer) Partitions(topic string) ([]int32, error) { - c.l.Lock() - defer c.l.Unlock() - - if c.metadata == nil { - c.t.Errorf("Unexpected call to Partitions. Initialize the mock's topic metadata with SetMetadata.") - return nil, sarama.ErrOutOfBrokers - } - if c.metadata[topic] == nil { - return nil, sarama.ErrUnknownTopicOrPartition - } - - return c.metadata[topic], nil -} - -func (c *Consumer) HighWaterMarks() map[string]map[int32]int64 { - c.l.Lock() - defer c.l.Unlock() - - hwms := make(map[string]map[int32]int64, len(c.partitionConsumers)) - for topic, partitionConsumers := range c.partitionConsumers { - hwm := make(map[int32]int64, len(partitionConsumers)) - for partition, pc := range partitionConsumers { - hwm[partition] = pc.HighWaterMarkOffset() - } - hwms[topic] = hwm - } - - return hwms -} - -// Close implements the Close method from the sarama.Consumer interface. It will close -// all registered PartitionConsumer instances. -func (c *Consumer) Close() error { - c.l.Lock() - defer c.l.Unlock() - - for _, partitions := range c.partitionConsumers { - for _, partitionConsumer := range partitions { - _ = partitionConsumer.Close() - } - } - - return nil -} - -/////////////////////////////////////////////////// -// Expectation API -/////////////////////////////////////////////////// - -// SetTopicMetadata sets the clusters topic/partition metadata, -// which will be returned by Topics() and Partitions(). -func (c *Consumer) SetTopicMetadata(metadata map[string][]int32) { - c.l.Lock() - defer c.l.Unlock() - - c.metadata = metadata -} - -// ExpectConsumePartition will register a topic/partition, so you can set expectations on it. -// The registered PartitionConsumer will be returned, so you can set expectations -// on it using method chaining. Once a topic/partition is registered, you are -// expected to start consuming it using ConsumePartition. If that doesn't happen, -// an error will be written to the error reporter once the mock consumer is closed. It will -// also expect that the -func (c *Consumer) ExpectConsumePartition(topic string, partition int32, offset int64) *PartitionConsumer { - c.l.Lock() - defer c.l.Unlock() - - if c.partitionConsumers[topic] == nil { - c.partitionConsumers[topic] = make(map[int32]*PartitionConsumer) - } - - if c.partitionConsumers[topic][partition] == nil { - c.partitionConsumers[topic][partition] = &PartitionConsumer{ - t: c.t, - topic: topic, - partition: partition, - offset: offset, - messages: make(chan *sarama.ConsumerMessage, c.config.ChannelBufferSize), - errors: make(chan *sarama.ConsumerError, c.config.ChannelBufferSize), - } - } - - return c.partitionConsumers[topic][partition] -} - -/////////////////////////////////////////////////// -// PartitionConsumer mock type -/////////////////////////////////////////////////// - -// PartitionConsumer implements sarama's PartitionConsumer interface for testing purposes. -// It is returned by the mock Consumers ConsumePartitionMethod, but only if it is -// registered first using the Consumer's ExpectConsumePartition method. Before consuming the -// Errors and Messages channel, you should specify what values will be provided on these -// channels using YieldMessage and YieldError. -type PartitionConsumer struct { - l sync.Mutex - t ErrorReporter - topic string - partition int32 - offset int64 - messages chan *sarama.ConsumerMessage - errors chan *sarama.ConsumerError - singleClose sync.Once - consumed bool - errorsShouldBeDrained bool - messagesShouldBeDrained bool - highWaterMarkOffset int64 -} - -/////////////////////////////////////////////////// -// PartitionConsumer interface implementation -/////////////////////////////////////////////////// - -// AsyncClose implements the AsyncClose method from the sarama.PartitionConsumer interface. -func (pc *PartitionConsumer) AsyncClose() { - pc.singleClose.Do(func() { - close(pc.messages) - close(pc.errors) - }) -} - -// Close implements the Close method from the sarama.PartitionConsumer interface. It will -// verify whether the partition consumer was actually started. -func (pc *PartitionConsumer) Close() error { - if !pc.consumed { - pc.t.Errorf("Expectations set on %s/%d, but no partition consumer was started.", pc.topic, pc.partition) - return errPartitionConsumerNotStarted - } - - if pc.errorsShouldBeDrained && len(pc.errors) > 0 { - pc.t.Errorf("Expected the errors channel for %s/%d to be drained on close, but found %d errors.", pc.topic, pc.partition, len(pc.errors)) - } - - if pc.messagesShouldBeDrained && len(pc.messages) > 0 { - pc.t.Errorf("Expected the messages channel for %s/%d to be drained on close, but found %d messages.", pc.topic, pc.partition, len(pc.messages)) - } - - pc.AsyncClose() - - var ( - closeErr error - wg sync.WaitGroup - ) - - wg.Add(1) - go func() { - defer wg.Done() - - var errs = make(sarama.ConsumerErrors, 0) - for err := range pc.errors { - errs = append(errs, err) - } - - if len(errs) > 0 { - closeErr = errs - } - }() - - wg.Add(1) - go func() { - defer wg.Done() - for _ = range pc.messages { - // drain - } - }() - - wg.Wait() - return closeErr -} - -// Errors implements the Errors method from the sarama.PartitionConsumer interface. -func (pc *PartitionConsumer) Errors() <-chan *sarama.ConsumerError { - return pc.errors -} - -// Messages implements the Messages method from the sarama.PartitionConsumer interface. -func (pc *PartitionConsumer) Messages() <-chan *sarama.ConsumerMessage { - return pc.messages -} - -func (pc *PartitionConsumer) HighWaterMarkOffset() int64 { - return atomic.LoadInt64(&pc.highWaterMarkOffset) + 1 -} - -/////////////////////////////////////////////////// -// Expectation API -/////////////////////////////////////////////////// - -// YieldMessage will yield a messages Messages channel of this partition consumer -// when it is consumed. By default, the mock consumer will not verify whether this -// message was consumed from the Messages channel, because there are legitimate -// reasons forthis not to happen. ou can call ExpectMessagesDrainedOnClose so it will -// verify that the channel is empty on close. -func (pc *PartitionConsumer) YieldMessage(msg *sarama.ConsumerMessage) { - pc.l.Lock() - defer pc.l.Unlock() - - msg.Topic = pc.topic - msg.Partition = pc.partition - msg.Offset = atomic.AddInt64(&pc.highWaterMarkOffset, 1) - - pc.messages <- msg -} - -// YieldError will yield an error on the Errors channel of this partition consumer -// when it is consumed. By default, the mock consumer will not verify whether this error was -// consumed from the Errors channel, because there are legitimate reasons for this -// not to happen. You can call ExpectErrorsDrainedOnClose so it will verify that -// the channel is empty on close. -func (pc *PartitionConsumer) YieldError(err error) { - pc.errors <- &sarama.ConsumerError{ - Topic: pc.topic, - Partition: pc.partition, - Err: err, - } -} - -// ExpectMessagesDrainedOnClose sets an expectation on the partition consumer -// that the messages channel will be fully drained when Close is called. If this -// expectation is not met, an error is reported to the error reporter. -func (pc *PartitionConsumer) ExpectMessagesDrainedOnClose() { - pc.messagesShouldBeDrained = true -} - -// ExpectErrorsDrainedOnClose sets an expectation on the partition consumer -// that the errors channel will be fully drained when Close is called. If this -// expectation is not met, an error is reported to the error reporter. -func (pc *PartitionConsumer) ExpectErrorsDrainedOnClose() { - pc.errorsShouldBeDrained = true -} diff --git a/vendor/github.com/Shopify/sarama/mocks/mocks.go b/vendor/github.com/Shopify/sarama/mocks/mocks.go deleted file mode 100644 index 4adb838d996..00000000000 --- a/vendor/github.com/Shopify/sarama/mocks/mocks.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Package mocks provides mocks that can be used for testing applications -that use Sarama. The mock types provided by this package implement the -interfaces Sarama exports, so you can use them for dependency injection -in your tests. - -All mock instances require you to set expectations on them before you -can use them. It will determine how the mock will behave. If an -expectation is not met, it will make your test fail. - -NOTE: this package currently does not fall under the API stability -guarantee of Sarama as it is still considered experimental. -*/ -package mocks - -import ( - "errors" - - "github.com/Shopify/sarama" -) - -// ErrorReporter is a simple interface that includes the testing.T methods we use to report -// expectation violations when using the mock objects. -type ErrorReporter interface { - Errorf(string, ...interface{}) -} - -// ValueChecker is a function type to be set in each expectation of the producer mocks -// to check the value passed. -type ValueChecker func(val []byte) error - -var ( - errProduceSuccess error = nil - errOutOfExpectations = errors.New("No more expectations set on mock") - errPartitionConsumerNotStarted = errors.New("The partition consumer was never started") -) - -const AnyOffset int64 = -1000 - -type producerExpectation struct { - Result error - CheckFunction ValueChecker -} - -type consumerExpectation struct { - Err error - Msg *sarama.ConsumerMessage -} diff --git a/vendor/github.com/Shopify/sarama/mocks/sync_producer.go b/vendor/github.com/Shopify/sarama/mocks/sync_producer.go deleted file mode 100644 index 2ac7b5c32c4..00000000000 --- a/vendor/github.com/Shopify/sarama/mocks/sync_producer.go +++ /dev/null @@ -1,148 +0,0 @@ -package mocks - -import ( - "sync" - - "github.com/Shopify/sarama" -) - -// SyncProducer implements sarama's SyncProducer interface for testing purposes. -// Before you can use it, you have to set expectations on the mock SyncProducer -// to tell it how to handle calls to SendMessage, so you can easily test success -// and failure scenarios. -type SyncProducer struct { - l sync.Mutex - t ErrorReporter - expectations []*producerExpectation - lastOffset int64 -} - -// NewSyncProducer instantiates a new SyncProducer mock. The t argument should -// be the *testing.T instance of your test method. An error will be written to it if -// an expectation is violated. The config argument is currently unused, but is -// maintained to be compatible with the async Producer. -func NewSyncProducer(t ErrorReporter, config *sarama.Config) *SyncProducer { - return &SyncProducer{ - t: t, - expectations: make([]*producerExpectation, 0), - } -} - -//////////////////////////////////////////////// -// Implement SyncProducer interface -//////////////////////////////////////////////// - -// SendMessage corresponds with the SendMessage method of sarama's SyncProducer implementation. -// You have to set expectations on the mock producer before calling SendMessage, so it knows -// how to handle them. You can set a function in each expectation so that the message value -// checked by this function and an error is returned if the match fails. -// If there is no more remaining expectation when SendMessage is called, -// the mock producer will write an error to the test state object. -func (sp *SyncProducer) SendMessage(msg *sarama.ProducerMessage) (partition int32, offset int64, err error) { - sp.l.Lock() - defer sp.l.Unlock() - - if len(sp.expectations) > 0 { - expectation := sp.expectations[0] - sp.expectations = sp.expectations[1:] - if expectation.CheckFunction != nil { - if val, err := msg.Value.Encode(); err != nil { - sp.t.Errorf("Input message encoding failed: %s", err.Error()) - return -1, -1, err - } else { - err := expectation.CheckFunction(val) - if err != nil { - sp.t.Errorf("Check function returned an error: %s", err.Error()) - return -1, -1, err - } - } - } - if expectation.Result == errProduceSuccess { - sp.lastOffset++ - msg.Offset = sp.lastOffset - return 0, msg.Offset, nil - } else { - return -1, -1, expectation.Result - } - } else { - sp.t.Errorf("No more expectation set on this mock producer to handle the input message.") - return -1, -1, errOutOfExpectations - } -} - -// SendMessages corresponds with the SendMessages method of sarama's SyncProducer implementation. -// You have to set expectations on the mock producer before calling SendMessages, so it knows -// how to handle them. If there is no more remaining expectations when SendMessages is called, -// the mock producer will write an error to the test state object. -func (sp *SyncProducer) SendMessages(msgs []*sarama.ProducerMessage) error { - sp.l.Lock() - defer sp.l.Unlock() - - if len(sp.expectations) >= len(msgs) { - expectations := sp.expectations[0 : len(msgs)-1] - sp.expectations = sp.expectations[len(msgs):] - - for _, expectation := range expectations { - if expectation.Result != errProduceSuccess { - return expectation.Result - } - - } - return nil - } else { - sp.t.Errorf("Insufficient expectations set on this mock producer to handle the input messages.") - return errOutOfExpectations - } -} - -// Close corresponds with the Close method of sarama's SyncProducer implementation. -// By closing a mock syncproducer, you also tell it that no more SendMessage calls will follow, -// so it will write an error to the test state if there's any remaining expectations. -func (sp *SyncProducer) Close() error { - sp.l.Lock() - defer sp.l.Unlock() - - if len(sp.expectations) > 0 { - sp.t.Errorf("Expected to exhaust all expectations, but %d are left.", len(sp.expectations)) - } - - return nil -} - -//////////////////////////////////////////////// -// Setting expectations -//////////////////////////////////////////////// - -// ExpectSendMessageWithCheckerFunctionAndSucceed sets an expectation on the mock producer that SendMessage -// will be called. The mock producer will first call the given function to check the message value. -// It will cascade the error of the function, if any, or handle the message as if it produced -// successfully, i.e. by returning a valid partition, and offset, and a nil error. -func (sp *SyncProducer) ExpectSendMessageWithCheckerFunctionAndSucceed(cf ValueChecker) { - sp.l.Lock() - defer sp.l.Unlock() - sp.expectations = append(sp.expectations, &producerExpectation{Result: errProduceSuccess, CheckFunction: cf}) -} - -// ExpectSendMessageAndFail sets an expectation on the mock producer that SendMessage will be -// called. The mock producer will first call the given function to check the message value. -// It will cascade the error of the function, if any, or handle the message as if it failed -// to produce successfully, i.e. by returning the provided error. -func (sp *SyncProducer) ExpectSendMessageWithCheckerFunctionAndFail(cf ValueChecker, err error) { - sp.l.Lock() - defer sp.l.Unlock() - sp.expectations = append(sp.expectations, &producerExpectation{Result: err, CheckFunction: cf}) -} - -// ExpectSendMessageAndSucceed sets an expectation on the mock producer that SendMessage will be -// called. The mock producer will handle the message as if it produced successfully, i.e. by -// returning a valid partition, and offset, and a nil error. -func (sp *SyncProducer) ExpectSendMessageAndSucceed() { - sp.ExpectSendMessageWithCheckerFunctionAndSucceed(nil) -} - -// ExpectSendMessageAndFail sets an expectation on the mock producer that SendMessage will be -// called. The mock producer will handle the message as if it failed to produce -// successfully, i.e. by returning the provided error. -func (sp *SyncProducer) ExpectSendMessageAndFail(err error) { - sp.ExpectSendMessageWithCheckerFunctionAndFail(nil, err) -} diff --git a/vendor/github.com/Shopify/sarama/tools/README.md b/vendor/github.com/Shopify/sarama/tools/README.md deleted file mode 100644 index 3464c4ad804..00000000000 --- a/vendor/github.com/Shopify/sarama/tools/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Sarama tools - -This folder contains applications that are useful for exploration of your Kafka cluster, or instrumentation. -Some of these tools mirror tools that ship with Kafka, but these tools won't require installing the JVM to function. - -- [kafka-console-producer](./kafka-console-producer): a command line tool to produce a single message to your Kafka custer. -- [kafka-console-partitionconsumer](./kafka-console-partitionconsumer): (deprecated) a command line tool to consume a single partition of a topic on your Kafka cluster. -- [kafka-console-consumer](./kafka-console-consumer): a command line tool to consume arbitrary partitions of a topic on your Kafka cluster. - -To install all tools, run `go get github.com/Shopify/sarama/tools/...` diff --git a/vendor/github.com/Shopify/sarama/tools/kafka-console-consumer/README.md b/vendor/github.com/Shopify/sarama/tools/kafka-console-consumer/README.md deleted file mode 100644 index 4e77f0b7050..00000000000 --- a/vendor/github.com/Shopify/sarama/tools/kafka-console-consumer/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# kafka-console-consumer - -A simple command line tool to consume partitions of a topic and print the -messages on the standard output. - -### Installation - - go get github.com/Shopify/sarama/tools/kafka-console-consumer - -### Usage - - # Minimum invocation - kafka-console-consumer -topic=test -brokers=kafka1:9092 - - # It will pick up a KAFKA_PEERS environment variable - export KAFKA_PEERS=kafka1:9092,kafka2:9092,kafka3:9092 - kafka-console-consumer -topic=test - - # You can specify the offset you want to start at. It can be either - # `oldest`, `newest`. The default is `newest`. - kafka-console-consumer -topic=test -offset=oldest - kafka-console-consumer -topic=test -offset=newest - - # You can specify the partition(s) you want to consume as a comma-separated - # list. The default is `all`. - kafka-console-consumer -topic=test -partitions=1,2,3 - - # Display all command line options - kafka-console-consumer -help diff --git a/vendor/github.com/Shopify/sarama/tools/kafka-console-consumer/kafka-console-consumer.go b/vendor/github.com/Shopify/sarama/tools/kafka-console-consumer/kafka-console-consumer.go deleted file mode 100644 index 0f1eb89a906..00000000000 --- a/vendor/github.com/Shopify/sarama/tools/kafka-console-consumer/kafka-console-consumer.go +++ /dev/null @@ -1,145 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "log" - "os" - "os/signal" - "strconv" - "strings" - "sync" - - "github.com/Shopify/sarama" -) - -var ( - brokerList = flag.String("brokers", os.Getenv("KAFKA_PEERS"), "The comma separated list of brokers in the Kafka cluster") - topic = flag.String("topic", "", "REQUIRED: the topic to consume") - partitions = flag.String("partitions", "all", "The partitions to consume, can be 'all' or comma-separated numbers") - offset = flag.String("offset", "newest", "The offset to start with. Can be `oldest`, `newest`") - verbose = flag.Bool("verbose", false, "Whether to turn on sarama logging") - bufferSize = flag.Int("buffer-size", 256, "The buffer size of the message channel.") - - logger = log.New(os.Stderr, "", log.LstdFlags) -) - -func main() { - flag.Parse() - - if *brokerList == "" { - printUsageErrorAndExit("You have to provide -brokers as a comma-separated list, or set the KAFKA_PEERS environment variable.") - } - - if *topic == "" { - printUsageErrorAndExit("-topic is required") - } - - if *verbose { - sarama.Logger = logger - } - - var initialOffset int64 - switch *offset { - case "oldest": - initialOffset = sarama.OffsetOldest - case "newest": - initialOffset = sarama.OffsetNewest - default: - printUsageErrorAndExit("-offset should be `oldest` or `newest`") - } - - c, err := sarama.NewConsumer(strings.Split(*brokerList, ","), nil) - if err != nil { - printErrorAndExit(69, "Failed to start consumer: %s", err) - } - - partitionList, err := getPartitions(c) - if err != nil { - printErrorAndExit(69, "Failed to get the list of partitions: %s", err) - } - - var ( - messages = make(chan *sarama.ConsumerMessage, *bufferSize) - closing = make(chan struct{}) - wg sync.WaitGroup - ) - - go func() { - signals := make(chan os.Signal, 1) - signal.Notify(signals, os.Kill, os.Interrupt) - <-signals - logger.Println("Initiating shutdown of consumer...") - close(closing) - }() - - for _, partition := range partitionList { - pc, err := c.ConsumePartition(*topic, partition, initialOffset) - if err != nil { - printErrorAndExit(69, "Failed to start consumer for partition %d: %s", partition, err) - } - - go func(pc sarama.PartitionConsumer) { - <-closing - pc.AsyncClose() - }(pc) - - wg.Add(1) - go func(pc sarama.PartitionConsumer) { - defer wg.Done() - for message := range pc.Messages() { - messages <- message - } - }(pc) - } - - go func() { - for msg := range messages { - fmt.Printf("Partition:\t%d\n", msg.Partition) - fmt.Printf("Offset:\t%d\n", msg.Offset) - fmt.Printf("Key:\t%s\n", string(msg.Key)) - fmt.Printf("Value:\t%s\n", string(msg.Value)) - fmt.Println() - } - }() - - wg.Wait() - logger.Println("Done consuming topic", *topic) - close(messages) - - if err := c.Close(); err != nil { - logger.Println("Failed to close consumer: ", err) - } -} - -func getPartitions(c sarama.Consumer) ([]int32, error) { - if *partitions == "all" { - return c.Partitions(*topic) - } - - tmp := strings.Split(*partitions, ",") - var pList []int32 - for i := range tmp { - val, err := strconv.ParseInt(tmp[i], 10, 32) - if err != nil { - return nil, err - } - pList = append(pList, int32(val)) - } - - return pList, nil -} - -func printErrorAndExit(code int, format string, values ...interface{}) { - fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...)) - fmt.Fprintln(os.Stderr) - os.Exit(code) -} - -func printUsageErrorAndExit(format string, values ...interface{}) { - fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...)) - fmt.Fprintln(os.Stderr) - fmt.Fprintln(os.Stderr, "Available command line options:") - flag.PrintDefaults() - os.Exit(64) -} diff --git a/vendor/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/README.md b/vendor/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/README.md deleted file mode 100644 index 646dd5f5c29..00000000000 --- a/vendor/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# kafka-console-partitionconsumer - -NOTE: this tool is deprecated in favour of the more general and more powerful -`kafka-console-consumer`. - -A simple command line tool to consume a partition of a topic and print the messages -on the standard output. - -### Installation - - go get github.com/Shopify/sarama/tools/kafka-console-partitionconsumer - -### Usage - - # Minimum invocation - kafka-console-partitionconsumer -topic=test -partition=4 -brokers=kafka1:9092 - - # It will pick up a KAFKA_PEERS environment variable - export KAFKA_PEERS=kafka1:9092,kafka2:9092,kafka3:9092 - kafka-console-partitionconsumer -topic=test -partition=4 - - # You can specify the offset you want to start at. It can be either - # `oldest`, `newest`, or a specific offset number - kafka-console-partitionconsumer -topic=test -partition=3 -offset=oldest - kafka-console-partitionconsumer -topic=test -partition=2 -offset=1337 - - # Display all command line options - kafka-console-partitionconsumer -help diff --git a/vendor/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/kafka-console-partitionconsumer.go b/vendor/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/kafka-console-partitionconsumer.go deleted file mode 100644 index d5e4464de18..00000000000 --- a/vendor/github.com/Shopify/sarama/tools/kafka-console-partitionconsumer/kafka-console-partitionconsumer.go +++ /dev/null @@ -1,102 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "log" - "os" - "os/signal" - "strconv" - "strings" - - "github.com/Shopify/sarama" -) - -var ( - brokerList = flag.String("brokers", os.Getenv("KAFKA_PEERS"), "The comma separated list of brokers in the Kafka cluster") - topic = flag.String("topic", "", "REQUIRED: the topic to consume") - partition = flag.Int("partition", -1, "REQUIRED: the partition to consume") - offset = flag.String("offset", "newest", "The offset to start with. Can be `oldest`, `newest`, or an actual offset") - verbose = flag.Bool("verbose", false, "Whether to turn on sarama logging") - - logger = log.New(os.Stderr, "", log.LstdFlags) -) - -func main() { - flag.Parse() - - if *brokerList == "" { - printUsageErrorAndExit("You have to provide -brokers as a comma-separated list, or set the KAFKA_PEERS environment variable.") - } - - if *topic == "" { - printUsageErrorAndExit("-topic is required") - } - - if *partition == -1 { - printUsageErrorAndExit("-partition is required") - } - - if *verbose { - sarama.Logger = logger - } - - var ( - initialOffset int64 - offsetError error - ) - switch *offset { - case "oldest": - initialOffset = sarama.OffsetOldest - case "newest": - initialOffset = sarama.OffsetNewest - default: - initialOffset, offsetError = strconv.ParseInt(*offset, 10, 64) - } - - if offsetError != nil { - printUsageErrorAndExit("Invalid initial offset: %s", *offset) - } - - c, err := sarama.NewConsumer(strings.Split(*brokerList, ","), nil) - if err != nil { - printErrorAndExit(69, "Failed to start consumer: %s", err) - } - - pc, err := c.ConsumePartition(*topic, int32(*partition), initialOffset) - if err != nil { - printErrorAndExit(69, "Failed to start partition consumer: %s", err) - } - - go func() { - signals := make(chan os.Signal, 1) - signal.Notify(signals, os.Kill, os.Interrupt) - <-signals - pc.AsyncClose() - }() - - for msg := range pc.Messages() { - fmt.Printf("Offset:\t%d\n", msg.Offset) - fmt.Printf("Key:\t%s\n", string(msg.Key)) - fmt.Printf("Value:\t%s\n", string(msg.Value)) - fmt.Println() - } - - if err := c.Close(); err != nil { - logger.Println("Failed to close consumer: ", err) - } -} - -func printErrorAndExit(code int, format string, values ...interface{}) { - fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...)) - fmt.Fprintln(os.Stderr) - os.Exit(code) -} - -func printUsageErrorAndExit(format string, values ...interface{}) { - fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...)) - fmt.Fprintln(os.Stderr) - fmt.Fprintln(os.Stderr, "Available command line options:") - flag.PrintDefaults() - os.Exit(64) -} diff --git a/vendor/github.com/Shopify/sarama/tools/kafka-console-producer/README.md b/vendor/github.com/Shopify/sarama/tools/kafka-console-producer/README.md deleted file mode 100644 index 6b3a65f211a..00000000000 --- a/vendor/github.com/Shopify/sarama/tools/kafka-console-producer/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# kafka-console-producer - -A simple command line tool to produce a single message to Kafka. - -### Installation - - go get github.com/Shopify/sarama/tools/kafka-console-producer - - -### Usage - - # Minimum invocation - kafka-console-producer -topic=test -value=value -brokers=kafka1:9092 - - # It will pick up a KAFKA_PEERS environment variable - export KAFKA_PEERS=kafka1:9092,kafka2:9092,kafka3:9092 - kafka-console-producer -topic=test -value=value - - # It will read the value from stdin by using pipes - echo "hello world" | kafka-console-producer -topic=test - - # Specify a key: - echo "hello world" | kafka-console-producer -topic=test -key=key - - # Partitioning: by default, kafka-console-producer will partition as follows: - # - manual partitioning if a -partition is provided - # - hash partitioning by key if a -key is provided - # - random partioning otherwise. - # - # You can override this using the -partitioner argument: - echo "hello world" | kafka-console-producer -topic=test -key=key -partitioner=random - - # Display all command line options - kafka-console-producer -help diff --git a/vendor/github.com/Shopify/sarama/tools/kafka-console-producer/kafka-console-producer.go b/vendor/github.com/Shopify/sarama/tools/kafka-console-producer/kafka-console-producer.go deleted file mode 100644 index 83054ed78a1..00000000000 --- a/vendor/github.com/Shopify/sarama/tools/kafka-console-producer/kafka-console-producer.go +++ /dev/null @@ -1,124 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "io/ioutil" - "log" - "os" - "strings" - - "github.com/Shopify/sarama" - "github.com/rcrowley/go-metrics" -) - -var ( - brokerList = flag.String("brokers", os.Getenv("KAFKA_PEERS"), "The comma separated list of brokers in the Kafka cluster. You can also set the KAFKA_PEERS environment variable") - topic = flag.String("topic", "", "REQUIRED: the topic to produce to") - key = flag.String("key", "", "The key of the message to produce. Can be empty.") - value = flag.String("value", "", "REQUIRED: the value of the message to produce. You can also provide the value on stdin.") - partitioner = flag.String("partitioner", "", "The partitioning scheme to use. Can be `hash`, `manual`, or `random`") - partition = flag.Int("partition", -1, "The partition to produce to.") - verbose = flag.Bool("verbose", false, "Turn on sarama logging to stderr") - showMetrics = flag.Bool("metrics", false, "Output metrics on successful publish to stderr") - silent = flag.Bool("silent", false, "Turn off printing the message's topic, partition, and offset to stdout") - - logger = log.New(os.Stderr, "", log.LstdFlags) -) - -func main() { - flag.Parse() - - if *brokerList == "" { - printUsageErrorAndExit("no -brokers specified. Alternatively, set the KAFKA_PEERS environment variable") - } - - if *topic == "" { - printUsageErrorAndExit("no -topic specified") - } - - if *verbose { - sarama.Logger = logger - } - - config := sarama.NewConfig() - config.Producer.RequiredAcks = sarama.WaitForAll - config.Producer.Return.Successes = true - - switch *partitioner { - case "": - if *partition >= 0 { - config.Producer.Partitioner = sarama.NewManualPartitioner - } else { - config.Producer.Partitioner = sarama.NewHashPartitioner - } - case "hash": - config.Producer.Partitioner = sarama.NewHashPartitioner - case "random": - config.Producer.Partitioner = sarama.NewRandomPartitioner - case "manual": - config.Producer.Partitioner = sarama.NewManualPartitioner - if *partition == -1 { - printUsageErrorAndExit("-partition is required when partitioning manually") - } - default: - printUsageErrorAndExit(fmt.Sprintf("Partitioner %s not supported.", *partitioner)) - } - - message := &sarama.ProducerMessage{Topic: *topic, Partition: int32(*partition)} - - if *key != "" { - message.Key = sarama.StringEncoder(*key) - } - - if *value != "" { - message.Value = sarama.StringEncoder(*value) - } else if stdinAvailable() { - bytes, err := ioutil.ReadAll(os.Stdin) - if err != nil { - printErrorAndExit(66, "Failed to read data from the standard input: %s", err) - } - message.Value = sarama.ByteEncoder(bytes) - } else { - printUsageErrorAndExit("-value is required, or you have to provide the value on stdin") - } - - producer, err := sarama.NewSyncProducer(strings.Split(*brokerList, ","), config) - if err != nil { - printErrorAndExit(69, "Failed to open Kafka producer: %s", err) - } - defer func() { - if err := producer.Close(); err != nil { - logger.Println("Failed to close Kafka producer cleanly:", err) - } - }() - - partition, offset, err := producer.SendMessage(message) - if err != nil { - printErrorAndExit(69, "Failed to produce message: %s", err) - } else if !*silent { - fmt.Printf("topic=%s\tpartition=%d\toffset=%d\n", *topic, partition, offset) - } - if *showMetrics { - metrics.WriteOnce(config.MetricRegistry, os.Stderr) - } -} - -func printErrorAndExit(code int, format string, values ...interface{}) { - fmt.Fprintf(os.Stderr, "ERROR: %s\n", fmt.Sprintf(format, values...)) - fmt.Fprintln(os.Stderr) - os.Exit(code) -} - -func printUsageErrorAndExit(message string) { - fmt.Fprintln(os.Stderr, "ERROR:", message) - fmt.Fprintln(os.Stderr) - fmt.Fprintln(os.Stderr, "Available command line options:") - flag.PrintDefaults() - os.Exit(64) -} - -func stdinAvailable() bool { - stat, _ := os.Stdin.Stat() - return (stat.Mode() & os.ModeCharDevice) == 0 -} diff --git a/vendor/github.com/Shopify/sarama/vagrant/boot_cluster.sh b/vendor/github.com/Shopify/sarama/vagrant/boot_cluster.sh deleted file mode 100755 index 95e47dde434..00000000000 --- a/vendor/github.com/Shopify/sarama/vagrant/boot_cluster.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -set -ex - -# Launch and wait for toxiproxy -${REPOSITORY_ROOT}/vagrant/run_toxiproxy.sh & -while ! nc -q 1 localhost 2181 ${KAFKA_INSTALL_ROOT}/zookeeper-${ZK_PORT}/myid -done diff --git a/vendor/github.com/Shopify/sarama/vagrant/kafka.conf b/vendor/github.com/Shopify/sarama/vagrant/kafka.conf deleted file mode 100644 index 25101df5a32..00000000000 --- a/vendor/github.com/Shopify/sarama/vagrant/kafka.conf +++ /dev/null @@ -1,9 +0,0 @@ -start on started zookeeper-ZK_PORT -stop on stopping zookeeper-ZK_PORT - -# Use a script instead of exec (using env stanza leaks KAFKA_HEAP_OPTS from zookeeper) -script - sleep 2 - export KAFKA_HEAP_OPTS="-Xmx320m" - exec /opt/kafka-KAFKAID/bin/kafka-server-start.sh /opt/kafka-KAFKAID/config/server.properties -end script diff --git a/vendor/github.com/Shopify/sarama/vagrant/provision.sh b/vendor/github.com/Shopify/sarama/vagrant/provision.sh deleted file mode 100755 index ace768f4055..00000000000 --- a/vendor/github.com/Shopify/sarama/vagrant/provision.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -set -ex - -apt-get update -yes | apt-get install default-jre - -export KAFKA_INSTALL_ROOT=/opt -export KAFKA_HOSTNAME=192.168.100.67 -export KAFKA_VERSION=0.9.0.1 -export REPOSITORY_ROOT=/vagrant - -sh /vagrant/vagrant/install_cluster.sh -sh /vagrant/vagrant/setup_services.sh -sh /vagrant/vagrant/create_topics.sh diff --git a/vendor/github.com/Shopify/sarama/vagrant/run_toxiproxy.sh b/vendor/github.com/Shopify/sarama/vagrant/run_toxiproxy.sh deleted file mode 100755 index e52c00e7b5a..00000000000 --- a/vendor/github.com/Shopify/sarama/vagrant/run_toxiproxy.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -set -ex - -${KAFKA_INSTALL_ROOT}/toxiproxy -port 8474 -host 0.0.0.0 & -PID=$! - -while ! nc -q 1 localhost 8474 - -# The number of threads handling network requests -num.network.threads=2 - -# The number of threads doing disk I/O -num.io.threads=8 - -# The send buffer (SO_SNDBUF) used by the socket server -socket.send.buffer.bytes=1048576 - -# The receive buffer (SO_RCVBUF) used by the socket server -socket.receive.buffer.bytes=1048576 - -# The maximum size of a request that the socket server will accept (protection against OOM) -socket.request.max.bytes=104857600 - - -############################# Log Basics ############################# - -# A comma seperated list of directories under which to store log files -log.dirs=KAFKA_DATADIR - -# The default number of log partitions per topic. More partitions allow greater -# parallelism for consumption, but this will also result in more files across -# the brokers. -num.partitions=2 - -# Create new topics with a replication factor of 2 so failover can be tested -# more easily. -default.replication.factor=2 - -auto.create.topics.enable=false -delete.topic.enable=true - -############################# Log Flush Policy ############################# - -# Messages are immediately written to the filesystem but by default we only fsync() to sync -# the OS cache lazily. The following configurations control the flush of data to disk. -# There are a few important trade-offs here: -# 1. Durability: Unflushed data may be lost if you are not using replication. -# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. -# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to exceessive seeks. -# The settings below allow one to configure the flush policy to flush data after a period of time or -# every N messages (or both). This can be done globally and overridden on a per-topic basis. - -# The number of messages to accept before forcing a flush of data to disk -#log.flush.interval.messages=10000 - -# The maximum amount of time a message can sit in a log before we force a flush -#log.flush.interval.ms=1000 - -############################# Log Retention Policy ############################# - -# The following configurations control the disposal of log segments. The policy can -# be set to delete segments after a period of time, or after a given size has accumulated. -# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens -# from the end of the log. - -# The minimum age of a log file to be eligible for deletion -log.retention.hours=168 - -# A size-based retention policy for logs. Segments are pruned from the log as long as the remaining -# segments don't drop below log.retention.bytes. -log.retention.bytes=268435456 - -# The maximum size of a log segment file. When this size is reached a new log segment will be created. -log.segment.bytes=268435456 - -# The interval at which log segments are checked to see if they can be deleted according -# to the retention policies -log.retention.check.interval.ms=60000 - -# By default the log cleaner is disabled and the log retention policy will default to just delete segments after their retention expires. -# If log.cleaner.enable=true is set the cleaner will be enabled and individual logs can then be marked for log compaction. -log.cleaner.enable=false - -############################# Zookeeper ############################# - -# Zookeeper connection string (see zookeeper docs for details). -# This is a comma separated host:port pairs, each corresponding to a zk -# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002". -# You can also append an optional chroot string to the urls to specify the -# root directory for all kafka znodes. -zookeeper.connect=localhost:ZK_PORT - -# Timeout in ms for connecting to zookeeper -zookeeper.session.timeout.ms=3000 -zookeeper.connection.timeout.ms=3000 diff --git a/vendor/github.com/Shopify/sarama/vagrant/setup_services.sh b/vendor/github.com/Shopify/sarama/vagrant/setup_services.sh deleted file mode 100755 index 81d8ea05d3b..00000000000 --- a/vendor/github.com/Shopify/sarama/vagrant/setup_services.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -set -ex - -stop toxiproxy || true -cp ${REPOSITORY_ROOT}/vagrant/toxiproxy.conf /etc/init/toxiproxy.conf -cp ${REPOSITORY_ROOT}/vagrant/run_toxiproxy.sh ${KAFKA_INSTALL_ROOT}/ -start toxiproxy - -for i in 1 2 3 4 5; do - ZK_PORT=`expr $i + 2180` - KAFKA_PORT=`expr $i + 9090` - - stop zookeeper-${ZK_PORT} || true - - # set up zk service - cp ${REPOSITORY_ROOT}/vagrant/zookeeper.conf /etc/init/zookeeper-${ZK_PORT}.conf - sed -i s/KAFKAID/${KAFKA_PORT}/g /etc/init/zookeeper-${ZK_PORT}.conf - - # set up kafka service - cp ${REPOSITORY_ROOT}/vagrant/kafka.conf /etc/init/kafka-${KAFKA_PORT}.conf - sed -i s/KAFKAID/${KAFKA_PORT}/g /etc/init/kafka-${KAFKA_PORT}.conf - sed -i s/ZK_PORT/${ZK_PORT}/g /etc/init/kafka-${KAFKA_PORT}.conf - - start zookeeper-${ZK_PORT} -done - -# Wait for the last kafka node to finish booting -while ! nc -q 1 localhost 29095 0; itemRaw, length, err = enum.Next(1) { + if err != nil { + return err + } + + err := func() error { + // item is a SWbemObject, but really a Win32_Process + item := itemRaw.ToIDispatch() + defer item.Release() + + ev := reflect.New(elemType) + if err = s.cWMIClient.loadEntity(ev.Interface(), item); err != nil { + if _, ok := err.(*ErrFieldMismatch); ok { + // We continue loading entities even in the face of field mismatch errors. + // If we encounter any other error, that other error is returned. Otherwise, + // an ErrFieldMismatch is returned. + errFieldMismatch = err + } else { + return err + } + } + if mat != multiArgTypeStructPtr { + ev = ev.Elem() + } + dv.Set(reflect.Append(dv, ev)) + return nil + }() + if err != nil { + return err + } + } + //fmt.Println("queryBackground: Finished") + return errFieldMismatch +} diff --git a/vendor/github.com/StackExchange/wmi/wmi.go b/vendor/github.com/StackExchange/wmi/wmi.go index 5cb56ff1ec9..9c688b03841 100644 --- a/vendor/github.com/StackExchange/wmi/wmi.go +++ b/vendor/github.com/StackExchange/wmi/wmi.go @@ -72,7 +72,10 @@ func QueryNamespace(query string, dst interface{}, namespace string) error { // // Query is a wrapper around DefaultClient.Query. func Query(query string, dst interface{}, connectServerArgs ...interface{}) error { - return DefaultClient.Query(query, dst, connectServerArgs...) + if DefaultClient.SWbemServicesClient == nil { + return DefaultClient.Query(query, dst, connectServerArgs...) + } + return DefaultClient.SWbemServicesClient.Query(query, dst, connectServerArgs...) } // A Client is an WMI query client. @@ -99,6 +102,11 @@ type Client struct { // Setting this to true allows custom queries to be used with full // struct definitions instead of having to define multiple structs. AllowMissingFields bool + + // SWbemServiceClient is an optional SWbemServices object that can be + // initialized and then reused across multiple queries. If it is null + // then the method will initialize a new temporary client each time. + SWbemServicesClient *SWbemServices } // DefaultClient is the default Client and is used by Query, QueryNamespace @@ -362,6 +370,21 @@ func (c *Client) loadEntity(dst interface{}, src *ole.IDispatch) (errFieldMismat } } default: + // Only support []string slices for now + if f.Kind() == reflect.Slice && f.Type().Elem().Kind() == reflect.String { + safeArray := prop.ToArray() + if safeArray != nil { + arr := safeArray.ToValueArray() + fArr := reflect.MakeSlice(f.Type(), len(arr), len(arr)) + for i, v := range arr { + s := fArr.Index(i) + s.SetString(v.(string)) + } + f.Set(fArr) + break + } + } + typeof := reflect.TypeOf(val) if typeof == nil && (isPtr || c.NonePtrZero) { if (isPtr && c.PtrNil) || (!isPtr && c.NonePtrZero) { diff --git a/vendor/github.com/andrewkroh/sys/AUTHORS b/vendor/github.com/andrewkroh/sys/AUTHORS deleted file mode 100644 index 15167cd746c..00000000000 --- a/vendor/github.com/andrewkroh/sys/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/github.com/andrewkroh/sys/CONTRIBUTING.md b/vendor/github.com/andrewkroh/sys/CONTRIBUTING.md deleted file mode 100644 index 88dff59bc7d..00000000000 --- a/vendor/github.com/andrewkroh/sys/CONTRIBUTING.md +++ /dev/null @@ -1,31 +0,0 @@ -# Contributing to Go - -Go is an open source project. - -It is the work of hundreds of contributors. We appreciate your help! - - -## Filing issues - -When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: - -1. What version of Go are you using (`go version`)? -2. What operating system and processor architecture are you using? -3. What did you do? -4. What did you expect to see? -5. What did you see instead? - -General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. -The gophers there will answer or ask you to file an issue if you've tripped over a bug. - -## Contributing code - -Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) -before sending patches. - -**We do not accept GitHub pull requests** -(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). - -Unless otherwise noted, the Go source files are distributed under -the BSD-style license found in the LICENSE file. - diff --git a/vendor/github.com/andrewkroh/sys/CONTRIBUTORS b/vendor/github.com/andrewkroh/sys/CONTRIBUTORS deleted file mode 100644 index 1c4577e9680..00000000000 --- a/vendor/github.com/andrewkroh/sys/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/github.com/andrewkroh/sys/README b/vendor/github.com/andrewkroh/sys/README deleted file mode 100644 index bd422b40c23..00000000000 --- a/vendor/github.com/andrewkroh/sys/README +++ /dev/null @@ -1,3 +0,0 @@ -This repository holds supplemental Go packages for low-level interactions with the operating system. - -To submit changes to this repository, see http://golang.org/doc/contribute.html. diff --git a/vendor/github.com/andrewkroh/sys/plan9/asm.s b/vendor/github.com/andrewkroh/sys/plan9/asm.s deleted file mode 100644 index d4ca868f17f..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/asm.s +++ /dev/null @@ -1,8 +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. - -#include "textflag.h" - -TEXT ·use(SB),NOSPLIT,$0 - RET diff --git a/vendor/github.com/andrewkroh/sys/plan9/asm_plan9_386.s b/vendor/github.com/andrewkroh/sys/plan9/asm_plan9_386.s deleted file mode 100644 index bc5cab1f347..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/asm_plan9_386.s +++ /dev/null @@ -1,30 +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. - -#include "textflag.h" - -// -// System call support for 386, Plan 9 -// - -// Just jump to package syscall's implementation for all these functions. -// The runtime may know about them. - -TEXT ·Syscall(SB),NOSPLIT,$0-32 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-44 - 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 ·seek(SB),NOSPLIT,$0-36 - JMP syscall·seek(SB) - -TEXT ·exit(SB),NOSPLIT,$4-4 - JMP syscall·exit(SB) diff --git a/vendor/github.com/andrewkroh/sys/plan9/asm_plan9_amd64.s b/vendor/github.com/andrewkroh/sys/plan9/asm_plan9_amd64.s deleted file mode 100644 index d3448e6750b..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/asm_plan9_amd64.s +++ /dev/null @@ -1,30 +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. - -#include "textflag.h" - -// -// System call support for amd64, Plan 9 -// - -// 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 ·RawSyscall(SB),NOSPLIT,$0-56 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - JMP syscall·RawSyscall6(SB) - -TEXT ·seek(SB),NOSPLIT,$0-56 - JMP syscall·seek(SB) - -TEXT ·exit(SB),NOSPLIT,$8-8 - JMP syscall·exit(SB) diff --git a/vendor/github.com/andrewkroh/sys/plan9/const_plan9.go b/vendor/github.com/andrewkroh/sys/plan9/const_plan9.go deleted file mode 100644 index 430dac0a0fa..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/const_plan9.go +++ /dev/null @@ -1,59 +0,0 @@ -package plan9 - -// Plan 9 Constants - -// Open modes -const ( - O_RDONLY = 0 - O_WRONLY = 1 - O_RDWR = 2 - O_TRUNC = 16 - O_CLOEXEC = 32 - O_EXCL = 0x1000 -) - -// Rfork flags -const ( - RFNAMEG = 1 << 0 - RFENVG = 1 << 1 - RFFDG = 1 << 2 - RFNOTEG = 1 << 3 - RFPROC = 1 << 4 - RFMEM = 1 << 5 - RFNOWAIT = 1 << 6 - RFCNAMEG = 1 << 10 - RFCENVG = 1 << 11 - RFCFDG = 1 << 12 - RFREND = 1 << 13 - RFNOMNT = 1 << 14 -) - -// Qid.Type bits -const ( - QTDIR = 0x80 - QTAPPEND = 0x40 - QTEXCL = 0x20 - QTMOUNT = 0x10 - QTAUTH = 0x08 - QTTMP = 0x04 - QTFILE = 0x00 -) - -// Dir.Mode bits -const ( - DMDIR = 0x80000000 - DMAPPEND = 0x40000000 - DMEXCL = 0x20000000 - DMMOUNT = 0x10000000 - DMAUTH = 0x08000000 - DMTMP = 0x04000000 - DMREAD = 0x4 - DMWRITE = 0x2 - DMEXEC = 0x1 -) - -const ( - STATMAX = 65535 - ERRMAX = 128 - STATFIXLEN = 49 -) diff --git a/vendor/github.com/andrewkroh/sys/plan9/dir_plan9.go b/vendor/github.com/andrewkroh/sys/plan9/dir_plan9.go deleted file mode 100644 index 0955e0c53e0..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/dir_plan9.go +++ /dev/null @@ -1,212 +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. - -// Plan 9 directory marshalling. See intro(5). - -package plan9 - -import "errors" - -var ( - ErrShortStat = errors.New("stat buffer too short") - ErrBadStat = errors.New("malformed stat buffer") - ErrBadName = errors.New("bad character in file name") -) - -// A Qid represents a 9P server's unique identification for a file. -type Qid struct { - Path uint64 // the file server's unique identification for the file - Vers uint32 // version number for given Path - Type uint8 // the type of the file (plan9.QTDIR for example) -} - -// A Dir contains the metadata for a file. -type Dir struct { - // system-modified data - Type uint16 // server type - Dev uint32 // server subtype - - // file data - Qid Qid // unique id from server - Mode uint32 // permissions - Atime uint32 // last read time - Mtime uint32 // last write time - Length int64 // file length - Name string // last element of path - Uid string // owner name - Gid string // group name - Muid string // last modifier name -} - -var nullDir = Dir{ - Type: ^uint16(0), - Dev: ^uint32(0), - Qid: Qid{ - Path: ^uint64(0), - Vers: ^uint32(0), - Type: ^uint8(0), - }, - Mode: ^uint32(0), - Atime: ^uint32(0), - Mtime: ^uint32(0), - Length: ^int64(0), -} - -// Null assigns special "don't touch" values to members of d to -// avoid modifying them during plan9.Wstat. -func (d *Dir) Null() { *d = nullDir } - -// Marshal encodes a 9P stat message corresponding to d into b -// -// If there isn't enough space in b for a stat message, ErrShortStat is returned. -func (d *Dir) Marshal(b []byte) (n int, err error) { - n = STATFIXLEN + len(d.Name) + len(d.Uid) + len(d.Gid) + len(d.Muid) - if n > len(b) { - return n, ErrShortStat - } - - for _, c := range d.Name { - if c == '/' { - return n, ErrBadName - } - } - - b = pbit16(b, uint16(n)-2) - b = pbit16(b, d.Type) - b = pbit32(b, d.Dev) - b = pbit8(b, d.Qid.Type) - b = pbit32(b, d.Qid.Vers) - b = pbit64(b, d.Qid.Path) - b = pbit32(b, d.Mode) - b = pbit32(b, d.Atime) - b = pbit32(b, d.Mtime) - b = pbit64(b, uint64(d.Length)) - b = pstring(b, d.Name) - b = pstring(b, d.Uid) - b = pstring(b, d.Gid) - b = pstring(b, d.Muid) - - return n, nil -} - -// UnmarshalDir decodes a single 9P stat message from b and returns the resulting Dir. -// -// If b is too small to hold a valid stat message, ErrShortStat is returned. -// -// If the stat message itself is invalid, ErrBadStat is returned. -func UnmarshalDir(b []byte) (*Dir, error) { - if len(b) < STATFIXLEN { - return nil, ErrShortStat - } - size, buf := gbit16(b) - if len(b) != int(size)+2 { - return nil, ErrBadStat - } - b = buf - - var d Dir - d.Type, b = gbit16(b) - d.Dev, b = gbit32(b) - d.Qid.Type, b = gbit8(b) - d.Qid.Vers, b = gbit32(b) - d.Qid.Path, b = gbit64(b) - d.Mode, b = gbit32(b) - d.Atime, b = gbit32(b) - d.Mtime, b = gbit32(b) - - n, b := gbit64(b) - d.Length = int64(n) - - var ok bool - if d.Name, b, ok = gstring(b); !ok { - return nil, ErrBadStat - } - if d.Uid, b, ok = gstring(b); !ok { - return nil, ErrBadStat - } - if d.Gid, b, ok = gstring(b); !ok { - return nil, ErrBadStat - } - if d.Muid, b, ok = gstring(b); !ok { - return nil, ErrBadStat - } - - return &d, nil -} - -// pbit8 copies the 8-bit number v to b and returns the remaining slice of b. -func pbit8(b []byte, v uint8) []byte { - b[0] = byte(v) - return b[1:] -} - -// pbit16 copies the 16-bit number v to b in little-endian order and returns the remaining slice of b. -func pbit16(b []byte, v uint16) []byte { - b[0] = byte(v) - b[1] = byte(v >> 8) - return b[2:] -} - -// pbit32 copies the 32-bit number v to b in little-endian order and returns the remaining slice of b. -func pbit32(b []byte, v uint32) []byte { - b[0] = byte(v) - b[1] = byte(v >> 8) - b[2] = byte(v >> 16) - b[3] = byte(v >> 24) - return b[4:] -} - -// pbit64 copies the 64-bit number v to b in little-endian order and returns the remaining slice of b. -func pbit64(b []byte, v uint64) []byte { - b[0] = byte(v) - b[1] = byte(v >> 8) - b[2] = byte(v >> 16) - b[3] = byte(v >> 24) - b[4] = byte(v >> 32) - b[5] = byte(v >> 40) - b[6] = byte(v >> 48) - b[7] = byte(v >> 56) - return b[8:] -} - -// pstring copies the string s to b, prepending it with a 16-bit length in little-endian order, and -// returning the remaining slice of b.. -func pstring(b []byte, s string) []byte { - b = pbit16(b, uint16(len(s))) - n := copy(b, s) - return b[n:] -} - -// gbit8 reads an 8-bit number from b and returns it with the remaining slice of b. -func gbit8(b []byte) (uint8, []byte) { - return uint8(b[0]), b[1:] -} - -// gbit16 reads a 16-bit number in little-endian order from b and returns it with the remaining slice of b. -func gbit16(b []byte) (uint16, []byte) { - return uint16(b[0]) | uint16(b[1])<<8, b[2:] -} - -// gbit32 reads a 32-bit number in little-endian order from b and returns it with the remaining slice of b. -func gbit32(b []byte) (uint32, []byte) { - return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24, b[4:] -} - -// gbit64 reads a 64-bit number in little-endian order from b and returns it with the remaining slice of b. -func gbit64(b []byte) (uint64, []byte) { - lo := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 - hi := uint32(b[4]) | uint32(b[5])<<8 | uint32(b[6])<<16 | uint32(b[7])<<24 - return uint64(lo) | uint64(hi)<<32, b[8:] -} - -// gstring reads a string from b, prefixed with a 16-bit length in little-endian order. -// It returns the string with the remaining slice of b and a boolean. If the length is -// greater than the number of bytes in b, the boolean will be false. -func gstring(b []byte) (string, []byte, bool) { - n, b := gbit16(b) - if int(n) > len(b) { - return "", b, false - } - return string(b[:n]), b[n:], true -} diff --git a/vendor/github.com/andrewkroh/sys/plan9/env_plan9.go b/vendor/github.com/andrewkroh/sys/plan9/env_plan9.go deleted file mode 100644 index 25a96e7ea9e..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/env_plan9.go +++ /dev/null @@ -1,27 +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. - -// Plan 9 environment variables. - -package plan9 - -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/github.com/andrewkroh/sys/plan9/env_unset.go b/vendor/github.com/andrewkroh/sys/plan9/env_unset.go deleted file mode 100644 index c37fc26e44d..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/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 plan9 - -import "syscall" - -func Unsetenv(key string) error { - // This was added in Go 1.4. - return syscall.Unsetenv(key) -} diff --git a/vendor/github.com/andrewkroh/sys/plan9/errors_plan9.go b/vendor/github.com/andrewkroh/sys/plan9/errors_plan9.go deleted file mode 100644 index 110cf6a3027..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/errors_plan9.go +++ /dev/null @@ -1,50 +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 plan9 - -import "syscall" - -// Constants -const ( - // Invented values to support what package os expects. - O_CREAT = 0x02000 - O_APPEND = 0x00400 - O_NOCTTY = 0x00000 - O_NONBLOCK = 0x00000 - O_SYNC = 0x00000 - O_ASYNC = 0x00000 - - S_IFMT = 0x1f000 - S_IFIFO = 0x1000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFBLK = 0x6000 - S_IFREG = 0x8000 - S_IFLNK = 0xa000 - S_IFSOCK = 0xc000 -) - -// Errors -var ( - EINVAL = syscall.NewError("bad arg in system call") - ENOTDIR = syscall.NewError("not a directory") - EISDIR = syscall.NewError("file is a directory") - ENOENT = syscall.NewError("file does not exist") - EEXIST = syscall.NewError("file already exists") - EMFILE = syscall.NewError("no free file descriptors") - EIO = syscall.NewError("i/o error") - ENAMETOOLONG = syscall.NewError("file name too long") - EINTR = syscall.NewError("interrupted") - EPERM = syscall.NewError("permission denied") - EBUSY = syscall.NewError("no free devices") - ETIMEDOUT = syscall.NewError("connection timed out") - EPLAN9 = syscall.NewError("not supported by plan 9") - - // The following errors do not correspond to any - // Plan 9 system messages. Invented to support - // what package os and others expect. - EACCES = syscall.NewError("access permission denied") - EAFNOSUPPORT = syscall.NewError("address family not supported by protocol") -) diff --git a/vendor/github.com/andrewkroh/sys/plan9/mkall.sh b/vendor/github.com/andrewkroh/sys/plan9/mkall.sh deleted file mode 100755 index 9f73c60660b..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/mkall.sh +++ /dev/null @@ -1,138 +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. - -# The plan9 package provides access to the raw system call -# interface of the underlying operating system. Porting Go to -# a new architecture/operating system combination requires -# some manual effort, though there are tools that automate -# much of the process. The auto-generated files have names -# beginning with z. -# -# This script runs or (given -n) prints suggested commands to generate z files -# for the current system. Running those commands is not automatic. -# This script is documentation more than anything else. -# -# * asm_${GOOS}_${GOARCH}.s -# -# This hand-written assembly file 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. -# -# * syscall_${GOOS}.go -# -# This hand-written Go file implements system calls that need -# special handling and lists "//sys" comments giving prototypes -# for ones that can be auto-generated. Mksyscall reads those -# comments to generate the stubs. -# -# * syscall_${GOOS}_${GOARCH}.go -# -# Same as syscall_${GOOS}.go except that it contains code specific -# to ${GOOS} on one particular architecture. -# -# * types_${GOOS}.c -# -# This hand-written C file includes standard C headers and then -# creates typedef or enum names beginning with a dollar sign -# (use of $ in variable names is a gcc extension). The hardest -# part about preparing this file is figuring out which headers to -# include and which symbols need to be #defined to get the -# actual data structures that pass through to the kernel system calls. -# Some C libraries present 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.c and types_linux.c for examples. -# -# * zerror_${GOOS}_${GOARCH}.go -# -# This machine-generated file defines the system's error numbers, -# error strings, and signal numbers. The generator is "mkerrors.sh". -# Usually no arguments are needed, but mkerrors.sh will pass its -# arguments on to godefs. -# -# * zsyscall_${GOOS}_${GOARCH}.go -# -# Generated by mksyscall.pl; see syscall_${GOOS}.go above. -# -# * zsysnum_${GOOS}_${GOARCH}.go -# -# Generated by mksysnum_${GOOS}. -# -# * ztypes_${GOOS}_${GOARCH}.go -# -# Generated by godefs; see types_${GOOS}.c above. - -GOOSARCH="${GOOS}_${GOARCH}" - -# defaults -mksyscall="./mksyscall.pl" -mkerrors="./mkerrors.sh" -zerrors="zerrors_$GOOSARCH.go" -mksysctl="" -zsysctl="zsysctl_$GOOSARCH.go" -mksysnum= -mktypes= -run="sh" - -case "$1" in --syscalls) - for i in zsyscall*go - do - sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i - rm _$i - done - exit 0 - ;; --n) - run="cat" - shift -esac - -case "$#" in -0) - ;; -*) - echo 'usage: mkall.sh [-n]' 1>&2 - exit 2 -esac - -case "$GOOSARCH" in -_* | *_ | _) - echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 - exit 1 - ;; -plan9_386) - mkerrors= - mksyscall="./mksyscall.pl -l32 -plan9" - mksysnum="./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h" - mktypes="XXX" - ;; -*) - echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 - exit 1 - ;; -esac - -( - if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi - case "$GOOS" in - plan9) - syscall_goos="syscall_$GOOS.go" - if [ -n "$mksyscall" ]; then echo "$mksyscall $syscall_goos syscall_$GOOSARCH.go |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 |gofmt >ztypes_$GOOSARCH.go"; fi -) | $run diff --git a/vendor/github.com/andrewkroh/sys/plan9/mkerrors.sh b/vendor/github.com/andrewkroh/sys/plan9/mkerrors.sh deleted file mode 100755 index 052c86d947f..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/mkerrors.sh +++ /dev/null @@ -1,246 +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 - -CC=${CC:-gcc} - -uname=$(uname) - -includes=' -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -' - -ccflags="$@" - -# Write go tool cgo -godefs input. -( - echo package plan9 - echo - echo '/*' - indirect="includes_$(uname)" - echo "${!indirect} $includes" - echo '*/' - echo 'import "C"' - 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 !~ /^ETH_/ && - $2 !~ /^EPROC_/ && - $2 !~ /^EQUIV_/ && - $2 !~ /^EXPR_/ && - $2 ~ /^E[A-Z0-9_]+$/ || - $2 ~ /^B[0-9_]+$/ || - $2 ~ /^V[A-Z0-9]+$/ || - $2 ~ /^CS[A-Z0-9]/ || - $2 ~ /^I(SIG|CANON|CRNL|EXTEN|MAXBEL|STRIP|UTF8)$/ || - $2 ~ /^IGN/ || - $2 ~ /^IX(ON|ANY|OFF)$/ || - $2 ~ /^IN(LCR|PCK)$/ || - $2 ~ /(^FLU?SH)|(FLU?SH$)/ || - $2 ~ /^C(LOCAL|READ)$/ || - $2 == "BRKINT" || - $2 == "HUPCL" || - $2 == "PENDIN" || - $2 == "TOSTOP" || - $2 ~ /^PAR/ || - $2 ~ /^SIG[^_]/ || - $2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ || - $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 == "ICMPV6_FILTER" || - $2 == "SOMAXCONN" || - $2 == "NAME_MAX" || - $2 == "IFNAMSIZ" || - $2 ~ /^CTL_(MAXNAME|NET|QUERY)$/ || - $2 ~ /^SYSCTL_VERS/ || - $2 ~ /^(MS|MNT)_/ || - $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || - $2 ~ /^(O|F|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 !~ "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|NOFILE|STACK)|RLIM_INFINITY/ || - $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || - $2 ~ /^CLONE_[A-Z_]+/ || - $2 !~ /^(BPF_TIMEVAL)$/ && - $2 ~ /^(BPF|DLT)_/ || - $2 !~ "WMESGLEN" && - $2 ~ /^W[A-Z0-9]+$/ {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 '// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT' -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/=\(.*\)/= Errno(\1)/' -echo ')' - -echo -echo '// Signals' -echo 'const (' -cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= 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, j, 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/github.com/andrewkroh/sys/plan9/mksyscall.pl b/vendor/github.com/andrewkroh/sys/plan9/mksyscall.pl deleted file mode 100755 index ce8e1e4f33f..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/mksyscall.pl +++ /dev/null @@ -1,319 +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_plan9.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 $nacl = 0; -my $arm = 0; # 64-bit value should use (even, odd)-pair - -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 "-nacl") { - $nacl = 1; - shift; -} -if($ARGV[0] eq "-arm") { - $arm = 1; - shift; -} - -if($ARGV[0] =~ /^-/) { - print STDERR "usage: mksyscall.pl [-b32 | -l32] [file ...]\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 @uses = (); - 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))"; - push @uses, "use(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))"; - push @uses, "use(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/; - if($nacl) { - $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"; - } - foreach my $use (@uses) { - $text .= "\t$use\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 = e1\n"; - $text .= "\t}\n"; - } - $text .= "\treturn\n"; - $text .= "}\n\n"; -} - -chomp $text; -chomp $text; - -if($errors) { - exit 1; -} - -print <= 10 { - buf[i] = byte(val%10 + '0') - i-- - val /= 10 - } - buf[i] = byte(val + '0') - return string(buf[i:]) -} diff --git a/vendor/github.com/andrewkroh/sys/plan9/syscall.go b/vendor/github.com/andrewkroh/sys/plan9/syscall.go deleted file mode 100644 index df6f8c5b922..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/syscall.go +++ /dev/null @@ -1,74 +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 plan9 - -// Package plan9 contains an interface to the low-level operating system -// primitives. OS details vary depending on the underlying system, and -// by default, godoc will display the OS-specific documentation for the current -// system. If you want godoc to display 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.ErrorString. -package plan9 // import "golang.org/x/sys/plan9" - -import "unsafe" - -// 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 mksyscall.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 -} - -// use is a no-op, but the compiler cannot see that it is. -// Calling use(p) ensures that p is kept live until that point. -//go:noescape -func use(p unsafe.Pointer) diff --git a/vendor/github.com/andrewkroh/sys/plan9/syscall_plan9.go b/vendor/github.com/andrewkroh/sys/plan9/syscall_plan9.go deleted file mode 100644 index d39d07de1e3..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/syscall_plan9.go +++ /dev/null @@ -1,349 +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. - -// Plan 9 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 plan9 - -import ( - "syscall" - "unsafe" -) - -// A Note is a string describing a process note. -// It implements the os.Signal interface. -type Note string - -func (n Note) Signal() {} - -func (n Note) String() string { - return string(n) -} - -var ( - Stdin = 0 - Stdout = 1 - Stderr = 2 -) - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.ErrorString) -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.ErrorString) -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) - -func atoi(b []byte) (n uint) { - n = 0 - for i := 0; i < len(b); i++ { - n = n*10 + uint(b[i]-'0') - } - return -} - -func cstring(s []byte) string { - for i := range s { - if s[i] == 0 { - return string(s[0:i]) - } - } - return string(s) -} - -func errstr() string { - var buf [ERRMAX]byte - - RawSyscall(SYS_ERRSTR, uintptr(unsafe.Pointer(&buf[0])), uintptr(len(buf)), 0) - - buf[len(buf)-1] = 0 - return cstring(buf[:]) -} - -// Implemented in assembly to import from runtime. -func exit(code int) - -func Exit(code int) { exit(code) } - -func readnum(path string) (uint, error) { - var b [12]byte - - fd, e := Open(path, O_RDONLY) - if e != nil { - return 0, e - } - defer Close(fd) - - n, e := Pread(fd, b[:], 0) - - if e != nil { - return 0, e - } - - m := 0 - for ; m < n && b[m] == ' '; m++ { - } - - return atoi(b[m : n-1]), nil -} - -func Getpid() (pid int) { - n, _ := readnum("#c/pid") - return int(n) -} - -func Getppid() (ppid int) { - n, _ := readnum("#c/ppid") - return int(n) -} - -func Read(fd int, p []byte) (n int, err error) { - return Pread(fd, p, -1) -} - -func Write(fd int, p []byte) (n int, err error) { - return Pwrite(fd, p, -1) -} - -var ioSync int64 - -//sys fd2path(fd int, buf []byte) (err error) -func Fd2path(fd int) (path string, err error) { - var buf [512]byte - - e := fd2path(fd, buf[:]) - if e != nil { - return "", e - } - return cstring(buf[:]), nil -} - -//sys pipe(p *[2]int32) (err error) -func Pipe(p []int) (err error) { - if len(p) != 2 { - return syscall.ErrorString("bad arg in system call") - } - var pp [2]int32 - err = pipe(&pp) - 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(placeholder uintptr, fd int, offset int64, whence int) (newoffset int64, err string) - -func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - newoffset, e := seek(0, fd, offset, whence) - - if newoffset == -1 { - err = syscall.ErrorString(e) - } - return -} - -func Mkdir(path string, mode uint32) (err error) { - fd, err := Create(path, O_RDONLY, DMDIR|mode) - - if fd != -1 { - Close(fd) - } - - return -} - -type Waitmsg struct { - Pid int - Time [3]uint32 - Msg string -} - -func (w Waitmsg) Exited() bool { return true } -func (w Waitmsg) Signaled() bool { return false } - -func (w Waitmsg) ExitStatus() int { - if len(w.Msg) == 0 { - // a normal exit returns no message - return 0 - } - return 1 -} - -//sys await(s []byte) (n int, err error) -func Await(w *Waitmsg) (err error) { - var buf [512]byte - var f [5][]byte - - n, err := await(buf[:]) - - if err != nil || w == nil { - return - } - - nf := 0 - p := 0 - for i := 0; i < n && nf < len(f)-1; i++ { - if buf[i] == ' ' { - f[nf] = buf[p:i] - p = i + 1 - nf++ - } - } - f[nf] = buf[p:] - nf++ - - if nf != len(f) { - return syscall.ErrorString("invalid wait message") - } - w.Pid = int(atoi(f[0])) - w.Time[0] = uint32(atoi(f[1])) - w.Time[1] = uint32(atoi(f[2])) - w.Time[2] = uint32(atoi(f[3])) - w.Msg = cstring(f[4]) - if w.Msg == "''" { - // await() returns '' for no error - w.Msg = "" - } - return -} - -func Unmount(name, old string) (err error) { - fixwd() - oldp, err := BytePtrFromString(old) - if err != nil { - return err - } - oldptr := uintptr(unsafe.Pointer(oldp)) - - var r0 uintptr - var e syscall.ErrorString - - // bind(2) man page: If name is zero, everything bound or mounted upon old is unbound or unmounted. - if name == "" { - r0, _, e = Syscall(SYS_UNMOUNT, _zero, oldptr, 0) - } else { - namep, err := BytePtrFromString(name) - if err != nil { - return err - } - r0, _, e = Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(namep)), oldptr, 0) - } - - if int32(r0) == -1 { - err = e - } - return -} - -func Fchdir(fd int) (err error) { - path, err := Fd2path(fd) - - if err != nil { - return - } - - return Chdir(path) -} - -type Timespec struct { - Sec int32 - Nsec int32 -} - -type Timeval struct { - Sec int32 - Usec int32 -} - -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 nsec() int64 { - var scratch int64 - - r0, _, _ := Syscall(SYS_NSEC, uintptr(unsafe.Pointer(&scratch)), 0, 0) - // TODO(aram): remove hack after I fix _nsec in the pc64 kernel. - if r0 == 0 { - return scratch - } - return int64(r0) -} - -func Gettimeofday(tv *Timeval) error { - nsec := nsec() - *tv = NsecToTimeval(nsec) - return nil -} - -func Getpagesize() int { return 0x1000 } - -func Getegid() (egid int) { return -1 } -func Geteuid() (euid int) { return -1 } -func Getgid() (gid int) { return -1 } -func Getuid() (uid int) { return -1 } - -func Getgroups() (gids []int, err error) { - return make([]int, 0), nil -} - -//sys open(path string, mode int) (fd int, err error) -func Open(path string, mode int) (fd int, err error) { - fixwd() - return open(path, mode) -} - -//sys create(path string, mode int, perm uint32) (fd int, err error) -func Create(path string, mode int, perm uint32) (fd int, err error) { - fixwd() - return create(path, mode, perm) -} - -//sys remove(path string) (err error) -func Remove(path string) error { - fixwd() - return remove(path) -} - -//sys stat(path string, edir []byte) (n int, err error) -func Stat(path string, edir []byte) (n int, err error) { - fixwd() - return stat(path, edir) -} - -//sys bind(name string, old string, flag int) (err error) -func Bind(name string, old string, flag int) (err error) { - fixwd() - return bind(name, old, flag) -} - -//sys mount(fd int, afd int, old string, flag int, aname string) (err error) -func Mount(fd int, afd int, old string, flag int, aname string) (err error) { - fixwd() - return mount(fd, afd, old, flag, aname) -} - -//sys wstat(path string, edir []byte) (err error) -func Wstat(path string, edir []byte) (err error) { - fixwd() - return wstat(path, edir) -} - -//sys chdir(path string) (err error) -//sys Dup(oldfd int, newfd int) (fd 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 Close(fd int) (err error) -//sys Fstat(fd int, edir []byte) (n int, err error) -//sys Fwstat(fd int, edir []byte) (err error) diff --git a/vendor/github.com/andrewkroh/sys/plan9/zsyscall_plan9_386.go b/vendor/github.com/andrewkroh/sys/plan9/zsyscall_plan9_386.go deleted file mode 100644 index b35598ad94d..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/zsyscall_plan9_386.go +++ /dev/null @@ -1,292 +0,0 @@ -// mksyscall.pl -l32 -plan9 syscall_plan9.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -package plan9 - -import "unsafe" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fd2path(fd int, buf []byte) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]int32) (err error) { - r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func await(s []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(s) > 0 { - _p0 = unsafe.Pointer(&s[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0) - n = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func open(path string, mode int) (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), 0) - use(unsafe.Pointer(_p0)) - fd = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func create(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_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - use(unsafe.Pointer(_p0)) - fd = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func remove(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) - use(unsafe.Pointer(_p0)) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, edir []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(edir) > 0 { - _p1 = unsafe.Pointer(&edir[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) - use(unsafe.Pointer(_p0)) - n = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(name string, old string, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(old) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(fd int, afd int, old string, flag int, aname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(old) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(aname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wstat(path string, edir []byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(edir) > 0 { - _p1 = unsafe.Pointer(&edir[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) - use(unsafe.Pointer(_p0)) - if int32(r0) == -1 { - err = 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 - } - r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - use(unsafe.Pointer(_p0)) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int, newfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0) - fd = int(r0) - if int32(r0) == -1 { - err = 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 int32(r0) == -1 { - err = 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 int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, edir []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(edir) > 0 { - _p0 = unsafe.Pointer(&edir[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) - n = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fwstat(fd int, edir []byte) (err error) { - var _p0 unsafe.Pointer - if len(edir) > 0 { - _p0 = unsafe.Pointer(&edir[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) - if int32(r0) == -1 { - err = e1 - } - return -} diff --git a/vendor/github.com/andrewkroh/sys/plan9/zsyscall_plan9_amd64.go b/vendor/github.com/andrewkroh/sys/plan9/zsyscall_plan9_amd64.go deleted file mode 100644 index b35598ad94d..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/zsyscall_plan9_amd64.go +++ /dev/null @@ -1,292 +0,0 @@ -// mksyscall.pl -l32 -plan9 syscall_plan9.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -package plan9 - -import "unsafe" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fd2path(fd int, buf []byte) (err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]int32) (err error) { - r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func await(s []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(s) > 0 { - _p0 = unsafe.Pointer(&s[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0) - n = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func open(path string, mode int) (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), 0) - use(unsafe.Pointer(_p0)) - fd = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func create(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_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) - use(unsafe.Pointer(_p0)) - fd = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func remove(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) - use(unsafe.Pointer(_p0)) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func stat(path string, edir []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(edir) > 0 { - _p1 = unsafe.Pointer(&edir[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) - use(unsafe.Pointer(_p0)) - n = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func bind(name string, old string, flag int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(old) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(fd int, afd int, old string, flag int, aname string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(old) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(aname) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wstat(path string, edir []byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(edir) > 0 { - _p1 = unsafe.Pointer(&edir[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) - use(unsafe.Pointer(_p0)) - if int32(r0) == -1 { - err = 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 - } - r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - use(unsafe.Pointer(_p0)) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int, newfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0) - fd = int(r0) - if int32(r0) == -1 { - err = 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 int32(r0) == -1 { - err = 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 int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstat(fd int, edir []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(edir) > 0 { - _p0 = unsafe.Pointer(&edir[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) - n = int(r0) - if int32(r0) == -1 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fwstat(fd int, edir []byte) (err error) { - var _p0 unsafe.Pointer - if len(edir) > 0 { - _p0 = unsafe.Pointer(&edir[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) - if int32(r0) == -1 { - err = e1 - } - return -} diff --git a/vendor/github.com/andrewkroh/sys/plan9/zsysnum_plan9.go b/vendor/github.com/andrewkroh/sys/plan9/zsysnum_plan9.go deleted file mode 100644 index 22e8abd43d8..00000000000 --- a/vendor/github.com/andrewkroh/sys/plan9/zsysnum_plan9.go +++ /dev/null @@ -1,49 +0,0 @@ -// mksysnum_plan9.sh /opt/plan9/sys/src/libc/9syscall/sys.h -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -package plan9 - -const ( - SYS_SYSR1 = 0 - SYS_BIND = 2 - SYS_CHDIR = 3 - SYS_CLOSE = 4 - SYS_DUP = 5 - SYS_ALARM = 6 - SYS_EXEC = 7 - SYS_EXITS = 8 - SYS_FAUTH = 10 - SYS_SEGBRK = 12 - SYS_OPEN = 14 - SYS_OSEEK = 16 - SYS_SLEEP = 17 - SYS_RFORK = 19 - SYS_PIPE = 21 - SYS_CREATE = 22 - SYS_FD2PATH = 23 - SYS_BRK_ = 24 - SYS_REMOVE = 25 - SYS_NOTIFY = 28 - SYS_NOTED = 29 - SYS_SEGATTACH = 30 - SYS_SEGDETACH = 31 - SYS_SEGFREE = 32 - SYS_SEGFLUSH = 33 - SYS_RENDEZVOUS = 34 - SYS_UNMOUNT = 35 - SYS_SEMACQUIRE = 37 - SYS_SEMRELEASE = 38 - SYS_SEEK = 39 - SYS_FVERSION = 40 - SYS_ERRSTR = 41 - SYS_STAT = 42 - SYS_FSTAT = 43 - SYS_WSTAT = 44 - SYS_FWSTAT = 45 - SYS_MOUNT = 46 - SYS_AWAIT = 47 - SYS_PREAD = 50 - SYS_PWRITE = 51 - SYS_TSEMACQUIRE = 52 - SYS_NSEC = 53 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/asm.s b/vendor/github.com/andrewkroh/sys/unix/asm.s deleted file mode 100644 index 8ed2fdb94b1..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/asm.s +++ /dev/null @@ -1,10 +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" - -TEXT ·use(SB),NOSPLIT,$0 - RET diff --git a/vendor/github.com/andrewkroh/sys/unix/asm_darwin_386.s b/vendor/github.com/andrewkroh/sys/unix/asm_darwin_386.s deleted file mode 100644 index 8a7278319e3..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_darwin_amd64.s b/vendor/github.com/andrewkroh/sys/unix/asm_darwin_amd64.s deleted file mode 100644 index 6321421f272..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_darwin_arm.s b/vendor/github.com/andrewkroh/sys/unix/asm_darwin_arm.s deleted file mode 100644 index 333242d5061..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_darwin_arm64.s b/vendor/github.com/andrewkroh/sys/unix/asm_darwin_arm64.s deleted file mode 100644 index 97e01743718..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_dragonfly_386.s b/vendor/github.com/andrewkroh/sys/unix/asm_dragonfly_386.s deleted file mode 100644 index 7e55e0d3175..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/asm_dragonfly_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-32 - JMP syscall·Syscall(SB) - -TEXT ·Syscall6(SB),NOSPLIT,$0-44 - JMP syscall·Syscall6(SB) - -TEXT ·Syscall9(SB),NOSPLIT,$0-56 - JMP syscall·Syscall9(SB) - -TEXT ·RawSyscall(SB),NOSPLIT,$0-32 - JMP syscall·RawSyscall(SB) - -TEXT ·RawSyscall6(SB),NOSPLIT,$0-44 - JMP syscall·RawSyscall6(SB) diff --git a/vendor/github.com/andrewkroh/sys/unix/asm_dragonfly_amd64.s b/vendor/github.com/andrewkroh/sys/unix/asm_dragonfly_amd64.s deleted file mode 100644 index d5ed6726cc1..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_freebsd_386.s b/vendor/github.com/andrewkroh/sys/unix/asm_freebsd_386.s deleted file mode 100644 index c9a0a260156..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_freebsd_amd64.s b/vendor/github.com/andrewkroh/sys/unix/asm_freebsd_amd64.s deleted file mode 100644 index 35172477c86..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_freebsd_arm.s b/vendor/github.com/andrewkroh/sys/unix/asm_freebsd_arm.s deleted file mode 100644 index 9227c875bfe..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_linux_386.s b/vendor/github.com/andrewkroh/sys/unix/asm_linux_386.s deleted file mode 100644 index 4db2909323f..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_linux_amd64.s b/vendor/github.com/andrewkroh/sys/unix/asm_linux_amd64.s deleted file mode 100644 index 44e25c62f92..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_linux_arm.s b/vendor/github.com/andrewkroh/sys/unix/asm_linux_arm.s deleted file mode 100644 index cf0b5746582..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_linux_arm64.s b/vendor/github.com/andrewkroh/sys/unix/asm_linux_arm64.s deleted file mode 100644 index 4be9bfedeaf..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_linux_ppc64x.s b/vendor/github.com/andrewkroh/sys/unix/asm_linux_ppc64x.s deleted file mode 100644 index 8d231feb4b9..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_netbsd_386.s b/vendor/github.com/andrewkroh/sys/unix/asm_netbsd_386.s deleted file mode 100644 index 48bdcd7632a..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_netbsd_amd64.s b/vendor/github.com/andrewkroh/sys/unix/asm_netbsd_amd64.s deleted file mode 100644 index 2ede05c72f0..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_netbsd_arm.s b/vendor/github.com/andrewkroh/sys/unix/asm_netbsd_arm.s deleted file mode 100644 index e8928571c45..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_openbsd_386.s b/vendor/github.com/andrewkroh/sys/unix/asm_openbsd_386.s deleted file mode 100644 index 00576f3c835..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_openbsd_amd64.s b/vendor/github.com/andrewkroh/sys/unix/asm_openbsd_amd64.s deleted file mode 100644 index 790ef77f86e..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/asm_solaris_amd64.s b/vendor/github.com/andrewkroh/sys/unix/asm_solaris_amd64.s deleted file mode 100644 index 43ed17a05f3..00000000000 --- a/vendor/github.com/andrewkroh/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-64 - JMP syscall·sysvicall6(SB) - -TEXT ·rawSysvicall6(SB),NOSPLIT,$0-64 - JMP syscall·rawSysvicall6(SB) diff --git a/vendor/github.com/andrewkroh/sys/unix/constants.go b/vendor/github.com/andrewkroh/sys/unix/constants.go deleted file mode 100644 index a96f0ebc264..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/env_unix.go b/vendor/github.com/andrewkroh/sys/unix/env_unix.go deleted file mode 100644 index 45e281a047d..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/env_unset.go b/vendor/github.com/andrewkroh/sys/unix/env_unset.go deleted file mode 100644 index 9222262559b..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/flock.go b/vendor/github.com/andrewkroh/sys/unix/flock.go deleted file mode 100644 index ce67a59528a..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/flock.go +++ /dev/null @@ -1,24 +0,0 @@ -// +build linux darwin freebsd openbsd netbsd dragonfly - -// 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/github.com/andrewkroh/sys/unix/flock_linux_32bit.go b/vendor/github.com/andrewkroh/sys/unix/flock_linux_32bit.go deleted file mode 100644 index 362831c3f70..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/flock_linux_32bit.go +++ /dev/null @@ -1,13 +0,0 @@ -// +build linux,386 linux,arm - -// 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/github.com/andrewkroh/sys/unix/gccgo.go b/vendor/github.com/andrewkroh/sys/unix/gccgo.go deleted file mode 100644 index 94c82321247..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/gccgo_c.c b/vendor/github.com/andrewkroh/sys/unix/gccgo_c.c deleted file mode 100644 index 07f6be0392e..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/gccgo_linux_amd64.go b/vendor/github.com/andrewkroh/sys/unix/gccgo_linux_amd64.go deleted file mode 100644 index bffe1a77db5..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/mkall.sh b/vendor/github.com/andrewkroh/sys/unix/mkall.sh deleted file mode 100755 index de95a4bbcf5..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/mkall.sh +++ /dev/null @@ -1,274 +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. - -# The unix package provides access to the raw system call -# interface of the underlying operating system. Porting Go to -# a new architecture/operating system combination requires -# some manual effort, though there are tools that automate -# much of the process. The auto-generated files have names -# beginning with z. -# -# This script runs or (given -n) prints suggested commands to generate z files -# for the current system. Running those commands is not automatic. -# This script is documentation more than anything else. -# -# * asm_${GOOS}_${GOARCH}.s -# -# This hand-written assembly file 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. -# -# * syscall_${GOOS}.go -# -# This hand-written Go file implements system calls that need -# special handling and lists "//sys" comments giving prototypes -# for ones that can be auto-generated. Mksyscall reads those -# comments to generate the stubs. -# -# * syscall_${GOOS}_${GOARCH}.go -# -# Same as syscall_${GOOS}.go except that it contains code specific -# to ${GOOS} on one particular architecture. -# -# * types_${GOOS}.c -# -# This hand-written C file includes standard C headers and then -# creates typedef or enum names beginning with a dollar sign -# (use of $ in variable names is a gcc extension). The hardest -# part about preparing this file is figuring out which headers to -# include and which symbols need to be #defined to get the -# actual data structures that pass through to the kernel system calls. -# Some C libraries present 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.c and types_linux.c for examples. -# -# * zerror_${GOOS}_${GOARCH}.go -# -# This machine-generated file defines the system's error numbers, -# error strings, and signal numbers. The generator is "mkerrors.sh". -# Usually no arguments are needed, but mkerrors.sh will pass its -# arguments on to godefs. -# -# * zsyscall_${GOOS}_${GOARCH}.go -# -# Generated by mksyscall.pl; see syscall_${GOOS}.go above. -# -# * zsysnum_${GOOS}_${GOARCH}.go -# -# Generated by mksysnum_${GOOS}. -# -# * ztypes_${GOOS}_${GOARCH}.go -# -# Generated by godefs; see types_${GOOS}.c above. - -GOOSARCH="${GOOS}_${GOARCH}" - -# defaults -mksyscall="./mksyscall.pl" -mkerrors="./mkerrors.sh" -zerrors="zerrors_$GOOSARCH.go" -mksysctl="" -zsysctl="zsysctl_$GOOSARCH.go" -mksysnum= -mktypes= -run="sh" - -case "$1" in --syscalls) - for i in zsyscall*go - do - sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i - rm _$i - done - exit 0 - ;; --n) - run="cat" - shift -esac - -case "$#" in -0) - ;; -*) - echo 'usage: mkall.sh [-n]' 1>&2 - exit 2 -esac - -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 /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 singed for making the bare syscall - # API consistent across over platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -linux_386) - mkerrors="$mkerrors -m32" - mksyscall="./mksyscall.pl -l32" - mksysnum="./mksysnum_linux.pl /usr/include/asm/unistd_32.h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -linux_amd64) - unistd_h=$(ls -1 /usr/include/asm/unistd_64.h /usr/include/x86_64-linux-gnu/asm/unistd_64.h 2>/dev/null | head -1) - if [ "$unistd_h" = "" ]; then - echo >&2 cannot find unistd_64.h - exit 1 - fi - mkerrors="$mkerrors -m64" - mksysnum="./mksysnum_linux.pl $unistd_h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -linux_arm) - mkerrors="$mkerrors" - mksyscall="./mksyscall.pl -l32 -arm" - mksysnum="curl -s 'http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/arch/arm/include/uapi/asm/unistd.h' | ./mksysnum_linux.pl -" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -linux_arm64) - unistd_h=$(ls -1 /usr/include/asm/unistd.h /usr/include/asm-generic/unistd.h 2>/dev/null | head -1) - if [ "$unistd_h" = "" ]; then - echo >&2 cannot find unistd_64.h - exit 1 - fi - mksysnum="./mksysnum_linux.pl $unistd_h" - # Let the type of C char be singed for making the bare syscall - # API consistent across over platforms. - mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" - ;; -linux_ppc64) - GOOSARCH_in=syscall_linux_ppc64x.go - unistd_h=/usr/include/asm/unistd.h - mkerrors="$mkerrors -m64" - mksysnum="./mksysnum_linux.pl $unistd_h" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" - ;; -linux_ppc64le) - GOOSARCH_in=syscall_linux_ppc64x.go - unistd_h=/usr/include/powerpc64le-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" - ;; -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" - ;; -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 $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 "echo // +build $GOARCH,$GOOS > ztypes_$GOOSARCH.go"; - echo "$mktypes types_$GOOS.go | gofmt >>ztypes_$GOOSARCH.go"; - fi -) | $run diff --git a/vendor/github.com/andrewkroh/sys/unix/mkerrors.sh b/vendor/github.com/andrewkroh/sys/unix/mkerrors.sh deleted file mode 100755 index 785855f0701..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/mkerrors.sh +++ /dev/null @@ -1,466 +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 - -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 -' - -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 - -#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 - -#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 -' - -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 ~ /^V[A-Z0-9]+$/ || - $2 ~ /^CS[A-Z0-9]/ || - $2 ~ /^I(SIG|CANON|CRNL|EXTEN|MAXBEL|STRIP|UTF8)$/ || - $2 ~ /^IGN/ || - $2 ~ /^IX(ON|ANY|OFF)$/ || - $2 ~ /^IN(LCR|PCK)$/ || - $2 ~ /(^FLU?SH)|(FLU?SH$)/ || - $2 ~ /^C(LOCAL|READ)$/ || - $2 == "BRKINT" || - $2 == "HUPCL" || - $2 == "PENDIN" || - $2 == "TOSTOP" || - $2 ~ /^PAR/ || - $2 ~ /^SIG[^_]/ || - $2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ || - $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 == "ICMPV6_FILTER" || - $2 == "SOMAXCONN" || - $2 == "NAME_MAX" || - $2 == "IFNAMSIZ" || - $2 ~ /^CTL_(MAXNAME|NET|QUERY)$/ || - $2 ~ /^SYSCTL_VERS/ || - $2 ~ /^(MS|MNT)_/ || - $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || - $2 ~ /^(O|F|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|SBRK|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|NOFILE|STACK)|RLIM_INFINITY/ || - $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || - $2 ~ /^CLONE_[A-Z_]+/ || - $2 !~ /^(BPF_TIMEVAL)$/ && - $2 ~ /^(BPF|DLT)_/ || - $2 ~ /^CLOCK_/ || - $2 !~ "WMESGLEN" && - $2 ~ /^W[A-Z0-9]+$/ {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 '// MACHINE GENERATED BY THE COMMAND ABOVE; 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, j, 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/github.com/andrewkroh/sys/unix/mksyscall.pl b/vendor/github.com/andrewkroh/sys/unix/mksyscall.pl deleted file mode 100755 index b1e7766daeb..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/mksyscall.pl +++ /dev/null @@ -1,323 +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 - -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] =~ /^-/) { - print STDERR "usage: mksyscall.pl [-b32 | -l32] [file ...]\n"; - exit 1; -} - -if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") { - print STDERR "GOARCH or GOOS not defined in environment\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 @uses = (); - 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))"; - push @uses, "use(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))"; - push @uses, "use(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"; - } - foreach my $use (@uses) { - $text .= "\t$use\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 @uses = (); - 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))"; - push @uses, "use(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))"; - push @uses, "use(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"; - } - foreach my $use (@uses) { - $text .= "\t$use\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'; - } - if($name =~ /^SYS_CAP_+/ || $name =~ /^SYS___CAP_+/){ - next - } - - print " $name = $num; // $proto\n"; - - # We keep Capsicum syscall numbers for FreeBSD - # 9-STABLE here because we are not sure whether they - # are mature and stable. - if($num == 513){ - print " SYS_CAP_NEW = 514 // { int cap_new(int fd, uint64_t rights); }\n"; - print " SYS_CAP_GETRIGHTS = 515 // { int cap_getrights(int fd, \\\n"; - print " SYS_CAP_ENTER = 516 // { int cap_enter(void); }\n"; - print " SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); }\n"; - } - } -} - -print < 999){ - # ignore deprecated syscalls that are no longer implemented - # https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h?id=refs/heads/master#n716 - return; - } - $name =~ y/a-z/A-Z/; - print " SYS_$name = $num;\n"; -} - -my $prev; -open(GCC, "gcc -E -dD $ARGV[0] |") || die "can't run gcc"; -while(){ - if(/^#define __NR_syscalls\s+/) { - # ignore redefinitions of __NR_syscalls - } - elsif(/^#define __NR_(\w+)\s+([0-9]+)/){ - $prev = $2; - fmt($1, $2); - } - elsif(/^#define __NR3264_(\w+)\s+([0-9]+)/){ - $prev = $2; - fmt($1, $2); - } - elsif(/^#define __NR_(\w+)\s+\(\w+\+\s*([0-9]+)\)/){ - fmt($1, $prev+$2) - } -} - -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 '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 < 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/github.com/andrewkroh/sys/unix/str.go b/vendor/github.com/andrewkroh/sys/unix/str.go deleted file mode 100644 index 35ed6643536..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/syscall.go b/vendor/github.com/andrewkroh/sys/unix/syscall.go deleted file mode 100644 index 6442a9939e2..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall.go +++ /dev/null @@ -1,74 +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" - -import "unsafe" - -// 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 -} - -// use is a no-op, but the compiler cannot see that it is. -// Calling use(p) ensures that p is kept live until that point. -//go:noescape -func use(p unsafe.Pointer) diff --git a/vendor/github.com/andrewkroh/sys/unix/syscall_bsd.go b/vendor/github.com/andrewkroh/sys/unix/syscall_bsd.go deleted file mode 100644 index e9671764ccb..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_bsd.go +++ /dev/null @@ -1,628 +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) { - mib, err := sysctlmib(name, args...) - if err != nil { - return "", err - } - - // Find size. - n := uintptr(0) - if err := sysctl(mib, nil, &n, nil, 0); err != nil { - return "", err - } - if n == 0 { - return "", nil - } - - // Read into buffer of that size. - buf := make([]byte, n) - if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { - return "", err - } - - // 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 { - return utimes(path, nil) - } - // TODO: The BSDs can do utimensat with SYS_UTIMENSAT but it - // isn't supported by darwin so this uses utimes instead - if len(ts) != 2 { - return EINVAL - } - // 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]))) -} - -//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) -// Madvise(addr *byte, len int, behav int) (err error) -// Mprotect(addr *byte, len int, prot int) (err error) -// Msync(addr *byte, len int, flags int) (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) -} diff --git a/vendor/github.com/andrewkroh/sys/unix/syscall_darwin.go b/vendor/github.com/andrewkroh/sys/unix/syscall_darwin.go deleted file mode 100644 index 0d1771c3fca..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_darwin.go +++ /dev/null @@ -1,509 +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 -} - -// ParseDirent parses up to max directory entries in buf, -// appending the names to names. It returns the number -// 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) - for max != 0 && len(buf) > 0 { - dirent := (*Dirent)(unsafe.Pointer(&buf[0])) - if dirent.Reclen == 0 { - buf = nil - break - } - buf = buf[dirent.Reclen:] - if dirent.Ino == 0 { // File absent in directory. - continue - } - bytes := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0])) - var name = string(bytes[0:dirent.Namlen]) - if name == "." || name == ".." { // Useless names - continue - } - max-- - count++ - names = append(names, name) - } - return origlen - len(buf), count, names -} - -//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 -} - -/* - * 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) } - -/* - * 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 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_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 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 Mkfifo(path string, mode uint32) (err error) -//sys Mknod(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 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) -//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 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 - -/* - * 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 -// Mmap -// Mlock -// Munlock -// 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 -// Mlockall -// Munlockall -// __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 -// Msync_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/github.com/andrewkroh/sys/unix/syscall_darwin_386.go b/vendor/github.com/andrewkroh/sys/unix/syscall_darwin_386.go deleted file mode 100644 index 3195c8bf5c6..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_darwin_386.go +++ /dev/null @@ -1,79 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_darwin_amd64.go b/vendor/github.com/andrewkroh/sys/unix/syscall_darwin_amd64.go deleted file mode 100644 index 7adb98ded51..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_darwin_amd64.go +++ /dev/null @@ -1,81 +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" -) - -//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) - -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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_darwin_arm.go b/vendor/github.com/andrewkroh/sys/unix/syscall_darwin_arm.go deleted file mode 100644 index e47ffd73967..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_darwin_arm.go +++ /dev/null @@ -1,73 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_darwin_arm64.go b/vendor/github.com/andrewkroh/sys/unix/syscall_darwin_arm64.go deleted file mode 100644 index 2560a959983..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_darwin_arm64.go +++ /dev/null @@ -1,79 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_dragonfly.go b/vendor/github.com/andrewkroh/sys/unix/syscall_dragonfly.go deleted file mode 100644 index fbbe0dce255..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_dragonfly.go +++ /dev/null @@ -1,411 +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 [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 -} - -// ParseDirent parses up to max directory entries in buf, -// appending the names to names. It returns the number -// 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) - for max != 0 && len(buf) > 0 { - dirent := (*Dirent)(unsafe.Pointer(&buf[0])) - reclen := int(16+dirent.Namlen+1+7) & ^7 - buf = buf[reclen:] - if dirent.Fileno == 0 { // File absent in directory. - continue - } - bytes := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0])) - var name = string(bytes[0:dirent.Namlen]) - if name == "." || name == ".." { // Useless names - continue - } - max-- - count++ - names = append(names, name) - } - return origlen - len(buf), count, names -} - -//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 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 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 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 - -/* - * 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 -// Mmap -// 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 -// Msync_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/github.com/andrewkroh/sys/unix/syscall_dragonfly_386.go b/vendor/github.com/andrewkroh/sys/unix/syscall_dragonfly_386.go deleted file mode 100644 index 41c2e69782a..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_dragonfly_386.go +++ /dev/null @@ -1,63 +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,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 = int32(nsec / 1e9) - ts.Nsec = int32(nsec % 1e9) - return -} - -func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_dragonfly_amd64.go b/vendor/github.com/andrewkroh/sys/unix/syscall_dragonfly_amd64.go deleted file mode 100644 index 2ed92590e27..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_dragonfly_amd64.go +++ /dev/null @@ -1,63 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_freebsd.go b/vendor/github.com/andrewkroh/sys/unix/syscall_freebsd.go deleted file mode 100644 index ec56ed608a3..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_freebsd.go +++ /dev/null @@ -1,682 +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 -} - -// ParseDirent parses up to max directory entries in buf, -// appending the names to names. It returns the number -// 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) - for max != 0 && len(buf) > 0 { - dirent := (*Dirent)(unsafe.Pointer(&buf[0])) - if dirent.Reclen == 0 { - buf = nil - break - } - buf = buf[dirent.Reclen:] - if dirent.Fileno == 0 { // File absent in directory. - continue - } - bytes := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0])) - var name = string(bytes[0:dirent.Namlen]) - if name == "." || name == ".." { // Useless names - continue - } - max-- - count++ - names = append(names, name) - } - return origlen - len(buf), count, names -} - -//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 -} - -/* - * 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 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 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 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 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 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) - -/* - * 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 -// Mmap -// Mlock -// Munlock -// 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 -// Mlockall -// Munlockall -// __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 -// Msync_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/github.com/andrewkroh/sys/unix/syscall_freebsd_386.go b/vendor/github.com/andrewkroh/sys/unix/syscall_freebsd_386.go deleted file mode 100644 index 6255d40ff86..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_freebsd_386.go +++ /dev/null @@ -1,63 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_freebsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/syscall_freebsd_amd64.go deleted file mode 100644 index 8b395d596dc..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_freebsd_amd64.go +++ /dev/null @@ -1,63 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_freebsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/syscall_freebsd_arm.go deleted file mode 100644 index 4e72d46a816..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_freebsd_arm.go +++ /dev/null @@ -1,63 +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 TimevalToNsec(tv Timeval) int64 { return tv.Sec*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_linux.go b/vendor/github.com/andrewkroh/sys/unix/syscall_linux.go deleted file mode 100644 index d3ee5d2c2f6..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_linux.go +++ /dev/null @@ -1,1086 +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 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 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) - -func Unlinkat(dirfd int, path string) error { - return unlinkat(dirfd, path, 0) -} - -//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(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].Sec = ts[i].Sec - tv[i].Usec = ts[i].Nsec / 1000 - } - 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) (err error) { - return Mknod(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 -} - -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 - } - 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 SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { - return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) -} - -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 -} - -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 { - // 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 -} - -// 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 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 clen(n []byte) int { - for i := 0; i < len(n); i++ { - if n[i] == 0 { - return i - } - } - return len(n) -} - -func ReadDirent(fd int, buf []byte) (n int, err error) { - return Getdents(fd, buf) -} - -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 { - dirent := (*Dirent)(unsafe.Pointer(&buf[0])) - buf = buf[dirent.Reclen:] - if dirent.Ino == 0 { // File absent in directory. - continue - } - bytes := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0])) - var name = string(bytes[0:clen(bytes[:])]) - if name == "." || name == ".." { // Useless names - continue - } - max-- - count++ - names = append(names, name) - } - return origlen - len(buf), count, names -} - -//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 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 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) -//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 Fchmodat(dirfd int, path string, mode uint32, flags int) (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) -//sysnb Getrusage(who int, rusage *Rusage) (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 Listxattr(path string, dest []byte) (sz 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 Pause() (err error) -//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT -//sysnb prlimit(pid int, resource int, old *Rlimit, newlimit *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 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) - -// 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() -//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 Utime(path string, buf *Utimbuf) (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 Munlock(b []byte) (err error) -//sys Mlockall(flags int) (err error) -//sys Munlockall() (err error) - -/* - * Unimplemented - */ -// AddKey -// AfsSyscall -// Alarm -// ArchPrctl -// Brk -// Capget -// Capset -// ClockGetres -// ClockNanosleep -// ClockSettime -// Clone -// CreateModule -// DeleteModule -// EpollCtlOld -// EpollPwait -// EpollWaitOld -// Eventfd -// Execve -// Fgetxattr -// Flistxattr -// Fork -// Fremovexattr -// Fsetxattr -// Futex -// GetKernelSyms -// GetMempolicy -// GetRobustList -// GetThreadArea -// Getitimer -// Getpmsg -// IoCancel -// IoDestroy -// IoGetevents -// IoSetup -// IoSubmit -// Ioctl -// IoprioGet -// IoprioSet -// KexecLoad -// Keyctl -// Lgetxattr -// Llistxattr -// LookupDcookie -// Lremovexattr -// Lsetxattr -// Mbind -// MigratePages -// Mincore -// ModifyLdt -// Mount -// MovePages -// Mprotect -// MqGetsetattr -// MqNotify -// MqOpen -// MqTimedreceive -// MqTimedsend -// MqUnlink -// Mremap -// Msgctl -// Msgget -// Msgrcv -// Msgsnd -// Msync -// Newfstatat -// Nfsservctl -// Personality -// Poll -// Ppoll -// Pselect6 -// Ptrace -// Putpmsg -// QueryModule -// Quotactl -// Readahead -// Readv -// RemapFilePages -// RequestKey -// 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 -// Vmsplice -// Vserver -// Waitid -// _Sysctl diff --git a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_386.go b/vendor/github.com/andrewkroh/sys/unix/syscall_linux_386.go deleted file mode 100644 index 7171219af7f..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_386.go +++ /dev/null @@ -1,388 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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) - -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) - -// 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) -} diff --git a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_amd64.go b/vendor/github.com/andrewkroh/sys/unix/syscall_linux_amd64.go deleted file mode 100644 index ae70c2afca0..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_amd64.go +++ /dev/null @@ -1,146 +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 - -import "syscall" - -//sys Dup2(oldfd int, newfd 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 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) - -//go:noescape -func gettimeofday(tv *Timeval) (err syscall.Errno) - -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 -} - -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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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) -} diff --git a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_arm.go b/vendor/github.com/andrewkroh/sys/unix/syscall_linux_arm.go deleted file mode 100644 index abc41c3ea5d..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_arm.go +++ /dev/null @@ -1,233 +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) -//sysnb Time(t *Time_t) (tt Time_t, 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 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_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) -} - -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) -} diff --git a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_arm64.go b/vendor/github.com/andrewkroh/sys/unix/syscall_linux_arm64.go deleted file mode 100644 index f3d72dfd301..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_arm64.go +++ /dev/null @@ -1,150 +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 - -const _SYS_dup = SYS_DUP3 - -//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) -//sysnb Time(t *Time_t) (tt Time_t, 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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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 (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) -} - -// 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 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_ppc64x.go b/vendor/github.com/andrewkroh/sys/unix/syscall_linux_ppc64x.go deleted file mode 100644 index 67eed6334c4..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_linux_ppc64x.go +++ /dev/null @@ -1,96 +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 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) -//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 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) - -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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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) -} diff --git a/vendor/github.com/andrewkroh/sys/unix/syscall_netbsd.go b/vendor/github.com/andrewkroh/sys/unix/syscall_netbsd.go deleted file mode 100644 index c4e945cd696..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_netbsd.go +++ /dev/null @@ -1,492 +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 -} - -// ParseDirent parses up to max directory entries in buf, -// appending the names to names. It returns the number -// 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) - for max != 0 && len(buf) > 0 { - dirent := (*Dirent)(unsafe.Pointer(&buf[0])) - if dirent.Reclen == 0 { - buf = nil - break - } - buf = buf[dirent.Reclen:] - if dirent.Fileno == 0 { // File absent in directory. - continue - } - bytes := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0])) - var name = string(bytes[0:dirent.Namlen]) - if name == "." || name == ".." { // Useless names - continue - } - max-- - count++ - names = append(names, name) - } - return origlen - len(buf), count, names -} - -//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 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 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 - -/* - * 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/github.com/andrewkroh/sys/unix/syscall_netbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/syscall_netbsd_386.go deleted file mode 100644 index 1b0e1af1257..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_netbsd_386.go +++ /dev/null @@ -1,44 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_netbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/syscall_netbsd_amd64.go deleted file mode 100644 index 1b6dcbe35d6..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_netbsd_amd64.go +++ /dev/null @@ -1,44 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_netbsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/syscall_netbsd_arm.go deleted file mode 100644 index 87d1d6fed1e..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_netbsd_arm.go +++ /dev/null @@ -1,44 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_no_getwd.go b/vendor/github.com/andrewkroh/sys/unix/syscall_no_getwd.go deleted file mode 100644 index 530792ea93b..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/syscall_openbsd.go b/vendor/github.com/andrewkroh/sys/unix/syscall_openbsd.go deleted file mode 100644 index 246131d2afc..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_openbsd.go +++ /dev/null @@ -1,303 +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 -} - -// ParseDirent parses up to max directory entries in buf, -// appending the names to names. It returns the number -// 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) - for max != 0 && len(buf) > 0 { - dirent := (*Dirent)(unsafe.Pointer(&buf[0])) - if dirent.Reclen == 0 { - buf = nil - break - } - buf = buf[dirent.Reclen:] - if dirent.Fileno == 0 { // File absent in directory. - continue - } - bytes := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0])) - var name = string(bytes[0:dirent.Namlen]) - if name == "." || name == ".." { // Useless names - continue - } - max-- - count++ - names = append(names, name) - } - return origlen - len(buf), count, names -} - -//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 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 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 - -/* - * 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 -// utimensat -// vfork -// writev diff --git a/vendor/github.com/andrewkroh/sys/unix/syscall_openbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/syscall_openbsd_386.go deleted file mode 100644 index 9529b20e82e..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_openbsd_386.go +++ /dev/null @@ -1,44 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_openbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/syscall_openbsd_amd64.go deleted file mode 100644 index fc6402946e3..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_openbsd_amd64.go +++ /dev/null @@ -1,44 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_solaris.go b/vendor/github.com/andrewkroh/sys/unix/syscall_solaris.go deleted file mode 100644 index 00837326481..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_solaris.go +++ /dev/null @@ -1,713 +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) -} - -// ParseDirent parses up to max directory entries in buf, -// appending the names to names. It returns the number -// 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) - for max != 0 && len(buf) > 0 { - dirent := (*Dirent)(unsafe.Pointer(&buf[0])) - if dirent.Reclen == 0 { - buf = nil - break - } - buf = buf[dirent.Reclen:] - if dirent.Ino == 0 { // File absent in directory. - continue - } - bytes := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0])) - var name = string(bytes[0:clen(bytes[:])]) - if name == "." || name == ".." { // Useless names - continue - } - max-- - count++ - names = append(names, name) - } - return origlen - len(buf), count, names -} - -func pipe() (r uintptr, w uintptr, err uintptr) - -func Pipe(p []int) (err error) { - if len(p) != 2 { - return EINVAL - } - r0, w0, e1 := pipe() - if e1 != 0 { - err = syscall.Errno(e1) - } - p[0], p[1] = int(r0), int(w0) - return -} - -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 } - -func wait4(pid uintptr, wstatus *WaitStatus, options uintptr, rusage *Rusage) (wpid uintptr, err uintptr) - -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - r0, e1 := wait4(uintptr(pid), wstatus, uintptr(options), rusage) - if e1 != 0 { - err = syscall.Errno(e1) - } - return int(r0), err -} - -func gethostname() (name string, err uintptr) - -func Gethostname() (name string, err error) { - name, e1 := gethostname() - if e1 != 0 { - err = syscall.Errno(e1) - } - return name, err -} - -//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.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.Accrights = (*int8)(unsafe.Pointer(&oob[0])) - } - 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.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.Accrights = (*int8)(unsafe.Pointer(&oob[0])) - } - 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 int, arg uintptr) (err error) - -func IoctlSetInt(fd int, req int, value int) (err error) { - return ioctl(fd, req, uintptr(value)) -} - -func IoctlSetWinsize(fd int, req int, value *Winsize) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlSetTermios(fd int, req int, value *Termios) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlSetTermio(fd int, req int, value *Termio) (err error) { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlGetInt(fd int, req int) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req int) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req int) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermio(fd int, req int) (*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 Fpathconf(fd int, name int) (val int, err error) -//sys Fstat(fd int, stat *Stat_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.listen -//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 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) (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.bind -//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.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.sendto -//sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.socket -//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.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.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/github.com/andrewkroh/sys/unix/syscall_solaris_amd64.go b/vendor/github.com/andrewkroh/sys/unix/syscall_solaris_amd64.go deleted file mode 100644 index 2e44630cd06..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_solaris_amd64.go +++ /dev/null @@ -1,37 +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 TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } - -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/github.com/andrewkroh/sys/unix/syscall_unix.go b/vendor/github.com/andrewkroh/sys/unix/syscall_unix.go deleted file mode 100644 index b46b25028c9..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/syscall_unix.go +++ /dev/null @@ -1,297 +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 -) - -// 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 -} - -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) - -// 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/github.com/andrewkroh/sys/unix/types_darwin.go b/vendor/github.com/andrewkroh/sys/unix/types_darwin.go deleted file mode 100644 index 1153261822b..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/types_darwin.go +++ /dev/null @@ -1,250 +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 also mkerrors.sh and mkall.sh -*/ - -// +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 - -// fchmodat-like syscalls. - -const ( - AT_FDCWD = C.AT_FDCWD - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) diff --git a/vendor/github.com/andrewkroh/sys/unix/types_dragonfly.go b/vendor/github.com/andrewkroh/sys/unix/types_dragonfly.go deleted file mode 100644 index f3c971dffd4..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/types_dragonfly.go +++ /dev/null @@ -1,242 +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 also mkerrors.sh and mkall.sh -*/ - -// +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 diff --git a/vendor/github.com/andrewkroh/sys/unix/types_freebsd.go b/vendor/github.com/andrewkroh/sys/unix/types_freebsd.go deleted file mode 100644 index ae24557ad15..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/types_freebsd.go +++ /dev/null @@ -1,353 +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 also mkerrors.sh and mkall.sh -*/ - -// +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)]; -}; - -// 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; - time_t ifi_epoch; - 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 diff --git a/vendor/github.com/andrewkroh/sys/unix/types_linux.go b/vendor/github.com/andrewkroh/sys/unix/types_linux.go deleted file mode 100644 index 9b75633b379..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/types_linux.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. - -// +build ignore - -/* -Input to cgo -godefs. See also mkerrors.sh and mkall.sh -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ - -package unix - -/* -#define _LARGEFILE_SOURCE -#define _LARGEFILE64_SOURCE -#define _FILE_OFFSET_BITS 64 -#define _GNU_SOURCE - -#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 - -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_ll s5; - struct sockaddr_nl s6; -}; - -struct sockaddr_any { - struct sockaddr addr; - char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; -}; - -// copied from /usr/include/linux/un.h -struct my_sockaddr_un { - sa_family_t sun_family; -#if defined(__ARM_EABI__) || defined(__powerpc64__) - // on ARM char is by default unsigned - signed char sun_path[108]; -#else - char sun_path[108]; -#endif -}; - -#ifdef __ARM_EABI__ -typedef struct user_regs PtraceRegs; -#elif defined(__aarch64__) -typedef struct user_pt_regs PtraceRegs; -#elif defined(__powerpc64__) -typedef struct pt_regs PtraceRegs; -#else -typedef struct user_regs_struct PtraceRegs; -#endif - -// The real epoll_event is a union, and godefs doesn't handle it well. -struct my_epoll_event { - uint32_t events; -#ifdef __ARM_EABI__ - // padding is not specified in linux/eventpoll.h but added to conform to the - // alignment requirements of EABI - int32_t padFd; -#endif - int32_t fd; - int32_t pad; -}; - -*/ -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 -) - -// 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 Timex C.struct_timex - -type Time_t C.time_t - -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 - -type Stat_t C.struct_stat - -type Statfs_t C.struct_statfs - -type Dirent C.struct_dirent - -type Fsid C.fsid_t - -type Flock_t C.struct_flock - -// 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_my_sockaddr_un - -type RawSockaddrLinklayer C.struct_sockaddr_ll - -type RawSockaddrNetlink C.struct_sockaddr_nl - -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 Inet4Pktinfo C.struct_in_pktinfo - -type Inet6Pktinfo C.struct_in6_pktinfo - -type IPv6MTUInfo C.struct_ip6_mtuinfo - -type ICMPv6Filter C.struct_icmp6_filter - -type Ucred C.struct_ucred - -type TCPInfo C.struct_tcp_info - -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 - SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll - SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl - 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 - SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo - SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo - SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo - SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter - SizeofUcred = C.sizeof_struct_ucred - SizeofTCPInfo = C.sizeof_struct_tcp_info -) - -// Netlink routing and interface messages - -const ( - IFA_UNSPEC = C.IFA_UNSPEC - IFA_ADDRESS = C.IFA_ADDRESS - IFA_LOCAL = C.IFA_LOCAL - IFA_LABEL = C.IFA_LABEL - IFA_BROADCAST = C.IFA_BROADCAST - IFA_ANYCAST = C.IFA_ANYCAST - IFA_CACHEINFO = C.IFA_CACHEINFO - IFA_MULTICAST = C.IFA_MULTICAST - IFLA_UNSPEC = C.IFLA_UNSPEC - IFLA_ADDRESS = C.IFLA_ADDRESS - IFLA_BROADCAST = C.IFLA_BROADCAST - IFLA_IFNAME = C.IFLA_IFNAME - IFLA_MTU = C.IFLA_MTU - IFLA_LINK = C.IFLA_LINK - IFLA_QDISC = C.IFLA_QDISC - IFLA_STATS = C.IFLA_STATS - IFLA_COST = C.IFLA_COST - IFLA_PRIORITY = C.IFLA_PRIORITY - IFLA_MASTER = C.IFLA_MASTER - IFLA_WIRELESS = C.IFLA_WIRELESS - IFLA_PROTINFO = C.IFLA_PROTINFO - IFLA_TXQLEN = C.IFLA_TXQLEN - IFLA_MAP = C.IFLA_MAP - IFLA_WEIGHT = C.IFLA_WEIGHT - IFLA_OPERSTATE = C.IFLA_OPERSTATE - IFLA_LINKMODE = C.IFLA_LINKMODE - IFLA_LINKINFO = C.IFLA_LINKINFO - IFLA_NET_NS_PID = C.IFLA_NET_NS_PID - IFLA_IFALIAS = C.IFLA_IFALIAS - IFLA_MAX = C.IFLA_MAX - RT_SCOPE_UNIVERSE = C.RT_SCOPE_UNIVERSE - RT_SCOPE_SITE = C.RT_SCOPE_SITE - RT_SCOPE_LINK = C.RT_SCOPE_LINK - RT_SCOPE_HOST = C.RT_SCOPE_HOST - RT_SCOPE_NOWHERE = C.RT_SCOPE_NOWHERE - RT_TABLE_UNSPEC = C.RT_TABLE_UNSPEC - RT_TABLE_COMPAT = C.RT_TABLE_COMPAT - RT_TABLE_DEFAULT = C.RT_TABLE_DEFAULT - RT_TABLE_MAIN = C.RT_TABLE_MAIN - RT_TABLE_LOCAL = C.RT_TABLE_LOCAL - RT_TABLE_MAX = C.RT_TABLE_MAX - RTA_UNSPEC = C.RTA_UNSPEC - RTA_DST = C.RTA_DST - RTA_SRC = C.RTA_SRC - RTA_IIF = C.RTA_IIF - RTA_OIF = C.RTA_OIF - RTA_GATEWAY = C.RTA_GATEWAY - RTA_PRIORITY = C.RTA_PRIORITY - RTA_PREFSRC = C.RTA_PREFSRC - RTA_METRICS = C.RTA_METRICS - RTA_MULTIPATH = C.RTA_MULTIPATH - RTA_FLOW = C.RTA_FLOW - RTA_CACHEINFO = C.RTA_CACHEINFO - RTA_TABLE = C.RTA_TABLE - RTN_UNSPEC = C.RTN_UNSPEC - RTN_UNICAST = C.RTN_UNICAST - RTN_LOCAL = C.RTN_LOCAL - RTN_BROADCAST = C.RTN_BROADCAST - RTN_ANYCAST = C.RTN_ANYCAST - RTN_MULTICAST = C.RTN_MULTICAST - RTN_BLACKHOLE = C.RTN_BLACKHOLE - RTN_UNREACHABLE = C.RTN_UNREACHABLE - RTN_PROHIBIT = C.RTN_PROHIBIT - RTN_THROW = C.RTN_THROW - RTN_NAT = C.RTN_NAT - RTN_XRESOLVE = C.RTN_XRESOLVE - RTNLGRP_NONE = C.RTNLGRP_NONE - RTNLGRP_LINK = C.RTNLGRP_LINK - RTNLGRP_NOTIFY = C.RTNLGRP_NOTIFY - RTNLGRP_NEIGH = C.RTNLGRP_NEIGH - RTNLGRP_TC = C.RTNLGRP_TC - RTNLGRP_IPV4_IFADDR = C.RTNLGRP_IPV4_IFADDR - RTNLGRP_IPV4_MROUTE = C.RTNLGRP_IPV4_MROUTE - RTNLGRP_IPV4_ROUTE = C.RTNLGRP_IPV4_ROUTE - RTNLGRP_IPV4_RULE = C.RTNLGRP_IPV4_RULE - RTNLGRP_IPV6_IFADDR = C.RTNLGRP_IPV6_IFADDR - RTNLGRP_IPV6_MROUTE = C.RTNLGRP_IPV6_MROUTE - RTNLGRP_IPV6_ROUTE = C.RTNLGRP_IPV6_ROUTE - RTNLGRP_IPV6_IFINFO = C.RTNLGRP_IPV6_IFINFO - RTNLGRP_IPV6_PREFIX = C.RTNLGRP_IPV6_PREFIX - RTNLGRP_IPV6_RULE = C.RTNLGRP_IPV6_RULE - RTNLGRP_ND_USEROPT = C.RTNLGRP_ND_USEROPT - SizeofNlMsghdr = C.sizeof_struct_nlmsghdr - SizeofNlMsgerr = C.sizeof_struct_nlmsgerr - SizeofRtGenmsg = C.sizeof_struct_rtgenmsg - SizeofNlAttr = C.sizeof_struct_nlattr - SizeofRtAttr = C.sizeof_struct_rtattr - SizeofIfInfomsg = C.sizeof_struct_ifinfomsg - SizeofIfAddrmsg = C.sizeof_struct_ifaddrmsg - SizeofRtMsg = C.sizeof_struct_rtmsg - SizeofRtNexthop = C.sizeof_struct_rtnexthop -) - -type NlMsghdr C.struct_nlmsghdr - -type NlMsgerr C.struct_nlmsgerr - -type RtGenmsg C.struct_rtgenmsg - -type NlAttr C.struct_nlattr - -type RtAttr C.struct_rtattr - -type IfInfomsg C.struct_ifinfomsg - -type IfAddrmsg C.struct_ifaddrmsg - -type RtMsg C.struct_rtmsg - -type RtNexthop C.struct_rtnexthop - -// Linux socket filter - -const ( - SizeofSockFilter = C.sizeof_struct_sock_filter - SizeofSockFprog = C.sizeof_struct_sock_fprog -) - -type SockFilter C.struct_sock_filter - -type SockFprog C.struct_sock_fprog - -// Inotify - -type InotifyEvent C.struct_inotify_event - -const SizeofInotifyEvent = C.sizeof_struct_inotify_event - -// Ptrace - -// Register structures -type PtraceRegs C.PtraceRegs - -// Misc - -type FdSet C.fd_set - -type Sysinfo_t C.struct_sysinfo - -type Utsname C.struct_utsname - -type Ustat_t C.struct_ustat - -type EpollEvent C.struct_my_epoll_event - -const ( - AT_FDCWD = C.AT_FDCWD - AT_REMOVEDIR = C.AT_REMOVEDIR - AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW -) - -// Terminal handling - -type Termios C.struct_termios diff --git a/vendor/github.com/andrewkroh/sys/unix/types_netbsd.go b/vendor/github.com/andrewkroh/sys/unix/types_netbsd.go deleted file mode 100644 index d15f93d1925..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/types_netbsd.go +++ /dev/null @@ -1,232 +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 also mkerrors.sh and mkall.sh -*/ - -// +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 - -// Sysctl - -type Sysctlnode C.struct_sysctlnode diff --git a/vendor/github.com/andrewkroh/sys/unix/types_openbsd.go b/vendor/github.com/andrewkroh/sys/unix/types_openbsd.go deleted file mode 100644 index b66fe25f73b..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/types_openbsd.go +++ /dev/null @@ -1,244 +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 also mkerrors.sh and mkall.sh -*/ - -// +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 diff --git a/vendor/github.com/andrewkroh/sys/unix/types_solaris.go b/vendor/github.com/andrewkroh/sys/unix/types_solaris.go deleted file mode 100644 index 6ad50eaba61..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/types_solaris.go +++ /dev/null @@ -1,260 +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 also mkerrors.sh and mkall.sh -*/ - -// +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 - -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 -) - -// 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 - -// 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/github.com/andrewkroh/sys/unix/zerrors_darwin_386.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_386.go deleted file mode 100644 index 8e63888351e..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_386.go +++ /dev/null @@ -1,1576 +0,0 @@ -// mkerrors.sh -m32 -// MACHINE GENERATED BY THE COMMAND ABOVE; 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 - 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 - 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 - 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_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xe - EVFILT_THREADMARKER = 0xe - 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_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 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_ADDFILESIGS = 0x3d - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - 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_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 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_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - 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 - NOFLSH = 0x80000000 - 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_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - 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 - 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_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_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 = 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_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 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_ENABLE_ECN = 0x104 - 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 - 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/github.com/andrewkroh/sys/unix/zerrors_darwin_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_amd64.go deleted file mode 100644 index 9594f93817a..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_amd64.go +++ /dev/null @@ -1,1576 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; 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 - 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 - 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 - 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_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xe - EVFILT_THREADMARKER = 0xe - 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_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 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_ADDFILESIGS = 0x3d - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - 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_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 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_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - 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 - NOFLSH = 0x80000000 - 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_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - 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 - 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_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_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 = 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_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 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_ENABLE_ECN = 0x104 - 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 - 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/github.com/andrewkroh/sys/unix/zerrors_darwin_arm.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_arm.go deleted file mode 100644 index a410e88edde..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_arm.go +++ /dev/null @@ -1,1293 +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,darwin - -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 - 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 - 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 - 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 - DLT_APPLE_IP_OVER_IEEE1394 = 0x8a - DLT_ARCNET = 0x7 - DLT_ATM_CLIP = 0x13 - DLT_ATM_RFC1483 = 0xb - DLT_AX25 = 0x3 - DLT_CHAOS = 0x5 - DLT_CHDLC = 0x68 - DLT_C_HDLC = 0x68 - DLT_EN10MB = 0x1 - DLT_EN3MB = 0x2 - DLT_FDDI = 0xa - DLT_IEEE802 = 0x6 - DLT_IEEE802_11 = 0x69 - DLT_IEEE802_11_RADIO = 0x7f - DLT_IEEE802_11_RADIO_AVS = 0xa3 - DLT_LINUX_SLL = 0x71 - DLT_LOOP = 0x6c - DLT_NULL = 0x0 - DLT_PFLOG = 0x75 - DLT_PFSYNC = 0x12 - DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 - DLT_PPP_SERIAL = 0x32 - DLT_PRONET = 0x4 - DLT_RAW = 0xc - 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 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - EVFILT_AIO = -0x3 - EVFILT_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xe - EVFILT_THREADMARKER = 0xe - 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_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 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_ADDFILESIGS = 0x3d - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - 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_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 = 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_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_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 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_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - 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 - NOFLSH = 0x80000000 - 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_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - 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 - 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_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_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 = 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_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_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 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_ENABLE_ECN = 0x104 - 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 - 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) -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_arm64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_arm64.go deleted file mode 100644 index 3189c6b3459..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_darwin_arm64.go +++ /dev/null @@ -1,1576 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; 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 - 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 - 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 - 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_FS = -0x9 - EVFILT_MACHPORT = -0x8 - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xe - EVFILT_THREADMARKER = 0xe - 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_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 - EXTA = 0x4b00 - EXTB = 0x9600 - EXTPROC = 0x800 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - F_ADDFILESIGS = 0x3d - F_ADDSIGS = 0x3b - F_ALLOCATEALL = 0x4 - F_ALLOCATECONTIG = 0x2 - 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_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MADV_ZERO_WIRED_PAGES = 0x6 - MAP_ANON = 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_SHARED = 0x1 - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - 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 - NOFLSH = 0x80000000 - 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_LEEWAY = 0x10 - NOTE_LINK = 0x10 - NOTE_LOWAT = 0x1 - NOTE_NONE = 0x80 - NOTE_NSECONDS = 0x4 - 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 - 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_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_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 = 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_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 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CONNECTIONTIMEOUT = 0x20 - TCP_ENABLE_ECN = 0x104 - 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 - 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/github.com/andrewkroh/sys/unix/zerrors_dragonfly_386.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_dragonfly_386.go deleted file mode 100644 index 2a329f06e25..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_dragonfly_386.go +++ /dev/null @@ -1,1530 +0,0 @@ -// mkerrors.sh -m32 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,dragonfly - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -m32 _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_NETGRAPH = 0x20 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - 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 = 0xc0084279 - BIOCGETIF = 0x4020426b - BIOCGHDRCMPLT = 0x40044274 - BIOCGRSIG = 0x40044272 - BIOCGRTIMEOUT = 0x4008426e - BIOCGSEESENT = 0x40044276 - BIOCGSTATS = 0x4008426f - BIOCIMMEDIATE = 0x80044270 - BIOCLOCK = 0x2000427a - BIOCPROMISC = 0x20004269 - BIOCSBLEN = 0xc0044266 - BIOCSDLT = 0x80044278 - BIOCSETF = 0x80084267 - BIOCSETIF = 0x8020426c - BIOCSETWF = 0x8008427b - 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_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 - 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 - 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_MARKER = 0xf - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x8 - 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_NODATA = 0x1000 - EV_ONESHOT = 0x10 - 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_SCTP = 0x84 - 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_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_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_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_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_NOTIFICATION = 0x200 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_SYNC = 0x800 - MSG_TRUNC = 0x10 - 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 - 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_OOB = 0x2 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - 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_FBUFFERED = 0x2000000 - O_FMASK = 0x7fc0000 - O_FNONBLOCKING = 0x80000 - O_FOFFSET = 0x200000 - O_FSYNC = 0x80 - O_FSYNCWRITE = 0x400000 - O_FUNBUFFERED = 0x1000000 - O_MAPONREAD = 0x4000000 - 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 = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCALIFADDR = 0x8118691b - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80206919 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8118691d - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - SIOCGIFADDR = 0xc0206921 - SIOCGIFBRDADDR = 0xc0206923 - SIOCGIFCAP = 0xc020691f - SIOCGIFCONF = 0xc0086924 - SIOCGIFDATA = 0xc0206926 - SIOCGIFDSTADDR = 0xc0206922 - SIOCGIFFLAGS = 0xc0206911 - SIOCGIFGENERIC = 0xc020693a - SIOCGIFGMEMB = 0xc024698a - SIOCGIFINDEX = 0xc0206920 - SIOCGIFMEDIA = 0xc0286938 - 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 = 0xc00c6978 - SIOCSDRVSPEC = 0x801c697b - 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_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_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - 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 - TCIOFLUSH = 0x3 - TCOFLUSH = 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 = 0x40087458 - 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 = 0x40087459 - 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 - 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/github.com/andrewkroh/sys/unix/zerrors_dragonfly_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_dragonfly_amd64.go deleted file mode 100644 index 0feceee1516..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_dragonfly_amd64.go +++ /dev/null @@ -1,1530 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; 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_NETGRAPH = 0x20 - AF_NS = 0x6 - AF_OSI = 0x7 - AF_PUP = 0x4 - AF_ROUTE = 0x11 - AF_SIP = 0x18 - AF_SNA = 0xb - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - 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 - 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 - 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_MARKER = 0xf - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x8 - 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_NODATA = 0x1000 - EV_ONESHOT = 0x10 - 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_SCTP = 0x84 - 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_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_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_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_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_NOTIFICATION = 0x200 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_SYNC = 0x800 - MSG_TRUNC = 0x10 - 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 - 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_OOB = 0x2 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - NOTE_RENAME = 0x20 - NOTE_REVOKE = 0x40 - NOTE_TRACK = 0x1 - NOTE_TRACKERR = 0x2 - NOTE_WRITE = 0x2 - OCRNL = 0x10 - ONLCR = 0x2 - ONLRET = 0x40 - ONOCR = 0x20 - ONOEOT = 0x8 - OPOST = 0x1 - 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_FBUFFERED = 0x2000000 - O_FMASK = 0x7fc0000 - O_FNONBLOCKING = 0x80000 - O_FOFFSET = 0x200000 - O_FSYNC = 0x80 - O_FSYNCWRITE = 0x400000 - O_FUNBUFFERED = 0x1000000 - O_MAPONREAD = 0x4000000 - 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_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_ACCEPTFILTER = 0x1000 - SO_BROADCAST = 0x20 - 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 - TCIOFLUSH = 0x3 - TCOFLUSH = 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 - 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/github.com/andrewkroh/sys/unix/zerrors_freebsd_386.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_freebsd_386.go deleted file mode 100644 index 7b95751c3db..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_freebsd_386.go +++ /dev/null @@ -1,1743 +0,0 @@ -// mkerrors.sh -m32 -// MACHINE GENERATED BY THE COMMAND ABOVE; 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 - 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_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 - 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 - 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_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 = 0xf6 - 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 = 0x79 - 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_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xb - 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_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 = 0x218f72 - 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_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_INFINIBAND = 0xc7 - 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_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 = 0xf6 - IFT_PFSYNC = 0xf7 - 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 = 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 - 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_MAXID = 0x34 - 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_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_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_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_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - 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_FAITH = 0x16 - 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_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x44 - 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_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_NORESERVE = 0x40 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - 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 - 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 - NET_RT_MAXID = 0x6 - NOFLSH = 0x80000000 - 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_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 - 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_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 = 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_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_PRCLONING = 0x10000 - 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_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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_CACHING_CONTEXT = 0x1 - RT_DEFAULT_FIB = 0x0 - RT_NORTREF = 0x2 - 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 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCALIFADDR = 0x8118691b - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8118691d - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - 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 - SIOCGLIFADDR = 0xc118691c - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - 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 - 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_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 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CA_NAME_MAX = 0x10 - TCP_CONGESTION = 0x40 - 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_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/github.com/andrewkroh/sys/unix/zerrors_freebsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_freebsd_amd64.go deleted file mode 100644 index e48e7799a1d..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_freebsd_amd64.go +++ /dev/null @@ -1,1748 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; 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 - 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_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 - 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 - 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_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 = 0xf6 - 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 = 0x79 - 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_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xb - 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_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 = 0x218f72 - 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_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_INFINIBAND = 0xc7 - 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_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 = 0xf6 - IFT_PFSYNC = 0xf7 - 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 = 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 - 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_MAXID = 0x34 - 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_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_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_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_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - 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_FAITH = 0x16 - 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_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x44 - 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_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_NORESERVE = 0x40 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - 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 - 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 - NET_RT_MAXID = 0x6 - NOFLSH = 0x80000000 - 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_MSECONDS = 0x2 - NOTE_NSECONDS = 0x8 - NOTE_PCTRLMASK = 0xf0000000 - NOTE_PDATAMASK = 0xfffff - 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 - 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_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 = 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_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_PRCLONING = 0x10000 - 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_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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_CACHING_CONTEXT = 0x1 - RT_DEFAULT_FIB = 0x0 - RT_NORTREF = 0x2 - 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 - SIOCADDRT = 0x8040720a - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80286987 - SIOCALIFADDR = 0x8118691b - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDELRT = 0x8040720b - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80286989 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8118691d - SIOCGDRVSPEC = 0xc028697b - SIOCGETSGCNT = 0xc0207210 - SIOCGETVIFCNT = 0xc028720f - SIOCGHIWAT = 0x40047301 - 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 - 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 - 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 - 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_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 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CA_NAME_MAX = 0x10 - TCP_CONGESTION = 0x40 - 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_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/github.com/andrewkroh/sys/unix/zerrors_freebsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_freebsd_arm.go deleted file mode 100644 index 2afbe2d5ed7..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_freebsd_arm.go +++ /dev/null @@ -1,1729 +0,0 @@ -// mkerrors.sh -// MACHINE GENERATED BY THE COMMAND ABOVE; 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 - 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_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 - 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 = 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_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 = 0xf6 - 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 = 0x79 - 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_FS = -0x9 - EVFILT_LIO = -0xa - EVFILT_PROC = -0x5 - EVFILT_READ = -0x1 - EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xb - 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_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 = 0x218f72 - 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_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_INFINIBAND = 0xc7 - 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_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 = 0xf6 - IFT_PFSYNC = 0xf7 - 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 = 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 - 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_MAXID = 0x34 - 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_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_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_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_ADD_SOURCE_MEMBERSHIP = 0x46 - IP_BINDANY = 0x18 - 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_FAITH = 0x16 - 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_RECVIF = 0x14 - IP_RECVOPTS = 0x5 - IP_RECVRETOPTS = 0x6 - IP_RECVTOS = 0x44 - 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_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_NORESERVE = 0x40 - MAP_NOSYNC = 0x800 - MAP_PREFAULT_READ = 0x40000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - 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 - 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 - NET_RT_MAXID = 0x6 - NOFLSH = 0x80000000 - 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_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 - 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_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 = 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_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_PRCLONING = 0x10000 - 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_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 - RTV_WEIGHT = 0x100 - RT_ALL_FIBS = -0x1 - RT_CACHING_CONTEXT = 0x1 - RT_DEFAULT_FIB = 0x0 - RT_NORTREF = 0x2 - 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 - SIOCADDRT = 0x8030720a - SIOCAIFADDR = 0x8040691a - SIOCAIFGROUP = 0x80246987 - SIOCALIFADDR = 0x8118691b - SIOCATMARK = 0x40047307 - SIOCDELMULTI = 0x80206932 - SIOCDELRT = 0x8030720b - SIOCDIFADDR = 0x80206919 - SIOCDIFGROUP = 0x80246989 - SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8118691d - SIOCGDRVSPEC = 0xc01c697b - SIOCGETSGCNT = 0xc0147210 - SIOCGETVIFCNT = 0xc014720f - SIOCGHIWAT = 0x40047301 - 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 - SIOCGLIFADDR = 0xc118691c - SIOCGLIFPHYADDR = 0xc118694b - SIOCGLOWAT = 0x40047303 - SIOCGPGRP = 0x40047309 - SIOCGPRIVATE_0 = 0xc0206950 - SIOCGPRIVATE_1 = 0xc0206951 - 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 - 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_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 - TCIFLUSH = 0x1 - TCIOFLUSH = 0x3 - TCOFLUSH = 0x2 - TCP_CA_NAME_MAX = 0x10 - TCP_CONGESTION = 0x40 - 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_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/github.com/andrewkroh/sys/unix/zerrors_linux_386.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_386.go deleted file mode 100644 index 6fbef752263..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_386.go +++ /dev/null @@ -1,1761 +0,0 @@ -// mkerrors.sh -m32 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -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_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x28 - 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_WANPIPE = 0x19 - AF_X25 = 0x9 - 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_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - 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 - 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_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - 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 - BRKINT = 0x2 - CFLUSH = 0xf - 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_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_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 - CREAD = 0x80 - 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 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - EPOLL_NONBLOCK = 0x800 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - 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_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - 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_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_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - 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_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_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x1000 - 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_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 - HUPCL = 0x400 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_NODAD = 0x2 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x7 - IFF_802_1Q_VLAN = 0x1 - IFF_ALLMULTI = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BONDING = 0x20 - IFF_BRIDGE_PORT = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DISABLE_NETPOLL = 0x1000 - IFF_DONT_BRIDGE = 0x800 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_EBRIDGE = 0x2 - IFF_ECHO = 0x40000 - IFF_ISATAP = 0x80 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MACVLAN_PORT = 0x2000 - IFF_MASTER = 0x400 - IFF_MASTER_8023AD = 0x8 - IFF_MASTER_ALB = 0x10 - IFF_MASTER_ARPMON = 0x100 - IFF_MULTICAST = 0x1000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_OVS_DATAPATH = 0x8000 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_SLAVE_INACTIVE = 0x4 - IFF_SLAVE_NEEDARP = 0x40 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_TX_SKB_SHARING = 0x10000 - IFF_UNICAST_FLT = 0x20000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFF_WAN_HDLC = 0x200 - IFF_XMIT_DST_RELEASE = 0x400 - 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_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_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_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - 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_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - 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_BLOCK_SOURCE = 0x26 - 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_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_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_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - 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_DOFORK = 0xb - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - 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_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 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - 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_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 = 0x800051 - 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_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_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - 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_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 - 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_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_CPU = 0x2 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - 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_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - 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_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_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - 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_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_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - 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_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_GET_THREAD_AREA = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_MASK = 0xff - 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_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SEIZE = 0x4206 - PTRACE_SEIZE_DEVEL = 0x80000000 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - 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_NOFILE = 0x7 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0xe - RTAX_MTU = 0x2 - 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 = 0x10 - 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_DELNEIGH = 0x1d - 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_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_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x4f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x10 - RTM_NR_MSGTYPES = 0x40 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_F_DEAD = 0x1 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - 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_TIMESTAMPNS = 0x23 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCGARP = 0x8954 - 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 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - 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 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ATM = 0x108 - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_PACKET = 0x107 - SOL_RAW = 0xff - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_FILTER = 0x1a - SO_BINDTODEVICE = 0x19 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_DEBUG = 0x1 - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_MARK = 0x24 - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - 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_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - 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 - TCFLSH = 0x540b - TCIFLUSH = 0x0 - TCIOFLUSH = 0x2 - TCOFLUSH = 0x1 - TCP_CONGESTION = 0xd - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - 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_NODELAY = 0x1 - TCP_QUICKACK = 0xc - TCP_SYNCNT = 0x7 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - 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 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETFEATURES = 0x800454cf - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETHDRSZ = 0x800454d7 - TUNSETDEBUG = 0x400454c9 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETSNDBUF = 0x400454d4 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETHDRSZ = 0x400454d8 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMIN = 0x6 - 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 -) - -// 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 NFS 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: "unknown error 133", -} - -// 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/github.com/andrewkroh/sys/unix/zerrors_linux_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_amd64.go deleted file mode 100644 index b40ccb8d7e5..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_amd64.go +++ /dev/null @@ -1,1762 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,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_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x28 - 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_WANPIPE = 0x19 - AF_X25 = 0x9 - 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_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - 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 - 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_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - 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 - BRKINT = 0x2 - CFLUSH = 0xf - 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_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_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 - CREAD = 0x80 - 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 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - EPOLL_NONBLOCK = 0x800 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - 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_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - 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_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_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - 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_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_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x1000 - 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_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 - HUPCL = 0x400 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_NODAD = 0x2 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x7 - IFF_802_1Q_VLAN = 0x1 - IFF_ALLMULTI = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BONDING = 0x20 - IFF_BRIDGE_PORT = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DISABLE_NETPOLL = 0x1000 - IFF_DONT_BRIDGE = 0x800 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_EBRIDGE = 0x2 - IFF_ECHO = 0x40000 - IFF_ISATAP = 0x80 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MACVLAN_PORT = 0x2000 - IFF_MASTER = 0x400 - IFF_MASTER_8023AD = 0x8 - IFF_MASTER_ALB = 0x10 - IFF_MASTER_ARPMON = 0x100 - IFF_MULTICAST = 0x1000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_OVS_DATAPATH = 0x8000 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_SLAVE_INACTIVE = 0x4 - IFF_SLAVE_NEEDARP = 0x40 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_TX_SKB_SHARING = 0x10000 - IFF_UNICAST_FLT = 0x20000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFF_WAN_HDLC = 0x200 - IFF_XMIT_DST_RELEASE = 0x400 - 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_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_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_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - 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_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - 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_BLOCK_SOURCE = 0x26 - 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_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_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_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - 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_DOFORK = 0xb - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - 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_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 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - 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_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 = 0x800051 - 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_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_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - 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_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 - 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_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_CPU = 0x2 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - 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_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - 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_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_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - 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_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_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - 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_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_GET_THREAD_AREA = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_MASK = 0xff - 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_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SEIZE = 0x4206 - PTRACE_SEIZE_DEVEL = 0x80000000 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - 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_NOFILE = 0x7 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0xe - RTAX_MTU = 0x2 - 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 = 0x10 - 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_DELNEIGH = 0x1d - 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_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_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x4f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x10 - RTM_NR_MSGTYPES = 0x40 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_F_DEAD = 0x1 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - 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_TIMESTAMPNS = 0x23 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCGARP = 0x8954 - 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 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - 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 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ATM = 0x108 - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_PACKET = 0x107 - SOL_RAW = 0xff - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_FILTER = 0x1a - SO_BINDTODEVICE = 0x19 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_DEBUG = 0x1 - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_MARK = 0x24 - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - 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_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - 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 - TCFLSH = 0x540b - TCIFLUSH = 0x0 - TCIOFLUSH = 0x2 - TCOFLUSH = 0x1 - TCP_CONGESTION = 0xd - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - 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_NODELAY = 0x1 - TCP_QUICKACK = 0xc - TCP_SYNCNT = 0x7 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - 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 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETFEATURES = 0x800454cf - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETHDRSZ = 0x800454d7 - TUNSETDEBUG = 0x400454c9 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETSNDBUF = 0x400454d4 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETHDRSZ = 0x400454d8 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMIN = 0x6 - 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 -) - -// 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 NFS 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: "unknown error 133", -} - -// 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/github.com/andrewkroh/sys/unix/zerrors_linux_arm.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_arm.go deleted file mode 100644 index 4535b78b777..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_arm.go +++ /dev/null @@ -1,1577 +0,0 @@ -// mkerrors.sh -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build arm,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- _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_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x27 - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - 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_WANPIPE = 0x19 - AF_X25 = 0x9 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - 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_PHY = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - 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 - 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_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - 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 - 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_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_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 - 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 - ELF_NGREG = 0x12 - ELF_PRARGSZ = 0x50 - EPOLLERR = 0x8 - EPOLLET = -0x80000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - EPOLL_NONBLOCK = 0x800 - ETH_P_1588 = 0x88f7 - ETH_P_8021Q = 0x8100 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_AARP = 0x80f3 - 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_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - 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_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_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - 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_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - 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_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 - ICMPV6_FILTER = 0x1 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_NODAD = 0x2 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x7 - IFF_ALLMULTI = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DYNAMIC = 0x8000 - IFF_LOOPBACK = 0x8 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - 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 - IFNAMSIZ = 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_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_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_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - 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_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - 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_BLOCK_SOURCE = 0x26 - 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_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - 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_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_XFRM_POLICY = 0x11 - 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_DOFORK = 0xb - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - 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_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_TYPE = 0xf - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - 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_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 = 0x800051 - 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_CONNECTOR = 0xb - 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_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - 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_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 - 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 = 0x1000 - O_LARGEFILE = 0x20000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x1000 - O_SYNC = 0x1000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_BROADCAST = 0x1 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FASTROUTE = 0x6 - PACKET_HOST = 0x0 - PACKET_LOOPBACK = 0x5 - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MULTICAST = 0x2 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - 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_CLEAR_SECCOMP_FILTER = 0x25 - 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_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECCOMP_FILTER = 0x23 - PR_GET_SECUREBITS = 0x1b - 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_SECCOMP_FILTER_EVENT = 0x1 - PR_SECCOMP_FILTER_SYSCALL = 0x0 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_KEEPCAPS = 0x8 - PR_SET_NAME = 0xf - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_SECCOMP = 0x16 - PR_SET_SECCOMP_FILTER = 0x24 - PR_SET_SECUREBITS = 0x1c - 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_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_GETVFPREGS = 0x1b - PTRACE_GETWMMXREGS = 0x12 - PTRACE_GET_THREAD_AREA = 0x16 - PTRACE_KILL = 0x8 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_MASK = 0x7f - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SETCRUNCHREGS = 0x1a - PTRACE_SETFPREGS = 0xf - PTRACE_SETHBPREGS = 0x1e - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - 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_NOFILE = 0x7 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0xe - RTAX_MTU = 0x2 - 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 = 0x10 - 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_DELNEIGH = 0x1d - 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_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_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x4f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x10 - RTM_NR_MSGTYPES = 0x40 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_F_DEAD = 0x1 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - 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_TIMESTAMPNS = 0x23 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCGARP = 0x8954 - 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 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - 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 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ATM = 0x108 - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_PACKET = 0x107 - SOL_RAW = 0xff - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_FILTER = 0x1a - SO_BINDTODEVICE = 0x19 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_DEBUG = 0x1 - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_MARK = 0x24 - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - 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_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TYPE = 0x3 - 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 - TCIFLUSH = 0x0 - TCIOFLUSH = 0x2 - TCOFLUSH = 0x1 - TCP_CONGESTION = 0xd - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - 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_NODELAY = 0x1 - TCP_QUICKACK = 0xc - TCP_SYNCNT = 0x7 - TCP_WINDOW_CLAMP = 0xa - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - 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 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETFEATURES = 0x800454cf - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETHDRSZ = 0x800454d7 - TUNSETDEBUG = 0x400454c9 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETSNDBUF = 0x400454d4 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETHDRSZ = 0x400454d8 - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 -) - -// 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 NFS 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: "unknown error 133", -} - -// 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/github.com/andrewkroh/sys/unix/zerrors_linux_arm64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_arm64.go deleted file mode 100644 index 165073f1326..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_arm64.go +++ /dev/null @@ -1,1843 +0,0 @@ -// mkerrors.sh -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build arm64,linux - -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- _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_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x29 - 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 - 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 - 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_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_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 - CFLUSH = 0xf - 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_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_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 - CREAD = 0x80 - 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 - ELF_NGREG = 0x22 - ELF_PRARGSZ = 0x50 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - 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_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_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_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_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x1000 - 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_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 - HUPCL = 0x400 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_NODAD = 0x2 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x7 - IFF_802_1Q_VLAN = 0x1 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BONDING = 0x20 - IFF_BRIDGE_PORT = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DISABLE_NETPOLL = 0x1000 - IFF_DONT_BRIDGE = 0x800 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_EBRIDGE = 0x2 - IFF_ECHO = 0x40000 - IFF_ISATAP = 0x80 - IFF_LIVE_ADDR_CHANGE = 0x100000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MACVLAN = 0x200000 - IFF_MACVLAN_PORT = 0x2000 - IFF_MASTER = 0x400 - IFF_MASTER_8023AD = 0x8 - IFF_MASTER_ALB = 0x10 - IFF_MASTER_ARPMON = 0x100 - 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_OVS_DATAPATH = 0x8000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_SLAVE_INACTIVE = 0x4 - IFF_SLAVE_NEEDARP = 0x40 - IFF_SUPP_NOFCS = 0x80000 - IFF_TAP = 0x2 - IFF_TEAM_PORT = 0x40000 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_TX_SKB_SHARING = 0x10000 - IFF_UNICAST_FLT = 0x20000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFF_WAN_HDLC = 0x200 - IFF_XMIT_DST_RELEASE = 0x400 - 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_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_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - 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_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - 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_BLOCK_SOURCE = 0x26 - 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_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_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 - 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_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 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - 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_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 = 0x800051 - 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_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_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 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - 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_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 - 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 = 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_CPU = 0x2 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - 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_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - 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_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_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - 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_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_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - 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_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_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 = 0x1000ff - 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_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_NOFILE = 0x7 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0xf - 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 = 0x11 - 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_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - 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_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x57 - 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_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x12 - RTM_NR_MSGTYPES = 0x48 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_F_DEAD = 0x1 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - 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_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCGARP = 0x8954 - 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 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - 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 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ATM = 0x108 - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_PACKET = 0x107 - SOL_RAW = 0xff - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_FILTER = 0x1a - SO_BINDTODEVICE = 0x19 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_DEBUG = 0x1 - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - 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_WIFI_STATUS = 0x29 - 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 - TCFLSH = 0x540b - TCIFLUSH = 0x0 - TCIOFLUSH = 0x2 - TCOFLUSH = 0x1 - 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_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - 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 - 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 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETHDRSZ = 0x800454d7 - TUNSETDEBUG = 0x400454c9 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETHDRSZ = 0x400454d8 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMIN = 0x6 - 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 -) - -// 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/github.com/andrewkroh/sys/unix/zerrors_linux_ppc64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_ppc64.go deleted file mode 100644 index 9d908d7199f..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_ppc64.go +++ /dev/null @@ -1,1922 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build ppc64,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_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x29 - 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 - 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 - 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_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_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 - CFLUSH = 0xf - 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_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_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 - CREAD = 0x800 - 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 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - 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_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_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_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000000 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - 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 - HUPCL = 0x4000 - 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_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - 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_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_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - 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_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_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_BLOCK_SOURCE = 0x26 - 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 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - 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_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 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - 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_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 = 0x800051 - 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_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_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 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - 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_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 - 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 = 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_CPU = 0x2 - 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_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 - 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_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_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - 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_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - 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 = 0x1000ff - 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_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_NOFILE = 0x7 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0xf - 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 = 0x11 - 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_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - 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_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x57 - 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_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x12 - RTM_NR_MSGTYPES = 0x48 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_F_DEAD = 0x1 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - 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_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCGARP = 0x8954 - 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 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - 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 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ATM = 0x108 - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_PACKET = 0x107 - SOL_RAW = 0xff - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_FILTER = 0x1a - SO_BINDTODEVICE = 0x19 - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_DEBUG = 0x1 - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - 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_WIFI_STATUS = 0x29 - 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 - TCFLSH = 0x2000741f - TCIFLUSH = 0x0 - TCIOFLUSH = 0x2 - TCOFLUSH = 0x1 - 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_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - 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 - 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 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETHDRSZ = 0x400454d7 - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETHDRSZ = 0x800454d8 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMIN = 0x5 - 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 -) - -// 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/github.com/andrewkroh/sys/unix/zerrors_linux_ppc64le.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_ppc64le.go deleted file mode 100644 index ccf05a27415..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_linux_ppc64le.go +++ /dev/null @@ -1,1921 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build ppc64le,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_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x29 - 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 - 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 - 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_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_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 - CFLUSH = 0xf - 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_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_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 - CREAD = 0x800 - 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 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - 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_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_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_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_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000000 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FLUSHO = 0x800000 - 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_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 - HUPCL = 0x4000 - ICANON = 0x100 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x400 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_NODAD = 0x2 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x7 - IFF_802_1Q_VLAN = 0x1 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BONDING = 0x20 - IFF_BRIDGE_PORT = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DISABLE_NETPOLL = 0x1000 - IFF_DONT_BRIDGE = 0x800 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_EBRIDGE = 0x2 - IFF_ECHO = 0x40000 - IFF_ISATAP = 0x80 - IFF_LIVE_ADDR_CHANGE = 0x100000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MACVLAN = 0x200000 - IFF_MACVLAN_PORT = 0x2000 - IFF_MASTER = 0x400 - IFF_MASTER_8023AD = 0x8 - IFF_MASTER_ALB = 0x10 - IFF_MASTER_ARPMON = 0x100 - 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_OVS_DATAPATH = 0x8000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_SLAVE_INACTIVE = 0x4 - IFF_SLAVE_NEEDARP = 0x40 - IFF_SUPP_NOFCS = 0x80000 - IFF_TAP = 0x2 - IFF_TEAM_PORT = 0x40000 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_TX_SKB_SHARING = 0x10000 - IFF_UNICAST_FLT = 0x20000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFF_WAN_HDLC = 0x200 - IFF_XMIT_DST_RELEASE = 0x400 - 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_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_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - 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_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - 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_BLOCK_SOURCE = 0x26 - 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_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_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 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - 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_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 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - 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_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 = 0x800051 - 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_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_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 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - 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_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 - 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 = 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_CPU = 0x2 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - 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_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - 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 - 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_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_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - 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_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_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - 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_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_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 = 0x1000ff - 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_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_NOFILE = 0x7 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0xf - 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 = 0x11 - 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_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - 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_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x57 - 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_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x12 - RTM_NR_MSGTYPES = 0x48 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_F_DEAD = 0x1 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - 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_TIMESTAMPNS = 0x23 - SCM_WIFI_STATUS = 0x29 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCGARP = 0x8954 - 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 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - 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 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ATM = 0x108 - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_PACKET = 0x107 - SOL_RAW = 0xff - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_FILTER = 0x1a - SO_BINDTODEVICE = 0x19 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_DEBUG = 0x1 - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - 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_WIFI_STATUS = 0x29 - 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 - TCFLSH = 0x2000741f - TCIFLUSH = 0x0 - TCIOFLUSH = 0x2 - TCOFLUSH = 0x1 - 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_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - 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 - 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 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETHDRSZ = 0x400454d7 - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETHDRSZ = 0x800454d8 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMIN = 0x5 - 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 -) - -// 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/github.com/andrewkroh/sys/unix/zerrors_netbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_netbsd_386.go deleted file mode 100644 index b4338d5f263..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/zerrors_netbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_netbsd_amd64.go deleted file mode 100644 index 4994437b63d..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/zerrors_netbsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_netbsd_arm.go deleted file mode 100644 index ac85ca64529..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_netbsd_arm.go +++ /dev/null @@ -1,1688 +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 - 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/github.com/andrewkroh/sys/unix/zerrors_openbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_openbsd_386.go deleted file mode 100644 index 3322e998d30..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/zerrors_openbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_openbsd_amd64.go deleted file mode 100644 index 1758ecca93e..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/zerrors_solaris_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zerrors_solaris_amd64.go deleted file mode 100644 index a08922b9818..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zerrors_solaris_amd64.go +++ /dev/null @@ -1,1436 +0,0 @@ -// mkerrors.sh -m64 -// MACHINE GENERATED BY THE COMMAND ABOVE; 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 - CFLUSH = 0xf - 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 - CREAD = 0x80 - 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 - 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_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_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 - 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 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - MADV_ACCESS_DEFAULT = 0x6 - MADV_ACCESS_LWP = 0x7 - MADV_ACCESS_MANY = 0x8 - MADV_DONTNEED = 0x4 - MADV_FREE = 0x5 - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_SEQUENTIAL = 0x2 - MADV_WILLNEED = 0x3 - MAP_32BIT = 0x80 - MAP_ALIGN = 0x200 - MAP_ANON = 0x100 - MAP_ANONYMOUS = 0x100 - 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 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - 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 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCIFLUSH = 0x0 - TCIOFLUSH = 0x2 - TCOFLUSH = 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 -) - -// 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/github.com/andrewkroh/sys/unix/zsyscall_darwin_386.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_386.go deleted file mode 100644 index a15aaf120a7..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_386.go +++ /dev/null @@ -1,1426 +0,0 @@ -// mksyscall.pl -l32 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,darwin - -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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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_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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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/github.com/andrewkroh/sys/unix/zsyscall_darwin_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_amd64.go deleted file mode 100644 index 74606b2f499..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_amd64.go +++ /dev/null @@ -1,1442 +0,0 @@ -// mksyscall.pl syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,darwin - -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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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_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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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/github.com/andrewkroh/sys/unix/zsyscall_darwin_arm.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_arm.go deleted file mode 100644 index 640e8542692..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_arm.go +++ /dev/null @@ -1,1426 +0,0 @@ -// mksyscall.pl syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build arm,darwin - -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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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_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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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/github.com/andrewkroh/sys/unix/zsyscall_darwin_arm64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_arm64.go deleted file mode 100644 index 933f67bbf12..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_darwin_arm64.go +++ /dev/null @@ -1,1426 +0,0 @@ -// mksyscall.pl syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build arm64,darwin - -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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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_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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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/github.com/andrewkroh/sys/unix/zsyscall_dragonfly_386.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_dragonfly_386.go deleted file mode 100644 index 32e46af601e..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_dragonfly_386.go +++ /dev/null @@ -1,1412 +0,0 @@ -// mksyscall.pl -l32 -dragonfly syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_386.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,dragonfly - -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) - use(unsafe.Pointer(_p0)) - 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 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), 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 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), 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_dragonfly_amd64.go deleted file mode 100644 index 3fa6ff796db..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_dragonfly_amd64.go +++ /dev/null @@ -1,1412 +0,0 @@ -// mksyscall.pl -dragonfly syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,dragonfly - -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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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)), 0, uintptr(length)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_386.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_386.go deleted file mode 100644 index 1a0e528cdac..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_386.go +++ /dev/null @@ -1,1664 +0,0 @@ -// mksyscall.pl -l32 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,freebsd - -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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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))) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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))) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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 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), 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_amd64.go deleted file mode 100644 index 6e4cf1455ca..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_amd64.go +++ /dev/null @@ -1,1664 +0,0 @@ -// mksyscall.pl syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,freebsd - -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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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))) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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))) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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 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), 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_arm.go deleted file mode 100644 index 1872d32308f..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_freebsd_arm.go +++ /dev/null @@ -1,1664 +0,0 @@ -// mksyscall.pl -l32 -arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build arm,freebsd - -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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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))) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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))) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_386.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_386.go deleted file mode 100644 index ff6c39dc244..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_386.go +++ /dev/null @@ -1,1628 +0,0 @@ -// mksyscall.pl -l32 syscall_linux.go syscall_linux_386.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,linux - -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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - fd = 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - use(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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - use(unsafe.Pointer(_p2)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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)) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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 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) - use(unsafe.Pointer(_p0)) - use(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() { - 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, 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_amd64.go deleted file mode 100644 index c2438522d34..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_amd64.go +++ /dev/null @@ -1,1822 +0,0 @@ -// mksyscall.pl syscall_linux.go syscall_linux_amd64.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,linux - -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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - fd = 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - use(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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - use(unsafe.Pointer(_p2)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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)) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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 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) - use(unsafe.Pointer(_p0)) - use(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() { - 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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 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, 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_arm.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_arm.go deleted file mode 100644 index dd66c975879..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_arm.go +++ /dev/null @@ -1,1756 +0,0 @@ -// mksyscall.pl -l32 -arm syscall_linux.go syscall_linux_arm.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build arm,linux - -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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - fd = 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - use(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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - use(unsafe.Pointer(_p2)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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)) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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 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) - use(unsafe.Pointer(_p0)) - use(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() { - 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, 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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_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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_arm64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_arm64.go deleted file mode 100644 index d0a6ed82927..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_arm64.go +++ /dev/null @@ -1,1750 +0,0 @@ -// mksyscall.pl syscall_linux.go syscall_linux_arm64.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build arm64,linux - -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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - fd = 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - use(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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - use(unsafe.Pointer(_p2)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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)) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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 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) - use(unsafe.Pointer(_p0)) - use(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() { - 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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/github.com/andrewkroh/sys/unix/zsyscall_linux_ppc64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_ppc64.go deleted file mode 100644 index f58a3ff2f92..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_ppc64.go +++ /dev/null @@ -1,1792 +0,0 @@ -// mksyscall.pl syscall_linux.go syscall_linux_ppc64x.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build ppc64,linux - -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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - fd = 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - use(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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - use(unsafe.Pointer(_p2)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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)) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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 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) - use(unsafe.Pointer(_p0)) - use(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() { - 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_ppc64le.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_ppc64le.go deleted file mode 100644 index 22fc7a45725..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_linux_ppc64le.go +++ /dev/null @@ -1,1792 +0,0 @@ -// mksyscall.pl syscall_linux.go syscall_linux_ppc64x.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build ppc64le,linux - -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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - fd = 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - use(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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - use(unsafe.Pointer(_p2)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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)) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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 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) - use(unsafe.Pointer(_p0)) - use(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() { - 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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_386.go deleted file mode 100644 index 00ca1f9c119..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_386.go +++ /dev/null @@ -1,1326 +0,0 @@ -// mksyscall.pl -l32 -netbsd syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,netbsd - -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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_amd64.go deleted file mode 100644 index 03f31b973d5..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_amd64.go +++ /dev/null @@ -1,1326 +0,0 @@ -// mksyscall.pl -netbsd syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,netbsd - -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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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)), 0, uintptr(length)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_arm.go deleted file mode 100644 index 84dc61cfa98..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_netbsd_arm.go +++ /dev/null @@ -1,1326 +0,0 @@ -// mksyscall.pl -l32 -arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build arm,netbsd - -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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_openbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_openbsd_386.go deleted file mode 100644 index 02b3528a69e..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_openbsd_386.go +++ /dev/null @@ -1,1386 +0,0 @@ -// mksyscall.pl -l32 -openbsd syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build 386,openbsd - -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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_openbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_openbsd_amd64.go deleted file mode 100644 index 7dc2b7eaf7f..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_openbsd_amd64.go +++ /dev/null @@ -1,1386 +0,0 @@ -// mksyscall.pl -openbsd syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,openbsd - -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) - use(unsafe.Pointer(_p0)) - 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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)) - use(unsafe.Pointer(_p0)) - 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 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 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)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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))) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(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)), 0, uintptr(length)) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/zsyscall_solaris_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsyscall_solaris_amd64.go deleted file mode 100644 index 8d2a8365b2f..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsyscall_solaris_amd64.go +++ /dev/null @@ -1,1559 +0,0 @@ -// mksyscall_solaris.pl syscall_solaris.go syscall_solaris_amd64.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -// +build amd64,solaris - -package unix - -import ( - "syscall" - "unsafe" -) - -//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_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_recvmsg recvmsg "libsocket.so" -//go:cgo_import_dynamic libc_sendmsg 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_fpathconf fpathconf "libc.so" -//go:cgo_import_dynamic libc_fstat fstat "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_listen listen "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_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_bind bind "libsocket.so" -//go:cgo_import_dynamic libc_connect 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_sendto sendto "libsocket.so" -//go:cgo_import_dynamic libc_socket socket "libsocket.so" -//go:cgo_import_dynamic libc_socketpair socketpair "libsocket.so" -//go:cgo_import_dynamic libc_write write "libc.so" -//go:cgo_import_dynamic libc_getsockopt 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 procgetsockname libc_getsockname -//go:linkname procGetcwd libc_getcwd -//go:linkname procgetgroups libc_getgroups -//go:linkname procsetgroups libc_setgroups -//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 procrecvmsg libc_recvmsg -//go:linkname procsendmsg libc_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 procFpathconf libc_fpathconf -//go:linkname procFstat libc_fstat -//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 proclisten libc_listen -//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 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 procbind libc_bind -//go:linkname procconnect libc_connect -//go:linkname procmmap libc_mmap -//go:linkname procmunmap libc_munmap -//go:linkname procsendto libc_sendto -//go:linkname procsocket libc_socket -//go:linkname procsocketpair libc_socketpair -//go:linkname procwrite libc_write -//go:linkname procgetsockopt libc_getsockopt -//go:linkname procgetpeername libc_getpeername -//go:linkname procsetsockopt libc_setsockopt -//go:linkname procrecvfrom libc_recvfrom -//go:linkname procsysconf libc_sysconf - -var ( - procgetsockname, - procGetcwd, - procgetgroups, - procsetgroups, - procutimes, - procutimensat, - procfcntl, - procfutimesat, - procaccept, - procrecvmsg, - procsendmsg, - procacct, - procioctl, - procAccess, - procAdjtime, - procChdir, - procChmod, - procChown, - procChroot, - procClose, - procCreat, - procDup, - procDup2, - procExit, - procFchdir, - procFchmod, - procFchmodat, - procFchown, - procFchownat, - procFdatasync, - procFpathconf, - procFstat, - procGetdents, - procGetgid, - procGetpid, - procGetpgid, - procGetpgrp, - procGeteuid, - procGetegid, - procGetppid, - procGetpriority, - procGetrlimit, - procGetrusage, - procGettimeofday, - procGetuid, - procKill, - procLchown, - procLink, - proclisten, - 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, - procSymlink, - procSync, - procTimes, - procTruncate, - procFsync, - procFtruncate, - procUmask, - procUname, - procumount, - procUnlink, - procUnlinkat, - procUstat, - procUtime, - procbind, - procconnect, - procmmap, - procmunmap, - procsendto, - procsocket, - procsocketpair, - procwrite, - procgetsockopt, - procgetpeername, - procsetsockopt, - procrecvfrom, - procsysconf syscallFunc -) - -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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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(&procrecvmsg)), 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(&procsendmsg)), 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 int, 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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 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 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - if e1 != 0 { - err = e1 - } - return -} - -func Listen(s int, backlog int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclisten)), 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - use(unsafe.Pointer(_p1)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - if e1 != 0 { - err = e1 - } - return -} - -func Unlinkat(dirfd int, path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0) - use(unsafe.Pointer(_p0)) - 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) - use(unsafe.Pointer(_p0)) - if e1 != 0 { - err = e1 - } - return -} - -func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procbind)), 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(&procconnect)), 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(&procsendto)), 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(&procsocket)), 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(&procsocketpair)), 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(&procgetsockopt)), 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/github.com/andrewkroh/sys/unix/zsysctl_openbsd.go b/vendor/github.com/andrewkroh/sys/unix/zsysctl_openbsd.go deleted file mode 100644 index 83bb935b91c..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/zsysnum_darwin_386.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_386.go deleted file mode 100644 index 2786773ba37..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/zsysnum_darwin_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_amd64.go deleted file mode 100644 index 09de240c8f8..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/zsysnum_darwin_arm.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_arm.go deleted file mode 100644 index b8c9aea852f..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_arm.go +++ /dev/null @@ -1,358 +0,0 @@ -// mksysnum_darwin.pl /usr/include/sys/syscall.h -// MACHINE GENERATED BY THE ABOVE COMMAND; 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_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_ATSOCKET = 206 - SYS_ATGETMSG = 207 - SYS_ATPUTMSG = 208 - SYS_ATPSNDREQ = 209 - SYS_ATPSNDRSP = 210 - SYS_ATPGETREQ = 211 - SYS_ATPGETRSP = 212 - 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_SEM_GETVALUE = 274 - SYS_SEM_INIT = 275 - SYS_SEM_DESTROY = 276 - 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_MAXSYSCALL = 440 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_arm64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_arm64.go deleted file mode 100644 index 26677ebbf5b..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_darwin_arm64.go +++ /dev/null @@ -1,398 +0,0 @@ -// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk/usr/include/sys/syscall.h -// MACHINE GENERATED BY THE ABOVE COMMAND; 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_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/github.com/andrewkroh/sys/unix/zsysnum_dragonfly_386.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_dragonfly_386.go deleted file mode 100644 index 785240a75b7..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_dragonfly_386.go +++ /dev/null @@ -1,304 +0,0 @@ -// mksysnum_dragonfly.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build 386,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(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, 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(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, 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, 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_SCTP_PEELOFF = 364 // { int sctp_peeloff(int sd, caddr_t name ); } - 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); } -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_dragonfly_amd64.go deleted file mode 100644 index d6038fa9b08..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_dragonfly_amd64.go +++ /dev/null @@ -1,304 +0,0 @@ -// mksysnum_dragonfly.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; 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(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, 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(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, 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, 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_SCTP_PEELOFF = 364 // { int sctp_peeloff(int sd, caddr_t name ); } - 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); } -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_386.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_386.go deleted file mode 100644 index 262a84536a7..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_386.go +++ /dev/null @@ -1,351 +0,0 @@ -// mksysnum_freebsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; 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_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ - 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_NEW = 514 // { int cap_new(int fd, uint64_t rights); } - SYS_CAP_GETRIGHTS = 515 // { int cap_getrights(int fd, \ - 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_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, \ -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_amd64.go deleted file mode 100644 index 57a60ea126d..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_amd64.go +++ /dev/null @@ -1,351 +0,0 @@ -// mksysnum_freebsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; 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_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ - 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_NEW = 514 // { int cap_new(int fd, uint64_t rights); } - SYS_CAP_GETRIGHTS = 515 // { int cap_getrights(int fd, \ - 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_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, \ -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_arm.go deleted file mode 100644 index 206b9f612d4..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_freebsd_arm.go +++ /dev/null @@ -1,351 +0,0 @@ -// mksysnum_freebsd.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; 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_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ - 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_NEW = 514 // { int cap_new(int fd, uint64_t rights); } - SYS_CAP_GETRIGHTS = 515 // { int cap_getrights(int fd, \ - 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_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, \ -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_386.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_386.go deleted file mode 100644 index ba952c67548..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_386.go +++ /dev/null @@ -1,355 +0,0 @@ -// mksysnum_linux.pl /usr/include/asm/unistd_32.h -// MACHINE GENERATED BY THE ABOVE COMMAND; 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_MADVISE1 = 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 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_amd64.go deleted file mode 100644 index ddac31f58ad..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_amd64.go +++ /dev/null @@ -1,321 +0,0 @@ -// mksysnum_linux.pl /usr/include/asm/unistd_64.h -// MACHINE GENERATED BY THE ABOVE COMMAND; 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 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_arm.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_arm.go deleted file mode 100644 index 45ced17fc4c..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_arm.go +++ /dev/null @@ -1,356 +0,0 @@ -// mksysnum_linux.pl -// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT - -// +build arm,linux - -package unix - -const ( - SYS_OABI_SYSCALL_BASE = 0 - SYS_SYSCALL_BASE = 0 - 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_TIME = 13 - SYS_MKNOD = 14 - SYS_CHMOD = 15 - SYS_LCHOWN = 16 - 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_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_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_GETRLIMIT = 76 - SYS_GETRUSAGE = 77 - SYS_GETTIMEOFDAY = 78 - SYS_SETTIMEOFDAY = 79 - SYS_GETGROUPS = 80 - SYS_SETGROUPS = 81 - SYS_SELECT = 82 - 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_FCHOWN = 95 - 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_VHANGUP = 111 - SYS_SYSCALL = 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_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 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_arm64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_arm64.go deleted file mode 100644 index 2e9514f2803..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_arm64.go +++ /dev/null @@ -1,272 +0,0 @@ -// mksysnum_linux.pl /usr/include/asm-generic/unistd.h -// MACHINE GENERATED BY THE ABOVE COMMAND; 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 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_ppc64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_ppc64.go deleted file mode 100644 index e1b08f00d3b..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_ppc64.go +++ /dev/null @@ -1,360 +0,0 @@ -// mksysnum_linux.pl /usr/include/asm/unistd.h -// MACHINE GENERATED BY THE ABOVE COMMAND; 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 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_ppc64le.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_ppc64le.go deleted file mode 100644 index 45e63f51a43..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_linux_ppc64le.go +++ /dev/null @@ -1,353 +0,0 @@ -// mksysnum_linux.pl /usr/include/powerpc64le-linux-gnu/asm/unistd.h -// MACHINE GENERATED BY THE ABOVE COMMAND; 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 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_386.go deleted file mode 100644 index f60d8f98823..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_386.go +++ /dev/null @@ -1,273 +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___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/github.com/andrewkroh/sys/unix/zsysnum_netbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_amd64.go deleted file mode 100644 index 48a91d46464..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_amd64.go +++ /dev/null @@ -1,273 +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___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/github.com/andrewkroh/sys/unix/zsysnum_netbsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_arm.go deleted file mode 100644 index 612ba662cb2..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/zsysnum_netbsd_arm.go +++ /dev/null @@ -1,273 +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___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/github.com/andrewkroh/sys/unix/zsysnum_openbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_openbsd_386.go deleted file mode 100644 index 3e8ce2a1ddf..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/zsysnum_openbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_openbsd_amd64.go deleted file mode 100644 index bd28146ddd5..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/zsysnum_solaris_amd64.go b/vendor/github.com/andrewkroh/sys/unix/zsysnum_solaris_amd64.go deleted file mode 100644 index c7086598590..00000000000 --- a/vendor/github.com/andrewkroh/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/github.com/andrewkroh/sys/unix/ztypes_darwin_386.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_386.go deleted file mode 100644 index 2de1d44e281..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_386.go +++ /dev/null @@ -1,447 +0,0 @@ -// +build 386,darwin -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_darwin.go - -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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_amd64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_amd64.go deleted file mode 100644 index 044657878c8..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_amd64.go +++ /dev/null @@ -1,462 +0,0 @@ -// +build amd64,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 -} - -const ( - AT_FDCWD = -0x2 - AT_SYMLINK_NOFOLLOW = 0x20 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_arm.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_arm.go deleted file mode 100644 index 66df363ce5b..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_arm.go +++ /dev/null @@ -1,449 +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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_arm64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_arm64.go deleted file mode 100644 index 85d56eabd3f..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_darwin_arm64.go +++ /dev/null @@ -1,457 +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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_dragonfly_386.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_dragonfly_386.go deleted file mode 100644 index b7e7ff08865..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_dragonfly_386.go +++ /dev/null @@ -1,437 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_dragonfly.go - -// +build 386,dragonfly - -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 { - 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 int32 - Bsize int32 - Iosize int32 - Blocks int32 - Bfree int32 - Bavail int32 - Files int32 - Ffree int32 - Fsid Fsid - Owner uint32 - Type int32 - Flags int32 - Syncwrites int32 - Asyncwrites int32 - Fstypename [16]int8 - Mntonname [80]int8 - Syncreads int32 - Asyncreads int32 - Spares1 int16 - Mntfromname [80]int8 - Spares2 int16 - Spare [2]int32 -} - -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 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 = 0x36 - 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 int32 - Udata *byte -} - -type FdSet struct { - Bits [32]uint32 -} - -const ( - SizeofIfMsghdr = 0x68 - SizeofIfData = 0x58 - 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 IfData struct { - Type uint8 - Physical uint8 - Addrlen uint8 - Hdrlen uint8 - Recvquota uint8 - Xmitquota uint8 - Pad_cgo_0 [2]byte - Mtu uint32 - Metric uint32 - Link_state uint32 - Baudrate uint64 - Ipackets uint32 - Ierrors uint32 - Opackets uint32 - Oerrors uint32 - Collisions uint32 - Ibytes uint32 - Obytes uint32 - Imcasts uint32 - Omcasts uint32 - Iqdrops uint32 - Noproto uint32 - Hwassist uint32 - Unused uint32 - 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 uint32 - Rmx RtMetrics -} - -type RtMetrics struct { - Locks uint32 - Mtu uint32 - Pksent uint32 - Expire uint32 - Sendpipe uint32 - Ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Recvpipe uint32 - Hopcount uint32 - Mssopt uint16 - Pad uint16 - Msl uint32 - Iwmaxsegs uint32 - Iwcapsegs 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_dragonfly_amd64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_dragonfly_amd64.go deleted file mode 100644 index 8a6f4e1ce3f..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_dragonfly_amd64.go +++ /dev/null @@ -1,443 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_dragonfly.go - -// +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 - Unused 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_386.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_386.go deleted file mode 100644 index 8cf30947b41..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_386.go +++ /dev/null @@ -1,502 +0,0 @@ -// +build 386,freebsd -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_freebsd.go - -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 uint32 - 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 = 0x64 - SizeofIfMsghdr = 0x60 - sizeofIfData = 0x54 - 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 - Baudrate_pf 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 uint64 - Epoch int32 - Lastchange Timeval -} - -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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_amd64.go deleted file mode 100644 index e5feb207be6..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_amd64.go +++ /dev/null @@ -1,505 +0,0 @@ -// +build amd64,freebsd -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_freebsd.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 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 uint32 - 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 - Baudrate_pf 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 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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_arm.go deleted file mode 100644 index 5472b54284b..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_freebsd_arm.go +++ /dev/null @@ -1,497 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -fsigned-char types_freebsd.go - -// +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 uint32 - 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 -} - -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 = 0x70 - SizeofIfMsghdr = 0x70 - sizeofIfData = 0x60 - 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 - Baudrate_pf 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 uint64 - Epoch int64 - Lastchange Timeval -} - -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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_386.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_386.go deleted file mode 100644 index 9a58381b4dc..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_386.go +++ /dev/null @@ -1,592 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go - -// +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 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 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 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 - X__cmsg_data [0]uint8 -} - -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 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - 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 = 0x1d - 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 - Name [0]int8 -} - -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_SYMLINK_NOFOLLOW = 0x100 - AT_REMOVEDIR = 0x200 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [32]uint8 - Pad_cgo_0 [3]byte - Ispeed uint32 - Ospeed uint32 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_amd64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_amd64.go deleted file mode 100644 index f1937a62756..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_amd64.go +++ /dev/null @@ -1,610 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go - -// +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 - X__unused [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 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 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 - X__cmsg_data [0]uint8 -} - -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 - 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 = 0x1d - 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 - Name [0]int8 -} - -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_SYMLINK_NOFOLLOW = 0x100 - AT_REMOVEDIR = 0x200 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [32]uint8 - Pad_cgo_0 [3]byte - Ispeed uint32 - Ospeed uint32 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_arm.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_arm.go deleted file mode 100644 index c8a0de45adf..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_arm.go +++ /dev/null @@ -1,683 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go - -// +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 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 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 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 - X__cmsg_data [0]uint8 -} - -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 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - 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 = 0x1d - 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 - Name [0]uint8 -} - -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_SYMLINK_NOFOLLOW = 0x100 - AT_REMOVEDIR = 0x200 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [32]uint8 - Pad_cgo_0 [3]byte - Ispeed uint32 - Ospeed uint32 -} - -const ( - VINTR = 0x0 - VQUIT = 0x1 - VERASE = 0x2 - VKILL = 0x3 - VEOF = 0x4 - VTIME = 0x5 - VMIN = 0x6 - VSWTC = 0x7 - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VEOL = 0xb - VREPRINT = 0xc - VDISCARD = 0xd - VWERASE = 0xe - VLNEXT = 0xf - VEOL2 = 0x10 - IGNBRK = 0x1 - BRKINT = 0x2 - IGNPAR = 0x4 - PARMRK = 0x8 - INPCK = 0x10 - ISTRIP = 0x20 - INLCR = 0x40 - IGNCR = 0x80 - ICRNL = 0x100 - IUCLC = 0x200 - IXON = 0x400 - IXANY = 0x800 - IXOFF = 0x1000 - IMAXBEL = 0x2000 - IUTF8 = 0x4000 - OPOST = 0x1 - OLCUC = 0x2 - ONLCR = 0x4 - OCRNL = 0x8 - ONOCR = 0x10 - ONLRET = 0x20 - OFILL = 0x40 - OFDEL = 0x80 - B0 = 0x0 - B50 = 0x1 - B75 = 0x2 - B110 = 0x3 - B134 = 0x4 - B150 = 0x5 - B200 = 0x6 - B300 = 0x7 - B600 = 0x8 - B1200 = 0x9 - B1800 = 0xa - B2400 = 0xb - B4800 = 0xc - B9600 = 0xd - B19200 = 0xe - B38400 = 0xf - CSIZE = 0x30 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSTOPB = 0x40 - CREAD = 0x80 - PARENB = 0x100 - PARODD = 0x200 - HUPCL = 0x400 - CLOCAL = 0x800 - B57600 = 0x1001 - B115200 = 0x1002 - B230400 = 0x1003 - B460800 = 0x1004 - B500000 = 0x1005 - B576000 = 0x1006 - B921600 = 0x1007 - B1000000 = 0x1008 - B1152000 = 0x1009 - B1500000 = 0x100a - B2000000 = 0x100b - B2500000 = 0x100c - B3000000 = 0x100d - B3500000 = 0x100e - B4000000 = 0x100f - ISIG = 0x1 - ICANON = 0x2 - XCASE = 0x4 - ECHO = 0x8 - ECHOE = 0x10 - ECHOK = 0x20 - ECHONL = 0x40 - NOFLSH = 0x80 - TOSTOP = 0x100 - ECHOCTL = 0x200 - ECHOPRT = 0x400 - ECHOKE = 0x800 - FLUSHO = 0x1000 - PENDIN = 0x4000 - IEXTEN = 0x8000 - TCGETS = 0x5401 - TCSETS = 0x5402 -) diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_arm64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_arm64.go deleted file mode 100644 index f989a36052c..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_arm64.go +++ /dev/null @@ -1,597 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs -- -fsigned-char types_linux.go - -// +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 - X__glibc_reserved [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 -} - -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 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 - X__cmsg_data [0]uint8 -} - -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 - 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 = 0x22 - 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 - Name [0]int8 -} - -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 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [32]uint8 - Pad_cgo_0 [3]byte - Ispeed uint32 - Ospeed uint32 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_ppc64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_ppc64.go deleted file mode 100644 index 808203d071b..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_ppc64.go +++ /dev/null @@ -1,607 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go - -// +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 - X__glibc_reserved4 uint64 - X__glibc_reserved5 uint64 - X__glibc_reserved6 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 -} - -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 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 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 - X__cmsg_data [0]uint8 -} - -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 - 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 = 0x23 - 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 - Name [0]uint8 -} - -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 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [32]uint8 - Pad_cgo_0 [3]byte - Ispeed uint32 - Ospeed uint32 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_ppc64le.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_ppc64le.go deleted file mode 100644 index d4a689faffa..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_linux_ppc64le.go +++ /dev/null @@ -1,607 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go - -// +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 - X__glibc_reserved4 uint64 - X__glibc_reserved5 uint64 - X__glibc_reserved6 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 -} - -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 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 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 - X__cmsg_data [0]uint8 -} - -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 - 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 = 0x22 - 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 - Name [0]uint8 -} - -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 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [32]uint8 - Pad_cgo_0 [3]byte - Ispeed uint32 - Ospeed uint32 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_386.go deleted file mode 100644 index caf755fb86c..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_386.go +++ /dev/null @@ -1,396 +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 -} - -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/github.com/andrewkroh/sys/unix/ztypes_netbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_amd64.go deleted file mode 100644 index 91b4a5305a4..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_amd64.go +++ /dev/null @@ -1,403 +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 -} - -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/github.com/andrewkroh/sys/unix/ztypes_netbsd_arm.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_arm.go deleted file mode 100644 index c0758f9d3f7..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_netbsd_arm.go +++ /dev/null @@ -1,401 +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 -} - -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/github.com/andrewkroh/sys/unix/ztypes_openbsd_386.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_openbsd_386.go deleted file mode 100644 index 860a4697961..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_openbsd_386.go +++ /dev/null @@ -1,441 +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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_openbsd_amd64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_openbsd_amd64.go deleted file mode 100644 index 23c52727f7d..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_openbsd_amd64.go +++ /dev/null @@ -1,448 +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 -} diff --git a/vendor/github.com/andrewkroh/sys/unix/ztypes_solaris_amd64.go b/vendor/github.com/andrewkroh/sys/unix/ztypes_solaris_amd64.go deleted file mode 100644 index b3b928a51e6..00000000000 --- a/vendor/github.com/andrewkroh/sys/unix/ztypes_solaris_amd64.go +++ /dev/null @@ -1,422 +0,0 @@ -// +build amd64,solaris -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_solaris.go - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x400 -) - -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 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/github.com/andrewkroh/sys/windows/asm.s b/vendor/github.com/andrewkroh/sys/windows/asm.s deleted file mode 100644 index d4ca868f17f..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/asm.s +++ /dev/null @@ -1,8 +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. - -#include "textflag.h" - -TEXT ·use(SB),NOSPLIT,$0 - RET diff --git a/vendor/github.com/andrewkroh/sys/windows/asm_windows_386.s b/vendor/github.com/andrewkroh/sys/windows/asm_windows_386.s deleted file mode 100644 index 1c20dd2f897..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/asm_windows_386.s +++ /dev/null @@ -1,13 +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. - -// -// System calls for 386, Windows are implemented in runtime/syscall_windows.goc -// - -TEXT ·getprocaddress(SB), 7, $0-8 - JMP syscall·getprocaddress(SB) - -TEXT ·loadlibrary(SB), 7, $0-4 - JMP syscall·loadlibrary(SB) diff --git a/vendor/github.com/andrewkroh/sys/windows/asm_windows_amd64.s b/vendor/github.com/andrewkroh/sys/windows/asm_windows_amd64.s deleted file mode 100644 index 4d025ab556d..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/asm_windows_amd64.s +++ /dev/null @@ -1,13 +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. - -// -// System calls for amd64, Windows are implemented in runtime/syscall_windows.goc -// - -TEXT ·getprocaddress(SB), 7, $0-32 - JMP syscall·getprocaddress(SB) - -TEXT ·loadlibrary(SB), 7, $0-8 - JMP syscall·loadlibrary(SB) diff --git a/vendor/github.com/andrewkroh/sys/windows/dll_windows.go b/vendor/github.com/andrewkroh/sys/windows/dll_windows.go deleted file mode 100644 index 7f9f05f9347..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/dll_windows.go +++ /dev/null @@ -1,275 +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 windows - -import ( - "sync" - "sync/atomic" - "syscall" - "unsafe" -) - -// DLLError describes reasons for DLL load failures. -type DLLError struct { - Err error - ObjName string - Msg string -} - -func (e *DLLError) Error() string { return e.Msg } - -// Implemented in runtime/syscall_windows.goc; we provide jumps to them in our assembly file. -func loadlibrary(filename *uint16) (handle uintptr, err syscall.Errno) -func getprocaddress(handle uintptr, procname *uint8) (proc uintptr, err syscall.Errno) - -// A DLL implements access to a single DLL. -type DLL struct { - Name string - Handle Handle -} - -// LoadDLL loads DLL file into memory. -func LoadDLL(name string) (dll *DLL, err error) { - namep, err := UTF16PtrFromString(name) - if err != nil { - return nil, err - } - h, e := loadlibrary(namep) - if e != 0 { - return nil, &DLLError{ - Err: e, - ObjName: name, - Msg: "Failed to load " + name + ": " + e.Error(), - } - } - d := &DLL{ - Name: name, - Handle: Handle(h), - } - return d, nil -} - -// MustLoadDLL is like LoadDLL but panics if load operation failes. -func MustLoadDLL(name string) *DLL { - d, e := LoadDLL(name) - if e != nil { - panic(e) - } - return d -} - -// FindProc searches DLL d for procedure named name and returns *Proc -// if found. It returns an error if search fails. -func (d *DLL) FindProc(name string) (proc *Proc, err error) { - namep, err := BytePtrFromString(name) - if err != nil { - return nil, err - } - a, e := getprocaddress(uintptr(d.Handle), namep) - if e != 0 { - return nil, &DLLError{ - Err: e, - ObjName: name, - Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), - } - } - p := &Proc{ - Dll: d, - Name: name, - addr: a, - } - return p, nil -} - -// MustFindProc is like FindProc but panics if search fails. -func (d *DLL) MustFindProc(name string) *Proc { - p, e := d.FindProc(name) - if e != nil { - panic(e) - } - return p -} - -// Release unloads DLL d from memory. -func (d *DLL) Release() (err error) { - return FreeLibrary(d.Handle) -} - -// A Proc implements access to a procedure inside a DLL. -type Proc struct { - Dll *DLL - Name string - addr uintptr -} - -// Addr returns the address of the procedure represented by p. -// The return value can be passed to Syscall to run the procedure. -func (p *Proc) Addr() uintptr { - return p.addr -} - -// Call executes procedure p with arguments a. It will panic, if more then 15 arguments -// are supplied. -// -// The returned error is always non-nil, constructed from the result of GetLastError. -// Callers must inspect the primary return value to decide whether an error occurred -// (according to the semantics of the specific function being called) before consulting -// the error. The error will be guaranteed to contain windows.Errno. -func (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { - switch len(a) { - case 0: - return syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0) - case 1: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0) - case 2: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0) - case 3: - return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2]) - case 4: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0) - case 5: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0) - case 6: - return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5]) - case 7: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0) - case 8: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0) - case 9: - return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) - case 10: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0) - case 11: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0) - case 12: - return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]) - case 13: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0) - case 14: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0) - case 15: - return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]) - default: - panic("Call " + p.Name + " with too many arguments " + itoa(len(a)) + ".") - } - return -} - -// A LazyDLL implements access to a single DLL. -// It will delay the load of the DLL until the first -// call to its Handle method or to one of its -// LazyProc's Addr method. -type LazyDLL struct { - mu sync.Mutex - dll *DLL // non nil once DLL is loaded - Name string -} - -// Load loads DLL file d.Name into memory. It returns an error if fails. -// Load will not try to load DLL, if it is already loaded into memory. -func (d *LazyDLL) Load() error { - // Non-racy version of: - // if d.dll == nil { - if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) == nil { - d.mu.Lock() - defer d.mu.Unlock() - if d.dll == nil { - dll, e := LoadDLL(d.Name) - if e != nil { - return e - } - // Non-racy version of: - // d.dll = dll - atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll)) - } - } - return nil -} - -// mustLoad is like Load but panics if search fails. -func (d *LazyDLL) mustLoad() { - e := d.Load() - if e != nil { - panic(e) - } -} - -// Handle returns d's module handle. -func (d *LazyDLL) Handle() uintptr { - d.mustLoad() - return uintptr(d.dll.Handle) -} - -// NewProc returns a LazyProc for accessing the named procedure in the DLL d. -func (d *LazyDLL) NewProc(name string) *LazyProc { - return &LazyProc{l: d, Name: name} -} - -// NewLazyDLL creates new LazyDLL associated with DLL file. -func NewLazyDLL(name string) *LazyDLL { - return &LazyDLL{Name: name} -} - -// A LazyProc implements access to a procedure inside a LazyDLL. -// It delays the lookup until the Addr method is called. -type LazyProc struct { - mu sync.Mutex - Name string - l *LazyDLL - proc *Proc -} - -// Find searches DLL for procedure named p.Name. It returns -// an error if search fails. Find will not search procedure, -// if it is already found and loaded into memory. -func (p *LazyProc) Find() error { - // Non-racy version of: - // if p.proc == nil { - if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil { - p.mu.Lock() - defer p.mu.Unlock() - if p.proc == nil { - e := p.l.Load() - if e != nil { - return e - } - proc, e := p.l.dll.FindProc(p.Name) - if e != nil { - return e - } - // Non-racy version of: - // p.proc = proc - atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc)) - } - } - return nil -} - -// mustFind is like Find but panics if search fails. -func (p *LazyProc) mustFind() { - e := p.Find() - if e != nil { - panic(e) - } -} - -// Addr returns the address of the procedure represented by p. -// The return value can be passed to Syscall to run the procedure. -func (p *LazyProc) Addr() uintptr { - p.mustFind() - return p.proc.Addr() -} - -// Call executes procedure p with arguments a. It will panic, if more then 15 arguments -// are supplied. -// -// The returned error is always non-nil, constructed from the result of GetLastError. -// Callers must inspect the primary return value to decide whether an error occurred -// (according to the semantics of the specific function being called) before consulting -// the error. The error will be guaranteed to contain windows.Errno. -func (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { - p.mustFind() - return p.proc.Call(a...) -} diff --git a/vendor/github.com/andrewkroh/sys/windows/env_unset.go b/vendor/github.com/andrewkroh/sys/windows/env_unset.go deleted file mode 100644 index 999ffac4345..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/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 windows - -import "syscall" - -func Unsetenv(key string) error { - // This was added in Go 1.4. - return syscall.Unsetenv(key) -} diff --git a/vendor/github.com/andrewkroh/sys/windows/env_windows.go b/vendor/github.com/andrewkroh/sys/windows/env_windows.go deleted file mode 100644 index a9d8ef4b7d0..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/env_windows.go +++ /dev/null @@ -1,25 +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. - -// Windows environment variables. - -package windows - -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/github.com/andrewkroh/sys/windows/eventlog.go b/vendor/github.com/andrewkroh/sys/windows/eventlog.go deleted file mode 100644 index 40af946e162..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/eventlog.go +++ /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. - -// +build windows - -package windows - -const ( - EVENTLOG_SUCCESS = 0 - EVENTLOG_ERROR_TYPE = 1 - EVENTLOG_WARNING_TYPE = 2 - EVENTLOG_INFORMATION_TYPE = 4 - EVENTLOG_AUDIT_SUCCESS = 8 - EVENTLOG_AUDIT_FAILURE = 16 -) - -//sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW -//sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource -//sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW diff --git a/vendor/github.com/andrewkroh/sys/windows/exec_windows.go b/vendor/github.com/andrewkroh/sys/windows/exec_windows.go deleted file mode 100644 index 3606c3a8b36..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/exec_windows.go +++ /dev/null @@ -1,97 +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. - -// Fork, exec, wait, etc. - -package windows - -// EscapeArg rewrites command line argument s as prescribed -// in http://msdn.microsoft.com/en-us/library/ms880421. -// This function returns "" (2 double quotes) if s is empty. -// Alternatively, these transformations are done: -// - every back slash (\) is doubled, but only if immediately -// followed by double quote ("); -// - every double quote (") is escaped by back slash (\); -// - finally, s is wrapped with double quotes (arg -> "arg"), -// but only if there is space or tab inside s. -func EscapeArg(s string) string { - if len(s) == 0 { - return "\"\"" - } - n := len(s) - hasSpace := false - for i := 0; i < len(s); i++ { - switch s[i] { - case '"', '\\': - n++ - case ' ', '\t': - hasSpace = true - } - } - if hasSpace { - n += 2 - } - if n == len(s) { - return s - } - - qs := make([]byte, n) - j := 0 - if hasSpace { - qs[j] = '"' - j++ - } - slashes := 0 - for i := 0; i < len(s); i++ { - switch s[i] { - default: - slashes = 0 - qs[j] = s[i] - case '\\': - slashes++ - qs[j] = s[i] - case '"': - for ; slashes > 0; slashes-- { - qs[j] = '\\' - j++ - } - qs[j] = '\\' - j++ - qs[j] = s[i] - } - j++ - } - if hasSpace { - for ; slashes > 0; slashes-- { - qs[j] = '\\' - j++ - } - qs[j] = '"' - j++ - } - return string(qs[:j]) -} - -func CloseOnExec(fd Handle) { - SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) -} - -// FullPath retrieves the full path of the specified file. -func FullPath(name string) (path string, err error) { - p, err := UTF16PtrFromString(name) - if err != nil { - return "", err - } - n := uint32(100) - for { - buf := make([]uint16, n) - n, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil) - if err != nil { - return "", err - } - if n <= uint32(len(buf)) { - return UTF16ToString(buf[:n]), nil - } - } -} diff --git a/vendor/github.com/andrewkroh/sys/windows/race.go b/vendor/github.com/andrewkroh/sys/windows/race.go deleted file mode 100644 index 343e18ab690..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/race.go +++ /dev/null @@ -1,30 +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 windows,race - -package windows - -import ( - "runtime" - "unsafe" -) - -const raceenabled = true - -func raceAcquire(addr unsafe.Pointer) { - runtime.RaceAcquire(addr) -} - -func raceReleaseMerge(addr unsafe.Pointer) { - runtime.RaceReleaseMerge(addr) -} - -func raceReadRange(addr unsafe.Pointer, len int) { - runtime.RaceReadRange(addr, len) -} - -func raceWriteRange(addr unsafe.Pointer, len int) { - runtime.RaceWriteRange(addr, len) -} diff --git a/vendor/github.com/andrewkroh/sys/windows/race0.go b/vendor/github.com/andrewkroh/sys/windows/race0.go deleted file mode 100644 index 17af843b91b..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/race0.go +++ /dev/null @@ -1,25 +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 windows,!race - -package windows - -import ( - "unsafe" -) - -const raceenabled = false - -func raceAcquire(addr unsafe.Pointer) { -} - -func raceReleaseMerge(addr unsafe.Pointer) { -} - -func raceReadRange(addr unsafe.Pointer, len int) { -} - -func raceWriteRange(addr unsafe.Pointer, len int) { -} diff --git a/vendor/github.com/andrewkroh/sys/windows/registry/key.go b/vendor/github.com/andrewkroh/sys/windows/registry/key.go deleted file mode 100644 index f087ce5adac..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/registry/key.go +++ /dev/null @@ -1,178 +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 windows - -// Package registry provides access to the Windows registry. -// -// Here is a simple example, opening a registry key and reading a string value from it. -// -// k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE) -// if err != nil { -// log.Fatal(err) -// } -// defer k.Close() -// -// s, _, err := k.GetStringValue("SystemRoot") -// if err != nil { -// log.Fatal(err) -// } -// fmt.Printf("Windows system root is %q\n", s) -// -package registry - -import ( - "io" - "syscall" - "time" -) - -const ( - // Registry key security and access rights. - // See https://msdn.microsoft.com/en-us/library/windows/desktop/ms724878.aspx - // for details. - ALL_ACCESS = 0xf003f - CREATE_LINK = 0x00020 - CREATE_SUB_KEY = 0x00004 - ENUMERATE_SUB_KEYS = 0x00008 - EXECUTE = 0x20019 - NOTIFY = 0x00010 - QUERY_VALUE = 0x00001 - READ = 0x20019 - SET_VALUE = 0x00002 - WOW64_32KEY = 0x00200 - WOW64_64KEY = 0x00100 - WRITE = 0x20006 -) - -// Key is a handle to an open Windows registry key. -// Keys can be obtained by calling OpenKey; there are -// also some predefined root keys such as CURRENT_USER. -// Keys can be used directly in the Windows API. -type Key syscall.Handle - -const ( - // Windows defines some predefined root keys that are always open. - // An application can use these keys as entry points to the registry. - // Normally these keys are used in OpenKey to open new keys, - // but they can also be used anywhere a Key is required. - CLASSES_ROOT = Key(syscall.HKEY_CLASSES_ROOT) - CURRENT_USER = Key(syscall.HKEY_CURRENT_USER) - LOCAL_MACHINE = Key(syscall.HKEY_LOCAL_MACHINE) - USERS = Key(syscall.HKEY_USERS) - CURRENT_CONFIG = Key(syscall.HKEY_CURRENT_CONFIG) -) - -// Close closes open key k. -func (k Key) Close() error { - return syscall.RegCloseKey(syscall.Handle(k)) -} - -// OpenKey opens a new key with path name relative to key k. -// It accepts any open key, including CURRENT_USER and others, -// and returns the new key and an error. -// The access parameter specifies desired access rights to the -// key to be opened. -func OpenKey(k Key, path string, access uint32) (Key, error) { - p, err := syscall.UTF16PtrFromString(path) - if err != nil { - return 0, err - } - var subkey syscall.Handle - err = syscall.RegOpenKeyEx(syscall.Handle(k), p, 0, access, &subkey) - if err != nil { - return 0, err - } - return Key(subkey), nil -} - -// ReadSubKeyNames returns the names of subkeys of key k. -// The parameter n controls the number of returned names, -// analogous to the way os.File.Readdirnames works. -func (k Key) ReadSubKeyNames(n int) ([]string, error) { - ki, err := k.Stat() - if err != nil { - return nil, err - } - names := make([]string, 0, ki.SubKeyCount) - buf := make([]uint16, ki.MaxSubKeyLen+1) // extra room for terminating zero byte -loopItems: - for i := uint32(0); ; i++ { - if n > 0 { - if len(names) == n { - return names, nil - } - } - l := uint32(len(buf)) - for { - err := syscall.RegEnumKeyEx(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil) - if err == nil { - break - } - if err == syscall.ERROR_MORE_DATA { - // Double buffer size and try again. - l = uint32(2 * len(buf)) - buf = make([]uint16, l) - continue - } - if err == _ERROR_NO_MORE_ITEMS { - break loopItems - } - return names, err - } - names = append(names, syscall.UTF16ToString(buf[:l])) - } - if n > len(names) { - return names, io.EOF - } - return names, nil -} - -// CreateKey creates a key named path under open key k. -// CreateKey returns the new key and a boolean flag that reports -// whether the key already existed. -// The access parameter specifies the access rights for the key -// to be created. -func CreateKey(k Key, path string, access uint32) (newk Key, openedExisting bool, err error) { - var h syscall.Handle - var d uint32 - err = regCreateKeyEx(syscall.Handle(k), syscall.StringToUTF16Ptr(path), - 0, nil, _REG_OPTION_NON_VOLATILE, access, nil, &h, &d) - if err != nil { - return 0, false, err - } - return Key(h), d == _REG_OPENED_EXISTING_KEY, nil -} - -// DeleteKey deletes the subkey path of key k and its values. -func DeleteKey(k Key, path string) error { - return regDeleteKey(syscall.Handle(k), syscall.StringToUTF16Ptr(path)) -} - -// A KeyInfo describes the statistics of a key. It is returned by Stat. -type KeyInfo struct { - SubKeyCount uint32 - MaxSubKeyLen uint32 // size of the key's subkey with the longest name, in Unicode characters, not including the terminating zero byte - ValueCount uint32 - MaxValueNameLen uint32 // size of the key's longest value name, in Unicode characters, not including the terminating zero byte - MaxValueLen uint32 // longest data component among the key's values, in bytes - lastWriteTime syscall.Filetime -} - -// ModTime returns the key's last write time. -func (ki *KeyInfo) ModTime() time.Time { - return time.Unix(0, ki.lastWriteTime.Nanoseconds()) -} - -// Stat retrieves information about the open key k. -func (k Key) Stat() (*KeyInfo, error) { - var ki KeyInfo - err := syscall.RegQueryInfoKey(syscall.Handle(k), nil, nil, nil, - &ki.SubKeyCount, &ki.MaxSubKeyLen, nil, &ki.ValueCount, - &ki.MaxValueNameLen, &ki.MaxValueLen, nil, &ki.lastWriteTime) - if err != nil { - return nil, err - } - return &ki, nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/registry/syscall.go b/vendor/github.com/andrewkroh/sys/windows/registry/syscall.go deleted file mode 100644 index 5426cae9096..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/registry/syscall.go +++ /dev/null @@ -1,33 +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 windows - -package registry - -import "syscall" - -//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go syscall.go - -const ( - _REG_OPTION_NON_VOLATILE = 0 - - _REG_CREATED_NEW_KEY = 1 - _REG_OPENED_EXISTING_KEY = 2 - - _ERROR_NO_MORE_ITEMS syscall.Errno = 259 -) - -func LoadRegLoadMUIString() error { - return procRegLoadMUIStringW.Find() -} - -//sys regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) = advapi32.RegCreateKeyExW -//sys regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) = advapi32.RegDeleteKeyW -//sys regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) = advapi32.RegSetValueExW -//sys regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegEnumValueW -//sys regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) = advapi32.RegDeleteValueW -//sys regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) = advapi32.RegLoadMUIStringW - -//sys expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW diff --git a/vendor/github.com/andrewkroh/sys/windows/registry/value.go b/vendor/github.com/andrewkroh/sys/windows/registry/value.go deleted file mode 100644 index 71d4e15bab1..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/registry/value.go +++ /dev/null @@ -1,384 +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 windows - -package registry - -import ( - "errors" - "io" - "syscall" - "unicode/utf16" - "unsafe" -) - -const ( - // Registry value types. - NONE = 0 - SZ = 1 - EXPAND_SZ = 2 - BINARY = 3 - DWORD = 4 - DWORD_BIG_ENDIAN = 5 - LINK = 6 - MULTI_SZ = 7 - RESOURCE_LIST = 8 - FULL_RESOURCE_DESCRIPTOR = 9 - RESOURCE_REQUIREMENTS_LIST = 10 - QWORD = 11 -) - -var ( - // ErrShortBuffer is returned when the buffer was too short for the operation. - ErrShortBuffer = syscall.ERROR_MORE_DATA - - // ErrNotExist is returned when a registry key or value does not exist. - ErrNotExist = syscall.ERROR_FILE_NOT_FOUND - - // ErrUnexpectedType is returned by Get*Value when the value's type was unexpected. - ErrUnexpectedType = errors.New("unexpected key value type") -) - -// GetValue retrieves the type and data for the specified value associated -// with an open key k. It fills up buffer buf and returns the retrieved -// byte count n. If buf is too small to fit the stored value it returns -// ErrShortBuffer error along with the required buffer size n. -// If no buffer is provided, it returns true and actual buffer size n. -// If no buffer is provided, GetValue returns the value's type only. -// If the value does not exist, the error returned is ErrNotExist. -// -// GetValue is a low level function. If value's type is known, use the appropriate -// Get*Value function instead. -func (k Key) GetValue(name string, buf []byte) (n int, valtype uint32, err error) { - pname, err := syscall.UTF16PtrFromString(name) - if err != nil { - return 0, 0, err - } - var pbuf *byte - if len(buf) > 0 { - pbuf = (*byte)(unsafe.Pointer(&buf[0])) - } - l := uint32(len(buf)) - err = syscall.RegQueryValueEx(syscall.Handle(k), pname, nil, &valtype, pbuf, &l) - if err != nil { - return int(l), valtype, err - } - return int(l), valtype, nil -} - -func (k Key) getValue(name string, buf []byte) (date []byte, valtype uint32, err error) { - p, err := syscall.UTF16PtrFromString(name) - if err != nil { - return nil, 0, err - } - var t uint32 - n := uint32(len(buf)) - for { - err = syscall.RegQueryValueEx(syscall.Handle(k), p, nil, &t, (*byte)(unsafe.Pointer(&buf[0])), &n) - if err == nil { - return buf[:n], t, nil - } - if err != syscall.ERROR_MORE_DATA { - return nil, 0, err - } - if n <= uint32(len(buf)) { - return nil, 0, err - } - buf = make([]byte, n) - } -} - -// GetStringValue retrieves the string value for the specified -// value name associated with an open key k. It also returns the value's type. -// If value does not exist, GetStringValue returns ErrNotExist. -// If value is not SZ or EXPAND_SZ, it will return the correct value -// type and ErrUnexpectedType. -func (k Key) GetStringValue(name string) (val string, valtype uint32, err error) { - data, typ, err2 := k.getValue(name, make([]byte, 64)) - if err2 != nil { - return "", typ, err2 - } - switch typ { - case SZ, EXPAND_SZ: - default: - return "", typ, ErrUnexpectedType - } - if len(data) == 0 { - return "", typ, nil - } - u := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[:] - return syscall.UTF16ToString(u), typ, nil -} - -// GetMUIStringValue retrieves the localized string value for -// the specified value name associated with an open key k. -// If the value name doesn't exist or the localized string value -// can't be resolved, GetMUIStringValue returns ErrNotExist. -// GetMUIStringValue panics if the system doesn't support -// regLoadMUIString; use LoadRegLoadMUIString to check if -// regLoadMUIString is supported before calling this function. -func (k Key) GetMUIStringValue(name string) (string, error) { - pname, err := syscall.UTF16PtrFromString(name) - if err != nil { - return "", err - } - - buf := make([]uint16, 1024) - var buflen uint32 - var pdir *uint16 - - err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir) - if err == syscall.ERROR_FILE_NOT_FOUND { // Try fallback path - - // Try to resolve the string value using the system directory as - // a DLL search path; this assumes the string value is of the form - // @[path]\dllname,-strID but with no path given, e.g. @tzres.dll,-320. - - // This approach works with tzres.dll but may have to be revised - // in the future to allow callers to provide custom search paths. - - var s string - s, err = ExpandString("%SystemRoot%\\system32\\") - if err != nil { - return "", err - } - pdir, err = syscall.UTF16PtrFromString(s) - if err != nil { - return "", err - } - - err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir) - } - - for err == syscall.ERROR_MORE_DATA { // Grow buffer if needed - if buflen <= uint32(len(buf)) { - break // Buffer not growing, assume race; break - } - buf = make([]uint16, buflen) - err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir) - } - - if err != nil { - return "", err - } - - return syscall.UTF16ToString(buf), nil -} - -// ExpandString expands environment-variable strings and replaces -// them with the values defined for the current user. -// Use ExpandString to expand EXPAND_SZ strings. -func ExpandString(value string) (string, error) { - if value == "" { - return "", nil - } - p, err := syscall.UTF16PtrFromString(value) - if err != nil { - return "", err - } - r := make([]uint16, 100) - for { - n, err := expandEnvironmentStrings(p, &r[0], uint32(len(r))) - if err != nil { - return "", err - } - if n <= uint32(len(r)) { - u := (*[1 << 29]uint16)(unsafe.Pointer(&r[0]))[:] - return syscall.UTF16ToString(u), nil - } - r = make([]uint16, n) - } -} - -// GetStringsValue retrieves the []string value for the specified -// value name associated with an open key k. It also returns the value's type. -// If value does not exist, GetStringsValue returns ErrNotExist. -// If value is not MULTI_SZ, it will return the correct value -// type and ErrUnexpectedType. -func (k Key) GetStringsValue(name string) (val []string, valtype uint32, err error) { - data, typ, err2 := k.getValue(name, make([]byte, 64)) - if err2 != nil { - return nil, typ, err2 - } - if typ != MULTI_SZ { - return nil, typ, ErrUnexpectedType - } - if len(data) == 0 { - return nil, typ, nil - } - p := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[:len(data)/2] - if len(p) == 0 { - return nil, typ, nil - } - if p[len(p)-1] == 0 { - p = p[:len(p)-1] // remove terminating null - } - val = make([]string, 0, 5) - from := 0 - for i, c := range p { - if c == 0 { - val = append(val, string(utf16.Decode(p[from:i]))) - from = i + 1 - } - } - return val, typ, nil -} - -// GetIntegerValue retrieves the integer value for the specified -// value name associated with an open key k. It also returns the value's type. -// If value does not exist, GetIntegerValue returns ErrNotExist. -// If value is not DWORD or QWORD, it will return the correct value -// type and ErrUnexpectedType. -func (k Key) GetIntegerValue(name string) (val uint64, valtype uint32, err error) { - data, typ, err2 := k.getValue(name, make([]byte, 8)) - if err2 != nil { - return 0, typ, err2 - } - switch typ { - case DWORD: - if len(data) != 4 { - return 0, typ, errors.New("DWORD value is not 4 bytes long") - } - return uint64(*(*uint32)(unsafe.Pointer(&data[0]))), DWORD, nil - case QWORD: - if len(data) != 8 { - return 0, typ, errors.New("QWORD value is not 8 bytes long") - } - return uint64(*(*uint64)(unsafe.Pointer(&data[0]))), QWORD, nil - default: - return 0, typ, ErrUnexpectedType - } -} - -// GetBinaryValue retrieves the binary value for the specified -// value name associated with an open key k. It also returns the value's type. -// If value does not exist, GetBinaryValue returns ErrNotExist. -// If value is not BINARY, it will return the correct value -// type and ErrUnexpectedType. -func (k Key) GetBinaryValue(name string) (val []byte, valtype uint32, err error) { - data, typ, err2 := k.getValue(name, make([]byte, 64)) - if err2 != nil { - return nil, typ, err2 - } - if typ != BINARY { - return nil, typ, ErrUnexpectedType - } - return data, typ, nil -} - -func (k Key) setValue(name string, valtype uint32, data []byte) error { - p, err := syscall.UTF16PtrFromString(name) - if err != nil { - return err - } - if len(data) == 0 { - return regSetValueEx(syscall.Handle(k), p, 0, valtype, nil, 0) - } - return regSetValueEx(syscall.Handle(k), p, 0, valtype, &data[0], uint32(len(data))) -} - -// SetDWordValue sets the data and type of a name value -// under key k to value and DWORD. -func (k Key) SetDWordValue(name string, value uint32) error { - return k.setValue(name, DWORD, (*[4]byte)(unsafe.Pointer(&value))[:]) -} - -// SetQWordValue sets the data and type of a name value -// under key k to value and QWORD. -func (k Key) SetQWordValue(name string, value uint64) error { - return k.setValue(name, QWORD, (*[8]byte)(unsafe.Pointer(&value))[:]) -} - -func (k Key) setStringValue(name string, valtype uint32, value string) error { - v, err := syscall.UTF16FromString(value) - if err != nil { - return err - } - buf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[:len(v)*2] - return k.setValue(name, valtype, buf) -} - -// SetStringValue sets the data and type of a name value -// under key k to value and SZ. The value must not contain a zero byte. -func (k Key) SetStringValue(name, value string) error { - return k.setStringValue(name, SZ, value) -} - -// SetExpandStringValue sets the data and type of a name value -// under key k to value and EXPAND_SZ. The value must not contain a zero byte. -func (k Key) SetExpandStringValue(name, value string) error { - return k.setStringValue(name, EXPAND_SZ, value) -} - -// SetStringsValue sets the data and type of a name value -// under key k to value and MULTI_SZ. The value strings -// must not contain a zero byte. -func (k Key) SetStringsValue(name string, value []string) error { - ss := "" - for _, s := range value { - for i := 0; i < len(s); i++ { - if s[i] == 0 { - return errors.New("string cannot have 0 inside") - } - } - ss += s + "\x00" - } - v := utf16.Encode([]rune(ss + "\x00")) - buf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[:len(v)*2] - return k.setValue(name, MULTI_SZ, buf) -} - -// SetBinaryValue sets the data and type of a name value -// under key k to value and BINARY. -func (k Key) SetBinaryValue(name string, value []byte) error { - return k.setValue(name, BINARY, value) -} - -// DeleteValue removes a named value from the key k. -func (k Key) DeleteValue(name string) error { - return regDeleteValue(syscall.Handle(k), syscall.StringToUTF16Ptr(name)) -} - -// ReadValueNames returns the value names of key k. -// The parameter n controls the number of returned names, -// analogous to the way os.File.Readdirnames works. -func (k Key) ReadValueNames(n int) ([]string, error) { - ki, err := k.Stat() - if err != nil { - return nil, err - } - names := make([]string, 0, ki.ValueCount) - buf := make([]uint16, ki.MaxValueNameLen+1) // extra room for terminating null character -loopItems: - for i := uint32(0); ; i++ { - if n > 0 { - if len(names) == n { - return names, nil - } - } - l := uint32(len(buf)) - for { - err := regEnumValue(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil) - if err == nil { - break - } - if err == syscall.ERROR_MORE_DATA { - // Double buffer size and try again. - l = uint32(2 * len(buf)) - buf = make([]uint16, l) - continue - } - if err == _ERROR_NO_MORE_ITEMS { - break loopItems - } - return names, err - } - names = append(names, syscall.UTF16ToString(buf[:l])) - } - if n > len(names) { - return names, io.EOF - } - return names, nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/registry/zsyscall_windows.go b/vendor/github.com/andrewkroh/sys/windows/registry/zsyscall_windows.go deleted file mode 100644 index 9c17675a249..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/registry/zsyscall_windows.go +++ /dev/null @@ -1,82 +0,0 @@ -// MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT - -package registry - -import "unsafe" -import "syscall" - -var _ unsafe.Pointer - -var ( - modadvapi32 = syscall.NewLazyDLL("advapi32.dll") - modkernel32 = syscall.NewLazyDLL("kernel32.dll") - - procRegCreateKeyExW = modadvapi32.NewProc("RegCreateKeyExW") - procRegDeleteKeyW = modadvapi32.NewProc("RegDeleteKeyW") - procRegSetValueExW = modadvapi32.NewProc("RegSetValueExW") - procRegEnumValueW = modadvapi32.NewProc("RegEnumValueW") - procRegDeleteValueW = modadvapi32.NewProc("RegDeleteValueW") - procRegLoadMUIStringW = modadvapi32.NewProc("RegLoadMUIStringW") - procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") -) - -func regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegCreateKeyExW.Addr(), 9, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegDeleteKeyW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(subkey)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegSetValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize)) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumValueW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegDeleteValueW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(name)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegLoadMUIStringW.Addr(), 7, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(unsafe.Pointer(buflenCopied)), uintptr(flags), uintptr(unsafe.Pointer(dir)), 0, 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} diff --git a/vendor/github.com/andrewkroh/sys/windows/security_windows.go b/vendor/github.com/andrewkroh/sys/windows/security_windows.go deleted file mode 100644 index ca09bdd701f..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/security_windows.go +++ /dev/null @@ -1,435 +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 windows - -import ( - "syscall" - "unsafe" -) - -const ( - STANDARD_RIGHTS_REQUIRED = 0xf0000 - STANDARD_RIGHTS_READ = 0x20000 - STANDARD_RIGHTS_WRITE = 0x20000 - STANDARD_RIGHTS_EXECUTE = 0x20000 - STANDARD_RIGHTS_ALL = 0x1F0000 -) - -const ( - NameUnknown = 0 - NameFullyQualifiedDN = 1 - NameSamCompatible = 2 - NameDisplay = 3 - NameUniqueId = 6 - NameCanonical = 7 - NameUserPrincipal = 8 - NameCanonicalEx = 9 - NameServicePrincipal = 10 - NameDnsDomain = 12 -) - -// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. -// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx -//sys TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW -//sys GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW - -// TranslateAccountName converts a directory service -// object name from one format to another. -func TranslateAccountName(username string, from, to uint32, initSize int) (string, error) { - u, e := UTF16PtrFromString(username) - if e != nil { - return "", e - } - n := uint32(50) - for { - b := make([]uint16, n) - e = TranslateName(u, from, to, &b[0], &n) - if e == nil { - return UTF16ToString(b[:n]), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", e - } - if n <= uint32(len(b)) { - return "", e - } - } -} - -const ( - // do not reorder - NetSetupUnknownStatus = iota - NetSetupUnjoined - NetSetupWorkgroupName - NetSetupDomainName -) - -type UserInfo10 struct { - Name *uint16 - Comment *uint16 - UsrComment *uint16 - FullName *uint16 -} - -//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo -//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation -//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree - -const ( - // do not reorder - SidTypeUser = 1 + iota - SidTypeGroup - SidTypeDomain - SidTypeAlias - SidTypeWellKnownGroup - SidTypeDeletedAccount - SidTypeInvalid - SidTypeUnknown - SidTypeComputer - SidTypeLabel -) - -type SidIdentifierAuthority struct { - Value [6]byte -} - -var ( - SECURITY_NULL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}} - SECURITY_WORLD_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}} - SECURITY_LOCAL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}} - SECURITY_CREATOR_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}} - SECURITY_NON_UNIQUE_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}} - SECURITY_NT_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}} - SECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}} -) - -const ( - SECURITY_NULL_RID = 0 - SECURITY_WORLD_RID = 0 - SECURITY_LOCAL_RID = 0 - SECURITY_CREATOR_OWNER_RID = 0 - SECURITY_CREATOR_GROUP_RID = 1 - SECURITY_DIALUP_RID = 1 - SECURITY_NETWORK_RID = 2 - SECURITY_BATCH_RID = 3 - SECURITY_INTERACTIVE_RID = 4 - SECURITY_LOGON_IDS_RID = 5 - SECURITY_SERVICE_RID = 6 - SECURITY_LOCAL_SYSTEM_RID = 18 - SECURITY_BUILTIN_DOMAIN_RID = 32 - SECURITY_PRINCIPAL_SELF_RID = 10 - SECURITY_CREATOR_OWNER_SERVER_RID = 0x2 - SECURITY_CREATOR_GROUP_SERVER_RID = 0x3 - SECURITY_LOGON_IDS_RID_COUNT = 0x3 - SECURITY_ANONYMOUS_LOGON_RID = 0x7 - SECURITY_PROXY_RID = 0x8 - SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9 - SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID - SECURITY_AUTHENTICATED_USER_RID = 0xb - SECURITY_RESTRICTED_CODE_RID = 0xc - SECURITY_NT_NON_UNIQUE_RID = 0x15 -) - -//sys LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW -//sys LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW -//sys ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW -//sys ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW -//sys GetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid -//sys CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid -//sys AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid -//sys FreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid -//sys EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid - -// The security identifier (SID) structure is a variable-length -// structure used to uniquely identify users or groups. -type SID struct{} - -// StringToSid converts a string-format security identifier -// sid into a valid, functional sid. -func StringToSid(s string) (*SID, error) { - var sid *SID - p, e := UTF16PtrFromString(s) - if e != nil { - return nil, e - } - e = ConvertStringSidToSid(p, &sid) - if e != nil { - return nil, e - } - defer LocalFree((Handle)(unsafe.Pointer(sid))) - return sid.Copy() -} - -// LookupSID retrieves a security identifier sid for the account -// and the name of the domain on which the account was found. -// System specify target computer to search. -func LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) { - if len(account) == 0 { - return nil, "", 0, syscall.EINVAL - } - acc, e := UTF16PtrFromString(account) - if e != nil { - return nil, "", 0, e - } - var sys *uint16 - if len(system) > 0 { - sys, e = UTF16PtrFromString(system) - if e != nil { - return nil, "", 0, e - } - } - n := uint32(50) - dn := uint32(50) - for { - b := make([]byte, n) - db := make([]uint16, dn) - sid = (*SID)(unsafe.Pointer(&b[0])) - e = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType) - if e == nil { - return sid, UTF16ToString(db), accType, nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return nil, "", 0, e - } - if n <= uint32(len(b)) { - return nil, "", 0, e - } - } -} - -// String converts sid to a string format -// suitable for display, storage, or transmission. -func (sid *SID) String() (string, error) { - var s *uint16 - e := ConvertSidToStringSid(sid, &s) - if e != nil { - return "", e - } - defer LocalFree((Handle)(unsafe.Pointer(s))) - return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]), nil -} - -// Len returns the length, in bytes, of a valid security identifier sid. -func (sid *SID) Len() int { - return int(GetLengthSid(sid)) -} - -// Copy creates a duplicate of security identifier sid. -func (sid *SID) Copy() (*SID, error) { - b := make([]byte, sid.Len()) - sid2 := (*SID)(unsafe.Pointer(&b[0])) - e := CopySid(uint32(len(b)), sid2, sid) - if e != nil { - return nil, e - } - return sid2, nil -} - -// LookupAccount retrieves the name of the account for this sid -// and the name of the first domain on which this sid is found. -// System specify target computer to search for. -func (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) { - var sys *uint16 - if len(system) > 0 { - sys, err = UTF16PtrFromString(system) - if err != nil { - return "", "", 0, err - } - } - n := uint32(50) - dn := uint32(50) - for { - b := make([]uint16, n) - db := make([]uint16, dn) - e := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType) - if e == nil { - return UTF16ToString(b), UTF16ToString(db), accType, nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", "", 0, e - } - if n <= uint32(len(b)) { - return "", "", 0, e - } - } -} - -const ( - // do not reorder - TOKEN_ASSIGN_PRIMARY = 1 << iota - TOKEN_DUPLICATE - TOKEN_IMPERSONATE - TOKEN_QUERY - TOKEN_QUERY_SOURCE - TOKEN_ADJUST_PRIVILEGES - TOKEN_ADJUST_GROUPS - TOKEN_ADJUST_DEFAULT - - TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | - TOKEN_ASSIGN_PRIMARY | - TOKEN_DUPLICATE | - TOKEN_IMPERSONATE | - TOKEN_QUERY | - TOKEN_QUERY_SOURCE | - TOKEN_ADJUST_PRIVILEGES | - TOKEN_ADJUST_GROUPS | - TOKEN_ADJUST_DEFAULT - TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY - TOKEN_WRITE = STANDARD_RIGHTS_WRITE | - TOKEN_ADJUST_PRIVILEGES | - TOKEN_ADJUST_GROUPS | - TOKEN_ADJUST_DEFAULT - TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE -) - -const ( - // do not reorder - TokenUser = 1 + iota - TokenGroups - TokenPrivileges - TokenOwner - TokenPrimaryGroup - TokenDefaultDacl - TokenSource - TokenType - TokenImpersonationLevel - TokenStatistics - TokenRestrictedSids - TokenSessionId - TokenGroupsAndPrivileges - TokenSessionReference - TokenSandBoxInert - TokenAuditPolicy - TokenOrigin - TokenElevationType - TokenLinkedToken - TokenElevation - TokenHasRestrictions - TokenAccessInformation - TokenVirtualizationAllowed - TokenVirtualizationEnabled - TokenIntegrityLevel - TokenUIAccess - TokenMandatoryPolicy - TokenLogonSid - MaxTokenInfoClass -) - -type SIDAndAttributes struct { - Sid *SID - Attributes uint32 -} - -type Tokenuser struct { - User SIDAndAttributes -} - -type Tokenprimarygroup struct { - PrimaryGroup *SID -} - -type Tokengroups struct { - GroupCount uint32 - Groups [1]SIDAndAttributes -} - -//sys OpenProcessToken(h Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken -//sys GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation -//sys GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW - -// An access token contains the security information for a logon session. -// The system creates an access token when a user logs on, and every -// process executed on behalf of the user has a copy of the token. -// The token identifies the user, the user's groups, and the user's -// privileges. The system uses the token to control access to securable -// objects and to control the ability of the user to perform various -// system-related operations on the local computer. -type Token Handle - -// OpenCurrentProcessToken opens the access token -// associated with current process. -func OpenCurrentProcessToken() (Token, error) { - p, e := GetCurrentProcess() - if e != nil { - return 0, e - } - var t Token - e = OpenProcessToken(p, TOKEN_QUERY, &t) - if e != nil { - return 0, e - } - return t, nil -} - -// Close releases access to access token. -func (t Token) Close() error { - return CloseHandle(Handle(t)) -} - -// getInfo retrieves a specified type of information about an access token. -func (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) { - n := uint32(initSize) - for { - b := make([]byte, n) - e := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n) - if e == nil { - return unsafe.Pointer(&b[0]), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return nil, e - } - if n <= uint32(len(b)) { - return nil, e - } - } -} - -// GetTokenUser retrieves access token t user account information. -func (t Token) GetTokenUser() (*Tokenuser, error) { - i, e := t.getInfo(TokenUser, 50) - if e != nil { - return nil, e - } - return (*Tokenuser)(i), nil -} - -// GetTokenGroups retrieves group accounts associated with access token t. -func (t Token) GetTokenGroups() (*Tokengroups, error) { - i, e := t.getInfo(TokenGroups, 50) - if e != nil { - return nil, e - } - return (*Tokengroups)(i), nil -} - -// GetTokenPrimaryGroup retrieves access token t primary group information. -// A pointer to a SID structure representing a group that will become -// the primary group of any objects created by a process using this access token. -func (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) { - i, e := t.getInfo(TokenPrimaryGroup, 50) - if e != nil { - return nil, e - } - return (*Tokenprimarygroup)(i), nil -} - -// GetUserProfileDirectory retrieves path to the -// root directory of the access token t user's profile. -func (t Token) GetUserProfileDirectory() (string, error) { - n := uint32(100) - for { - b := make([]uint16, n) - e := GetUserProfileDirectory(t, &b[0], &n) - if e == nil { - return UTF16ToString(b), nil - } - if e != ERROR_INSUFFICIENT_BUFFER { - return "", e - } - if n <= uint32(len(b)) { - return "", e - } - } -} diff --git a/vendor/github.com/andrewkroh/sys/windows/service.go b/vendor/github.com/andrewkroh/sys/windows/service.go deleted file mode 100644 index 1c11d392f0d..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/service.go +++ /dev/null @@ -1,143 +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 windows - -package windows - -const ( - SC_MANAGER_CONNECT = 1 - SC_MANAGER_CREATE_SERVICE = 2 - SC_MANAGER_ENUMERATE_SERVICE = 4 - SC_MANAGER_LOCK = 8 - SC_MANAGER_QUERY_LOCK_STATUS = 16 - SC_MANAGER_MODIFY_BOOT_CONFIG = 32 - SC_MANAGER_ALL_ACCESS = 0xf003f -) - -//sys OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW - -const ( - SERVICE_KERNEL_DRIVER = 1 - SERVICE_FILE_SYSTEM_DRIVER = 2 - SERVICE_ADAPTER = 4 - SERVICE_RECOGNIZER_DRIVER = 8 - SERVICE_WIN32_OWN_PROCESS = 16 - SERVICE_WIN32_SHARE_PROCESS = 32 - SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS - SERVICE_INTERACTIVE_PROCESS = 256 - SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER - SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS - - SERVICE_BOOT_START = 0 - SERVICE_SYSTEM_START = 1 - SERVICE_AUTO_START = 2 - SERVICE_DEMAND_START = 3 - SERVICE_DISABLED = 4 - - SERVICE_ERROR_IGNORE = 0 - SERVICE_ERROR_NORMAL = 1 - SERVICE_ERROR_SEVERE = 2 - SERVICE_ERROR_CRITICAL = 3 - - SC_STATUS_PROCESS_INFO = 0 - - SERVICE_STOPPED = 1 - SERVICE_START_PENDING = 2 - SERVICE_STOP_PENDING = 3 - SERVICE_RUNNING = 4 - SERVICE_CONTINUE_PENDING = 5 - SERVICE_PAUSE_PENDING = 6 - SERVICE_PAUSED = 7 - SERVICE_NO_CHANGE = 0xffffffff - - SERVICE_ACCEPT_STOP = 1 - SERVICE_ACCEPT_PAUSE_CONTINUE = 2 - SERVICE_ACCEPT_SHUTDOWN = 4 - SERVICE_ACCEPT_PARAMCHANGE = 8 - SERVICE_ACCEPT_NETBINDCHANGE = 16 - SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 - SERVICE_ACCEPT_POWEREVENT = 64 - SERVICE_ACCEPT_SESSIONCHANGE = 128 - - SERVICE_CONTROL_STOP = 1 - SERVICE_CONTROL_PAUSE = 2 - SERVICE_CONTROL_CONTINUE = 3 - SERVICE_CONTROL_INTERROGATE = 4 - SERVICE_CONTROL_SHUTDOWN = 5 - SERVICE_CONTROL_PARAMCHANGE = 6 - SERVICE_CONTROL_NETBINDADD = 7 - SERVICE_CONTROL_NETBINDREMOVE = 8 - SERVICE_CONTROL_NETBINDENABLE = 9 - SERVICE_CONTROL_NETBINDDISABLE = 10 - SERVICE_CONTROL_DEVICEEVENT = 11 - SERVICE_CONTROL_HARDWAREPROFILECHANGE = 12 - SERVICE_CONTROL_POWEREVENT = 13 - SERVICE_CONTROL_SESSIONCHANGE = 14 - - SERVICE_ACTIVE = 1 - SERVICE_INACTIVE = 2 - SERVICE_STATE_ALL = 3 - - SERVICE_QUERY_CONFIG = 1 - SERVICE_CHANGE_CONFIG = 2 - SERVICE_QUERY_STATUS = 4 - SERVICE_ENUMERATE_DEPENDENTS = 8 - SERVICE_START = 16 - SERVICE_STOP = 32 - SERVICE_PAUSE_CONTINUE = 64 - SERVICE_INTERROGATE = 128 - SERVICE_USER_DEFINED_CONTROL = 256 - SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL - SERVICE_RUNS_IN_SYSTEM_PROCESS = 1 - SERVICE_CONFIG_DESCRIPTION = 1 - SERVICE_CONFIG_FAILURE_ACTIONS = 2 - - NO_ERROR = 0 -) - -type SERVICE_STATUS struct { - ServiceType uint32 - CurrentState uint32 - ControlsAccepted uint32 - Win32ExitCode uint32 - ServiceSpecificExitCode uint32 - CheckPoint uint32 - WaitHint uint32 -} - -type SERVICE_TABLE_ENTRY struct { - ServiceName *uint16 - ServiceProc uintptr -} - -type QUERY_SERVICE_CONFIG struct { - ServiceType uint32 - StartType uint32 - ErrorControl uint32 - BinaryPathName *uint16 - LoadOrderGroup *uint16 - TagId uint32 - Dependencies *uint16 - ServiceStartName *uint16 - DisplayName *uint16 -} - -type SERVICE_DESCRIPTION struct { - Description *uint16 -} - -//sys CloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle -//sys CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW -//sys OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW -//sys DeleteService(service Handle) (err error) = advapi32.DeleteService -//sys StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW -//sys QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus -//sys ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService -//sys StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW -//sys SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus -//sys ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) = advapi32.ChangeServiceConfigW -//sys QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW -//sys ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W -//sys QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W diff --git a/vendor/github.com/andrewkroh/sys/windows/str.go b/vendor/github.com/andrewkroh/sys/windows/str.go deleted file mode 100644 index 917cc2aae4e..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/str.go +++ /dev/null @@ -1,22 +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 windows - -package windows - -func itoa(val int) string { // do it here rather than with fmt to avoid dependency - if val < 0 { - return "-" + itoa(-val) - } - 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/github.com/andrewkroh/sys/windows/svc/debug/log.go b/vendor/github.com/andrewkroh/sys/windows/svc/debug/log.go deleted file mode 100644 index e51ab42a1a2..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/debug/log.go +++ /dev/null @@ -1,56 +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 windows - -package debug - -import ( - "os" - "strconv" -) - -// Log interface allows different log implementations to be used. -type Log interface { - Close() error - Info(eid uint32, msg string) error - Warning(eid uint32, msg string) error - Error(eid uint32, msg string) error -} - -// ConsoleLog provides access to the console. -type ConsoleLog struct { - Name string -} - -// New creates new ConsoleLog. -func New(source string) *ConsoleLog { - return &ConsoleLog{Name: source} -} - -// Close closes console log l. -func (l *ConsoleLog) Close() error { - return nil -} - -func (l *ConsoleLog) report(kind string, eid uint32, msg string) error { - s := l.Name + "." + kind + "(" + strconv.Itoa(int(eid)) + "): " + msg + "\n" - _, err := os.Stdout.Write([]byte(s)) - return err -} - -// Info writes an information event msg with event id eid to the console l. -func (l *ConsoleLog) Info(eid uint32, msg string) error { - return l.report("info", eid, msg) -} - -// Warning writes an warning event msg with event id eid to the console l. -func (l *ConsoleLog) Warning(eid uint32, msg string) error { - return l.report("warn", eid, msg) -} - -// Error writes an error event msg with event id eid to the console l. -func (l *ConsoleLog) Error(eid uint32, msg string) error { - return l.report("error", eid, msg) -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/debug/service.go b/vendor/github.com/andrewkroh/sys/windows/svc/debug/service.go deleted file mode 100644 index d5ab94b2c7b..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/debug/service.go +++ /dev/null @@ -1,45 +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 windows - -// Package debug provides facilities to execute svc.Handler on console. -// -package debug - -import ( - "os" - "os/signal" - "syscall" - - "golang.org/x/sys/windows/svc" -) - -// Run executes service name by calling appropriate handler function. -// The process is running on console, unlike real service. Use Ctrl+C to -// send "Stop" command to your service. -func Run(name string, handler svc.Handler) error { - cmds := make(chan svc.ChangeRequest) - changes := make(chan svc.Status) - - sig := make(chan os.Signal) - signal.Notify(sig) - - go func() { - status := svc.Status{State: svc.Stopped} - for { - select { - case <-sig: - cmds <- svc.ChangeRequest{svc.Stop, status} - case status = <-changes: - } - } - }() - - _, errno := handler.Execute([]string{name}, cmds, changes) - if errno != 0 { - return syscall.Errno(errno) - } - return nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/event.go b/vendor/github.com/andrewkroh/sys/windows/svc/event.go deleted file mode 100644 index 0508e228818..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/event.go +++ /dev/null @@ -1,48 +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 windows - -package svc - -import ( - "errors" - - "golang.org/x/sys/windows" -) - -// event represents auto-reset, initially non-signaled Windows event. -// It is used to communicate between go and asm parts of this package. -type event struct { - h windows.Handle -} - -func newEvent() (*event, error) { - h, err := windows.CreateEvent(nil, 0, 0, nil) - if err != nil { - return nil, err - } - return &event{h: h}, nil -} - -func (e *event) Close() error { - return windows.CloseHandle(e.h) -} - -func (e *event) Set() error { - return windows.SetEvent(e.h) -} - -func (e *event) Wait() error { - s, err := windows.WaitForSingleObject(e.h, windows.INFINITE) - switch s { - case windows.WAIT_OBJECT_0: - break - case windows.WAIT_FAILED: - return err - default: - return errors.New("unexpected result from WaitForSingleObject") - } - return nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/example/beep.go b/vendor/github.com/andrewkroh/sys/windows/svc/example/beep.go deleted file mode 100644 index dcf23408d3e..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/example/beep.go +++ /dev/null @@ -1,22 +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 windows - -package main - -import ( - "syscall" -) - -// BUG(brainman): MessageBeep Windows api is broken on Windows 7, -// so this example does not beep when runs as service on Windows 7. - -var ( - beepFunc = syscall.MustLoadDLL("user32.dll").MustFindProc("MessageBeep") -) - -func beep() { - beepFunc.Call(0xffffffff) -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/example/install.go b/vendor/github.com/andrewkroh/sys/windows/svc/example/install.go deleted file mode 100644 index 39cb00d2add..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/example/install.go +++ /dev/null @@ -1,92 +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 windows - -package main - -import ( - "fmt" - "os" - "path/filepath" - - "golang.org/x/sys/windows/svc/eventlog" - "golang.org/x/sys/windows/svc/mgr" -) - -func exePath() (string, error) { - prog := os.Args[0] - p, err := filepath.Abs(prog) - if err != nil { - return "", err - } - fi, err := os.Stat(p) - if err == nil { - if !fi.Mode().IsDir() { - return p, nil - } - err = fmt.Errorf("%s is directory", p) - } - if filepath.Ext(p) == "" { - p += ".exe" - fi, err := os.Stat(p) - if err == nil { - if !fi.Mode().IsDir() { - return p, nil - } - err = fmt.Errorf("%s is directory", p) - } - } - return "", err -} - -func installService(name, desc string) error { - exepath, err := exePath() - if err != nil { - return err - } - m, err := mgr.Connect() - if err != nil { - return err - } - defer m.Disconnect() - s, err := m.OpenService(name) - if err == nil { - s.Close() - return fmt.Errorf("service %s already exists", name) - } - s, err = m.CreateService(name, exepath, mgr.Config{DisplayName: desc}, "is", "auto-started") - if err != nil { - return err - } - defer s.Close() - err = eventlog.InstallAsEventCreate(name, eventlog.Error|eventlog.Warning|eventlog.Info) - if err != nil { - s.Delete() - return fmt.Errorf("SetupEventLogSource() failed: %s", err) - } - return nil -} - -func removeService(name string) error { - m, err := mgr.Connect() - if err != nil { - return err - } - defer m.Disconnect() - s, err := m.OpenService(name) - if err != nil { - return fmt.Errorf("service %s is not installed", name) - } - defer s.Close() - err = s.Delete() - if err != nil { - return err - } - err = eventlog.Remove(name) - if err != nil { - return fmt.Errorf("RemoveEventLogSource() failed: %s", err) - } - return nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/example/main.go b/vendor/github.com/andrewkroh/sys/windows/svc/example/main.go deleted file mode 100644 index dc96c081af4..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/example/main.go +++ /dev/null @@ -1,76 +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 windows - -// Example service program that beeps. -// -// The program demonstrates how to create Windows service and -// install / remove it on a computer. It also shows how to -// stop / start / pause / continue any service, and how to -// write to event log. It also shows how to use debug -// facilities available in debug package. -// -package main - -import ( - "fmt" - "log" - "os" - "strings" - - "golang.org/x/sys/windows/svc" -) - -func usage(errmsg string) { - fmt.Fprintf(os.Stderr, - "%s\n\n"+ - "usage: %s \n"+ - " where is one of\n"+ - " install, remove, debug, start, stop, pause or continue.\n", - errmsg, os.Args[0]) - os.Exit(2) -} - -func main() { - const svcName = "myservice" - - isIntSess, err := svc.IsAnInteractiveSession() - if err != nil { - log.Fatalf("failed to determine if we are running in an interactive session: %v", err) - } - if !isIntSess { - runService(svcName, false) - return - } - - if len(os.Args) < 2 { - usage("no command specified") - } - - cmd := strings.ToLower(os.Args[1]) - switch cmd { - case "debug": - runService(svcName, true) - return - case "install": - err = installService(svcName, "my service") - case "remove": - err = removeService(svcName) - case "start": - err = startService(svcName) - case "stop": - err = controlService(svcName, svc.Stop, svc.Stopped) - case "pause": - err = controlService(svcName, svc.Pause, svc.Paused) - case "continue": - err = controlService(svcName, svc.Continue, svc.Running) - default: - usage(fmt.Sprintf("invalid command %s", cmd)) - } - if err != nil { - log.Fatalf("failed to %s %s: %v", cmd, svcName, err) - } - return -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/example/manage.go b/vendor/github.com/andrewkroh/sys/windows/svc/example/manage.go deleted file mode 100644 index 782dbd96ca2..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/example/manage.go +++ /dev/null @@ -1,62 +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 windows - -package main - -import ( - "fmt" - "time" - - "golang.org/x/sys/windows/svc" - "golang.org/x/sys/windows/svc/mgr" -) - -func startService(name string) error { - m, err := mgr.Connect() - if err != nil { - return err - } - defer m.Disconnect() - s, err := m.OpenService(name) - if err != nil { - return fmt.Errorf("could not access service: %v", err) - } - defer s.Close() - err = s.Start("is", "manual-started") - if err != nil { - return fmt.Errorf("could not start service: %v", err) - } - return nil -} - -func controlService(name string, c svc.Cmd, to svc.State) error { - m, err := mgr.Connect() - if err != nil { - return err - } - defer m.Disconnect() - s, err := m.OpenService(name) - if err != nil { - return fmt.Errorf("could not access service: %v", err) - } - defer s.Close() - status, err := s.Control(c) - if err != nil { - return fmt.Errorf("could not send control=%d: %v", c, err) - } - timeout := time.Now().Add(10 * time.Second) - for status.State != to { - if timeout.Before(time.Now()) { - return fmt.Errorf("timeout waiting for service to go to state=%d", to) - } - time.Sleep(300 * time.Millisecond) - status, err = s.Query() - if err != nil { - return fmt.Errorf("could not retrieve service status: %v", err) - } - } - return nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/example/service.go b/vendor/github.com/andrewkroh/sys/windows/svc/example/service.go deleted file mode 100644 index 237e80984d6..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/example/service.go +++ /dev/null @@ -1,82 +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 windows - -package main - -import ( - "fmt" - "time" - - "golang.org/x/sys/windows/svc" - "golang.org/x/sys/windows/svc/debug" - "golang.org/x/sys/windows/svc/eventlog" -) - -var elog debug.Log - -type myservice struct{} - -func (m *myservice) Execute(args []string, r <-chan svc.ChangeRequest, changes chan<- svc.Status) (ssec bool, errno uint32) { - const cmdsAccepted = svc.AcceptStop | svc.AcceptShutdown | svc.AcceptPauseAndContinue - changes <- svc.Status{State: svc.StartPending} - fasttick := time.Tick(500 * time.Millisecond) - slowtick := time.Tick(2 * time.Second) - tick := fasttick - changes <- svc.Status{State: svc.Running, Accepts: cmdsAccepted} -loop: - for { - select { - case <-tick: - beep() - elog.Info(1, "beep") - case c := <-r: - switch c.Cmd { - case svc.Interrogate: - changes <- c.CurrentStatus - // Testing deadlock from https://code.google.com/p/winsvc/issues/detail?id=4 - time.Sleep(100 * time.Millisecond) - changes <- c.CurrentStatus - case svc.Stop, svc.Shutdown: - break loop - case svc.Pause: - changes <- svc.Status{State: svc.Paused, Accepts: cmdsAccepted} - tick = slowtick - case svc.Continue: - changes <- svc.Status{State: svc.Running, Accepts: cmdsAccepted} - tick = fasttick - default: - elog.Error(1, fmt.Sprintf("unexpected control request #%d", c)) - } - } - } - changes <- svc.Status{State: svc.StopPending} - return -} - -func runService(name string, isDebug bool) { - var err error - if isDebug { - elog = debug.New(name) - } else { - elog, err = eventlog.Open(name) - if err != nil { - return - } - } - defer elog.Close() - - elog.Info(1, fmt.Sprintf("starting %s service", name)) - run := svc.Run - if isDebug { - run = debug.Run - } - err = run(name, &myservice{}) - if err != nil { - elog.Error(1, fmt.Sprintf("%s service failed: %v", name, err)) - return - } - elog.Info(1, fmt.Sprintf("%s service stopped", name)) -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/go12.c b/vendor/github.com/andrewkroh/sys/windows/svc/go12.c deleted file mode 100644 index 6f1be1fa3bc..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/go12.c +++ /dev/null @@ -1,24 +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 windows -// +build !go1.3 - -// copied from pkg/runtime -typedef unsigned int uint32; -typedef unsigned long long int uint64; -#ifdef _64BIT -typedef uint64 uintptr; -#else -typedef uint32 uintptr; -#endif - -// from sys_386.s or sys_amd64.s -void ·servicemain(void); - -void -·getServiceMain(uintptr *r) -{ - *r = (uintptr)·servicemain; -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/go12.go b/vendor/github.com/andrewkroh/sys/windows/svc/go12.go deleted file mode 100644 index 6f0a924eafd..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/go12.go +++ /dev/null @@ -1,11 +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 windows -// +build !go1.3 - -package svc - -// from go12.c -func getServiceMain(r *uintptr) diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/go13.go b/vendor/github.com/andrewkroh/sys/windows/svc/go13.go deleted file mode 100644 index 432a9e796a7..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/go13.go +++ /dev/null @@ -1,31 +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 windows -// +build go1.3 - -package svc - -import "unsafe" - -const ptrSize = 4 << (^uintptr(0) >> 63) // unsafe.Sizeof(uintptr(0)) but an ideal const - -// Should be a built-in for unsafe.Pointer? -func add(p unsafe.Pointer, x uintptr) unsafe.Pointer { - return unsafe.Pointer(uintptr(p) + x) -} - -// funcPC returns the entry PC of the function f. -// It assumes that f is a func value. Otherwise the behavior is undefined. -func funcPC(f interface{}) uintptr { - return **(**uintptr)(add(unsafe.Pointer(&f), ptrSize)) -} - -// from sys_386.s and sys_amd64.s -func servicectlhandler(ctl uint32) uintptr -func servicemain(argc uint32, argv **uint16) - -func getServiceMain(r *uintptr) { - *r = funcPC(servicemain) -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/mgr/config.go b/vendor/github.com/andrewkroh/sys/windows/svc/mgr/config.go deleted file mode 100644 index 0a6edba4f55..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/mgr/config.go +++ /dev/null @@ -1,139 +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 windows - -package mgr - -import ( - "syscall" - "unicode/utf16" - "unsafe" - - "golang.org/x/sys/windows" -) - -const ( - // Service start types. - StartManual = windows.SERVICE_DEMAND_START // the service must be started manually - StartAutomatic = windows.SERVICE_AUTO_START // the service will start by itself whenever the computer reboots - StartDisabled = windows.SERVICE_DISABLED // the service cannot be started - - // The severity of the error, and action taken, - // if this service fails to start. - ErrorCritical = windows.SERVICE_ERROR_CRITICAL - ErrorIgnore = windows.SERVICE_ERROR_IGNORE - ErrorNormal = windows.SERVICE_ERROR_NORMAL - ErrorSevere = windows.SERVICE_ERROR_SEVERE -) - -// TODO(brainman): Password is not returned by windows.QueryServiceConfig, not sure how to get it. - -type Config struct { - ServiceType uint32 - StartType uint32 - ErrorControl uint32 - BinaryPathName string // fully qualified path to the service binary file, can also include arguments for an auto-start service - LoadOrderGroup string - TagId uint32 - Dependencies []string - ServiceStartName string // name of the account under which the service should run - DisplayName string - Password string - Description string -} - -func toString(p *uint16) string { - if p == nil { - return "" - } - return syscall.UTF16ToString((*[4096]uint16)(unsafe.Pointer(p))[:]) -} - -func toStringSlice(ps *uint16) []string { - if ps == nil { - return nil - } - r := make([]string, 0) - for from, i, p := 0, 0, (*[1 << 24]uint16)(unsafe.Pointer(ps)); true; i++ { - if p[i] == 0 { - // empty string marks the end - if i <= from { - break - } - r = append(r, string(utf16.Decode(p[from:i]))) - from = i + 1 - } - } - return r -} - -// Config retrieves service s configuration paramteres. -func (s *Service) Config() (Config, error) { - var p *windows.QUERY_SERVICE_CONFIG - n := uint32(1024) - for { - b := make([]byte, n) - p = (*windows.QUERY_SERVICE_CONFIG)(unsafe.Pointer(&b[0])) - err := windows.QueryServiceConfig(s.Handle, p, n, &n) - if err == nil { - break - } - if err.(syscall.Errno) != syscall.ERROR_INSUFFICIENT_BUFFER { - return Config{}, err - } - if n <= uint32(len(b)) { - return Config{}, err - } - } - - var p2 *windows.SERVICE_DESCRIPTION - n = uint32(1024) - for { - b := make([]byte, n) - p2 = (*windows.SERVICE_DESCRIPTION)(unsafe.Pointer(&b[0])) - err := windows.QueryServiceConfig2(s.Handle, - windows.SERVICE_CONFIG_DESCRIPTION, &b[0], n, &n) - if err == nil { - break - } - if err.(syscall.Errno) != syscall.ERROR_INSUFFICIENT_BUFFER { - return Config{}, err - } - if n <= uint32(len(b)) { - return Config{}, err - } - } - - return Config{ - ServiceType: p.ServiceType, - StartType: p.StartType, - ErrorControl: p.ErrorControl, - BinaryPathName: toString(p.BinaryPathName), - LoadOrderGroup: toString(p.LoadOrderGroup), - TagId: p.TagId, - Dependencies: toStringSlice(p.Dependencies), - ServiceStartName: toString(p.ServiceStartName), - DisplayName: toString(p.DisplayName), - Description: toString(p2.Description), - }, nil -} - -func updateDescription(handle windows.Handle, desc string) error { - d := windows.SERVICE_DESCRIPTION{toPtr(desc)} - return windows.ChangeServiceConfig2(handle, - windows.SERVICE_CONFIG_DESCRIPTION, (*byte)(unsafe.Pointer(&d))) -} - -// UpdateConfig updates service s configuration parameters. -func (s *Service) UpdateConfig(c Config) error { - err := windows.ChangeServiceConfig(s.Handle, c.ServiceType, c.StartType, - c.ErrorControl, toPtr(c.BinaryPathName), toPtr(c.LoadOrderGroup), - nil, toStringBlock(c.Dependencies), toPtr(c.ServiceStartName), - toPtr(c.Password), toPtr(c.DisplayName)) - if err != nil { - return err - } - return updateDescription(s.Handle, c.Description) -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/mgr/mgr.go b/vendor/github.com/andrewkroh/sys/windows/svc/mgr/mgr.go deleted file mode 100644 index 4d7e72ec463..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/mgr/mgr.go +++ /dev/null @@ -1,116 +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 windows - -// Package mgr can be used to manage Windows service programs. -// It can be used to install and remove them. It can also start, -// stop and pause them. The package can query / change current -// service state and config parameters. -// -package mgr - -import ( - "syscall" - "unicode/utf16" - - "golang.org/x/sys/windows" -) - -// Mgr is used to manage Windows service. -type Mgr struct { - Handle windows.Handle -} - -// Connect establishes a connection to the service control manager. -func Connect() (*Mgr, error) { - return ConnectRemote("") -} - -// ConnectRemote establishes a connection to the -// service control manager on computer named host. -func ConnectRemote(host string) (*Mgr, error) { - var s *uint16 - if host != "" { - s = syscall.StringToUTF16Ptr(host) - } - h, err := windows.OpenSCManager(s, nil, windows.SC_MANAGER_ALL_ACCESS) - if err != nil { - return nil, err - } - return &Mgr{Handle: h}, nil -} - -// Disconnect closes connection to the service control manager m. -func (m *Mgr) Disconnect() error { - return windows.CloseServiceHandle(m.Handle) -} - -func toPtr(s string) *uint16 { - if len(s) == 0 { - return nil - } - return syscall.StringToUTF16Ptr(s) -} - -// toStringBlock terminates strings in ss with 0, and then -// concatenates them together. It also adds extra 0 at the end. -func toStringBlock(ss []string) *uint16 { - if len(ss) == 0 { - return nil - } - t := "" - for _, s := range ss { - if s != "" { - t += s + "\x00" - } - } - if t == "" { - return nil - } - t += "\x00" - return &utf16.Encode([]rune(t))[0] -} - -// CreateService installs new service name on the system. -// The service will be executed by running exepath binary. -// Use config c to specify service parameters. -// If service StartType is set to StartAutomatic, -// args will be passed to svc.Handle.Execute. -func (m *Mgr) CreateService(name, exepath string, c Config, args ...string) (*Service, error) { - if c.StartType == 0 { - c.StartType = StartManual - } - if c.ErrorControl == 0 { - c.ErrorControl = ErrorNormal - } - s := syscall.EscapeArg(exepath) - for _, v := range args { - s += " " + syscall.EscapeArg(v) - } - h, err := windows.CreateService(m.Handle, toPtr(name), toPtr(c.DisplayName), - windows.SERVICE_ALL_ACCESS, windows.SERVICE_WIN32_OWN_PROCESS, - c.StartType, c.ErrorControl, toPtr(s), toPtr(c.LoadOrderGroup), - nil, toStringBlock(c.Dependencies), toPtr(c.ServiceStartName), toPtr(c.Password)) - if err != nil { - return nil, err - } - if c.Description != "" { - err = updateDescription(h, c.Description) - if err != nil { - return nil, err - } - } - return &Service{Name: name, Handle: h}, nil -} - -// OpenService retrieves access to service name, so it can -// be interrogated and controlled. -func (m *Mgr) OpenService(name string) (*Service, error) { - h, err := windows.OpenService(m.Handle, syscall.StringToUTF16Ptr(name), windows.SERVICE_ALL_ACCESS) - if err != nil { - return nil, err - } - return &Service{Name: name, Handle: h}, nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/mgr/service.go b/vendor/github.com/andrewkroh/sys/windows/svc/mgr/service.go deleted file mode 100644 index 465f3c3d235..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/mgr/service.go +++ /dev/null @@ -1,74 +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 windows - -package mgr - -import ( - "syscall" - - "golang.org/x/sys/windows" - "golang.org/x/sys/windows/svc" -) - -// TODO(brainman): Use EnumDependentServices to enumerate dependent services. - -// TODO(brainman): Use EnumServicesStatus to enumerate services in the specified service control manager database. - -// Service is used to access Windows service. -type Service struct { - Name string - Handle windows.Handle -} - -// Delete marks service s for deletion from the service control manager database. -func (s *Service) Delete() error { - return windows.DeleteService(s.Handle) -} - -// Close relinquish access to the service s. -func (s *Service) Close() error { - return windows.CloseServiceHandle(s.Handle) -} - -// Start starts service s. -// args will be passed to svc.Handler.Execute. -func (s *Service) Start(args ...string) error { - var p **uint16 - if len(args) > 0 { - vs := make([]*uint16, len(args)) - for i, _ := range vs { - vs[i] = syscall.StringToUTF16Ptr(args[i]) - } - p = &vs[0] - } - return windows.StartService(s.Handle, uint32(len(args)), p) -} - -// Control sends state change request c to the servce s. -func (s *Service) Control(c svc.Cmd) (svc.Status, error) { - var t windows.SERVICE_STATUS - err := windows.ControlService(s.Handle, uint32(c), &t) - if err != nil { - return svc.Status{}, err - } - return svc.Status{ - State: svc.State(t.CurrentState), - Accepts: svc.Accepted(t.ControlsAccepted), - }, nil -} - -// Query returns current status of service s. -func (s *Service) Query() (svc.Status, error) { - var t windows.SERVICE_STATUS - err := windows.QueryServiceStatus(s.Handle, &t) - if err != nil { - return svc.Status{}, err - } - return svc.Status{ - State: svc.State(t.CurrentState), - Accepts: svc.Accepted(t.ControlsAccepted), - }, nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/security.go b/vendor/github.com/andrewkroh/sys/windows/svc/security.go deleted file mode 100644 index 6fbc9236ed5..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/security.go +++ /dev/null @@ -1,62 +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 windows - -package svc - -import ( - "unsafe" - - "golang.org/x/sys/windows" -) - -func allocSid(subAuth0 uint32) (*windows.SID, error) { - var sid *windows.SID - err := windows.AllocateAndInitializeSid(&windows.SECURITY_NT_AUTHORITY, - 1, subAuth0, 0, 0, 0, 0, 0, 0, 0, &sid) - if err != nil { - return nil, err - } - return sid, nil -} - -// IsAnInteractiveSession determines if calling process is running interactively. -// It queries the process token for membership in the Interactive group. -// http://stackoverflow.com/questions/2668851/how-do-i-detect-that-my-application-is-running-as-service-or-in-an-interactive-s -func IsAnInteractiveSession() (bool, error) { - interSid, err := allocSid(windows.SECURITY_INTERACTIVE_RID) - if err != nil { - return false, err - } - defer windows.FreeSid(interSid) - - serviceSid, err := allocSid(windows.SECURITY_SERVICE_RID) - if err != nil { - return false, err - } - defer windows.FreeSid(serviceSid) - - t, err := windows.OpenCurrentProcessToken() - if err != nil { - return false, err - } - defer t.Close() - - gs, err := t.GetTokenGroups() - if err != nil { - return false, err - } - p := unsafe.Pointer(&gs.Groups[0]) - groups := (*[2 << 20]windows.SIDAndAttributes)(p)[:gs.GroupCount] - for _, g := range groups { - if windows.EqualSid(g.Sid, interSid) { - return true, nil - } - if windows.EqualSid(g.Sid, serviceSid) { - return false, nil - } - } - return false, nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/service.go b/vendor/github.com/andrewkroh/sys/windows/svc/service.go deleted file mode 100644 index 9864f7a72f2..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/service.go +++ /dev/null @@ -1,316 +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 windows - -// Package svc provides everything required to build Windows service. -// -package svc - -import ( - "errors" - "runtime" - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -// State describes service execution state (Stopped, Running and so on). -type State uint32 - -const ( - Stopped = State(windows.SERVICE_STOPPED) - StartPending = State(windows.SERVICE_START_PENDING) - StopPending = State(windows.SERVICE_STOP_PENDING) - Running = State(windows.SERVICE_RUNNING) - ContinuePending = State(windows.SERVICE_CONTINUE_PENDING) - PausePending = State(windows.SERVICE_PAUSE_PENDING) - Paused = State(windows.SERVICE_PAUSED) -) - -// Cmd represents service state change request. It is sent to a service -// by the service manager, and should be actioned upon by the service. -type Cmd uint32 - -const ( - Stop = Cmd(windows.SERVICE_CONTROL_STOP) - Pause = Cmd(windows.SERVICE_CONTROL_PAUSE) - Continue = Cmd(windows.SERVICE_CONTROL_CONTINUE) - Interrogate = Cmd(windows.SERVICE_CONTROL_INTERROGATE) - Shutdown = Cmd(windows.SERVICE_CONTROL_SHUTDOWN) -) - -// Accepted is used to describe commands accepted by the service. -// Note that Interrogate is always accepted. -type Accepted uint32 - -const ( - AcceptStop = Accepted(windows.SERVICE_ACCEPT_STOP) - AcceptShutdown = Accepted(windows.SERVICE_ACCEPT_SHUTDOWN) - AcceptPauseAndContinue = Accepted(windows.SERVICE_ACCEPT_PAUSE_CONTINUE) -) - -// Status combines State and Accepted commands to fully describe running service. -type Status struct { - State State - Accepts Accepted - CheckPoint uint32 // used to report progress during a lengthy operation - WaitHint uint32 // estimated time required for a pending operation, in milliseconds -} - -// ChangeRequest is sent to the service Handler to request service status change. -type ChangeRequest struct { - Cmd Cmd - CurrentStatus Status -} - -// Handler is the interface that must be implemented to build Windows service. -type Handler interface { - - // Execute will be called by the package code at the start of - // the service, and the service will exit once Execute completes. - // Inside Execute you must read service change requests from r and - // act accordingly. You must keep service control manager up to date - // about state of your service by writing into s as required. - // args contains service name followed by argument strings passed - // to the service. - // You can provide service exit code in exitCode return parameter, - // with 0 being "no error". You can also indicate if exit code, - // if any, is service specific or not by using svcSpecificEC - // parameter. - Execute(args []string, r <-chan ChangeRequest, s chan<- Status) (svcSpecificEC bool, exitCode uint32) -} - -var ( - // These are used by asm code. - goWaitsH uintptr - cWaitsH uintptr - ssHandle uintptr - sName *uint16 - sArgc uintptr - sArgv **uint16 - ctlHandlerProc uintptr - cSetEvent uintptr - cWaitForSingleObject uintptr - cRegisterServiceCtrlHandlerW uintptr -) - -func init() { - k := syscall.MustLoadDLL("kernel32.dll") - cSetEvent = k.MustFindProc("SetEvent").Addr() - cWaitForSingleObject = k.MustFindProc("WaitForSingleObject").Addr() - a := syscall.MustLoadDLL("advapi32.dll") - cRegisterServiceCtrlHandlerW = a.MustFindProc("RegisterServiceCtrlHandlerW").Addr() -} - -type ctlEvent struct { - cmd Cmd - errno uint32 -} - -// service provides access to windows service api. -type service struct { - name string - h windows.Handle - cWaits *event - goWaits *event - c chan ctlEvent - handler Handler -} - -func newService(name string, handler Handler) (*service, error) { - var s service - var err error - s.name = name - s.c = make(chan ctlEvent) - s.handler = handler - s.cWaits, err = newEvent() - if err != nil { - return nil, err - } - s.goWaits, err = newEvent() - if err != nil { - s.cWaits.Close() - return nil, err - } - return &s, nil -} - -func (s *service) close() error { - s.cWaits.Close() - s.goWaits.Close() - return nil -} - -type exitCode struct { - isSvcSpecific bool - errno uint32 -} - -func (s *service) updateStatus(status *Status, ec *exitCode) error { - if s.h == 0 { - return errors.New("updateStatus with no service status handle") - } - var t windows.SERVICE_STATUS - t.ServiceType = windows.SERVICE_WIN32_OWN_PROCESS - t.CurrentState = uint32(status.State) - if status.Accepts&AcceptStop != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_STOP - } - if status.Accepts&AcceptShutdown != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_SHUTDOWN - } - if status.Accepts&AcceptPauseAndContinue != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_PAUSE_CONTINUE - } - if ec.errno == 0 { - t.Win32ExitCode = windows.NO_ERROR - t.ServiceSpecificExitCode = windows.NO_ERROR - } else if ec.isSvcSpecific { - t.Win32ExitCode = uint32(windows.ERROR_SERVICE_SPECIFIC_ERROR) - t.ServiceSpecificExitCode = ec.errno - } else { - t.Win32ExitCode = ec.errno - t.ServiceSpecificExitCode = windows.NO_ERROR - } - t.CheckPoint = status.CheckPoint - t.WaitHint = status.WaitHint - return windows.SetServiceStatus(s.h, &t) -} - -const ( - sysErrSetServiceStatusFailed = uint32(syscall.APPLICATION_ERROR) + iota - sysErrNewThreadInCallback -) - -func (s *service) run() { - s.goWaits.Wait() - s.h = windows.Handle(ssHandle) - argv := (*[100]*int16)(unsafe.Pointer(sArgv))[:sArgc] - args := make([]string, len(argv)) - for i, a := range argv { - args[i] = syscall.UTF16ToString((*[1 << 20]uint16)(unsafe.Pointer(a))[:]) - } - - cmdsToHandler := make(chan ChangeRequest) - changesFromHandler := make(chan Status) - exitFromHandler := make(chan exitCode) - - go func() { - ss, errno := s.handler.Execute(args, cmdsToHandler, changesFromHandler) - exitFromHandler <- exitCode{ss, errno} - }() - - status := Status{State: Stopped} - ec := exitCode{isSvcSpecific: true, errno: 0} - var outch chan ChangeRequest - inch := s.c - var cmd Cmd -loop: - for { - select { - case r := <-inch: - if r.errno != 0 { - ec.errno = r.errno - break loop - } - inch = nil - outch = cmdsToHandler - cmd = r.cmd - case outch <- ChangeRequest{cmd, status}: - inch = s.c - outch = nil - case c := <-changesFromHandler: - err := s.updateStatus(&c, &ec) - if err != nil { - // best suitable error number - ec.errno = sysErrSetServiceStatusFailed - if err2, ok := err.(syscall.Errno); ok { - ec.errno = uint32(err2) - } - break loop - } - status = c - case ec = <-exitFromHandler: - break loop - } - } - - s.updateStatus(&Status{State: Stopped}, &ec) - s.cWaits.Set() -} - -func newCallback(fn interface{}) (cb uintptr, err error) { - defer func() { - r := recover() - if r == nil { - return - } - cb = 0 - switch v := r.(type) { - case string: - err = errors.New(v) - case error: - err = v - default: - err = errors.New("unexpected panic in syscall.NewCallback") - } - }() - return syscall.NewCallback(fn), nil -} - -// BUG(brainman): There is no mechanism to run multiple services -// inside one single executable. Perhaps, it can be overcome by -// using RegisterServiceCtrlHandlerEx Windows api. - -// Run executes service name by calling appropriate handler function. -func Run(name string, handler Handler) error { - runtime.LockOSThread() - - tid := windows.GetCurrentThreadId() - - s, err := newService(name, handler) - if err != nil { - return err - } - - ctlHandler := func(ctl uint32) uintptr { - e := ctlEvent{cmd: Cmd(ctl)} - // We assume that this callback function is running on - // the same thread as Run. Nowhere in MS documentation - // I could find statement to guarantee that. So putting - // check here to verify, otherwise things will go bad - // quickly, if ignored. - i := windows.GetCurrentThreadId() - if i != tid { - e.errno = sysErrNewThreadInCallback - } - s.c <- e - return 0 - } - - var svcmain uintptr - getServiceMain(&svcmain) - t := []windows.SERVICE_TABLE_ENTRY{ - {syscall.StringToUTF16Ptr(s.name), svcmain}, - {nil, 0}, - } - - goWaitsH = uintptr(s.goWaits.h) - cWaitsH = uintptr(s.cWaits.h) - sName = t[0].ServiceName - ctlHandlerProc, err = newCallback(ctlHandler) - if err != nil { - return err - } - - go s.run() - - err = windows.StartServiceCtrlDispatcher(&t[0]) - if err != nil { - return err - } - return nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/sys_386.s b/vendor/github.com/andrewkroh/sys/windows/svc/sys_386.s deleted file mode 100644 index 5e11bfadb52..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/sys_386.s +++ /dev/null @@ -1,67 +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 windows - -// func servicemain(argc uint32, argv **uint16) -TEXT ·servicemain(SB),7,$0 - MOVL argc+0(FP), AX - MOVL AX, ·sArgc(SB) - MOVL argv+4(FP), AX - MOVL AX, ·sArgv(SB) - - PUSHL BP - PUSHL BX - PUSHL SI - PUSHL DI - - SUBL $12, SP - - MOVL ·sName(SB), AX - MOVL AX, (SP) - MOVL $·servicectlhandler(SB), AX - MOVL AX, 4(SP) - MOVL ·cRegisterServiceCtrlHandlerW(SB), AX - MOVL SP, BP - CALL AX - MOVL BP, SP - CMPL AX, $0 - JE exit - MOVL AX, ·ssHandle(SB) - - MOVL ·goWaitsH(SB), AX - MOVL AX, (SP) - MOVL ·cSetEvent(SB), AX - MOVL SP, BP - CALL AX - MOVL BP, SP - - MOVL ·cWaitsH(SB), AX - MOVL AX, (SP) - MOVL $-1, AX - MOVL AX, 4(SP) - MOVL ·cWaitForSingleObject(SB), AX - MOVL SP, BP - CALL AX - MOVL BP, SP - -exit: - ADDL $12, SP - - POPL DI - POPL SI - POPL BX - POPL BP - - MOVL 0(SP), CX - ADDL $12, SP - JMP CX - -// I do not know why, but this seems to be the only way to call -// ctlHandlerProc on Windows 7. - -// func servicectlhandler(ctl uint32) uintptr -TEXT ·servicectlhandler(SB),7,$0 - MOVL ·ctlHandlerProc(SB), CX - JMP CX diff --git a/vendor/github.com/andrewkroh/sys/windows/svc/sys_amd64.s b/vendor/github.com/andrewkroh/sys/windows/svc/sys_amd64.s deleted file mode 100644 index 87dbec83952..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/svc/sys_amd64.s +++ /dev/null @@ -1,41 +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 windows - -// func servicemain(argc uint32, argv **uint16) -TEXT ·servicemain(SB),7,$0 - MOVL CX, ·sArgc(SB) - MOVL DX, ·sArgv(SB) - - SUBQ $32, SP // stack for the first 4 syscall params - - MOVQ ·sName(SB), CX - MOVQ $·servicectlhandler(SB), DX - MOVQ ·cRegisterServiceCtrlHandlerW(SB), AX - CALL AX - CMPQ AX, $0 - JE exit - MOVQ AX, ·ssHandle(SB) - - MOVQ ·goWaitsH(SB), CX - MOVQ ·cSetEvent(SB), AX - CALL AX - - MOVQ ·cWaitsH(SB), CX - MOVQ $4294967295, DX - MOVQ ·cWaitForSingleObject(SB), AX - CALL AX - -exit: - ADDQ $32, SP - RET - -// I do not know why, but this seems to be the only way to call -// ctlHandlerProc on Windows 7. - -// func servicectlhandler(ctl uint32) uintptr -TEXT ·servicectlhandler(SB),7,$0 - MOVQ ·ctlHandlerProc(SB), AX - JMP AX diff --git a/vendor/github.com/andrewkroh/sys/windows/syscall.go b/vendor/github.com/andrewkroh/sys/windows/syscall.go deleted file mode 100644 index a8cc609b322..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/syscall.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 windows - -// Package windows contains an interface to the low-level operating system -// primitives. OS details vary depending on the underlying system, and -// by default, godoc will display the OS-specific documentation for the current -// system. If you want godoc to display syscall 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 windows // import "golang.org/x/sys/windows" - -import ( - "syscall" - "unsafe" -) - -// 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, syscall.EINVAL). -func ByteSliceFromString(s string) ([]byte, error) { - for i := 0; i < len(s); i++ { - if s[i] == 0 { - return nil, syscall.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, syscall.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 mksyscall.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 -} - -// use is a no-op, but the compiler cannot see that it is. -// Calling use(p) ensures that p is kept live until that point. -//go:noescape -func use(p unsafe.Pointer) diff --git a/vendor/github.com/andrewkroh/sys/windows/syscall_windows.go b/vendor/github.com/andrewkroh/sys/windows/syscall_windows.go deleted file mode 100644 index 441c193cfe3..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/syscall_windows.go +++ /dev/null @@ -1,986 +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. - -// Windows system calls. - -package windows - -import ( - errorspkg "errors" - "sync" - "syscall" - "unicode/utf16" - "unsafe" -) - -//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go - -type Handle uintptr - -const InvalidHandle = ^Handle(0) - -// StringToUTF16 is deprecated. Use UTF16FromString instead. -// If s contains a NUL byte this function panics instead of -// returning an error. -func StringToUTF16(s string) []uint16 { - a, err := UTF16FromString(s) - if err != nil { - panic("windows: string with NUL passed to StringToUTF16") - } - return a -} - -// UTF16FromString returns the UTF-16 encoding of the UTF-8 string -// s, with a terminating NUL added. If s contains a NUL byte at any -// location, it returns (nil, syscall.EINVAL). -func UTF16FromString(s string) ([]uint16, error) { - for i := 0; i < len(s); i++ { - if s[i] == 0 { - return nil, syscall.EINVAL - } - } - return utf16.Encode([]rune(s + "\x00")), nil -} - -// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, -// with a terminating NUL removed. -func UTF16ToString(s []uint16) string { - for i, v := range s { - if v == 0 { - s = s[0:i] - break - } - } - return string(utf16.Decode(s)) -} - -// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. -// If s contains a NUL byte this function panics instead of -// returning an error. -func StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] } - -// UTF16PtrFromString returns pointer to the UTF-16 encoding of -// the UTF-8 string s, with a terminating NUL added. If s -// contains a NUL byte at any location, it returns (nil, syscall.EINVAL). -func UTF16PtrFromString(s string) (*uint16, error) { - a, err := UTF16FromString(s) - if err != nil { - return nil, err - } - return &a[0], nil -} - -func Getpagesize() int { return 4096 } - -// Converts a Go function to a function pointer conforming -// to the stdcall or cdecl calling convention. This is useful when -// interoperating with Windows code requiring callbacks. -// Implemented in runtime/syscall_windows.goc -func NewCallback(fn interface{}) uintptr -func NewCallbackCDecl(fn interface{}) uintptr - -// windows api calls - -//sys GetLastError() (lasterr error) -//sys LoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW -//sys FreeLibrary(handle Handle) (err error) -//sys GetProcAddress(module Handle, procname string) (proc uintptr, err error) -//sys GetVersion() (ver uint32, err error) -//sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW -//sys ExitProcess(exitcode uint32) -//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW -//sys ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) -//sys WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) -//sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff] -//sys CloseHandle(handle Handle) (err error) -//sys GetStdHandle(stdhandle int) (handle Handle, err error) [failretval==InvalidHandle] -//sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW -//sys findNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW -//sys FindClose(handle Handle) (err error) -//sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) -//sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW -//sys SetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW -//sys CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW -//sys RemoveDirectory(path *uint16) (err error) = RemoveDirectoryW -//sys DeleteFile(path *uint16) (err error) = DeleteFileW -//sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW -//sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW -//sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW -//sys SetEndOfFile(handle Handle) (err error) -//sys GetSystemTimeAsFileTime(time *Filetime) -//sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) -//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) -//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) -//sys CancelIo(s Handle) (err error) -//sys CancelIoEx(s Handle, o *Overlapped) (err error) -//sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW -//sys OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) -//sys TerminateProcess(handle Handle, exitcode uint32) (err error) -//sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) -//sys GetStartupInfo(startupInfo *StartupInfo) (err error) = GetStartupInfoW -//sys GetCurrentProcess() (pseudoHandle Handle, err error) -//sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) -//sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) -//sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] -//sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW -//sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) -//sys GetFileType(filehandle Handle) (n uint32, err error) -//sys CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW -//sys CryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext -//sys CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom -//sys GetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW -//sys FreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW -//sys GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW -//sys SetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW -//sys SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) -//sys GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW -//sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW -//sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW -//sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW -//sys CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW -//sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0] -//sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) -//sys FlushFileBuffers(handle Handle) (err error) -//sys GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW -//sys GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW -//sys GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW -//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) = kernel32.CreateFileMappingW -//sys MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) -//sys UnmapViewOfFile(addr uintptr) (err error) -//sys FlushViewOfFile(addr uintptr, length uintptr) (err error) -//sys VirtualLock(addr uintptr, length uintptr) (err error) -//sys VirtualUnlock(addr uintptr, length uintptr) (err error) -//sys TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile -//sys ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW -//sys CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW -//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) [failretval==InvalidHandle] = crypt32.CertOpenStore -//sys CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore -//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore -//sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore -//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain -//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain -//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext -//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext -//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy -//sys RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW -//sys RegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey -//sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW -//sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW -//sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW -//sys getCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId -//sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode -//sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW -//sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW -//sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot -//sys Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW -//sys Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW -//sys DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) -// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. -//sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW -//sys CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW -//sys GetCurrentThreadId() (id uint32) -//sys CreateEvent(eventAttrs *syscall.SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) = kernel32.CreateEventW -//sys SetEvent(event Handle) (err error) = kernel32.SetEvent - -// syscall interface implementation for other packages - -func Exit(code int) { ExitProcess(uint32(code)) } - -func makeInheritSa() *SecurityAttributes { - var sa SecurityAttributes - sa.Length = uint32(unsafe.Sizeof(sa)) - sa.InheritHandle = 1 - return &sa -} - -func Open(path string, mode int, perm uint32) (fd Handle, err error) { - if len(path) == 0 { - return InvalidHandle, ERROR_FILE_NOT_FOUND - } - pathp, err := UTF16PtrFromString(path) - if err != nil { - return InvalidHandle, err - } - var access uint32 - switch mode & (O_RDONLY | O_WRONLY | O_RDWR) { - case O_RDONLY: - access = GENERIC_READ - case O_WRONLY: - access = GENERIC_WRITE - case O_RDWR: - access = GENERIC_READ | GENERIC_WRITE - } - if mode&O_CREAT != 0 { - access |= GENERIC_WRITE - } - if mode&O_APPEND != 0 { - access &^= GENERIC_WRITE - access |= FILE_APPEND_DATA - } - sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE) - var sa *SecurityAttributes - if mode&O_CLOEXEC == 0 { - sa = makeInheritSa() - } - var createmode uint32 - switch { - case mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL): - createmode = CREATE_NEW - case mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC): - createmode = CREATE_ALWAYS - case mode&O_CREAT == O_CREAT: - createmode = OPEN_ALWAYS - case mode&O_TRUNC == O_TRUNC: - createmode = TRUNCATE_EXISTING - default: - createmode = OPEN_EXISTING - } - h, e := CreateFile(pathp, access, sharemode, sa, createmode, FILE_ATTRIBUTE_NORMAL, 0) - return h, e -} - -func Read(fd Handle, p []byte) (n int, err error) { - var done uint32 - e := ReadFile(fd, p, &done, nil) - if e != nil { - if e == ERROR_BROKEN_PIPE { - // NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin - return 0, nil - } - return 0, e - } - if raceenabled { - if done > 0 { - raceWriteRange(unsafe.Pointer(&p[0]), int(done)) - } - raceAcquire(unsafe.Pointer(&ioSync)) - } - return int(done), nil -} - -func Write(fd Handle, p []byte) (n int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - var done uint32 - e := WriteFile(fd, p, &done, nil) - if e != nil { - return 0, e - } - if raceenabled && done > 0 { - raceReadRange(unsafe.Pointer(&p[0]), int(done)) - } - return int(done), nil -} - -var ioSync int64 - -func Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) { - var w uint32 - switch whence { - case 0: - w = FILE_BEGIN - case 1: - w = FILE_CURRENT - case 2: - w = FILE_END - } - hi := int32(offset >> 32) - lo := int32(offset) - // use GetFileType to check pipe, pipe can't do seek - ft, _ := GetFileType(fd) - if ft == FILE_TYPE_PIPE { - return 0, syscall.EPIPE - } - rlo, e := SetFilePointer(fd, lo, &hi, w) - if e != nil { - return 0, e - } - return int64(hi)<<32 + int64(rlo), nil -} - -func Close(fd Handle) (err error) { - return CloseHandle(fd) -} - -var ( - Stdin = getStdHandle(STD_INPUT_HANDLE) - Stdout = getStdHandle(STD_OUTPUT_HANDLE) - Stderr = getStdHandle(STD_ERROR_HANDLE) -) - -func getStdHandle(h int) (fd Handle) { - r, _ := GetStdHandle(h) - CloseOnExec(r) - return r -} - -const ImplementsGetwd = true - -func Getwd() (wd string, err error) { - b := make([]uint16, 300) - n, e := GetCurrentDirectory(uint32(len(b)), &b[0]) - if e != nil { - return "", e - } - return string(utf16.Decode(b[0:n])), nil -} - -func Chdir(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return SetCurrentDirectory(pathp) -} - -func Mkdir(path string, mode uint32) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return CreateDirectory(pathp, nil) -} - -func Rmdir(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return RemoveDirectory(pathp) -} - -func Unlink(path string) (err error) { - pathp, err := UTF16PtrFromString(path) - if err != nil { - return err - } - return DeleteFile(pathp) -} - -func Rename(oldpath, newpath string) (err error) { - from, err := UTF16PtrFromString(oldpath) - if err != nil { - return err - } - to, err := UTF16PtrFromString(newpath) - if err != nil { - return err - } - return MoveFile(from, to) -} - -func ComputerName() (name string, err error) { - var n uint32 = MAX_COMPUTERNAME_LENGTH + 1 - b := make([]uint16, n) - e := GetComputerName(&b[0], &n) - if e != nil { - return "", e - } - return string(utf16.Decode(b[0:n])), nil -} - -func Ftruncate(fd Handle, length int64) (err error) { - curoffset, e := Seek(fd, 0, 1) - if e != nil { - return e - } - defer Seek(fd, curoffset, 0) - _, e = Seek(fd, length, 0) - if e != nil { - return e - } - e = SetEndOfFile(fd) - if e != nil { - return e - } - return nil -} - -func Gettimeofday(tv *Timeval) (err error) { - var ft Filetime - GetSystemTimeAsFileTime(&ft) - *tv = NsecToTimeval(ft.Nanoseconds()) - return nil -} - -func Pipe(p []Handle) (err error) { - if len(p) != 2 { - return syscall.EINVAL - } - var r, w Handle - e := CreatePipe(&r, &w, makeInheritSa(), 0) - if e != nil { - return e - } - p[0] = r - p[1] = w - return nil -} - -func Utimes(path string, tv []Timeval) (err error) { - if len(tv) != 2 { - return syscall.EINVAL - } - pathp, e := UTF16PtrFromString(path) - if e != nil { - return e - } - h, e := CreateFile(pathp, - FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) - if e != nil { - return e - } - defer Close(h) - a := NsecToFiletime(tv[0].Nanoseconds()) - w := NsecToFiletime(tv[1].Nanoseconds()) - return SetFileTime(h, nil, &a, &w) -} - -func UtimesNano(path string, ts []Timespec) (err error) { - if len(ts) != 2 { - return syscall.EINVAL - } - pathp, e := UTF16PtrFromString(path) - if e != nil { - return e - } - h, e := CreateFile(pathp, - FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) - if e != nil { - return e - } - defer Close(h) - a := NsecToFiletime(TimespecToNsec(ts[0])) - w := NsecToFiletime(TimespecToNsec(ts[1])) - return SetFileTime(h, nil, &a, &w) -} - -func Fsync(fd Handle) (err error) { - return FlushFileBuffers(fd) -} - -func Chmod(path string, mode uint32) (err error) { - if mode == 0 { - return syscall.EINVAL - } - p, e := UTF16PtrFromString(path) - if e != nil { - return e - } - attrs, e := GetFileAttributes(p) - if e != nil { - return e - } - if mode&S_IWRITE != 0 { - attrs &^= FILE_ATTRIBUTE_READONLY - } else { - attrs |= FILE_ATTRIBUTE_READONLY - } - return SetFileAttributes(p, attrs) -} - -func LoadCancelIoEx() error { - return procCancelIoEx.Find() -} - -func LoadSetFileCompletionNotificationModes() error { - return procSetFileCompletionNotificationModes.Find() -} - -// net api calls - -const socket_error = uintptr(^uint32(0)) - -//sys WSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup -//sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup -//sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl -//sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket -//sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt -//sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt -//sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind -//sys connect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect -//sys getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname -//sys getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername -//sys listen(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen -//sys shutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown -//sys Closesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket -//sys AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx -//sys GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs -//sys WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv -//sys WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend -//sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom -//sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo -//sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname -//sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname -//sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs -//sys GetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname -//sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W -//sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree -//sys DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W -//sys GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW -//sys FreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW -//sys GetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry -//sys GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo -//sys SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes -//sys WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW - -// For testing: clients can set this flag to force -// creation of IPv6 sockets to return EAFNOSUPPORT. -var SocketDisableIPv6 bool - -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 RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]int8 -} - -type Sockaddr interface { - sockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs -} - -type SockaddrInet4 struct { - Port int - Addr [4]byte - raw RawSockaddrInet4 -} - -func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.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), int32(unsafe.Sizeof(sa.raw)), nil -} - -type SockaddrInet6 struct { - Port int - ZoneId uint32 - Addr [16]byte - raw RawSockaddrInet6 -} - -func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) { - if sa.Port < 0 || sa.Port > 0xFFFF { - return nil, 0, syscall.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), int32(unsafe.Sizeof(sa.raw)), nil -} - -type SockaddrUnix struct { - Name string -} - -func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { - // TODO(brainman): implement SockaddrUnix.sockaddr() - return nil, 0, syscall.EWINDOWS -} - -func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { - switch rsa.Addr.Family { - case AF_UNIX: - return nil, syscall.EWINDOWS - - 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, syscall.EAFNOSUPPORT -} - -func Socket(domain, typ, proto int) (fd Handle, err error) { - if domain == AF_INET6 && SocketDisableIPv6 { - return InvalidHandle, syscall.EAFNOSUPPORT - } - return socket(int32(domain), int32(typ), int32(proto)) -} - -func SetsockoptInt(fd Handle, level, opt int, value int) (err error) { - v := int32(value) - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v))) -} - -func Bind(fd Handle, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return bind(fd, ptr, n) -} - -func Connect(fd Handle, sa Sockaddr) (err error) { - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connect(fd, ptr, n) -} - -func Getsockname(fd Handle) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - if err = getsockname(fd, &rsa, &l); err != nil { - return - } - return rsa.Sockaddr() -} - -func Getpeername(fd Handle) (sa Sockaddr, err error) { - var rsa RawSockaddrAny - l := int32(unsafe.Sizeof(rsa)) - if err = getpeername(fd, &rsa, &l); err != nil { - return - } - return rsa.Sockaddr() -} - -func Listen(s Handle, n int) (err error) { - return listen(s, int32(n)) -} - -func Shutdown(fd Handle, how int) (err error) { - return shutdown(fd, int32(how)) -} - -func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { - rsa, l, err := to.sockaddr() - if err != nil { - return err - } - return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) -} - -func LoadGetAddrInfo() error { - return procGetAddrInfoW.Find() -} - -var connectExFunc struct { - once sync.Once - addr uintptr - err error -} - -func LoadConnectEx() error { - connectExFunc.once.Do(func() { - var s Handle - s, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) - if connectExFunc.err != nil { - return - } - defer CloseHandle(s) - var n uint32 - connectExFunc.err = WSAIoctl(s, - SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&WSAID_CONNECTEX)), - uint32(unsafe.Sizeof(WSAID_CONNECTEX)), - (*byte)(unsafe.Pointer(&connectExFunc.addr)), - uint32(unsafe.Sizeof(connectExFunc.addr)), - &n, nil, 0) - }) - return connectExFunc.err -} - -func connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error { - err := LoadConnectEx() - if err != nil { - return errorspkg.New("failed to find ConnectEx: " + err.Error()) - } - ptr, n, err := sa.sockaddr() - if err != nil { - return err - } - return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) -} - -// Invented structures to support what package os expects. -type Rusage struct { - CreationTime Filetime - ExitTime Filetime - KernelTime Filetime - UserTime Filetime -} - -type WaitStatus struct { - ExitCode uint32 -} - -func (w WaitStatus) Exited() bool { return true } - -func (w WaitStatus) ExitStatus() int { return int(w.ExitCode) } - -func (w WaitStatus) Signal() Signal { return -1 } - -func (w WaitStatus) CoreDump() bool { return false } - -func (w WaitStatus) Stopped() bool { return false } - -func (w WaitStatus) Continued() bool { return false } - -func (w WaitStatus) StopSignal() Signal { return -1 } - -func (w WaitStatus) Signaled() bool { return false } - -func (w WaitStatus) TrapCause() int { return -1 } - -// Timespec is an invented structure on Windows, but here for -// consistency with the corresponding package for other operating systems. -type Timespec struct { - Sec int64 - Nsec int64 -} - -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 -} - -// TODO(brainman): fix all needed for net - -func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS } -func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) { - return 0, nil, syscall.EWINDOWS -} -func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) { return syscall.EWINDOWS } -func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS } - -// The Linger struct is wrong but we only noticed after Go 1. -// sysLinger is the real system call structure. - -// BUG(brainman): The definition of Linger is not appropriate for direct use -// with Setsockopt and Getsockopt. -// Use SetsockoptLinger instead. - -type Linger struct { - Onoff int32 - Linger int32 -} - -type sysLinger struct { - Onoff uint16 - Linger uint16 -} - -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -func GetsockoptInt(fd Handle, level, opt int) (int, error) { return -1, syscall.EWINDOWS } - -func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { - sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)} - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys))) -} - -func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) { - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4) -} -func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) { - return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq))) -} -func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { - return syscall.EWINDOWS -} - -func Getpid() (pid int) { return int(getCurrentProcessId()) } - -func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) { - // NOTE(rsc): The Win32finddata struct is wrong for the system call: - // the two paths are each one uint16 short. Use the correct struct, - // a win32finddata1, and then copy the results out. - // There is no loss of expressivity here, because the final - // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that. - // For Go 1.1, we might avoid the allocation of win32finddata1 here - // by adding a final Bug [2]uint16 field to the struct and then - // adjusting the fields in the result directly. - var data1 win32finddata1 - handle, err = findFirstFile1(name, &data1) - if err == nil { - copyFindData(data, &data1) - } - return -} - -func FindNextFile(handle Handle, data *Win32finddata) (err error) { - var data1 win32finddata1 - err = findNextFile1(handle, &data1) - if err == nil { - copyFindData(data, &data1) - } - return -} - -func getProcessEntry(pid int) (*ProcessEntry32, error) { - snapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) - if err != nil { - return nil, err - } - defer CloseHandle(snapshot) - var procEntry ProcessEntry32 - procEntry.Size = uint32(unsafe.Sizeof(procEntry)) - if err = Process32First(snapshot, &procEntry); err != nil { - return nil, err - } - for { - if procEntry.ProcessID == uint32(pid) { - return &procEntry, nil - } - err = Process32Next(snapshot, &procEntry) - if err != nil { - return nil, err - } - } -} - -func Getppid() (ppid int) { - pe, err := getProcessEntry(Getpid()) - if err != nil { - return -1 - } - return int(pe.ParentProcessID) -} - -// TODO(brainman): fix all needed for os -func Fchdir(fd Handle) (err error) { return syscall.EWINDOWS } -func Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS } -func Symlink(path, link string) (err error) { return syscall.EWINDOWS } - -func Fchmod(fd Handle, mode uint32) (err error) { return syscall.EWINDOWS } -func Chown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } -func Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } -func Fchown(fd Handle, uid int, gid int) (err error) { return syscall.EWINDOWS } - -func Getuid() (uid int) { return -1 } -func Geteuid() (euid int) { return -1 } -func Getgid() (gid int) { return -1 } -func Getegid() (egid int) { return -1 } -func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS } - -type Signal int - -func (s Signal) Signal() {} - -func (s Signal) String() string { - if 0 <= s && int(s) < len(signals) { - str := signals[s] - if str != "" { - return str - } - } - return "signal " + itoa(int(s)) -} - -func LoadCreateSymbolicLink() error { - return procCreateSymbolicLinkW.Find() -} - -// Readlink returns the destination of the named symbolic link. -func Readlink(path string, buf []byte) (n int, err error) { - fd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING, - FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0) - if err != nil { - return -1, err - } - defer CloseHandle(fd) - - rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE) - var bytesReturned uint32 - err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil) - if err != nil { - return -1, err - } - - rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0])) - var s string - switch rdb.ReparseTag { - case IO_REPARSE_TAG_SYMLINK: - data := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) - p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) - s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) - case IO_REPARSE_TAG_MOUNT_POINT: - data := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) - p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) - s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) - default: - // the path is not a symlink or junction but another type of reparse - // point - return -1, syscall.ENOENT - } - n = copy(buf, []byte(s)) - - return n, nil -} diff --git a/vendor/github.com/andrewkroh/sys/windows/zsyscall_windows.go b/vendor/github.com/andrewkroh/sys/windows/zsyscall_windows.go deleted file mode 100644 index e130ddd0832..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/zsyscall_windows.go +++ /dev/null @@ -1,2177 +0,0 @@ -// MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT - -package windows - -import "unsafe" -import "syscall" - -var _ unsafe.Pointer - -var ( - modadvapi32 = syscall.NewLazyDLL("advapi32.dll") - modkernel32 = syscall.NewLazyDLL("kernel32.dll") - modshell32 = syscall.NewLazyDLL("shell32.dll") - modmswsock = syscall.NewLazyDLL("mswsock.dll") - modcrypt32 = syscall.NewLazyDLL("crypt32.dll") - modws2_32 = syscall.NewLazyDLL("ws2_32.dll") - moddnsapi = syscall.NewLazyDLL("dnsapi.dll") - modiphlpapi = syscall.NewLazyDLL("iphlpapi.dll") - modsecur32 = syscall.NewLazyDLL("secur32.dll") - modnetapi32 = syscall.NewLazyDLL("netapi32.dll") - moduserenv = syscall.NewLazyDLL("userenv.dll") - - procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") - procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") - procReportEventW = modadvapi32.NewProc("ReportEventW") - procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") - procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") - procCreateServiceW = modadvapi32.NewProc("CreateServiceW") - procOpenServiceW = modadvapi32.NewProc("OpenServiceW") - procDeleteService = modadvapi32.NewProc("DeleteService") - procStartServiceW = modadvapi32.NewProc("StartServiceW") - procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") - procControlService = modadvapi32.NewProc("ControlService") - procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") - procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") - procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") - procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") - procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") - procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") - procGetLastError = modkernel32.NewProc("GetLastError") - procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") - procFreeLibrary = modkernel32.NewProc("FreeLibrary") - procGetProcAddress = modkernel32.NewProc("GetProcAddress") - procGetVersion = modkernel32.NewProc("GetVersion") - procFormatMessageW = modkernel32.NewProc("FormatMessageW") - procExitProcess = modkernel32.NewProc("ExitProcess") - procCreateFileW = modkernel32.NewProc("CreateFileW") - procReadFile = modkernel32.NewProc("ReadFile") - procWriteFile = modkernel32.NewProc("WriteFile") - procSetFilePointer = modkernel32.NewProc("SetFilePointer") - procCloseHandle = modkernel32.NewProc("CloseHandle") - procGetStdHandle = modkernel32.NewProc("GetStdHandle") - procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") - procFindNextFileW = modkernel32.NewProc("FindNextFileW") - procFindClose = modkernel32.NewProc("FindClose") - procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") - procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") - procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") - procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") - procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") - procDeleteFileW = modkernel32.NewProc("DeleteFileW") - procMoveFileW = modkernel32.NewProc("MoveFileW") - procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") - procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") - procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") - procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") - procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") - procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") - procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") - procCancelIo = modkernel32.NewProc("CancelIo") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") - procCreateProcessW = modkernel32.NewProc("CreateProcessW") - procOpenProcess = modkernel32.NewProc("OpenProcess") - procTerminateProcess = modkernel32.NewProc("TerminateProcess") - procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") - procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") - procGetCurrentProcess = modkernel32.NewProc("GetCurrentProcess") - procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") - procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") - procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") - procGetTempPathW = modkernel32.NewProc("GetTempPathW") - procCreatePipe = modkernel32.NewProc("CreatePipe") - procGetFileType = modkernel32.NewProc("GetFileType") - procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") - procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") - procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") - procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") - procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") - procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetFileTime = modkernel32.NewProc("SetFileTime") - procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") - procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") - procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") - procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") - procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") - procLocalFree = modkernel32.NewProc("LocalFree") - procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") - procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") - procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") - procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") - procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") - procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") - procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") - procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") - procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") - procVirtualLock = modkernel32.NewProc("VirtualLock") - procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") - procTransmitFile = modmswsock.NewProc("TransmitFile") - procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") - procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") - procCertOpenStore = modcrypt32.NewProc("CertOpenStore") - procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") - procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") - procCertCloseStore = modcrypt32.NewProc("CertCloseStore") - procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") - procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") - procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") - procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") - procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") - procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") - procRegCloseKey = modadvapi32.NewProc("RegCloseKey") - procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") - procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") - procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") - procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") - procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") - procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") - procReadConsoleW = modkernel32.NewProc("ReadConsoleW") - procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") - procProcess32FirstW = modkernel32.NewProc("Process32FirstW") - procProcess32NextW = modkernel32.NewProc("Process32NextW") - procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") - procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") - procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") - procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") - procCreateEventW = modkernel32.NewProc("CreateEventW") - procSetEvent = modkernel32.NewProc("SetEvent") - procWSAStartup = modws2_32.NewProc("WSAStartup") - procWSACleanup = modws2_32.NewProc("WSACleanup") - procWSAIoctl = modws2_32.NewProc("WSAIoctl") - procsocket = modws2_32.NewProc("socket") - procsetsockopt = modws2_32.NewProc("setsockopt") - procgetsockopt = modws2_32.NewProc("getsockopt") - procbind = modws2_32.NewProc("bind") - procconnect = modws2_32.NewProc("connect") - procgetsockname = modws2_32.NewProc("getsockname") - procgetpeername = modws2_32.NewProc("getpeername") - proclisten = modws2_32.NewProc("listen") - procshutdown = modws2_32.NewProc("shutdown") - procclosesocket = modws2_32.NewProc("closesocket") - procAcceptEx = modmswsock.NewProc("AcceptEx") - procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") - procWSARecv = modws2_32.NewProc("WSARecv") - procWSASend = modws2_32.NewProc("WSASend") - procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") - procWSASendTo = modws2_32.NewProc("WSASendTo") - procgethostbyname = modws2_32.NewProc("gethostbyname") - procgetservbyname = modws2_32.NewProc("getservbyname") - procntohs = modws2_32.NewProc("ntohs") - procgetprotobyname = modws2_32.NewProc("getprotobyname") - procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") - procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") - procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") - procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") - procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") - procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") - procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") - procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") - procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") - procTranslateNameW = modsecur32.NewProc("TranslateNameW") - procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") - procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") - procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") - procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") - procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") - procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") - procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") - procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") - procGetLengthSid = modadvapi32.NewProc("GetLengthSid") - procCopySid = modadvapi32.NewProc("CopySid") - procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") - procFreeSid = modadvapi32.NewProc("FreeSid") - procEqualSid = modadvapi32.NewProc("EqualSid") - procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") - procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") - procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") -) - -func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DeregisterEventSource(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CloseServiceHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DeleteService(service Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetLastError() (lasterr error) { - r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) - if r0 != 0 { - lasterr = syscall.Errno(r0) - } - return -} - -func LoadLibrary(libname string) (handle Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(libname) - if err != nil { - return - } - return _LoadLibrary(_p0) -} - -func _LoadLibrary(libname *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FreeLibrary(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(procname) - if err != nil { - return - } - return _GetProcAddress(module, _p0) -} - -func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { - r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) - proc = uintptr(r0) - if proc == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetVersion() (ver uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) - ver = uint32(r0) - if ver == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { - var _p0 *uint16 - if len(buf) > 0 { - _p0 = &buf[0] - } - r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ExitProcess(exitcode uint32) { - syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) - return -} - -func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { - var _p0 *byte - if len(buf) > 0 { - _p0 = &buf[0] - } - r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { - r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) - newlowoffset = uint32(r0) - if newlowoffset == 0xffffffff { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetStdHandle(stdhandle int) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func findNextFile1(handle Handle, data *win32finddata1) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetCurrentDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { - r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func RemoveDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func MoveFile(from *uint16, to *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetComputerName(buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetEndOfFile(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetSystemTimeAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) - return -} - -func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) - rc = uint32(r0) - if rc == 0xffffffff { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CancelIoEx(s Handle, o *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { - var _p0 uint32 - if inheritHandles { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(da), uintptr(_p0), uintptr(pid)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func TerminateProcess(handle Handle, exitcode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetStartupInfo(startupInfo *StartupInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetCurrentProcess() (pseudoHandle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentProcess.Addr(), 0, 0, 0, 0) - pseudoHandle = Handle(r0) - if pseudoHandle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { - var _p0 uint32 - if bInheritHandle { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { - r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) - event = uint32(r0) - if event == 0xffffffff { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetFileType(filehandle Handle) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { - r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetEnvironmentStrings() (envs *uint16, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) - envs = (*uint16)(unsafe.Pointer(r0)) - if envs == nil { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FreeEnvironmentStrings(envs *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetFileAttributes(name *uint16) (attrs uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - attrs = uint32(r0) - if attrs == INVALID_FILE_ATTRIBUTES { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetFileAttributes(name *uint16, attrs uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) - cmd = (*uint16)(unsafe.Pointer(r0)) - return -} - -func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { - r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) - argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) - if argv == nil { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func LocalFree(hmem Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) - handle = Handle(r0) - if handle != 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FlushFileBuffers(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) - n = uint32(r0) - if n == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) - addr = uintptr(r0) - if addr == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func UnmapViewOfFile(addr uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FlushViewOfFile(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func VirtualLock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func VirtualUnlock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - var _p0 uint32 - if watchSubTree { - _p0 = 1 - } else { - _p0 = 0 - } - r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) - store = Handle(r0) - if store == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { - r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertCloseStore(store Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { - r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertFreeCertificateChain(ctx *CertChainContext) { - syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - return -} - -func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) - context = (*CertContext)(unsafe.Pointer(r0)) - if context == nil { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { - r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegCloseKey(key Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) - if r0 != 0 { - regerrno = syscall.Errno(r0) - } - return -} - -func getCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) - pid = uint32(r0) - return -} - -func GetConsoleMode(console Handle, mode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) - if r1&0xff == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) - if r1&0xff == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) - id = uint32(r0) - return -} - -func CreateEvent(eventAttrs *syscall.SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { - r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) - if r0 != 0 { - sockerr = syscall.Errno(r0) - } - return -} - -func WSACleanup() (err error) { - r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) - handle = Handle(r0) - if handle == InvalidHandle { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { - r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { - r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func listen(s Handle, backlog int32) (err error) { - r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func shutdown(s Handle, how int32) (err error) { - r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func Closesocket(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { - syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) - return -} - -func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) - if r1 == socket_error { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetHostByName(name string) (h *Hostent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - return _GetHostByName(_p0) -} - -func _GetHostByName(name *byte) (h *Hostent, err error) { - r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - h = (*Hostent)(unsafe.Pointer(r0)) - if h == nil { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetServByName(name string, proto string) (s *Servent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - var _p1 *byte - _p1, err = syscall.BytePtrFromString(proto) - if err != nil { - return - } - return _GetServByName(_p0, _p1) -} - -func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { - r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) - s = (*Servent)(unsafe.Pointer(r0)) - if s == nil { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func Ntohs(netshort uint16) (u uint16) { - r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) - u = uint16(r0) - return -} - -func GetProtoByName(name string) (p *Protoent, err error) { - var _p0 *byte - _p0, err = syscall.BytePtrFromString(name) - if err != nil { - return - } - return _GetProtoByName(_p0) -} - -func _GetProtoByName(name *byte) (p *Protoent, err error) { - r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) - p = (*Protoent)(unsafe.Pointer(r0)) - if p == nil { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - var _p0 *uint16 - _p0, status = syscall.UTF16PtrFromString(name) - if status != nil { - return - } - return _DnsQuery(_p0, qtype, options, extra, qrs, pr) -} - -func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) - if r0 != 0 { - status = syscall.Errno(r0) - } - return -} - -func DnsRecordListFree(rl *DNSRecord, freetype uint32) { - syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) - return -} - -func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { - r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) - same = r0 != 0 - return -} - -func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { - r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) - if r0 != 0 { - sockerr = syscall.Errno(r0) - } - return -} - -func FreeAddrInfoW(addrinfo *AddrinfoW) { - syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) - return -} - -func GetIfEntry(pIfRow *MibIfRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) - if r0 != 0 { - errcode = syscall.Errno(r0) - } - return -} - -func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { - r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) - n = int32(r0) - if n == -1 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) - if r1&0xff == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) - if r1&0xff == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { - r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { - r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func NetApiBufferFree(buf *byte) (neterr error) { - r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) - if r0 != 0 { - neterr = syscall.Errno(r0) - } - return -} - -func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - len = uint32(r0) - return -} - -func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FreeSid(sid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - if r1 != 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { - r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) - isEqual = r0 != 0 - return -} - -func OpenProcessToken(h Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(h), uintptr(access), uintptr(unsafe.Pointer(token))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(t), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} diff --git a/vendor/github.com/andrewkroh/sys/windows/ztypes_windows.go b/vendor/github.com/andrewkroh/sys/windows/ztypes_windows.go deleted file mode 100644 index ea600f6a976..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/ztypes_windows.go +++ /dev/null @@ -1,1137 +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 windows - -import "syscall" - -const ( - // Windows errors. - ERROR_FILE_NOT_FOUND syscall.Errno = 2 - ERROR_PATH_NOT_FOUND syscall.Errno = 3 - ERROR_ACCESS_DENIED syscall.Errno = 5 - ERROR_NO_MORE_FILES syscall.Errno = 18 - ERROR_HANDLE_EOF syscall.Errno = 38 - ERROR_NETNAME_DELETED syscall.Errno = 64 - ERROR_FILE_EXISTS syscall.Errno = 80 - ERROR_BROKEN_PIPE syscall.Errno = 109 - ERROR_BUFFER_OVERFLOW syscall.Errno = 111 - ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122 - ERROR_MOD_NOT_FOUND syscall.Errno = 126 - ERROR_PROC_NOT_FOUND syscall.Errno = 127 - ERROR_ALREADY_EXISTS syscall.Errno = 183 - ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203 - ERROR_MORE_DATA syscall.Errno = 234 - ERROR_OPERATION_ABORTED syscall.Errno = 995 - ERROR_IO_PENDING syscall.Errno = 997 - ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066 - ERROR_NOT_FOUND syscall.Errno = 1168 - ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314 - WSAEACCES syscall.Errno = 10013 - WSAECONNRESET syscall.Errno = 10054 -) - -const ( - // Invented values to support what package os expects. - O_RDONLY = 0x00000 - O_WRONLY = 0x00001 - O_RDWR = 0x00002 - O_CREAT = 0x00040 - O_EXCL = 0x00080 - O_NOCTTY = 0x00100 - O_TRUNC = 0x00200 - O_NONBLOCK = 0x00800 - O_APPEND = 0x00400 - O_SYNC = 0x01000 - O_ASYNC = 0x02000 - O_CLOEXEC = 0x80000 -) - -const ( - // More invented values for signals - SIGHUP = Signal(0x1) - SIGINT = Signal(0x2) - SIGQUIT = Signal(0x3) - SIGILL = Signal(0x4) - SIGTRAP = Signal(0x5) - SIGABRT = Signal(0x6) - SIGBUS = Signal(0x7) - SIGFPE = Signal(0x8) - SIGKILL = Signal(0x9) - SIGSEGV = Signal(0xb) - SIGPIPE = Signal(0xd) - SIGALRM = Signal(0xe) - SIGTERM = Signal(0xf) -) - -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", -} - -const ( - GENERIC_READ = 0x80000000 - GENERIC_WRITE = 0x40000000 - GENERIC_EXECUTE = 0x20000000 - GENERIC_ALL = 0x10000000 - - FILE_LIST_DIRECTORY = 0x00000001 - FILE_APPEND_DATA = 0x00000004 - FILE_WRITE_ATTRIBUTES = 0x00000100 - - FILE_SHARE_READ = 0x00000001 - FILE_SHARE_WRITE = 0x00000002 - FILE_SHARE_DELETE = 0x00000004 - FILE_ATTRIBUTE_READONLY = 0x00000001 - FILE_ATTRIBUTE_HIDDEN = 0x00000002 - FILE_ATTRIBUTE_SYSTEM = 0x00000004 - FILE_ATTRIBUTE_DIRECTORY = 0x00000010 - FILE_ATTRIBUTE_ARCHIVE = 0x00000020 - FILE_ATTRIBUTE_NORMAL = 0x00000080 - FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 - - INVALID_FILE_ATTRIBUTES = 0xffffffff - - CREATE_NEW = 1 - CREATE_ALWAYS = 2 - OPEN_EXISTING = 3 - OPEN_ALWAYS = 4 - TRUNCATE_EXISTING = 5 - - FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 - FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 - FILE_FLAG_OVERLAPPED = 0x40000000 - - HANDLE_FLAG_INHERIT = 0x00000001 - STARTF_USESTDHANDLES = 0x00000100 - STARTF_USESHOWWINDOW = 0x00000001 - DUPLICATE_CLOSE_SOURCE = 0x00000001 - DUPLICATE_SAME_ACCESS = 0x00000002 - - STD_INPUT_HANDLE = -10 - STD_OUTPUT_HANDLE = -11 - STD_ERROR_HANDLE = -12 - - FILE_BEGIN = 0 - FILE_CURRENT = 1 - FILE_END = 2 - - LANG_ENGLISH = 0x09 - SUBLANG_ENGLISH_US = 0x01 - - FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 - FORMAT_MESSAGE_IGNORE_INSERTS = 512 - FORMAT_MESSAGE_FROM_STRING = 1024 - FORMAT_MESSAGE_FROM_HMODULE = 2048 - FORMAT_MESSAGE_FROM_SYSTEM = 4096 - FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 - FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 - - MAX_PATH = 260 - MAX_LONG_PATH = 32768 - - MAX_COMPUTERNAME_LENGTH = 15 - - TIME_ZONE_ID_UNKNOWN = 0 - TIME_ZONE_ID_STANDARD = 1 - - TIME_ZONE_ID_DAYLIGHT = 2 - IGNORE = 0 - INFINITE = 0xffffffff - - WAIT_TIMEOUT = 258 - WAIT_ABANDONED = 0x00000080 - WAIT_OBJECT_0 = 0x00000000 - WAIT_FAILED = 0xFFFFFFFF - - CREATE_NEW_PROCESS_GROUP = 0x00000200 - CREATE_UNICODE_ENVIRONMENT = 0x00000400 - - PROCESS_TERMINATE = 1 - PROCESS_QUERY_INFORMATION = 0x00000400 - SYNCHRONIZE = 0x00100000 - - PAGE_READONLY = 0x02 - PAGE_READWRITE = 0x04 - PAGE_WRITECOPY = 0x08 - PAGE_EXECUTE_READ = 0x20 - PAGE_EXECUTE_READWRITE = 0x40 - PAGE_EXECUTE_WRITECOPY = 0x80 - - FILE_MAP_COPY = 0x01 - FILE_MAP_WRITE = 0x02 - FILE_MAP_READ = 0x04 - FILE_MAP_EXECUTE = 0x20 - - CTRL_C_EVENT = 0 - CTRL_BREAK_EVENT = 1 - - // Windows reserves errors >= 1<<29 for application use. - APPLICATION_ERROR = 1 << 29 -) - -const ( - // flags for CreateToolhelp32Snapshot - TH32CS_SNAPHEAPLIST = 0x01 - TH32CS_SNAPPROCESS = 0x02 - TH32CS_SNAPTHREAD = 0x04 - TH32CS_SNAPMODULE = 0x08 - TH32CS_SNAPMODULE32 = 0x10 - TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD - TH32CS_INHERIT = 0x80000000 -) - -const ( - // filters for ReadDirectoryChangesW - FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 - FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 - FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 - FILE_NOTIFY_CHANGE_SIZE = 0x008 - FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010 - FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020 - FILE_NOTIFY_CHANGE_CREATION = 0x040 - FILE_NOTIFY_CHANGE_SECURITY = 0x100 -) - -const ( - // do not reorder - FILE_ACTION_ADDED = iota + 1 - FILE_ACTION_REMOVED - FILE_ACTION_MODIFIED - FILE_ACTION_RENAMED_OLD_NAME - FILE_ACTION_RENAMED_NEW_NAME -) - -const ( - // wincrypt.h - PROV_RSA_FULL = 1 - PROV_RSA_SIG = 2 - PROV_DSS = 3 - PROV_FORTEZZA = 4 - PROV_MS_EXCHANGE = 5 - PROV_SSL = 6 - PROV_RSA_SCHANNEL = 12 - PROV_DSS_DH = 13 - PROV_EC_ECDSA_SIG = 14 - PROV_EC_ECNRA_SIG = 15 - PROV_EC_ECDSA_FULL = 16 - PROV_EC_ECNRA_FULL = 17 - PROV_DH_SCHANNEL = 18 - PROV_SPYRUS_LYNKS = 20 - PROV_RNG = 21 - PROV_INTEL_SEC = 22 - PROV_REPLACE_OWF = 23 - PROV_RSA_AES = 24 - CRYPT_VERIFYCONTEXT = 0xF0000000 - CRYPT_NEWKEYSET = 0x00000008 - CRYPT_DELETEKEYSET = 0x00000010 - CRYPT_MACHINE_KEYSET = 0x00000020 - CRYPT_SILENT = 0x00000040 - CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080 - - USAGE_MATCH_TYPE_AND = 0 - USAGE_MATCH_TYPE_OR = 1 - - X509_ASN_ENCODING = 0x00000001 - PKCS_7_ASN_ENCODING = 0x00010000 - - CERT_STORE_PROV_MEMORY = 2 - - CERT_STORE_ADD_ALWAYS = 4 - - CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 - - CERT_TRUST_NO_ERROR = 0x00000000 - CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 - CERT_TRUST_IS_REVOKED = 0x00000004 - CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 - CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 - CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 - CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 - CERT_TRUST_IS_CYCLIC = 0x00000080 - CERT_TRUST_INVALID_EXTENSION = 0x00000100 - CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 - CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 - CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 - CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 - CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 - CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 - CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 - CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 - CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 - CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000 - CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000 - - CERT_CHAIN_POLICY_BASE = 1 - CERT_CHAIN_POLICY_AUTHENTICODE = 2 - CERT_CHAIN_POLICY_AUTHENTICODE_TS = 3 - CERT_CHAIN_POLICY_SSL = 4 - CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5 - CERT_CHAIN_POLICY_NT_AUTH = 6 - CERT_CHAIN_POLICY_MICROSOFT_ROOT = 7 - CERT_CHAIN_POLICY_EV = 8 - - CERT_E_EXPIRED = 0x800B0101 - CERT_E_ROLE = 0x800B0103 - CERT_E_PURPOSE = 0x800B0106 - CERT_E_UNTRUSTEDROOT = 0x800B0109 - CERT_E_CN_NO_MATCH = 0x800B010F - - AUTHTYPE_CLIENT = 1 - AUTHTYPE_SERVER = 2 -) - -var ( - OID_PKIX_KP_SERVER_AUTH = []byte("1.3.6.1.5.5.7.3.1\x00") - OID_SERVER_GATED_CRYPTO = []byte("1.3.6.1.4.1.311.10.3.3\x00") - OID_SGC_NETSCAPE = []byte("2.16.840.1.113730.4.1\x00") -) - -// Invented values to support what package os expects. -type Timeval struct { - Sec int32 - Usec int32 -} - -func (tv *Timeval) Nanoseconds() int64 { - return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3 -} - -func NsecToTimeval(nsec int64) (tv Timeval) { - tv.Sec = int32(nsec / 1e9) - tv.Usec = int32(nsec % 1e9 / 1e3) - return -} - -type SecurityAttributes struct { - Length uint32 - SecurityDescriptor uintptr - InheritHandle uint32 -} - -type Overlapped struct { - Internal uintptr - InternalHigh uintptr - Offset uint32 - OffsetHigh uint32 - HEvent Handle -} - -type FileNotifyInformation struct { - NextEntryOffset uint32 - Action uint32 - FileNameLength uint32 - FileName uint16 -} - -type Filetime struct { - LowDateTime uint32 - HighDateTime uint32 -} - -// Nanoseconds returns Filetime ft in nanoseconds -// since Epoch (00:00:00 UTC, January 1, 1970). -func (ft *Filetime) Nanoseconds() int64 { - // 100-nanosecond intervals since January 1, 1601 - nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime) - // change starting time to the Epoch (00:00:00 UTC, January 1, 1970) - nsec -= 116444736000000000 - // convert into nanoseconds - nsec *= 100 - return nsec -} - -func NsecToFiletime(nsec int64) (ft Filetime) { - // convert into 100-nanosecond - nsec /= 100 - // change starting time to January 1, 1601 - nsec += 116444736000000000 - // split into high / low - ft.LowDateTime = uint32(nsec & 0xffffffff) - ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff) - return ft -} - -type Win32finddata struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 - Reserved0 uint32 - Reserved1 uint32 - FileName [MAX_PATH - 1]uint16 - AlternateFileName [13]uint16 -} - -// This is the actual system call structure. -// Win32finddata is what we committed to in Go 1. -type win32finddata1 struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 - Reserved0 uint32 - Reserved1 uint32 - FileName [MAX_PATH]uint16 - AlternateFileName [14]uint16 -} - -func copyFindData(dst *Win32finddata, src *win32finddata1) { - dst.FileAttributes = src.FileAttributes - dst.CreationTime = src.CreationTime - dst.LastAccessTime = src.LastAccessTime - dst.LastWriteTime = src.LastWriteTime - dst.FileSizeHigh = src.FileSizeHigh - dst.FileSizeLow = src.FileSizeLow - dst.Reserved0 = src.Reserved0 - dst.Reserved1 = src.Reserved1 - - // The src is 1 element bigger than dst, but it must be NUL. - copy(dst.FileName[:], src.FileName[:]) - copy(dst.AlternateFileName[:], src.AlternateFileName[:]) -} - -type ByHandleFileInformation struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - VolumeSerialNumber uint32 - FileSizeHigh uint32 - FileSizeLow uint32 - NumberOfLinks uint32 - FileIndexHigh uint32 - FileIndexLow uint32 -} - -const ( - GetFileExInfoStandard = 0 - GetFileExMaxInfoLevel = 1 -) - -type Win32FileAttributeData struct { - FileAttributes uint32 - CreationTime Filetime - LastAccessTime Filetime - LastWriteTime Filetime - FileSizeHigh uint32 - FileSizeLow uint32 -} - -// ShowWindow constants -const ( - // winuser.h - SW_HIDE = 0 - SW_NORMAL = 1 - SW_SHOWNORMAL = 1 - SW_SHOWMINIMIZED = 2 - SW_SHOWMAXIMIZED = 3 - SW_MAXIMIZE = 3 - SW_SHOWNOACTIVATE = 4 - SW_SHOW = 5 - SW_MINIMIZE = 6 - SW_SHOWMINNOACTIVE = 7 - SW_SHOWNA = 8 - SW_RESTORE = 9 - SW_SHOWDEFAULT = 10 - SW_FORCEMINIMIZE = 11 -) - -type StartupInfo struct { - Cb uint32 - _ *uint16 - Desktop *uint16 - Title *uint16 - X uint32 - Y uint32 - XSize uint32 - YSize uint32 - XCountChars uint32 - YCountChars uint32 - FillAttribute uint32 - Flags uint32 - ShowWindow uint16 - _ uint16 - _ *byte - StdInput Handle - StdOutput Handle - StdErr Handle -} - -type ProcessInformation struct { - Process Handle - Thread Handle - ProcessId uint32 - ThreadId uint32 -} - -type ProcessEntry32 struct { - Size uint32 - Usage uint32 - ProcessID uint32 - DefaultHeapID uintptr - ModuleID uint32 - Threads uint32 - ParentProcessID uint32 - PriClassBase int32 - Flags uint32 - ExeFile [MAX_PATH]uint16 -} - -type Systemtime struct { - Year uint16 - Month uint16 - DayOfWeek uint16 - Day uint16 - Hour uint16 - Minute uint16 - Second uint16 - Milliseconds uint16 -} - -type Timezoneinformation struct { - Bias int32 - StandardName [32]uint16 - StandardDate Systemtime - StandardBias int32 - DaylightName [32]uint16 - DaylightDate Systemtime - DaylightBias int32 -} - -// Socket related. - -const ( - AF_UNSPEC = 0 - AF_UNIX = 1 - AF_INET = 2 - AF_INET6 = 23 - AF_NETBIOS = 17 - - SOCK_STREAM = 1 - SOCK_DGRAM = 2 - SOCK_RAW = 3 - SOCK_SEQPACKET = 5 - - IPPROTO_IP = 0 - IPPROTO_IPV6 = 0x29 - IPPROTO_TCP = 6 - IPPROTO_UDP = 17 - - SOL_SOCKET = 0xffff - SO_REUSEADDR = 4 - SO_KEEPALIVE = 8 - SO_DONTROUTE = 16 - SO_BROADCAST = 32 - SO_LINGER = 128 - SO_RCVBUF = 0x1002 - SO_SNDBUF = 0x1001 - SO_UPDATE_ACCEPT_CONTEXT = 0x700b - SO_UPDATE_CONNECT_CONTEXT = 0x7010 - - IOC_OUT = 0x40000000 - IOC_IN = 0x80000000 - IOC_VENDOR = 0x18000000 - IOC_INOUT = IOC_IN | IOC_OUT - IOC_WS2 = 0x08000000 - SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 - SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 - SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 - - // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 - - IP_TOS = 0x3 - IP_TTL = 0x4 - IP_MULTICAST_IF = 0x9 - IP_MULTICAST_TTL = 0xa - IP_MULTICAST_LOOP = 0xb - IP_ADD_MEMBERSHIP = 0xc - IP_DROP_MEMBERSHIP = 0xd - - IPV6_V6ONLY = 0x1b - IPV6_UNICAST_HOPS = 0x4 - IPV6_MULTICAST_IF = 0x9 - IPV6_MULTICAST_HOPS = 0xa - IPV6_MULTICAST_LOOP = 0xb - IPV6_JOIN_GROUP = 0xc - IPV6_LEAVE_GROUP = 0xd - - SOMAXCONN = 0x7fffffff - - TCP_NODELAY = 1 - - SHUT_RD = 0 - SHUT_WR = 1 - SHUT_RDWR = 2 - - WSADESCRIPTION_LEN = 256 - WSASYS_STATUS_LEN = 128 -) - -type WSABuf struct { - Len uint32 - Buf *byte -} - -// Invented values to support what package os expects. -const ( - S_IFMT = 0x1f000 - 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_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -const ( - FILE_TYPE_CHAR = 0x0002 - FILE_TYPE_DISK = 0x0001 - FILE_TYPE_PIPE = 0x0003 - FILE_TYPE_REMOTE = 0x8000 - FILE_TYPE_UNKNOWN = 0x0000 -) - -type Hostent struct { - Name *byte - Aliases **byte - AddrType uint16 - Length uint16 - AddrList **byte -} - -type Protoent struct { - Name *byte - Aliases **byte - Proto uint16 -} - -const ( - DNS_TYPE_A = 0x0001 - DNS_TYPE_NS = 0x0002 - DNS_TYPE_MD = 0x0003 - DNS_TYPE_MF = 0x0004 - DNS_TYPE_CNAME = 0x0005 - DNS_TYPE_SOA = 0x0006 - DNS_TYPE_MB = 0x0007 - DNS_TYPE_MG = 0x0008 - DNS_TYPE_MR = 0x0009 - DNS_TYPE_NULL = 0x000a - DNS_TYPE_WKS = 0x000b - DNS_TYPE_PTR = 0x000c - DNS_TYPE_HINFO = 0x000d - DNS_TYPE_MINFO = 0x000e - DNS_TYPE_MX = 0x000f - DNS_TYPE_TEXT = 0x0010 - DNS_TYPE_RP = 0x0011 - DNS_TYPE_AFSDB = 0x0012 - DNS_TYPE_X25 = 0x0013 - DNS_TYPE_ISDN = 0x0014 - DNS_TYPE_RT = 0x0015 - DNS_TYPE_NSAP = 0x0016 - DNS_TYPE_NSAPPTR = 0x0017 - DNS_TYPE_SIG = 0x0018 - DNS_TYPE_KEY = 0x0019 - DNS_TYPE_PX = 0x001a - DNS_TYPE_GPOS = 0x001b - DNS_TYPE_AAAA = 0x001c - DNS_TYPE_LOC = 0x001d - DNS_TYPE_NXT = 0x001e - DNS_TYPE_EID = 0x001f - DNS_TYPE_NIMLOC = 0x0020 - DNS_TYPE_SRV = 0x0021 - DNS_TYPE_ATMA = 0x0022 - DNS_TYPE_NAPTR = 0x0023 - DNS_TYPE_KX = 0x0024 - DNS_TYPE_CERT = 0x0025 - DNS_TYPE_A6 = 0x0026 - DNS_TYPE_DNAME = 0x0027 - DNS_TYPE_SINK = 0x0028 - DNS_TYPE_OPT = 0x0029 - DNS_TYPE_DS = 0x002B - DNS_TYPE_RRSIG = 0x002E - DNS_TYPE_NSEC = 0x002F - DNS_TYPE_DNSKEY = 0x0030 - DNS_TYPE_DHCID = 0x0031 - DNS_TYPE_UINFO = 0x0064 - DNS_TYPE_UID = 0x0065 - DNS_TYPE_GID = 0x0066 - DNS_TYPE_UNSPEC = 0x0067 - DNS_TYPE_ADDRS = 0x00f8 - DNS_TYPE_TKEY = 0x00f9 - DNS_TYPE_TSIG = 0x00fa - DNS_TYPE_IXFR = 0x00fb - DNS_TYPE_AXFR = 0x00fc - DNS_TYPE_MAILB = 0x00fd - DNS_TYPE_MAILA = 0x00fe - DNS_TYPE_ALL = 0x00ff - DNS_TYPE_ANY = 0x00ff - DNS_TYPE_WINS = 0xff01 - DNS_TYPE_WINSR = 0xff02 - DNS_TYPE_NBSTAT = 0xff01 -) - -const ( - DNS_INFO_NO_RECORDS = 0x251D -) - -const ( - // flags inside DNSRecord.Dw - DnsSectionQuestion = 0x0000 - DnsSectionAnswer = 0x0001 - DnsSectionAuthority = 0x0002 - DnsSectionAdditional = 0x0003 -) - -type DNSSRVData struct { - Target *uint16 - Priority uint16 - Weight uint16 - Port uint16 - Pad uint16 -} - -type DNSPTRData struct { - Host *uint16 -} - -type DNSMXData struct { - NameExchange *uint16 - Preference uint16 - Pad uint16 -} - -type DNSTXTData struct { - StringCount uint16 - StringArray [1]*uint16 -} - -type DNSRecord struct { - Next *DNSRecord - Name *uint16 - Type uint16 - Length uint16 - Dw uint32 - Ttl uint32 - Reserved uint32 - Data [40]byte -} - -const ( - TF_DISCONNECT = 1 - TF_REUSE_SOCKET = 2 - TF_WRITE_BEHIND = 4 - TF_USE_DEFAULT_WORKER = 0 - TF_USE_SYSTEM_THREAD = 16 - TF_USE_KERNEL_APC = 32 -) - -type TransmitFileBuffers struct { - Head uintptr - HeadLength uint32 - Tail uintptr - TailLength uint32 -} - -const ( - IFF_UP = 1 - IFF_BROADCAST = 2 - IFF_LOOPBACK = 4 - IFF_POINTTOPOINT = 8 - IFF_MULTICAST = 16 -) - -const SIO_GET_INTERFACE_LIST = 0x4004747F - -// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old. -// will be fixed to change variable type as suitable. - -type SockaddrGen [24]byte - -type InterfaceInfo struct { - Flags uint32 - Address SockaddrGen - BroadcastAddress SockaddrGen - Netmask SockaddrGen -} - -type IpAddressString struct { - String [16]byte -} - -type IpMaskString IpAddressString - -type IpAddrString struct { - Next *IpAddrString - IpAddress IpAddressString - IpMask IpMaskString - Context uint32 -} - -const MAX_ADAPTER_NAME_LENGTH = 256 -const MAX_ADAPTER_DESCRIPTION_LENGTH = 128 -const MAX_ADAPTER_ADDRESS_LENGTH = 8 - -type IpAdapterInfo struct { - Next *IpAdapterInfo - ComboIndex uint32 - AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte - Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte - AddressLength uint32 - Address [MAX_ADAPTER_ADDRESS_LENGTH]byte - Index uint32 - Type uint32 - DhcpEnabled uint32 - CurrentIpAddress *IpAddrString - IpAddressList IpAddrString - GatewayList IpAddrString - DhcpServer IpAddrString - HaveWins bool - PrimaryWinsServer IpAddrString - SecondaryWinsServer IpAddrString - LeaseObtained int64 - LeaseExpires int64 -} - -const MAXLEN_PHYSADDR = 8 -const MAX_INTERFACE_NAME_LEN = 256 -const MAXLEN_IFDESCR = 256 - -type MibIfRow struct { - Name [MAX_INTERFACE_NAME_LEN]uint16 - Index uint32 - Type uint32 - Mtu uint32 - Speed uint32 - PhysAddrLen uint32 - PhysAddr [MAXLEN_PHYSADDR]byte - AdminStatus uint32 - OperStatus uint32 - LastChange uint32 - InOctets uint32 - InUcastPkts uint32 - InNUcastPkts uint32 - InDiscards uint32 - InErrors uint32 - InUnknownProtos uint32 - OutOctets uint32 - OutUcastPkts uint32 - OutNUcastPkts uint32 - OutDiscards uint32 - OutErrors uint32 - OutQLen uint32 - DescrLen uint32 - Descr [MAXLEN_IFDESCR]byte -} - -type CertContext struct { - EncodingType uint32 - EncodedCert *byte - Length uint32 - CertInfo uintptr - Store Handle -} - -type CertChainContext struct { - Size uint32 - TrustStatus CertTrustStatus - ChainCount uint32 - Chains **CertSimpleChain - LowerQualityChainCount uint32 - LowerQualityChains **CertChainContext - HasRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 -} - -type CertSimpleChain struct { - Size uint32 - TrustStatus CertTrustStatus - NumElements uint32 - Elements **CertChainElement - TrustListInfo uintptr - HasRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 -} - -type CertChainElement struct { - Size uint32 - CertContext *CertContext - TrustStatus CertTrustStatus - RevocationInfo *CertRevocationInfo - IssuanceUsage *CertEnhKeyUsage - ApplicationUsage *CertEnhKeyUsage - ExtendedErrorInfo *uint16 -} - -type CertRevocationInfo struct { - Size uint32 - RevocationResult uint32 - RevocationOid *byte - OidSpecificInfo uintptr - HasFreshnessTime uint32 - FreshnessTime uint32 - CrlInfo uintptr // *CertRevocationCrlInfo -} - -type CertTrustStatus struct { - ErrorStatus uint32 - InfoStatus uint32 -} - -type CertUsageMatch struct { - Type uint32 - Usage CertEnhKeyUsage -} - -type CertEnhKeyUsage struct { - Length uint32 - UsageIdentifiers **byte -} - -type CertChainPara struct { - Size uint32 - RequestedUsage CertUsageMatch - RequstedIssuancePolicy CertUsageMatch - URLRetrievalTimeout uint32 - CheckRevocationFreshnessTime uint32 - RevocationFreshnessTime uint32 - CacheResync *Filetime -} - -type CertChainPolicyPara struct { - Size uint32 - Flags uint32 - ExtraPolicyPara uintptr -} - -type SSLExtraCertChainPolicyPara struct { - Size uint32 - AuthType uint32 - Checks uint32 - ServerName *uint16 -} - -type CertChainPolicyStatus struct { - Size uint32 - Error uint32 - ChainIndex uint32 - ElementIndex uint32 - ExtraPolicyStatus uintptr -} - -const ( - // do not reorder - HKEY_CLASSES_ROOT = 0x80000000 + iota - HKEY_CURRENT_USER - HKEY_LOCAL_MACHINE - HKEY_USERS - HKEY_PERFORMANCE_DATA - HKEY_CURRENT_CONFIG - HKEY_DYN_DATA - - KEY_QUERY_VALUE = 1 - KEY_SET_VALUE = 2 - KEY_CREATE_SUB_KEY = 4 - KEY_ENUMERATE_SUB_KEYS = 8 - KEY_NOTIFY = 16 - KEY_CREATE_LINK = 32 - KEY_WRITE = 0x20006 - KEY_EXECUTE = 0x20019 - KEY_READ = 0x20019 - KEY_WOW64_64KEY = 0x0100 - KEY_WOW64_32KEY = 0x0200 - KEY_ALL_ACCESS = 0xf003f -) - -const ( - // do not reorder - REG_NONE = iota - REG_SZ - REG_EXPAND_SZ - REG_BINARY - REG_DWORD_LITTLE_ENDIAN - REG_DWORD_BIG_ENDIAN - REG_LINK - REG_MULTI_SZ - REG_RESOURCE_LIST - REG_FULL_RESOURCE_DESCRIPTOR - REG_RESOURCE_REQUIREMENTS_LIST - REG_QWORD_LITTLE_ENDIAN - REG_DWORD = REG_DWORD_LITTLE_ENDIAN - REG_QWORD = REG_QWORD_LITTLE_ENDIAN -) - -type AddrinfoW struct { - Flags int32 - Family int32 - Socktype int32 - Protocol int32 - Addrlen uintptr - Canonname *uint16 - Addr uintptr - Next *AddrinfoW -} - -const ( - AI_PASSIVE = 1 - AI_CANONNAME = 2 - AI_NUMERICHOST = 4 -) - -type GUID struct { - Data1 uint32 - Data2 uint16 - Data3 uint16 - Data4 [8]byte -} - -var WSAID_CONNECTEX = GUID{ - 0x25a207b9, - 0xddf3, - 0x4660, - [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, -} - -const ( - FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 - FILE_SKIP_SET_EVENT_ON_HANDLE = 2 -) - -const ( - WSAPROTOCOL_LEN = 255 - MAX_PROTOCOL_CHAIN = 7 - BASE_PROTOCOL = 1 - LAYERED_PROTOCOL = 0 - - XP1_CONNECTIONLESS = 0x00000001 - XP1_GUARANTEED_DELIVERY = 0x00000002 - XP1_GUARANTEED_ORDER = 0x00000004 - XP1_MESSAGE_ORIENTED = 0x00000008 - XP1_PSEUDO_STREAM = 0x00000010 - XP1_GRACEFUL_CLOSE = 0x00000020 - XP1_EXPEDITED_DATA = 0x00000040 - XP1_CONNECT_DATA = 0x00000080 - XP1_DISCONNECT_DATA = 0x00000100 - XP1_SUPPORT_BROADCAST = 0x00000200 - XP1_SUPPORT_MULTIPOINT = 0x00000400 - XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800 - XP1_MULTIPOINT_DATA_PLANE = 0x00001000 - XP1_QOS_SUPPORTED = 0x00002000 - XP1_UNI_SEND = 0x00008000 - XP1_UNI_RECV = 0x00010000 - XP1_IFS_HANDLES = 0x00020000 - XP1_PARTIAL_MESSAGE = 0x00040000 - XP1_SAN_SUPPORT_SDP = 0x00080000 - - PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001 - PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002 - PFL_HIDDEN = 0x00000004 - PFL_MATCHES_PROTOCOL_ZERO = 0x00000008 - PFL_NETWORKDIRECT_PROVIDER = 0x00000010 -) - -type WSAProtocolInfo struct { - ServiceFlags1 uint32 - ServiceFlags2 uint32 - ServiceFlags3 uint32 - ServiceFlags4 uint32 - ProviderFlags uint32 - ProviderId GUID - CatalogEntryId uint32 - ProtocolChain WSAProtocolChain - Version int32 - AddressFamily int32 - MaxSockAddr int32 - MinSockAddr int32 - SocketType int32 - Protocol int32 - ProtocolMaxOffset int32 - NetworkByteOrder int32 - SecurityScheme int32 - MessageSize uint32 - ProviderReserved uint32 - ProtocolName [WSAPROTOCOL_LEN + 1]uint16 -} - -type WSAProtocolChain struct { - ChainLen int32 - ChainEntries [MAX_PROTOCOL_CHAIN]uint32 -} - -type TCPKeepalive struct { - OnOff uint32 - Time uint32 - Interval uint32 -} - -type symbolicLinkReparseBuffer struct { - SubstituteNameOffset uint16 - SubstituteNameLength uint16 - PrintNameOffset uint16 - PrintNameLength uint16 - Flags uint32 - PathBuffer [1]uint16 -} - -type mountPointReparseBuffer struct { - SubstituteNameOffset uint16 - SubstituteNameLength uint16 - PrintNameOffset uint16 - PrintNameLength uint16 - PathBuffer [1]uint16 -} - -type reparseDataBuffer struct { - ReparseTag uint32 - ReparseDataLength uint16 - Reserved uint16 - - // GenericReparseBuffer - reparseBuffer byte -} - -const ( - FSCTL_GET_REPARSE_POINT = 0x900A8 - MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 - IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 - IO_REPARSE_TAG_SYMLINK = 0xA000000C - SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 -) - -const ( - ComputerNameNetBIOS = 0 - ComputerNameDnsHostname = 1 - ComputerNameDnsDomain = 2 - ComputerNameDnsFullyQualified = 3 - ComputerNamePhysicalNetBIOS = 4 - ComputerNamePhysicalDnsHostname = 5 - ComputerNamePhysicalDnsDomain = 6 - ComputerNamePhysicalDnsFullyQualified = 7 - ComputerNameMax = 8 -) diff --git a/vendor/github.com/andrewkroh/sys/windows/ztypes_windows_386.go b/vendor/github.com/andrewkroh/sys/windows/ztypes_windows_386.go deleted file mode 100644 index 10f33be0b74..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/ztypes_windows_386.go +++ /dev/null @@ -1,22 +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 windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte -} - -type Servent struct { - Name *byte - Aliases **byte - Port uint16 - Proto *byte -} diff --git a/vendor/github.com/andrewkroh/sys/windows/ztypes_windows_amd64.go b/vendor/github.com/andrewkroh/sys/windows/ztypes_windows_amd64.go deleted file mode 100644 index 3f272c24996..00000000000 --- a/vendor/github.com/andrewkroh/sys/windows/ztypes_windows_amd64.go +++ /dev/null @@ -1,22 +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 windows - -type WSAData struct { - Version uint16 - HighVersion uint16 - MaxSockets uint16 - MaxUdpDg uint16 - VendorInfo *byte - Description [WSADESCRIPTION_LEN + 1]byte - SystemStatus [WSASYS_STATUS_LEN + 1]byte -} - -type Servent struct { - Name *byte - Aliases **byte - Proto *byte - Port uint16 -} diff --git a/vendor/github.com/armon/go-socks5/request.go b/vendor/github.com/armon/go-socks5/request.go index 7e713f520e9..b615fcbede4 100644 --- a/vendor/github.com/armon/go-socks5/request.go +++ b/vendor/github.com/armon/go-socks5/request.go @@ -4,7 +4,10 @@ import ( "fmt" "io" "net" + "strconv" "strings" + + "golang.org/x/net/context" ) const ( @@ -34,7 +37,7 @@ var ( // AddressRewriter is used to rewrite a destination transparently type AddressRewriter interface { - Rewrite(request *Request) *AddrSpec + Rewrite(ctx context.Context, request *Request) (context.Context, *AddrSpec) } // AddrSpec is used to return the target AddrSpec @@ -52,6 +55,15 @@ func (a *AddrSpec) String() string { return fmt.Sprintf("%s:%d", a.IP, a.Port) } +// Address returns a string suitable to dial; prefer returning IP-based +// address, fallback to FQDN +func (a AddrSpec) Address() string { + if 0 != len(a.IP) { + return net.JoinHostPort(a.IP.String(), strconv.Itoa(a.Port)) + } + return net.JoinHostPort(a.FQDN, strconv.Itoa(a.Port)) +} + // A Request represents request received by a server type Request struct { // Protocol version @@ -105,33 +117,36 @@ func NewRequest(bufConn io.Reader) (*Request, error) { // handleRequest is used for request processing after authentication func (s *Server) handleRequest(req *Request, conn conn) error { + ctx := context.Background() + // Resolve the address if we have a FQDN dest := req.DestAddr if dest.FQDN != "" { - addr, err := s.config.Resolver.Resolve(dest.FQDN) + ctx_, addr, err := s.config.Resolver.Resolve(ctx, dest.FQDN) if err != nil { if err := sendReply(conn, hostUnreachable, nil); err != nil { return fmt.Errorf("Failed to send reply: %v", err) } return fmt.Errorf("Failed to resolve destination '%v': %v", dest.FQDN, err) } + ctx = ctx_ dest.IP = addr } // Apply any address rewrites req.realDestAddr = req.DestAddr if s.config.Rewriter != nil { - req.realDestAddr = s.config.Rewriter.Rewrite(req) + ctx, req.realDestAddr = s.config.Rewriter.Rewrite(ctx, req) } // Switch on the command switch req.Command { case ConnectCommand: - return s.handleConnect(conn, req) + return s.handleConnect(ctx, conn, req) case BindCommand: - return s.handleBind(conn, req) + return s.handleBind(ctx, conn, req) case AssociateCommand: - return s.handleAssociate(conn, req) + return s.handleAssociate(ctx, conn, req) default: if err := sendReply(conn, commandNotSupported, nil); err != nil { return fmt.Errorf("Failed to send reply: %v", err) @@ -141,22 +156,25 @@ func (s *Server) handleRequest(req *Request, conn conn) error { } // handleConnect is used to handle a connect command -func (s *Server) handleConnect(conn conn, req *Request) error { +func (s *Server) handleConnect(ctx context.Context, conn conn, req *Request) error { // Check if this is allowed - if !s.config.Rules.Allow(req) { + if ctx_, ok := s.config.Rules.Allow(ctx, req); !ok { if err := sendReply(conn, ruleFailure, nil); err != nil { return fmt.Errorf("Failed to send reply: %v", err) } return fmt.Errorf("Connect to %v blocked by rules", req.DestAddr) + } else { + ctx = ctx_ } // Attempt to connect - addr := (&net.TCPAddr{IP: req.realDestAddr.IP, Port: req.realDestAddr.Port}).String() dial := s.config.Dial if dial == nil { - dial = net.Dial + dial = func(ctx context.Context, net_, addr string) (net.Conn, error) { + return net.Dial(net_, addr) + } } - target, err := dial("tcp", addr) + target, err := dial(ctx, "tcp", req.realDestAddr.Address()) if err != nil { msg := err.Error() resp := hostUnreachable @@ -196,13 +214,15 @@ func (s *Server) handleConnect(conn conn, req *Request) error { } // handleBind is used to handle a connect command -func (s *Server) handleBind(conn conn, req *Request) error { +func (s *Server) handleBind(ctx context.Context, conn conn, req *Request) error { // Check if this is allowed - if !s.config.Rules.Allow(req) { + if ctx_, ok := s.config.Rules.Allow(ctx, req); !ok { if err := sendReply(conn, ruleFailure, nil); err != nil { return fmt.Errorf("Failed to send reply: %v", err) } return fmt.Errorf("Bind to %v blocked by rules", req.DestAddr) + } else { + ctx = ctx_ } // TODO: Support bind @@ -213,13 +233,15 @@ func (s *Server) handleBind(conn conn, req *Request) error { } // handleAssociate is used to handle a connect command -func (s *Server) handleAssociate(conn conn, req *Request) error { +func (s *Server) handleAssociate(ctx context.Context, conn conn, req *Request) error { // Check if this is allowed - if !s.config.Rules.Allow(req) { + if ctx_, ok := s.config.Rules.Allow(ctx, req); !ok { if err := sendReply(conn, ruleFailure, nil); err != nil { return fmt.Errorf("Failed to send reply: %v", err) } return fmt.Errorf("Associate to %v blocked by rules", req.DestAddr) + } else { + ctx = ctx_ } // TODO: Support associate @@ -327,11 +349,15 @@ func sendReply(w io.Writer, resp uint8, addr *AddrSpec) error { return err } +type closeWriter interface { + CloseWrite() error +} + // proxy is used to suffle data from src to destination, and sends errors // down a dedicated channel func proxy(dst io.Writer, src io.Reader, errCh chan error) { _, err := io.Copy(dst, src) - if tcpConn, ok := dst.(*net.TCPConn); ok { + if tcpConn, ok := dst.(closeWriter); ok { tcpConn.CloseWrite() } errCh <- err diff --git a/vendor/github.com/armon/go-socks5/resolver.go b/vendor/github.com/armon/go-socks5/resolver.go index 2aadd051e99..b75a5c4da0a 100644 --- a/vendor/github.com/armon/go-socks5/resolver.go +++ b/vendor/github.com/armon/go-socks5/resolver.go @@ -2,20 +2,22 @@ package socks5 import ( "net" + + "golang.org/x/net/context" ) // NameResolver is used to implement custom name resolution type NameResolver interface { - Resolve(name string) (net.IP, error) + Resolve(ctx context.Context, name string) (context.Context, net.IP, error) } // DNSResolver uses the system DNS to resolve host names type DNSResolver struct{} -func (d DNSResolver) Resolve(name string) (net.IP, error) { +func (d DNSResolver) Resolve(ctx context.Context, name string) (context.Context, net.IP, error) { addr, err := net.ResolveIPAddr("ip", name) if err != nil { - return nil, err + return ctx, nil, err } - return addr.IP, err + return ctx, addr.IP, err } diff --git a/vendor/github.com/armon/go-socks5/ruleset.go b/vendor/github.com/armon/go-socks5/ruleset.go index 1f678786c13..ba0e3538e38 100644 --- a/vendor/github.com/armon/go-socks5/ruleset.go +++ b/vendor/github.com/armon/go-socks5/ruleset.go @@ -1,8 +1,12 @@ package socks5 +import ( + "golang.org/x/net/context" +) + // RuleSet is used to provide custom rules to allow or prohibit actions type RuleSet interface { - Allow(req *Request) bool + Allow(ctx context.Context, req *Request) (context.Context, bool) } // PermitAll returns a RuleSet which allows all types of connections @@ -23,15 +27,15 @@ type PermitCommand struct { EnableAssociate bool } -func (p *PermitCommand) Allow(req *Request) bool { +func (p *PermitCommand) Allow(ctx context.Context, req *Request) (context.Context, bool) { switch req.Command { case ConnectCommand: - return p.EnableConnect + return ctx, p.EnableConnect case BindCommand: - return p.EnableBind + return ctx, p.EnableBind case AssociateCommand: - return p.EnableAssociate + return ctx, p.EnableAssociate } - return false + return ctx, false } diff --git a/vendor/github.com/armon/go-socks5/socks5.go b/vendor/github.com/armon/go-socks5/socks5.go index e6bca39846a..a17be68f4d9 100644 --- a/vendor/github.com/armon/go-socks5/socks5.go +++ b/vendor/github.com/armon/go-socks5/socks5.go @@ -6,6 +6,8 @@ import ( "log" "net" "os" + + "golang.org/x/net/context" ) const ( @@ -45,7 +47,7 @@ type Config struct { Logger *log.Logger // Optional function for dialing out - Dial func(network, addr string) (net.Conn, error) + Dial func(ctx context.Context, network, addr string) (net.Conn, error) } // Server is reponsible for accepting connections and handling diff --git a/vendor/github.com/davecgh/go-spew/README.md b/vendor/github.com/davecgh/go-spew/README.md deleted file mode 100644 index 777a8e1d43d..00000000000 --- a/vendor/github.com/davecgh/go-spew/README.md +++ /dev/null @@ -1,194 +0,0 @@ -go-spew -======= - -[![Build Status](https://travis-ci.org/davecgh/go-spew.png?branch=master)] -(https://travis-ci.org/davecgh/go-spew) [![Coverage Status] -(https://coveralls.io/repos/davecgh/go-spew/badge.png?branch=master)] -(https://coveralls.io/r/davecgh/go-spew?branch=master) - -Go-spew implements a deep pretty printer for Go data structures to aid in -debugging. A comprehensive suite of tests with 100% test coverage is provided -to ensure proper functionality. See `test_coverage.txt` for the gocov coverage -report. Go-spew is licensed under the liberal ISC license, so it may be used in -open source or commercial projects. - -If you're interested in reading about how this package came to life and some -of the challenges involved in providing a deep pretty printer, there is a blog -post about it -[here](https://blog.cyphertite.com/go-spew-a-journey-into-dumping-go-data-structures/). - -## Documentation - -[![GoDoc](https://godoc.org/github.com/davecgh/go-spew/spew?status.png)] -(http://godoc.org/github.com/davecgh/go-spew/spew) - -Full `go doc` style documentation for the project can be viewed online without -installing this package by using the excellent GoDoc site here: -http://godoc.org/github.com/davecgh/go-spew/spew - -You can also view the documentation locally once the package is installed with -the `godoc` tool by running `godoc -http=":6060"` and pointing your browser to -http://localhost:6060/pkg/github.com/davecgh/go-spew/spew - -## Installation - -```bash -$ go get -u github.com/davecgh/go-spew/spew -``` - -## Quick Start - -Add this import line to the file you're working in: - -```Go -import "github.com/davecgh/go-spew/spew" -``` - -To dump a variable with full newlines, indentation, type, and pointer -information use Dump, Fdump, or Sdump: - -```Go -spew.Dump(myVar1, myVar2, ...) -spew.Fdump(someWriter, myVar1, myVar2, ...) -str := spew.Sdump(myVar1, myVar2, ...) -``` - -Alternatively, if you would prefer to use format strings with a compacted inline -printing style, use the convenience wrappers Printf, Fprintf, etc with %v (most -compact), %+v (adds pointer addresses), %#v (adds types), or %#+v (adds types -and pointer addresses): - -```Go -spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) -spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) -spew.Fprintf(someWriter, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) -spew.Fprintf(someWriter, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) -``` - -## Debugging a Web Application Example - -Here is an example of how you can use `spew.Sdump()` to help debug a web application. Please be sure to wrap your output using the `html.EscapeString()` function for safety reasons. You should also only use this debugging technique in a development environment, never in production. - -```Go -package main - -import ( - "fmt" - "html" - "net/http" - - "github.com/davecgh/go-spew/spew" -) - -func handler(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/html") - fmt.Fprintf(w, "Hi there, %s!", r.URL.Path[1:]) - fmt.Fprintf(w, "") -} - -func main() { - http.HandleFunc("/", handler) - http.ListenAndServe(":8080", nil) -} -``` - -## Sample Dump Output - -``` -(main.Foo) { - unexportedField: (*main.Bar)(0xf84002e210)({ - flag: (main.Flag) flagTwo, - data: (uintptr) - }), - ExportedField: (map[interface {}]interface {}) { - (string) "one": (bool) true - } -} -([]uint8) { - 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 |............... | - 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 |!"#$%&'()*+,-./0| - 00000020 31 32 |12| -} -``` - -## Sample Formatter Output - -Double pointer to a uint8: -``` - %v: <**>5 - %+v: <**>(0xf8400420d0->0xf8400420c8)5 - %#v: (**uint8)5 - %#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5 -``` - -Pointer to circular struct with a uint8 field and a pointer to itself: -``` - %v: <*>{1 <*>} - %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)} - %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)} - %#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)} -``` - -## Configuration Options - -Configuration of spew is handled by fields in the ConfigState type. For -convenience, all of the top-level functions use a global state available via the -spew.Config global. - -It is also possible to create a ConfigState instance that provides methods -equivalent to the top-level functions. This allows concurrent configuration -options. See the ConfigState documentation for more details. - -``` -* Indent - String to use for each indentation level for Dump functions. - It is a single space by default. A popular alternative is "\t". - -* MaxDepth - Maximum number of levels to descend into nested data structures. - There is no limit by default. - -* DisableMethods - Disables invocation of error and Stringer interface methods. - Method invocation is enabled by default. - -* DisablePointerMethods - Disables invocation of error and Stringer interface methods on types - which only accept pointer receivers from non-pointer variables. This option - relies on access to the unsafe package, so it will not have any effect when - running in environments without access to the unsafe package such as Google - App Engine or with the "disableunsafe" build tag specified. - Pointer method invocation is enabled by default. - -* ContinueOnMethod - Enables recursion into types after invoking error and Stringer interface - methods. Recursion after method invocation is disabled by default. - -* SortKeys - Specifies map keys should be sorted before being printed. Use - this to have a more deterministic, diffable output. Note that - only native types (bool, int, uint, floats, uintptr and string) - and types which implement error or Stringer interfaces are supported, - with other types sorted according to the reflect.Value.String() output - which guarantees display stability. Natural map order is used by - default. - -* SpewKeys - SpewKeys specifies that, as a last resort attempt, map keys should be - spewed to strings and sorted by those strings. This is only considered - if SortKeys is true. - -``` - -## Unsafe Package Dependency - -This package relies on the unsafe package to perform some of the more advanced -features, however it also supports a "limited" mode which allows it to work in -environments where the unsafe package is not available. By default, it will -operate in this mode on Google App Engine. The "disableunsafe" build tag may -also be specified to force the package to build without using the unsafe -package. - -## License - -Go-spew is licensed under the liberal ISC License. diff --git a/vendor/github.com/davecgh/go-spew/cov_report.sh b/vendor/github.com/davecgh/go-spew/cov_report.sh deleted file mode 100644 index 9579497e411..00000000000 --- a/vendor/github.com/davecgh/go-spew/cov_report.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# This script uses gocov to generate a test coverage report. -# The gocov tool my be obtained with the following command: -# go get github.com/axw/gocov/gocov -# -# It will be installed to $GOPATH/bin, so ensure that location is in your $PATH. - -# Check for gocov. -if ! type gocov >/dev/null 2>&1; then - echo >&2 "This script requires the gocov tool." - echo >&2 "You may obtain it with the following command:" - echo >&2 "go get github.com/axw/gocov/gocov" - exit 1 -fi - -# Only run the cgo tests if gcc is installed. -if type gcc >/dev/null 2>&1; then - (cd spew && gocov test -tags testcgo | gocov report) -else - (cd spew && gocov test | gocov report) -fi diff --git a/vendor/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go b/vendor/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go deleted file mode 100644 index 5c87dd456ed..00000000000 --- a/vendor/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) 2013 Dave Collins -// -// Permission to use, copy, modify, and distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -// NOTE: Due to the following build constraints, this file will only be compiled -// when both cgo is supported and "-tags testcgo" is added to the go test -// command line. This code should really only be in the dumpcgo_test.go file, -// but unfortunately Go will not allow cgo in test files, so this is a -// workaround to allow cgo types to be tested. This configuration is used -// because spew itself does not require cgo to run even though it does handle -// certain cgo types specially. Rather than forcing all clients to require cgo -// and an external C compiler just to run the tests, this scheme makes them -// optional. -// +build cgo,testcgo - -package testdata - -/* -#include -typedef unsigned char custom_uchar_t; - -char *ncp = 0; -char *cp = "test"; -char ca[6] = {'t', 'e', 's', 't', '2', '\0'}; -unsigned char uca[6] = {'t', 'e', 's', 't', '3', '\0'}; -signed char sca[6] = {'t', 'e', 's', 't', '4', '\0'}; -uint8_t ui8ta[6] = {'t', 'e', 's', 't', '5', '\0'}; -custom_uchar_t tuca[6] = {'t', 'e', 's', 't', '6', '\0'}; -*/ -import "C" - -// GetCgoNullCharPointer returns a null char pointer via cgo. This is only -// used for tests. -func GetCgoNullCharPointer() interface{} { - return C.ncp -} - -// GetCgoCharPointer returns a char pointer via cgo. This is only used for -// tests. -func GetCgoCharPointer() interface{} { - return C.cp -} - -// GetCgoCharArray returns a char array via cgo and the array's len and cap. -// This is only used for tests. -func GetCgoCharArray() (interface{}, int, int) { - return C.ca, len(C.ca), cap(C.ca) -} - -// GetCgoUnsignedCharArray returns an unsigned char array via cgo and the -// array's len and cap. This is only used for tests. -func GetCgoUnsignedCharArray() (interface{}, int, int) { - return C.uca, len(C.uca), cap(C.uca) -} - -// GetCgoSignedCharArray returns a signed char array via cgo and the array's len -// and cap. This is only used for tests. -func GetCgoSignedCharArray() (interface{}, int, int) { - return C.sca, len(C.sca), cap(C.sca) -} - -// GetCgoUint8tArray returns a uint8_t array via cgo and the array's len and -// cap. This is only used for tests. -func GetCgoUint8tArray() (interface{}, int, int) { - return C.ui8ta, len(C.ui8ta), cap(C.ui8ta) -} - -// GetCgoTypdefedUnsignedCharArray returns a typedefed unsigned char array via -// cgo and the array's len and cap. This is only used for tests. -func GetCgoTypdefedUnsignedCharArray() (interface{}, int, int) { - return C.tuca, len(C.tuca), cap(C.tuca) -} diff --git a/vendor/github.com/dustin/go-humanize/README.markdown b/vendor/github.com/dustin/go-humanize/README.markdown index 23dfee0ac52..f69d3c870d0 100644 --- a/vendor/github.com/dustin/go-humanize/README.markdown +++ b/vendor/github.com/dustin/go-humanize/README.markdown @@ -3,7 +3,7 @@ Just a few functions for helping humanize times and sizes. `go get` it as `github.com/dustin/go-humanize`, import it as -`"github.com/dustin/go-humanize"`, use it as `humanize` +`"github.com/dustin/go-humanize"`, use it as `humanize`. See [godoc](https://godoc.org/github.com/dustin/go-humanize) for complete documentation. @@ -11,12 +11,12 @@ complete documentation. ## Sizes This lets you take numbers like `82854982` and convert them to useful -strings like, `83MB` or `79MiB` (whichever you prefer). +strings like, `83 MB` or `79 MiB` (whichever you prefer). Example: ```go -fmt.Printf("That file is %s.", humanize.Bytes(82854982)) +fmt.Printf("That file is %s.", humanize.Bytes(82854982)) // That file is 83 MB. ``` ## Times @@ -27,11 +27,11 @@ For example, `12 seconds ago` or `3 days from now`. Example: ```go -fmt.Printf("This was touched %s", humanize.Time(someTimeInstance)) +fmt.Printf("This was touched %s.", humanize.Time(someTimeInstance)) // This was touched 7 hours ago. ``` Thanks to Kyle Lemons for the time implementation from an IRC -conversation one day. It's pretty neat. +conversation one day. It's pretty neat. ## Ordinals @@ -48,12 +48,12 @@ to label ordinals. Example: ```go -fmt.Printf("You're my %s best friend.", humanize.Ordinal(193)) +fmt.Printf("You're my %s best friend.", humanize.Ordinal(193)) // You are my 193rd best friend. ``` ## Commas -Want to shove commas into numbers? Be my guest. +Want to shove commas into numbers? Be my guest. 0 -> 0 100 -> 100 @@ -64,7 +64,7 @@ Want to shove commas into numbers? Be my guest. Example: ```go -fmt.Printf("You owe $%s.\n", humanize.Comma(6582491)) +fmt.Printf("You owe $%s.\n", humanize.Comma(6582491)) // You owe $6,582,491. ``` ## Ftoa @@ -72,10 +72,10 @@ fmt.Printf("You owe $%s.\n", humanize.Comma(6582491)) Nicer float64 formatter that removes trailing zeros. ```go -fmt.Printf("%f", 2.24) // 2.240000 -fmt.Printf("%s", humanize.Ftoa(2.24)) // 2.24 -fmt.Printf("%f", 2.0) // 2.000000 -fmt.Printf("%s", humanize.Ftoa(2.0)) // 2 +fmt.Printf("%f", 2.24) // 2.240000 +fmt.Printf("%s", humanize.Ftoa(2.24)) // 2.24 +fmt.Printf("%f", 2.0) // 2.000000 +fmt.Printf("%s", humanize.Ftoa(2.0)) // 2 ``` ## SI notation @@ -85,7 +85,7 @@ Format numbers with [SI notation][sinotation]. Example: ```go -humanize.SI(0.00000000223, "M") // 2.23nM +humanize.SI(0.00000000223, "M") // 2.23 nM ``` [odisc]: https://groups.google.com/d/topic/golang-nuts/l8NhI74jl-4/discussion diff --git a/vendor/github.com/dustin/go-humanize/bigbytes.go b/vendor/github.com/dustin/go-humanize/bigbytes.go index 67ea5c823da..1a2bf617239 100644 --- a/vendor/github.com/dustin/go-humanize/bigbytes.go +++ b/vendor/github.com/dustin/go-humanize/bigbytes.go @@ -113,7 +113,7 @@ func humanateBigBytes(s, base *big.Int, sizes []string) string { // // See also: ParseBigBytes. // -// BigBytes(82854982) -> 83MB +// BigBytes(82854982) -> 83 MB func BigBytes(s *big.Int) string { sizes := []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"} return humanateBigBytes(s, bigSIExp, sizes) @@ -123,7 +123,7 @@ func BigBytes(s *big.Int) string { // // See also: ParseBigBytes. // -// BigIBytes(82854982) -> 79MiB +// BigIBytes(82854982) -> 79 MiB func BigIBytes(s *big.Int) string { sizes := []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"} return humanateBigBytes(s, bigIECExp, sizes) @@ -134,19 +134,28 @@ func BigIBytes(s *big.Int) string { // // See also: BigBytes, BigIBytes. // -// ParseBigBytes("42MB") -> 42000000, nil -// ParseBigBytes("42mib") -> 44040192, nil +// ParseBigBytes("42 MB") -> 42000000, nil +// ParseBigBytes("42 mib") -> 44040192, nil func ParseBigBytes(s string) (*big.Int, error) { lastDigit := 0 + hasComma := false for _, r := range s { - if !(unicode.IsDigit(r) || r == '.') { + if !(unicode.IsDigit(r) || r == '.' || r == ',') { break } + if r == ',' { + hasComma = true + } lastDigit++ } + num := s[:lastDigit] + if hasComma { + num = strings.Replace(num, ",", "", -1) + } + val := &big.Rat{} - _, err := fmt.Sscanf(s[:lastDigit], "%f", val) + _, err := fmt.Sscanf(num, "%f", val) if err != nil { return nil, err } diff --git a/vendor/github.com/dustin/go-humanize/bytes.go b/vendor/github.com/dustin/go-humanize/bytes.go index dacbb9c1e4c..0b498f4885c 100644 --- a/vendor/github.com/dustin/go-humanize/bytes.go +++ b/vendor/github.com/dustin/go-humanize/bytes.go @@ -84,7 +84,7 @@ func humanateBytes(s uint64, base float64, sizes []string) string { // // See also: ParseBytes. // -// Bytes(82854982) -> 83MB +// Bytes(82854982) -> 83 MB func Bytes(s uint64) string { sizes := []string{"B", "kB", "MB", "GB", "TB", "PB", "EB"} return humanateBytes(s, 1000, sizes) @@ -94,7 +94,7 @@ func Bytes(s uint64) string { // // See also: ParseBytes. // -// IBytes(82854982) -> 79MiB +// IBytes(82854982) -> 79 MiB func IBytes(s uint64) string { sizes := []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB"} return humanateBytes(s, 1024, sizes) @@ -105,18 +105,27 @@ func IBytes(s uint64) string { // // See Also: Bytes, IBytes. // -// ParseBytes("42MB") -> 42000000, nil -// ParseBytes("42mib") -> 44040192, nil +// ParseBytes("42 MB") -> 42000000, nil +// ParseBytes("42 mib") -> 44040192, nil func ParseBytes(s string) (uint64, error) { lastDigit := 0 + hasComma := false for _, r := range s { - if !(unicode.IsDigit(r) || r == '.') { + if !(unicode.IsDigit(r) || r == '.' || r == ',') { break } + if r == ',' { + hasComma = true + } lastDigit++ } - f, err := strconv.ParseFloat(s[:lastDigit], 64) + num := s[:lastDigit] + if hasComma { + num = strings.Replace(num, ",", "", -1) + } + + f, err := strconv.ParseFloat(num, 64) if err != nil { return 0, err } diff --git a/vendor/github.com/dustin/go-humanize/comma.go b/vendor/github.com/dustin/go-humanize/comma.go index b65ea6fa78c..eb285cb9519 100644 --- a/vendor/github.com/dustin/go-humanize/comma.go +++ b/vendor/github.com/dustin/go-humanize/comma.go @@ -2,6 +2,7 @@ package humanize import ( "bytes" + "math" "math/big" "strconv" "strings" @@ -13,6 +14,12 @@ import ( // e.g. Comma(834142) -> 834,142 func Comma(v int64) string { sign := "" + + // minin64 can't be negated to a usable value, so it has to be special cased. + if v == math.MinInt64 { + return "-9,223,372,036,854,775,808" + } + if v < 0 { sign = "-" v = 0 - v @@ -39,7 +46,7 @@ func Comma(v int64) string { // Commaf produces a string form of the given number in base 10 with // commas after every three orders of magnitude. // -// e.g. Comma(834142.32) -> 834,142.32 +// e.g. Commaf(834142.32) -> 834,142.32 func Commaf(v float64) string { buf := &bytes.Buffer{} if v < 0 { diff --git a/vendor/github.com/dustin/go-humanize/humanize.go b/vendor/github.com/dustin/go-humanize/humanize.go index a69540a06b6..a2c2da31ef1 100644 --- a/vendor/github.com/dustin/go-humanize/humanize.go +++ b/vendor/github.com/dustin/go-humanize/humanize.go @@ -2,7 +2,7 @@ Package humanize converts boring ugly numbers to human-friendly strings and back. Durations can be turned into strings such as "3 days ago", numbers -representing sizes like 82854982 into useful strings like, "83MB" or -"79MiB" (whichever you prefer). +representing sizes like 82854982 into useful strings like, "83 MB" or +"79 MiB" (whichever you prefer). */ package humanize diff --git a/vendor/github.com/dustin/go-humanize/number.go b/vendor/github.com/dustin/go-humanize/number.go index 32141348c80..dec61865996 100644 --- a/vendor/github.com/dustin/go-humanize/number.go +++ b/vendor/github.com/dustin/go-humanize/number.go @@ -160,7 +160,7 @@ func FormatFloat(format string, n float64) string { intf, fracf := math.Modf(n + renderFloatPrecisionRounders[precision]) // generate integer part string - intStr := strconv.Itoa(int(intf)) + intStr := strconv.FormatInt(int64(intf), 10) // add thousand separator if required if len(thousandStr) > 0 { diff --git a/vendor/github.com/dustin/go-humanize/si.go b/vendor/github.com/dustin/go-humanize/si.go index 9cce4e8d39e..b24e48169f4 100644 --- a/vendor/github.com/dustin/go-humanize/si.go +++ b/vendor/github.com/dustin/go-humanize/si.go @@ -68,7 +68,7 @@ func ComputeSI(input float64) (float64, string) { value := mag / math.Pow(10, exponent) // Handle special case where value is exactly 1000.0 - // Should return 1M instead of 1000k + // Should return 1 M instead of 1000 k if value == 1000.0 { exponent += 3 value = mag / math.Pow(10, exponent) @@ -86,8 +86,8 @@ func ComputeSI(input float64) (float64, string) { // // See also: ComputeSI, ParseSI. // -// e.g. SI(1000000, B) -> 1MB -// e.g. SI(2.2345e-12, "F") -> 2.2345pF +// e.g. SI(1000000, "B") -> 1 MB +// e.g. SI(2.2345e-12, "F") -> 2.2345 pF func SI(input float64, unit string) string { value, prefix := ComputeSI(input) return Ftoa(value) + " " + prefix + unit @@ -99,7 +99,7 @@ var errInvalid = errors.New("invalid input") // // See also: SI, ComputeSI. // -// e.g. ParseSI(2.2345pF) -> (2.2345e-12, "F", nil) +// e.g. ParseSI("2.2345 pF") -> (2.2345e-12, "F", nil) func ParseSI(input string) (float64, string, error) { found := riParseRegex.FindStringSubmatch(input) if len(found) != 4 { diff --git a/vendor/github.com/dustin/go-humanize/times.go b/vendor/github.com/dustin/go-humanize/times.go index 49906b3725b..b311f11c802 100644 --- a/vendor/github.com/dustin/go-humanize/times.go +++ b/vendor/github.com/dustin/go-humanize/times.go @@ -9,9 +9,7 @@ import ( // Seconds-based time units const ( - Minute = 60 - Hour = 60 * Minute - Day = 24 * Hour + Day = 24 * time.Hour Week = 7 * Day Month = 30 * Day Year = 12 * Month @@ -25,18 +23,35 @@ func Time(then time.Time) string { return RelTime(then, time.Now(), "ago", "from now") } -var magnitudes = []struct { - d int64 - format string - divby int64 -}{ - {1, "now", 1}, - {2, "1 second %s", 1}, - {Minute, "%d seconds %s", 1}, - {2 * Minute, "1 minute %s", 1}, - {Hour, "%d minutes %s", Minute}, - {2 * Hour, "1 hour %s", 1}, - {Day, "%d hours %s", Hour}, +// A RelTimeMagnitude struct contains a relative time point at which +// the relative format of time will switch to a new format string. A +// slice of these in ascending order by their "D" field is passed to +// CustomRelTime to format durations. +// +// The Format field is a string that may contain a "%s" which will be +// replaced with the appropriate signed label (e.g. "ago" or "from +// now") and a "%d" that will be replaced by the quantity. +// +// The DivBy field is the amount of time the time difference must be +// divided by in order to display correctly. +// +// e.g. if D is 2*time.Minute and you want to display "%d minutes %s" +// DivBy should be time.Minute so whatever the duration is will be +// expressed in minutes. +type RelTimeMagnitude struct { + D time.Duration + Format string + DivBy time.Duration +} + +var defaultMagnitudes = []RelTimeMagnitude{ + {time.Second, "now", time.Second}, + {2 * time.Second, "1 second %s", 1}, + {time.Minute, "%d seconds %s", time.Second}, + {2 * time.Minute, "1 minute %s", 1}, + {time.Hour, "%d minutes %s", time.Minute}, + {2 * time.Hour, "1 hour %s", 1}, + {Day, "%d hours %s", time.Hour}, {2 * Day, "1 day %s", 1}, {Week, "%d days %s", Day}, {2 * Week, "1 week %s", 1}, @@ -57,34 +72,46 @@ var magnitudes = []struct { // // RelTime(timeInPast, timeInFuture, "earlier", "later") -> "3 weeks earlier" func RelTime(a, b time.Time, albl, blbl string) string { + return CustomRelTime(a, b, albl, blbl, defaultMagnitudes) +} + +// CustomRelTime formats a time into a relative string. +// +// It takes two times two labels and a table of relative time formats. +// In addition to the generic time delta string (e.g. 5 minutes), the +// labels are used applied so that the label corresponding to the +// smaller time is applied. +func CustomRelTime(a, b time.Time, albl, blbl string, magnitudes []RelTimeMagnitude) string { lbl := albl - diff := b.Unix() - a.Unix() + diff := b.Sub(a) - after := a.After(b) - if after { + if a.After(b) { lbl = blbl - diff = a.Unix() - b.Unix() + diff = a.Sub(b) } n := sort.Search(len(magnitudes), func(i int) bool { - return magnitudes[i].d > diff + return magnitudes[i].D >= diff }) + if n >= len(magnitudes) { + n = len(magnitudes) - 1 + } mag := magnitudes[n] args := []interface{}{} escaped := false - for _, ch := range mag.format { + for _, ch := range mag.Format { if escaped { switch ch { case 's': args = append(args, lbl) case 'd': - args = append(args, diff/mag.divby) + args = append(args, diff/mag.DivBy) } escaped = false } else { escaped = ch == '%' } } - return fmt.Sprintf(mag.format, args...) + return fmt.Sprintf(mag.Format, args...) } diff --git a/vendor/github.com/eapache/go-resiliency/README.md b/vendor/github.com/eapache/go-resiliency/README.md deleted file mode 100644 index 0a0d70111d9..00000000000 --- a/vendor/github.com/eapache/go-resiliency/README.md +++ /dev/null @@ -1,21 +0,0 @@ -go-resiliency -============= - -[![Build Status](https://travis-ci.org/eapache/go-resiliency.svg?branch=master)](https://travis-ci.org/eapache/go-resiliency) -[![GoDoc](https://godoc.org/github.com/eapache/go-resiliency?status.svg)](https://godoc.org/github.com/eapache/go-resiliency) -[![Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-active-blue.svg)](https://eapache.github.io/conduct.html) - -Resiliency patterns for golang. -Based in part on [Hystrix](https://github.com/Netflix/Hystrix), -[Semian](https://github.com/Shopify/semian), and others. - -Currently implemented patterns include: -- circuit-breaker (in the `breaker` directory) -- semaphore (in the `semaphore` directory) -- deadline/timeout (in the `deadline` directory) -- batching (in the `batcher` directory) -- retriable (in the `retrier` directory) - -Follows semantic versioning using https://gopkg.in/ - import from -[`gopkg.in/eapache/go-resiliency.v1`](https://gopkg.in/eapache/go-resiliency.v1) -for guaranteed API stability. diff --git a/vendor/github.com/eapache/go-resiliency/batcher/README.md b/vendor/github.com/eapache/go-resiliency/batcher/README.md deleted file mode 100644 index 60e3b9f0eb0..00000000000 --- a/vendor/github.com/eapache/go-resiliency/batcher/README.md +++ /dev/null @@ -1,31 +0,0 @@ -batcher -======= - -[![Build Status](https://travis-ci.org/eapache/go-resiliency.svg?branch=master)](https://travis-ci.org/eapache/go-resiliency) -[![GoDoc](https://godoc.org/github.com/eapache/go-resiliency/batcher?status.svg)](https://godoc.org/github.com/eapache/go-resiliency/batcher) -[![Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-active-blue.svg)](https://eapache.github.io/conduct.html) - -The batching resiliency pattern for golang. - -Creating a batcher takes two parameters: -- the timeout to wait while collecting a batch -- the function to run once a batch has been collected - -You can also optionally set a prefilter to fail queries before they enter the -batch. - -```go -b := batcher.New(10*time.Millisecond, func(params []interface{}) error { - // do something with the batch of parameters - return nil -}) - -b.Prefilter(func(param interface{}) error { - // do some sort of sanity check on the parameter, and return an error if it fails - return nil -}) - -for i := 0; i < 10; i++ { - go b.Run(i) -} -``` diff --git a/vendor/github.com/eapache/go-resiliency/batcher/batcher.go b/vendor/github.com/eapache/go-resiliency/batcher/batcher.go deleted file mode 100644 index 2d1ccb46c8d..00000000000 --- a/vendor/github.com/eapache/go-resiliency/batcher/batcher.go +++ /dev/null @@ -1,108 +0,0 @@ -// Package batcher implements the batching resiliency pattern for Go. -package batcher - -import ( - "sync" - "time" -) - -type work struct { - param interface{} - future chan error -} - -// Batcher implements the batching resiliency pattern -type Batcher struct { - timeout time.Duration - prefilter func(interface{}) error - - lock sync.Mutex - submit chan *work - doWork func([]interface{}) error -} - -// New constructs a new batcher that will batch all calls to Run that occur within -// `timeout` time before calling doWork just once for the entire batch. The doWork -// function must be safe to run concurrently with itself as this may occur, especially -// when the timeout is small. -func New(timeout time.Duration, doWork func([]interface{}) error) *Batcher { - return &Batcher{ - timeout: timeout, - doWork: doWork, - } -} - -// Run runs the work function with the given parameter, possibly -// including it in a batch with other calls to Run that occur within the -// specified timeout. It is safe to call Run concurrently on the same batcher. -func (b *Batcher) Run(param interface{}) error { - if b.prefilter != nil { - if err := b.prefilter(param); err != nil { - return err - } - } - - if b.timeout == 0 { - return b.doWork([]interface{}{param}) - } - - w := &work{ - param: param, - future: make(chan error, 1), - } - - b.submitWork(w) - - return <-w.future -} - -// Prefilter specifies an optional function that can be used to run initial checks on parameters -// passed to Run before being added to the batch. If the prefilter returns a non-nil error, -// that error is returned immediately from Run and the batcher is not invoked. A prefilter -// cannot safely be specified for a batcher if Run has already been invoked. The filter function -// specified must be concurrency-safe. -func (b *Batcher) Prefilter(filter func(interface{}) error) { - b.prefilter = filter -} - -func (b *Batcher) submitWork(w *work) { - b.lock.Lock() - defer b.lock.Unlock() - - if b.submit == nil { - b.submit = make(chan *work, 4) - go b.batch() - } - - b.submit <- w -} - -func (b *Batcher) batch() { - var params []interface{} - var futures []chan error - input := b.submit - - go b.timer() - - for work := range input { - params = append(params, work.param) - futures = append(futures, work.future) - } - - ret := b.doWork(params) - - for _, future := range futures { - future <- ret - close(future) - } -} - -func (b *Batcher) timer() { - time.Sleep(b.timeout) - - b.lock.Lock() - defer b.lock.Unlock() - - close(b.submit) - b.submit = nil -} diff --git a/vendor/github.com/eapache/go-resiliency/deadline/README.md b/vendor/github.com/eapache/go-resiliency/deadline/README.md deleted file mode 100644 index ac97b460f48..00000000000 --- a/vendor/github.com/eapache/go-resiliency/deadline/README.md +++ /dev/null @@ -1,27 +0,0 @@ -deadline -======== - -[![Build Status](https://travis-ci.org/eapache/go-resiliency.svg?branch=master)](https://travis-ci.org/eapache/go-resiliency) -[![GoDoc](https://godoc.org/github.com/eapache/go-resiliency/deadline?status.svg)](https://godoc.org/github.com/eapache/go-resiliency/deadline) -[![Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-active-blue.svg)](https://eapache.github.io/conduct.html) - -The deadline/timeout resiliency pattern for golang. - -Creating a deadline takes one parameter: how long to wait. - -```go -dl := deadline.New(1 * time.Second) - -err := dl.Run(func(stopper <-chan struct{}) error { - // do something potentially slow - // give up when the `stopper` channel is closed (indicating a time-out) - return nil -}) - -switch err { -case deadline.ErrTimedOut: - // execution took too long, oops -default: - // some other error -} -``` diff --git a/vendor/github.com/eapache/go-resiliency/deadline/deadline.go b/vendor/github.com/eapache/go-resiliency/deadline/deadline.go deleted file mode 100644 index 3a6dfb0eec1..00000000000 --- a/vendor/github.com/eapache/go-resiliency/deadline/deadline.go +++ /dev/null @@ -1,45 +0,0 @@ -// Package deadline implements the deadline (also known as "timeout") resiliency pattern for Go. -package deadline - -import ( - "errors" - "time" -) - -// ErrTimedOut is the error returned from Run when the deadline expires. -var ErrTimedOut = errors.New("timed out waiting for function to finish") - -// Deadline implements the deadline/timeout resiliency pattern. -type Deadline struct { - timeout time.Duration -} - -// New constructs a new Deadline with the given timeout. -func New(timeout time.Duration) *Deadline { - return &Deadline{ - timeout: timeout, - } -} - -// Run runs the given function, passing it a stopper channel. If the deadline passes before -// the function finishes executing, Run returns ErrTimeOut to the caller and closes the stopper -// channel so that the work function can attempt to exit gracefully. It does not (and cannot) -// simply kill the running function, so if it doesn't respect the stopper channel then it may -// keep running after the deadline passes. If the function finishes before the deadline, then -// the return value of the function is returned from Run. -func (d *Deadline) Run(work func(<-chan struct{}) error) error { - result := make(chan error) - stopper := make(chan struct{}) - - go func() { - result <- work(stopper) - }() - - select { - case ret := <-result: - return ret - case <-time.After(d.timeout): - close(stopper) - return ErrTimedOut - } -} diff --git a/vendor/github.com/eapache/go-resiliency/retrier/README.md b/vendor/github.com/eapache/go-resiliency/retrier/README.md deleted file mode 100644 index dd30af7a042..00000000000 --- a/vendor/github.com/eapache/go-resiliency/retrier/README.md +++ /dev/null @@ -1,26 +0,0 @@ -retrier -======= - -[![Build Status](https://travis-ci.org/eapache/go-resiliency.svg?branch=master)](https://travis-ci.org/eapache/go-resiliency) -[![GoDoc](https://godoc.org/github.com/eapache/go-resiliency/retrier?status.svg)](https://godoc.org/github.com/eapache/go-resiliency/retrier) -[![Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-active-blue.svg)](https://eapache.github.io/conduct.html) - -The retriable resiliency pattern for golang. - -Creating a retrier takes two parameters: -- the times to back-off between retries (and implicitly the number of times to - retry) -- the classifier that determines which errors to retry - -```go -r := retrier.New(retrier.ConstantBackoff(3, 100*time.Millisecond), nil) - -err := r.Run(func() error { - // do some work - return nil -}) - -if err != nil { - // handle the case where the work failed three times -} -``` diff --git a/vendor/github.com/eapache/go-resiliency/retrier/backoffs.go b/vendor/github.com/eapache/go-resiliency/retrier/backoffs.go deleted file mode 100644 index faf6f8cf985..00000000000 --- a/vendor/github.com/eapache/go-resiliency/retrier/backoffs.go +++ /dev/null @@ -1,24 +0,0 @@ -package retrier - -import "time" - -// ConstantBackoff generates a simple back-off strategy of retrying 'n' times, and waiting 'amount' time after each one. -func ConstantBackoff(n int, amount time.Duration) []time.Duration { - ret := make([]time.Duration, n) - for i := range ret { - ret[i] = amount - } - return ret -} - -// ExponentialBackoff generates a simple back-off strategy of retrying 'n' times, and doubling the amount of -// time waited after each one. -func ExponentialBackoff(n int, initialAmount time.Duration) []time.Duration { - ret := make([]time.Duration, n) - next := initialAmount - for i := range ret { - ret[i] = next - next *= 2 - } - return ret -} diff --git a/vendor/github.com/eapache/go-resiliency/retrier/classifier.go b/vendor/github.com/eapache/go-resiliency/retrier/classifier.go deleted file mode 100644 index 7dd71c7984d..00000000000 --- a/vendor/github.com/eapache/go-resiliency/retrier/classifier.go +++ /dev/null @@ -1,66 +0,0 @@ -package retrier - -// Action is the type returned by a Classifier to indicate how the Retrier should proceed. -type Action int - -const ( - Succeed Action = iota // Succeed indicates the Retrier should treat this value as a success. - Fail // Fail indicates the Retrier should treat this value as a hard failure and not retry. - Retry // Retry indicates the Retrier should treat this value as a soft failure and retry. -) - -// Classifier is the interface implemented by anything that can classify Errors for a Retrier. -type Classifier interface { - Classify(error) Action -} - -// DefaultClassifier classifies errors in the simplest way possible. If -// the error is nil, it returns Succeed, otherwise it returns Retry. -type DefaultClassifier struct{} - -// Classify implements the Classifier interface. -func (c DefaultClassifier) Classify(err error) Action { - if err == nil { - return Succeed - } - - return Retry -} - -// WhitelistClassifier classifies errors based on a whitelist. If the error is nil, it -// returns Succeed; if the error is in the whitelist, it returns Retry; otherwise, it returns Fail. -type WhitelistClassifier []error - -// Classify implements the Classifier interface. -func (list WhitelistClassifier) Classify(err error) Action { - if err == nil { - return Succeed - } - - for _, pass := range list { - if err == pass { - return Retry - } - } - - return Fail -} - -// BlacklistClassifier classifies errors based on a blacklist. If the error is nil, it -// returns Succeed; if the error is in the blacklist, it returns Fail; otherwise, it returns Retry. -type BlacklistClassifier []error - -// Classify implements the Classifier interface. -func (list BlacklistClassifier) Classify(err error) Action { - if err == nil { - return Succeed - } - - for _, pass := range list { - if err == pass { - return Fail - } - } - - return Retry -} diff --git a/vendor/github.com/eapache/go-resiliency/retrier/retrier.go b/vendor/github.com/eapache/go-resiliency/retrier/retrier.go deleted file mode 100644 index ff328742b26..00000000000 --- a/vendor/github.com/eapache/go-resiliency/retrier/retrier.go +++ /dev/null @@ -1,69 +0,0 @@ -// Package retrier implements the "retriable" resiliency pattern for Go. -package retrier - -import ( - "math/rand" - "time" -) - -// Retrier implements the "retriable" resiliency pattern, abstracting out the process of retrying a failed action -// a certain number of times with an optional back-off between each retry. -type Retrier struct { - backoff []time.Duration - class Classifier - jitter float64 - rand *rand.Rand -} - -// New constructs a Retrier with the given backoff pattern and classifier. The length of the backoff pattern -// indicates how many times an action will be retried, and the value at each index indicates the amount of time -// waited before each subsequent retry. The classifier is used to determine which errors should be retried and -// which should cause the retrier to fail fast. The DefaultClassifier is used if nil is passed. -func New(backoff []time.Duration, class Classifier) *Retrier { - if class == nil { - class = DefaultClassifier{} - } - - return &Retrier{ - backoff: backoff, - class: class, - rand: rand.New(rand.NewSource(time.Now().UnixNano())), - } -} - -// Run executes the given work function, then classifies its return value based on the classifier used -// to construct the Retrier. If the result is Succeed or Fail, the return value of the work function is -// returned to the caller. If the result is Retry, then Run sleeps according to the its backoff policy -// before retrying. If the total number of retries is exceeded then the return value of the work function -// is returned to the caller regardless. -func (r *Retrier) Run(work func() error) error { - retries := 0 - for { - ret := work() - - switch r.class.Classify(ret) { - case Succeed, Fail: - return ret - case Retry: - if retries >= len(r.backoff) { - return ret - } - time.Sleep(r.calcSleep(retries)) - retries++ - } - } -} - -func (r *Retrier) calcSleep(i int) time.Duration { - // take a random float in the range (-r.jitter, +r.jitter) and multiply it by the base amount - return r.backoff[i] + time.Duration(((r.rand.Float64()*2)-1)*r.jitter*float64(r.backoff[i])) -} - -// SetJitter sets the amount of jitter on each back-off to a factor between 0.0 and 1.0 (values outside this range -// are silently ignored). When a retry occurs, the back-off is adjusted by a random amount up to this value. -func (r *Retrier) SetJitter(jit float64) { - if jit < 0 || jit > 1 { - return - } - r.jitter = jit -} diff --git a/vendor/github.com/eapache/go-resiliency/semaphore/README.md b/vendor/github.com/eapache/go-resiliency/semaphore/README.md deleted file mode 100644 index a4a73ea07e0..00000000000 --- a/vendor/github.com/eapache/go-resiliency/semaphore/README.md +++ /dev/null @@ -1,22 +0,0 @@ -semaphore -========= - -[![Build Status](https://travis-ci.org/eapache/go-resiliency.svg?branch=master)](https://travis-ci.org/eapache/go-resiliency) -[![GoDoc](https://godoc.org/github.com/eapache/go-resiliency/semaphore?status.svg)](https://godoc.org/github.com/eapache/go-resiliency/semaphore) -[![Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-active-blue.svg)](https://eapache.github.io/conduct.html) - -The semaphore resiliency pattern for golang. - -Creating a semaphore takes two parameters: -- ticket count (how many tickets to give out at once) -- timeout (how long to wait for a ticket if none are currently available) - -```go -sem := semaphore.New(3, 1*time.Second) - -if err := sem.Acquire(); err != nil { - // could not acquire semaphore - return err -} -defer sem.Release() -``` diff --git a/vendor/github.com/eapache/go-resiliency/semaphore/semaphore.go b/vendor/github.com/eapache/go-resiliency/semaphore/semaphore.go deleted file mode 100644 index 90cb1fd1509..00000000000 --- a/vendor/github.com/eapache/go-resiliency/semaphore/semaphore.go +++ /dev/null @@ -1,45 +0,0 @@ -// Package semaphore implements the semaphore resiliency pattern for Go. -package semaphore - -import ( - "errors" - "time" -) - -// ErrNoTickets is the error returned by Acquire when it could not acquire -// a ticket from the semaphore within the configured timeout. -var ErrNoTickets = errors.New("could not aquire semaphore ticket") - -// Semaphore implements the semaphore resiliency pattern -type Semaphore struct { - sem chan struct{} - timeout time.Duration -} - -// New constructs a new Semaphore with the given ticket-count -// and timeout. -func New(tickets int, timeout time.Duration) *Semaphore { - return &Semaphore{ - sem: make(chan struct{}, tickets), - timeout: timeout, - } -} - -// Acquire tries to acquire a ticket from the semaphore. If it can, it returns nil. -// If it cannot after "timeout" amount of time, it returns ErrNoTickets. It is -// safe to call Acquire concurrently on a single Semaphore. -func (s *Semaphore) Acquire() error { - select { - case s.sem <- struct{}{}: - return nil - case <-time.After(s.timeout): - return ErrNoTickets - } -} - -// Release releases an acquired ticket back to the semaphore. It is safe to call -// Release concurrently on a single Semaphore. It is an error to call Release on -// a Semaphore from which you have not first acquired a ticket. -func (s *Semaphore) Release() { - <-s.sem -} diff --git a/vendor/github.com/eapache/queue/queue.go b/vendor/github.com/eapache/queue/queue.go index 2dc8d939566..71d1acdf27b 100644 --- a/vendor/github.com/eapache/queue/queue.go +++ b/vendor/github.com/eapache/queue/queue.go @@ -7,6 +7,8 @@ The queue implemented here is as fast as it is for an additional reason: it is * */ package queue +// minQueueLen is smallest capacity that queue may have. +// Must be power of 2 for bitwise modulus: x % n == x & (n - 1). const minQueueLen = 16 // Queue represents a single instance of the queue data structure. @@ -30,7 +32,7 @@ func (q *Queue) Length() int { // resizes the queue to fit exactly twice its current contents // this can result in shrinking if the queue is less than half-full func (q *Queue) resize() { - newBuf := make([]interface{}, q.count*2) + newBuf := make([]interface{}, q.count<<1) if q.tail > q.head { copy(newBuf, q.buf[q.head:q.tail]) @@ -51,7 +53,8 @@ func (q *Queue) Add(elem interface{}) { } q.buf[q.tail] = elem - q.tail = (q.tail + 1) % len(q.buf) + // bitwise modulus + q.tail = (q.tail + 1) & (len(q.buf) - 1) q.count++ } @@ -65,24 +68,35 @@ func (q *Queue) Peek() interface{} { } // Get returns the element at index i in the queue. If the index is -// invalid, the call will panic. +// invalid, the call will panic. This method accepts both positive and +// negative index values. Index 0 refers to the first element, and +// index -1 refers to the last. func (q *Queue) Get(i int) interface{} { + // If indexing backwards, convert to positive index. + if i < 0 { + i += q.count + } if i < 0 || i >= q.count { panic("queue: Get() called with index out of range") } - return q.buf[(q.head+i)%len(q.buf)] + // bitwise modulus + return q.buf[(q.head+i)&(len(q.buf)-1)] } -// Remove removes the element from the front of the queue. If you actually -// want the element, call Peek first. This call panics if the queue is empty. -func (q *Queue) Remove() { +// Remove removes and returns the element from the front of the queue. If the +// queue is empty, the call will panic. +func (q *Queue) Remove() interface{} { if q.count <= 0 { panic("queue: Remove() called on empty queue") } + ret := q.buf[q.head] q.buf[q.head] = nil - q.head = (q.head + 1) % len(q.buf) + // bitwise modulus + q.head = (q.head + 1) & (len(q.buf) - 1) q.count-- - if len(q.buf) > minQueueLen && q.count*4 == len(q.buf) { + // Resize down if buffer 1/4 full. + if len(q.buf) > minQueueLen && (q.count<<2) == len(q.buf) { q.resize() } + return ret } diff --git a/vendor/github.com/elastic/go-lumber/README.md b/vendor/github.com/elastic/go-lumber/README.md deleted file mode 100644 index 279aa9ed359..00000000000 --- a/vendor/github.com/elastic/go-lumber/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# go-lumber - -[![Go Report -Card](https://goreportcard.com/badge/github.com/elastic/go-lumber)](https://goreportcard.com/report/github.com/elastic/go-lumber) - -Lumberjack protocol client and server implementations for go. diff --git a/vendor/github.com/elastic/go-lumber/client/doc.go b/vendor/github.com/elastic/go-lumber/client/doc.go deleted file mode 100644 index 2ca44c0fa55..00000000000 --- a/vendor/github.com/elastic/go-lumber/client/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package client implementing lumberjack clients. -package client diff --git a/vendor/github.com/elastic/go-lumber/cmd/tst-lj/main.go b/vendor/github.com/elastic/go-lumber/cmd/tst-lj/main.go deleted file mode 100644 index b2f0a5dbc79..00000000000 --- a/vendor/github.com/elastic/go-lumber/cmd/tst-lj/main.go +++ /dev/null @@ -1,96 +0,0 @@ -// Lumberjack server test tool. -// -// Create lumberjack server endpoint ACKing all received batches only. The -// server supports all lumberjack protocol versions, which must be explicitely enabled -// from command line. For printing list of known command line flags run: -// -// tst-lj -h -package main - -import ( - "flag" - "log" - "os" - "os/signal" - "time" - - "github.com/elastic/go-lumber/server" -) - -type rateLimiter struct { - ticker *time.Ticker - ch chan time.Time -} - -func main() { - bind := flag.String("bind", ":5044", "[host]:port to listen on") - v1 := flag.Bool("v1", false, "Enable protocol version v1") - v2 := flag.Bool("v2", false, "Enable protocol version v2") - limit := flag.Int("rate", 0, "max batch ack rate") - flag.Parse() - - s, err := server.ListenAndServe(*bind, - server.V1(*v1), - server.V2(*v2)) - if err != nil { - log.Fatal(err) - } - - log.Println("tcp server up") - - var rl *rateLimiter - if *limit > 0 { - rl = newRateLimiter(*limit, (*limit)*2, time.Second) - } - - sig := make(chan os.Signal, 1) - signal.Notify(sig, os.Interrupt, os.Kill) - go func() { - <-sig - if rl != nil { - rl.Stop() - } - _ = s.Close() - os.Exit(0) - }() - - if rl == nil { - for batch := range s.ReceiveChan() { - log.Printf("Received batch of %v events\n", len(batch.Events)) - batch.ACK() - } - } else { - for batch := range s.ReceiveChan() { - if !rl.Wait() { - break - } - log.Printf("Received batch of %v events\n", len(batch.Events)) - batch.ACK() - } - } -} - -func newRateLimiter(limit, burstLimit int, unit time.Duration) *rateLimiter { - interval := time.Duration(uint64(unit) / uint64(limit)) - ticker := time.NewTicker(interval) - ch := make(chan time.Time, burstLimit) - r := &rateLimiter{ticker: ticker, ch: ch} - - go func() { - defer close(ch) - for t := range ticker.C { - ch <- t - } - }() - - return r -} - -func (r *rateLimiter) Stop() { - r.ticker.Stop() -} - -func (r *rateLimiter) Wait() bool { - _, ok := <-r.ch - return ok -} diff --git a/vendor/github.com/elastic/go-lumber/cmd/tst-send/main.go b/vendor/github.com/elastic/go-lumber/cmd/tst-send/main.go deleted file mode 100644 index 0db91895dce..00000000000 --- a/vendor/github.com/elastic/go-lumber/cmd/tst-send/main.go +++ /dev/null @@ -1,110 +0,0 @@ -// Test client pushing precomputed batch of events. -// -// For list of known command line flags run: -// -// tst-send -h -package main - -import ( - "expvar" - "flag" - "log" - "math/rand" - "net/http" - "os" - "strings" - "time" - - "github.com/elastic/go-lumber/client/v2" -) - -func main() { - connect := flag.String("c", "localhost:5044", "Remote address") - compress := flag.Int("compress", 3, "Compression level (0-9)") - timeout := flag.Duration("timeout", 30*time.Second, "Connection timeouts") - batchSize := flag.Int("batch", 2048, "Batch size") - pipelined := flag.Int("pipeline", 0, "enabled pipeline mode with number of batches kept in pipeline") - httpprof := flag.String("httpprof", ":6060", "HTTP profiling server address") - flag.Parse() - - stat := expvar.NewInt("ACKed") - - batch := make([]interface{}, *batchSize) - for i := range batch { - batch[i] = makeEvent() - } - L := int64(len(batch)) - - go func() { - log.Printf("Listening: %v\n", *httpprof) - http.ListenAndServe(*httpprof, nil) - }() - - log.Printf("connect to: %v", *connect) - if *pipelined == 0 { - cl, err := v2.SyncDial(*connect, - v2.CompressionLevel(*compress), - v2.Timeout(*timeout)) - if err != nil { - log.Println(err) - os.Exit(1) - } - - for { - _, err := cl.Send(batch) - if err != nil { - log.Println(err) - return - } - - stat.Add(L) - } - } else { - cl, err := v2.AsyncDial(*connect, - *pipelined, - v2.CompressionLevel(*compress), - v2.Timeout(*timeout)) - if err != nil { - log.Println(err) - os.Exit(1) - } - - for { - cb := func(_ uint32, err error) { - if err != nil { - log.Println(err) - return - } - - stat.Add(L) - } - - err := cl.Send(cb, batch) - if err != nil { - log.Println(err) - return - } - } - } -} - -var ( - text = strings.Split(`Lorem ipsum dolor sit amet, consetetur sadipscing elitr, -sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, -sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet -clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod -tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At -vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, -no sea takimata sanctus est Lorem ipsum dolor sit amet.`, "\n") -) - -func makeEvent() interface{} { - line := text[rand.Intn(len(text))] - return map[string]interface{}{ - "@timestamp": time.Now(), - "type": "filebeat", - "message": line, - "offset": 1000, - } -} diff --git a/vendor/github.com/elastic/go-lumber/doc.go b/vendor/github.com/elastic/go-lumber/doc.go deleted file mode 100644 index 37078e15e91..00000000000 --- a/vendor/github.com/elastic/go-lumber/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package lumber provides lumberjack client and server implementations. -package lumber diff --git a/vendor/github.com/elastic/go-lumber/glide.yaml b/vendor/github.com/elastic/go-lumber/glide.yaml deleted file mode 100644 index d1ba1d1d44a..00000000000 --- a/vendor/github.com/elastic/go-lumber/glide.yaml +++ /dev/null @@ -1,5 +0,0 @@ -package: github.com/elastic/go-lumber -import: -- package: github.com/klauspost/compress - subpackages: - - zlib diff --git a/vendor/github.com/elastic/go-lumber/protocol/doc.go b/vendor/github.com/elastic/go-lumber/protocol/doc.go deleted file mode 100644 index cc5a930d0d3..00000000000 --- a/vendor/github.com/elastic/go-lumber/protocol/doc.go +++ /dev/null @@ -1,3 +0,0 @@ -// Package protocol provides common protocol definitions used by client and -// server implementations. -package protocol diff --git a/vendor/github.com/elastic/go-lumber/protocol/v1/protocol.go b/vendor/github.com/elastic/go-lumber/protocol/v1/protocol.go deleted file mode 100644 index 80caed4da91..00000000000 --- a/vendor/github.com/elastic/go-lumber/protocol/v1/protocol.go +++ /dev/null @@ -1,15 +0,0 @@ -// Package v1 proviades common lumberjack protocol version 1 definitions. -package v1 - -// Version declares the protocol revision supported by this package. -const Version = 1 - -// Lumberjack protocol version 1 message types. -const ( - CodeVersion byte = '1' - - CodeWindowSize byte = 'W' - CodeDataFrame byte = 'D' - CodeCompressed byte = 'C' - CodeACK byte = 'A' -) diff --git a/vendor/github.com/elastic/go-lumber/server/doc.go b/vendor/github.com/elastic/go-lumber/server/doc.go deleted file mode 100644 index bf38ef1127b..00000000000 --- a/vendor/github.com/elastic/go-lumber/server/doc.go +++ /dev/null @@ -1,3 +0,0 @@ -// Package server provides lumberjack server implementations. The Server -// implementation supports multiplexing different protocol versions. -package server diff --git a/vendor/github.com/elastic/go-lumber/server/mux.go b/vendor/github.com/elastic/go-lumber/server/mux.go deleted file mode 100644 index ba5727b1477..00000000000 --- a/vendor/github.com/elastic/go-lumber/server/mux.go +++ /dev/null @@ -1,64 +0,0 @@ -package server - -import ( - "errors" - "net" -) - -type muxListener struct { - net.Listener - ch chan net.Conn -} - -type muxConn struct { - net.Conn -} - -type versionConn struct { - net.Conn - parent *muxConn - v byte -} - -var ( - // ErrListenerClosed indicates the multiplexing network listener being closed. - ErrListenerClosed = errors.New("listener closed") -) - -func newMuxListener(l net.Listener) *muxListener { - return &muxListener{l, make(chan net.Conn, 1)} -} - -// Accept waits for and returns the next connection to the listener. -func (l *muxListener) Accept() (net.Conn, error) { - conn, ok := <-l.ch - if !ok { - return nil, ErrListenerClosed - } - return conn, nil -} - -// Close closes the listener. -// Any blocked Accept operations will be unblocked and return errors. -func (l *muxListener) Close() error { - close(l.ch) - return nil -} - -func newMuxConn(v byte, c net.Conn) *muxConn { - mc := &muxConn{} - vc := &versionConn{c, mc, v} - mc.Conn = vc - return mc -} - -func (vc *versionConn) Read(buf []byte) (int, error) { - if len(buf) == 0 { - return 0, nil - } - - buf[0] = vc.v - vc.parent.Conn = vc.Conn - n, err := vc.Conn.Read(buf[1:]) - return n + 1, err -} diff --git a/vendor/github.com/elastic/go-lumber/server/opts.go b/vendor/github.com/elastic/go-lumber/server/opts.go deleted file mode 100644 index 90d0b435bdb..00000000000 --- a/vendor/github.com/elastic/go-lumber/server/opts.go +++ /dev/null @@ -1,108 +0,0 @@ -package server - -import ( - "crypto/tls" - "encoding/json" - "errors" - "time" - - "github.com/elastic/go-lumber/lj" -) - -// Option type for configuring server run options. -type Option func(*options) error - -type options struct { - timeout time.Duration - keepalive time.Duration - decoder jsonDecoder - tls *tls.Config - v1 bool - v2 bool - ch chan *lj.Batch -} - -type jsonDecoder func([]byte, interface{}) error - -// Keepalive configures the keepalive interval returning an ACK of length 0 to -// lumberjack client, notifying clients the batch being still active. -func Keepalive(kl time.Duration) Option { - return func(opt *options) error { - if kl < 0 { - return errors.New("keepalive must not be negative") - } - opt.keepalive = kl - return nil - } -} - -// Timeout configures server network timeouts. -func Timeout(to time.Duration) Option { - return func(opt *options) error { - if to < 0 { - return errors.New("timeouts must not be negative") - } - opt.timeout = to - return nil - } -} - -// TLS enables and configures TLS support in lumberjack server. -func TLS(tls *tls.Config) Option { - return func(opt *options) error { - opt.tls = tls - return nil - } -} - -// Channel option is used to register custom channel received batches will be -// forwarded to. -func Channel(c chan *lj.Batch) Option { - return func(opt *options) error { - opt.ch = c - return nil - } -} - -// JSONDecoder sets an alternative json decoder for parsing events if protocol -// version 2 is enabled. The default is json.Unmarshal. -func JSONDecoder(decoder func([]byte, interface{}) error) Option { - return func(opt *options) error { - opt.decoder = decoder - return nil - } -} - -// V1 enables lumberjack protocol version 1. -func V1(b bool) Option { - return func(opt *options) error { - opt.v1 = b - return nil - } -} - -// V2 enables lumberjack protocol version 2. -func V2(b bool) Option { - return func(opt *options) error { - opt.v2 = b - return nil - } -} - -func applyOptions(opts []Option) (options, error) { - o := options{ - decoder: json.Unmarshal, - timeout: 30 * time.Second, - keepalive: 3 * time.Second, - v1: true, - v2: true, - tls: nil, - } - - for _, opt := range opts { - if err := opt(&o); err != nil { - return o, err - } - } - return o, nil -} diff --git a/vendor/github.com/elastic/go-lumber/server/server.go b/vendor/github.com/elastic/go-lumber/server/server.go deleted file mode 100644 index 97c9a26d65f..00000000000 --- a/vendor/github.com/elastic/go-lumber/server/server.go +++ /dev/null @@ -1,248 +0,0 @@ -package server - -import ( - "crypto/tls" - "errors" - "io" - "net" - "sync" - - "github.com/elastic/go-lumber/lj" - "github.com/elastic/go-lumber/log" - "github.com/elastic/go-lumber/server/v1" - "github.com/elastic/go-lumber/server/v2" -) - -// Server serves multiple lumberjack clients. -type Server interface { - // ReceiveChan returns a channel all received batch requests will be made - // available on. Batches read from channel must be ACKed. - ReceiveChan() <-chan *lj.Batch - - // Receive returns the next received batch from the receiver channel. - // Batches returned by Receive must be ACKed. - Receive() *lj.Batch - - // Close stops the listener, closes all active connections and closes the - // receiver channel returned from ReceiveChan(). - Close() error -} - -type server struct { - ch chan *lj.Batch - ownCH bool - - done chan struct{} - wg sync.WaitGroup - - netListener net.Listener - mux []muxServer -} - -type muxServer struct { - mux byte - l *muxListener - server Server -} - -var ( - // ErrNoVersionEnabled indicates no lumberjack protocol version being enabled - // when instantiating a server. - ErrNoVersionEnabled = errors.New("No protocol version enabled") -) - -// NewWithListener creates a new Server using an existing net.Listener. Use -// options V1 and V2 to enable wanted protocol versions. -func NewWithListener(l net.Listener, opts ...Option) (Server, error) { - return newServer(l, opts...) -} - -// ListenAndServeWith uses binder to create a listener for establishing a lumberjack -// endpoint. -// Use options V1 and V2 to enable wanted protocol versions. -func ListenAndServeWith( - binder func(network, addr string) (net.Listener, error), - addr string, - opts ...Option, -) (Server, error) { - l, err := binder("tcp", addr) - if err != nil { - return nil, err - } - s, err := NewWithListener(l, opts...) - if err != nil { - l.Close() - } - return s, err -} - -// ListenAndServe listens on the TCP network address addr and handles batch -// requests from accepted lumberjack clients. -// Use options V1 and V2 to enable wanted protocol versions. -func ListenAndServe(addr string, opts ...Option) (Server, error) { - o, err := applyOptions(opts) - if err != nil { - return nil, err - } - - binder := net.Listen - if o.tls != nil { - binder = func(network, addr string) (net.Listener, error) { - return tls.Listen(network, addr, o.tls) - } - } - - return ListenAndServeWith(binder, addr, opts...) -} - -// Close stops the listener, closes all active connections and closes the -// receiver channel returned from ReceiveChan() -func (s *server) Close() error { - close(s.done) - for _, m := range s.mux { - m.server.Close() - } - err := s.netListener.Close() - s.wg.Wait() - if s.ownCH { - close(s.ch) - } - return err -} - -// ReceiveChan returns a channel all received batch requests will be made -// available on. Batches read from channel must be ACKed. -func (s *server) ReceiveChan() <-chan *lj.Batch { - return s.ch -} - -// Receive returns the next received batch from the receiver channel. -// Batches returned by Receive must be ACKed. -func (s *server) Receive() *lj.Batch { - select { - case <-s.done: - return nil - case b := <-s.ch: - return b - } -} - -func newServer(l net.Listener, opts ...Option) (Server, error) { - cfg, err := applyOptions(opts) - if err != nil { - return nil, err - } - - var servers []func(net.Listener) (Server, byte, error) - - log.Printf("Server config: %#v", cfg) - - if cfg.v1 { - servers = append(servers, func(l net.Listener) (Server, byte, error) { - s, err := v1.NewWithListener(l, - v1.Timeout(cfg.timeout), - v1.Channel(cfg.ch), - v1.TLS(cfg.tls)) - return s, '1', err - }) - } - if cfg.v2 { - servers = append(servers, func(l net.Listener) (Server, byte, error) { - s, err := v2.NewWithListener(l, - v2.Keepalive(cfg.keepalive), - v2.Timeout(cfg.timeout), - v2.Channel(cfg.ch), - v2.TLS(cfg.tls), - v2.JSONDecoder(cfg.decoder)) - return s, '2', err - }) - } - - if len(servers) == 0 { - return nil, ErrNoVersionEnabled - } - if len(servers) == 1 { - s, _, err := servers[0](l) - return s, err - } - - ownCH := false - if cfg.ch == nil { - ownCH = true - cfg.ch = make(chan *lj.Batch, 128) - } - - mux := make([]muxServer, len(servers)) - for i, mk := range servers { - muxL := newMuxListener(l) - log.Printf("mk: %v", i) - s, b, err := mk(muxL) - if err != nil { - return nil, err - } - - mux[i] = muxServer{ - mux: b, - l: muxL, - server: s, - } - } - - s := &server{ - ch: cfg.ch, - ownCH: ownCH, - netListener: l, - mux: mux, - done: make(chan struct{}), - } - s.wg.Add(1) - go s.run() - - return s, nil -} - -func (s *server) run() { - defer s.wg.Done() - for { - client, err := s.netListener.Accept() - if err != nil { - break - } - - s.handle(client) - } -} - -func (s *server) handle(client net.Conn) { - // read first byte and decide multiplexer - - sig := make(chan struct{}) - - go func() { - var buf [1]byte - if _, err := io.ReadFull(client, buf[:]); err != nil { - return - } - close(sig) - - for _, m := range s.mux { - if m.mux != buf[0] { - continue - } - - conn := newMuxConn(buf[0], client) - m.l.ch <- conn - return - } - client.Close() - }() - - go func() { - select { - case <-sig: - case <-s.done: - // close connection if server being shut down - client.Close() - } - }() -} diff --git a/vendor/github.com/elastic/go-lumber/server/v1/doc.go b/vendor/github.com/elastic/go-lumber/server/v1/doc.go deleted file mode 100644 index 053bd39a73d..00000000000 --- a/vendor/github.com/elastic/go-lumber/server/v1/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package v1 implements the lumberjack server supporting protocol version 1. -package v1 diff --git a/vendor/github.com/elastic/go-lumber/server/v1/opts.go b/vendor/github.com/elastic/go-lumber/server/v1/opts.go deleted file mode 100644 index c77606b9eeb..00000000000 --- a/vendor/github.com/elastic/go-lumber/server/v1/opts.go +++ /dev/null @@ -1,61 +0,0 @@ -package v1 - -import ( - "crypto/tls" - "errors" - "time" - - "github.com/elastic/go-lumber/lj" -) - -// Option type for configuring server run options. -type Option func(*options) error - -type options struct { - timeout time.Duration - tls *tls.Config - ch chan *lj.Batch -} - -// Timeout configures server network timeouts. -func Timeout(to time.Duration) Option { - return func(opt *options) error { - if to < 0 { - return errors.New("timeouts must not be negative") - } - opt.timeout = to - return nil - } -} - -// TLS enables and configures TLS support in lumberjack server. -// Protocol version 1 mandates TLS being enabled. -func TLS(tls *tls.Config) Option { - return func(opt *options) error { - opt.tls = tls - return nil - } -} - -// Channel option is used to register custom channel received batches will be -// forwarded to. -func Channel(c chan *lj.Batch) Option { - return func(opt *options) error { - opt.ch = c - return nil - } -} - -func applyOptions(opts []Option) (options, error) { - o := options{ - timeout: 30 * time.Second, - tls: nil, - } - - for _, opt := range opts { - if err := opt(&o); err != nil { - return o, err - } - } - return o, nil -} diff --git a/vendor/github.com/elastic/go-lumber/server/v1/reader.go b/vendor/github.com/elastic/go-lumber/server/v1/reader.go deleted file mode 100644 index 0bf542a0f2b..00000000000 --- a/vendor/github.com/elastic/go-lumber/server/v1/reader.go +++ /dev/null @@ -1,181 +0,0 @@ -package v1 - -import ( - "bufio" - "encoding/binary" - "io" - "net" - "time" - - "github.com/klauspost/compress/zlib" - - "github.com/elastic/go-lumber/lj" - "github.com/elastic/go-lumber/log" - protocol "github.com/elastic/go-lumber/protocol/v1" -) - -type reader struct { - in *bufio.Reader - conn net.Conn - timeout time.Duration - buf []byte -} - -func newReader(c net.Conn, to time.Duration) *reader { - r := &reader{ - in: bufio.NewReader(c), - conn: c, - timeout: to, - buf: make([]byte, 0, 64), - } - return r -} - -func (r *reader) ReadBatch() (*lj.Batch, error) { - // 1. read window size - var win [6]byte - _ = r.conn.SetReadDeadline(time.Time{}) // wait for next batch without timeout - if err := readFull(r.in, win[:]); err != nil { - return nil, err - } - - if win[0] != protocol.CodeVersion && win[1] != protocol.CodeWindowSize { - log.Printf("Expected window from. Received %v", win[0:1]) - return nil, ErrProtocolError - } - - count := int(binary.BigEndian.Uint32(win[2:])) - if count == 0 { - return nil, nil - } - - if err := r.conn.SetReadDeadline(time.Now().Add(r.timeout)); err != nil { - return nil, err - } - - events, err := r.readEvents(r.in, make([]interface{}, 0, count)) - if events == nil || err != nil { - log.Printf("readEvents failed with: %v", err) - return nil, err - } - - return lj.NewBatch(events), nil -} - -func (r *reader) readEvents(in io.Reader, events []interface{}) ([]interface{}, error) { - for len(events) < cap(events) { - var hdr [2]byte - if err := readFull(in, hdr[:]); err != nil { - return nil, err - } - - if hdr[0] != protocol.CodeVersion { - log.Println("Event protocol version error") - return nil, ErrProtocolError - } - - switch hdr[1] { - case protocol.CodeDataFrame: - event, err := r.readEvent(in) - if err != nil { - log.Printf("failed to read json event with: %v\n", err) - return nil, err - } - events = append(events, event) - case protocol.CodeCompressed: - readEvents, err := r.readCompressed(in, events) - if err != nil { - return nil, err - } - events = readEvents - default: - log.Printf("Unknown frame type: %v", hdr[1]) - return nil, ErrProtocolError - } - } - return events, nil -} - -func (r *reader) readCompressed(in io.Reader, events []interface{}) ([]interface{}, error) { - var hdr [4]byte - if err := readFull(in, hdr[:]); err != nil { - return nil, err - } - - payloadSz := binary.BigEndian.Uint32(hdr[:]) - limit := io.LimitReader(in, int64(payloadSz)) - reader, err := zlib.NewReader(limit) - if err != nil { - log.Printf("Failed to initialized zlib reader %v\n", err) - return nil, err - } - - events, err = r.readEvents(reader, events) - if err != nil { - _ = reader.Close() - return nil, err - } - if err := reader.Close(); err != nil { - return nil, err - } - - // consume final bytes from limit reader - for { - var tmp [16]byte - if _, err := limit.Read(tmp[:]); err != nil { - if err != io.EOF { - return nil, err - } - break - } - } - return events, nil -} - -func (r *reader) readEvent(in io.Reader) (interface{}, error) { - var hdr [8]byte - if err := readFull(in, hdr[:]); err != nil { - return nil, err - } - - readString := func() (string, error) { - var bufBytes [4]byte - if err := readFull(in, bufBytes[:]); err != nil { - return "", err - } - - bytes := int(binary.BigEndian.Uint32(bufBytes[:])) - if bytes > len(r.buf) { - r.buf = make([]byte, bytes) - } - - buf := r.buf[:bytes] - if err := readFull(in, buf); err != nil { - return "", err - } - - return string(buf[:]), nil - } - - event := map[string]string{} - pairs := int(binary.BigEndian.Uint32(hdr[4:])) - for i := 0; i < pairs; i++ { - k, err := readString() - if err != nil { - return nil, err - } - - v, err := readString() - if err != nil { - return nil, err - } - - event[k] = v - } - return event, nil -} - -func readFull(in io.Reader, buf []byte) error { - _, err := io.ReadFull(in, buf) - return err -} diff --git a/vendor/github.com/elastic/go-lumber/server/v1/server.go b/vendor/github.com/elastic/go-lumber/server/v1/server.go deleted file mode 100644 index 311b803b857..00000000000 --- a/vendor/github.com/elastic/go-lumber/server/v1/server.go +++ /dev/null @@ -1,90 +0,0 @@ -package v1 - -import ( - "errors" - "net" - - "github.com/elastic/go-lumber/lj" - "github.com/elastic/go-lumber/server/internal" -) - -// Server serves multiple lumberjack clients supporting protocol version 1. -type Server struct { - s *internal.Server -} - -var ( - // ErrProtocolError is returned if an protocol error was detected in the - // conversation with lumberjack server. - ErrProtocolError = errors.New("lumberjack protocol error") -) - -// NewWithListener creates a new Server using an existing net.Listener. -func NewWithListener(l net.Listener, opts ...Option) (*Server, error) { - return newServer(opts, func(cfg internal.Config) (*internal.Server, error) { - return internal.NewWithListener(l, cfg) - }) -} - -// ListenAndServeWith uses binder to create a listener for establishing a lumberjack -// endpoint. -func ListenAndServeWith( - binder func(network, addr string) (net.Listener, error), - addr string, - opts ...Option, -) (*Server, error) { - return newServer(opts, func(cfg internal.Config) (*internal.Server, error) { - return internal.ListenAndServeWith(binder, addr, cfg) - }) -} - -// ListenAndServe listens on the TCP network address addr and handles batch -// requests from accepted lumberjack clients. -func ListenAndServe(addr string, opts ...Option) (*Server, error) { - return newServer(opts, func(cfg internal.Config) (*internal.Server, error) { - return internal.ListenAndServe(addr, cfg) - }) -} - -// ReceiveChan returns a channel all received batch requests will be made -// available on. Batches read from channel must be ACKed. -func (s *Server) ReceiveChan() <-chan *lj.Batch { - return s.s.ReceiveChan() -} - -// Receive returns the next received batch from the receiver channel. -// Batches returned by Receive must be ACKed. -func (s *Server) Receive() *lj.Batch { - return s.s.Receive() -} - -// Close stops the listener, closes all active connections and closes the -// receiver channel returned from ReceiveChan(). -func (s *Server) Close() error { - return s.s.Close() -} - -func newServer( - opts []Option, - mk func(cfg internal.Config) (*internal.Server, error), -) (*Server, error) { - o, err := applyOptions(opts) - if err != nil { - return nil, err - } - - mkRW := func(client net.Conn) (internal.BatchReader, internal.ACKWriter, error) { - r := newReader(client, o.timeout) - w := newWriter(client, o.timeout) - return r, w, nil - } - - cfg := internal.Config{ - TLS: o.tls, - Handler: internal.DefaultHandler(0, mkRW), - Channel: o.ch, - } - - s, err := mk(cfg) - return &Server{s}, err -} diff --git a/vendor/github.com/elastic/go-lumber/server/v1/writer.go b/vendor/github.com/elastic/go-lumber/server/v1/writer.go deleted file mode 100644 index d6a01cf195f..00000000000 --- a/vendor/github.com/elastic/go-lumber/server/v1/writer.go +++ /dev/null @@ -1,44 +0,0 @@ -package v1 - -import ( - "encoding/binary" - "net" - "time" - - protocol "github.com/elastic/go-lumber/protocol/v1" -) - -type writer struct { - c net.Conn - to time.Duration -} - -func newWriter(c net.Conn, to time.Duration) *writer { - return &writer{c: c, to: to} -} - -func (w *writer) ACK(n int) error { - var buf [6]byte - buf[0] = protocol.CodeVersion - buf[1] = protocol.CodeACK - binary.BigEndian.PutUint32(buf[2:], uint32(n)) - - if err := w.c.SetWriteDeadline(time.Now().Add(w.to)); err != nil { - return err - } - - tmp := buf[:] - for len(tmp) > 0 { - n, err := w.c.Write(tmp) - if err != nil { - return err - } - tmp = tmp[n:] - } - return nil -} - -func (w *writer) Keepalive(n int) error { - // keepalive not supported by v1 - return nil -} diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_nested_w_meta.golden deleted file mode 100644 index cd68c964134..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -no value in array at 5 accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_nested_wo_meta.golden deleted file mode 100644 index bb72fb62085..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -no value in array at 5 accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_w_meta.golden deleted file mode 100644 index 8f88288a89a..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -no value in array at 5 accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_wo_meta.golden deleted file mode 100644 index 7acba860836..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_missing_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -no value in array at 5 accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_nested_w_meta.golden deleted file mode 100644 index 75fd97ee534..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -index '5' out of range (length=1) accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_nested_wo_meta.golden deleted file mode 100644 index 159bfa872d8..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -index '5' out of range (length=1) accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_w_meta.golden deleted file mode 100644 index fc15ea8e6e5..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -index '5' out of range (length=1) accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_wo_meta.golden deleted file mode 100644 index 123c602349f..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/arr_oob_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -index '5' out of range (length=1) accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_nested_w_meta.golden deleted file mode 100644 index eb437c04aab..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -array of length 3 does not meet required length 10 accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_nested_wo_meta.golden deleted file mode 100644 index f648b6215f2..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -array of length 3 does not meet required length 10 accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_w_meta.golden deleted file mode 100644 index 67b46d0cef6..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -array of length 3 does not meet required length 10 accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_wo_meta.golden deleted file mode 100644 index 0827dd7c2d3..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/array_size_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -array of length 3 does not meet required length 10 accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_nested_w_meta.golden deleted file mode 100644 index a8bdc1a3f26..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -can not convert 'int' into 'bool' accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_nested_wo_meta.golden deleted file mode 100644 index 56ce2131139..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -can not convert 'int' into 'bool' accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_w_meta.golden deleted file mode 100644 index 0f3a52abf07..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -can not convert 'int' into 'bool' accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_wo_meta.golden deleted file mode 100644 index b49df3f8031..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/conversion_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -can not convert 'int' into 'bool' accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_nested_w_meta.golden deleted file mode 100644 index 75cd4c5840c..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -duplicate key accessing 'nested.test' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_nested_wo_meta.golden deleted file mode 100644 index 34e021a5ff4..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -duplicate key accessing 'nested.test' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_w_meta.golden deleted file mode 100644 index 846f6699439..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -duplicate key accessing 'test' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_wo_meta.golden deleted file mode 100644 index da92c0dc095..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/duplicate_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -duplicate key accessing 'test' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_nested_w_meta.golden deleted file mode 100644 index a4a84e76859..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -required 'object', but found 'int' in field 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_nested_wo_meta.golden deleted file mode 100644 index 9750e74e410..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -required 'object', but found 'int' in field 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_w_meta.golden deleted file mode 100644 index f78f6de582a..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -required 'object', but found 'int' in field '' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_wo_meta.golden deleted file mode 100644 index e436c522e19..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/expected_object_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -required 'object', but found 'int' in field '' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_nested_w_meta.golden deleted file mode 100644 index ba3c9e76b3b..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) require map or struct when inling 'ABC' (string) accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_nested_wo_meta.golden deleted file mode 100644 index c4deeefa1b7..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) require map or struct when inling 'ABC' (string) accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_w_meta.golden deleted file mode 100644 index 256aa28c1b2..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) require map or struct when inling 'ABC' (string) accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_wo_meta.golden deleted file mode 100644 index 639bef19e56..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/inline_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) require map or struct when inling 'ABC' (string) accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_duration_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_duration_w_meta.golden deleted file mode 100644 index cf522a9b10b..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_duration_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -time: unknown unit hour in duration 1 hour accessing 'timeout' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_duration_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_duration_wo_meta.golden deleted file mode 100644 index e5224038fa7..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_duration_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -time: unknown unit hour in duration 1 hour accessing 'timeout' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_regexp_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_regexp_w_meta.golden deleted file mode 100644 index 3e6395d9b22..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_regexp_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -Failed to compile regular expression with 'error parsing regexp: missing closing ]: `[`' accessing 'regex' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_regexp_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_regexp_wo_meta.golden deleted file mode 100644 index 8531d6859ce..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_regexp_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -Failed to compile regular expression with 'error parsing regexp: missing closing ]: `[`' accessing 'regex' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_nested_w_meta.golden deleted file mode 100644 index 0a630413531..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) string key required when merging into 'map[int]interface {}' accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_nested_wo_meta.golden deleted file mode 100644 index a0c43947325..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) string key required when merging into 'map[int]interface {}' accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_w_meta.golden deleted file mode 100644 index ca1c111794f..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) string key required when merging into 'map[int]interface {}' accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_wo_meta.golden deleted file mode 100644 index d4dfc174e3d..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_merge_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) string key required when merging into 'map[int]interface {}' accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_top_level_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_top_level_w_meta.golden deleted file mode 100644 index 4c1dfdaf756..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_top_level_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -type 'string' is not supported on top level of config, only dictionary or list (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_top_level_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_top_level_wo_meta.golden deleted file mode 100644 index 2325f15e7e5..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_top_level_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -type 'string' is not supported on top level of config, only dictionary or list \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_nested_w_meta.golden deleted file mode 100644 index 165a4586aac..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) string key required when unpacking into 'map[int]interface {}' accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_nested_wo_meta.golden deleted file mode 100644 index a951d722222..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) string key required when unpacking into 'map[int]interface {}' accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_w_meta.golden deleted file mode 100644 index 7067b2854d3..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) string key required when unpacking into 'map[int]interface {}' accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_wo_meta.golden deleted file mode 100644 index 6f9a311ab6c..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/invalid_type_unpack_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) string key required when unpacking into 'map[int]interface {}' accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_nested_w_meta.golden deleted file mode 100644 index 98011576e8e..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -custom error message accessing 'nested.field' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_nested_wo_meta.golden deleted file mode 100644 index 333f107e5e4..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -custom error message accessing 'nested.field' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_w_meta.golden deleted file mode 100644 index a18bcf741d3..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -custom error message accessing 'field' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_wo_meta.golden deleted file mode 100644 index ebbd13c9cb5..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_msg_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -custom error message accessing 'field' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_nested_w_meta.golden deleted file mode 100644 index 49ba5f670df..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -missing field accessing 'nested.field' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_nested_wo_meta.golden deleted file mode 100644 index 7341745c109..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -missing field accessing 'nested.field' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_w_meta.golden deleted file mode 100644 index 0a7300f67f9..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -missing field accessing 'field' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_wo_meta.golden deleted file mode 100644 index cba44ad8902..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/missing_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -missing field accessing 'field' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/nil_config_error.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/nil_config_error.golden deleted file mode 100644 index 9be5c8ddf92..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/nil_config_error.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) config is nil \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/nil_value_error.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/nil_value_error.golden deleted file mode 100644 index 965dc63b255..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/nil_value_error.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) nil value is invalid \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/parse_splice_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/parse_splice_w_meta.golden deleted file mode 100644 index 0959820095f..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/parse_splice_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -unterminated brace parsing splice accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/pointer_required.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/pointer_required.golden deleted file mode 100644 index 7ffa35551af..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/pointer_required.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) pointer required for unpacking configurations \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_nested_w_meta.golden deleted file mode 100644 index 0dba991ee12..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) require map or struct when squash merging 'ABC' (string) accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_nested_wo_meta.golden deleted file mode 100644 index b3e319602a2..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) require map or struct when squash merging 'ABC' (string) accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_w_meta.golden deleted file mode 100644 index 9bb6dc7c19b..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) require map or struct when squash merging 'ABC' (string) accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_wo_meta.golden deleted file mode 100644 index 66284730540..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/squash_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) require map or struct when squash merging 'ABC' (string) accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_nested_w_meta.golden deleted file mode 100644 index 4671097a062..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) value of type 'int' not convertible into unsupported go type 'struct {}' accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_nested_wo_meta.golden deleted file mode 100644 index 2b07ca3844b..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) value of type 'int' not convertible into unsupported go type 'struct {}' accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_w_meta.golden deleted file mode 100644 index 53f5addcf22..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) value of type 'int' not convertible into unsupported go type 'struct {}' accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_wo_meta.golden deleted file mode 100644 index 626111782e7..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/to_type_not_supported_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) value of type 'int' not convertible into unsupported go type 'struct {}' accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_nested_w_meta.golden deleted file mode 100644 index fb58f015b5d..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) unspported input type (int) with value '1' accessing 'nested' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_nested_wo_meta.golden deleted file mode 100644 index 90c13ba2f7e..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) unspported input type (int) with value '1' accessing 'nested' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_w_meta.golden deleted file mode 100644 index 60962d03e37..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) unspported input type (int) with value '1' accessing config (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_wo_meta.golden deleted file mode 100644 index cc31cdd9e02..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/unsupported_input_type_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -(assert) unspported input type (int) with value '1' accessing config \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_nested_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_nested_w_meta.golden deleted file mode 100644 index 9606efbf03c..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_nested_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -invalid value accessing 'nested.test' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_nested_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_nested_wo_meta.golden deleted file mode 100644 index 205c9e8de55..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_nested_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -invalid value accessing 'nested.test' \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_w_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_w_meta.golden deleted file mode 100644 index 38e0a5301d1..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_w_meta.golden +++ /dev/null @@ -1 +0,0 @@ -invalid value accessing 'test' (source:'test.source') \ No newline at end of file diff --git a/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_wo_meta.golden b/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_wo_meta.golden deleted file mode 100644 index f137796e78c..00000000000 --- a/vendor/github.com/elastic/go-ucfg/testdata/error/message/validation_wo_meta.golden +++ /dev/null @@ -1 +0,0 @@ -invalid value accessing 'test' \ No newline at end of file diff --git a/vendor/github.com/elastic/gosigar/fakes/fake_sigar.go b/vendor/github.com/elastic/gosigar/fakes/fake_sigar.go deleted file mode 100644 index 7d2414a1dbf..00000000000 --- a/vendor/github.com/elastic/gosigar/fakes/fake_sigar.go +++ /dev/null @@ -1,72 +0,0 @@ -package fakes - -import ( - "time" - - sigar "github.com/elastic/gosigar" -) - -type FakeSigar struct { - LoadAverage sigar.LoadAverage - LoadAverageErr error - - Mem sigar.Mem - MemErr error - - Swap sigar.Swap - SwapErr error - - FileSystemUsage sigar.FileSystemUsage - FileSystemUsageErr error - FileSystemUsagePath string - - CollectCpuStatsCpuCh chan sigar.Cpu - CollectCpuStatsStopCh chan struct{} -} - -func NewFakeSigar() *FakeSigar { - return &FakeSigar{ - CollectCpuStatsCpuCh: make(chan sigar.Cpu, 1), - CollectCpuStatsStopCh: make(chan struct{}), - } -} - -func (f *FakeSigar) CollectCpuStats(collectionInterval time.Duration) (<-chan sigar.Cpu, chan<- struct{}) { - samplesCh := make(chan sigar.Cpu, 1) - stopCh := make(chan struct{}) - - go func() { - for { - select { - case cpuStat := <-f.CollectCpuStatsCpuCh: - select { - case samplesCh <- cpuStat: - default: - // Include default to avoid channel blocking - } - - case <-f.CollectCpuStatsStopCh: - return - } - } - }() - - return samplesCh, stopCh -} - -func (f *FakeSigar) GetLoadAverage() (sigar.LoadAverage, error) { - return f.LoadAverage, f.LoadAverageErr -} - -func (f *FakeSigar) GetMem() (sigar.Mem, error) { - return f.Mem, f.MemErr -} - -func (f *FakeSigar) GetSwap() (sigar.Swap, error) { - return f.Swap, f.SwapErr -} - -func (f *FakeSigar) GetFileSystemUsage(path string) (sigar.FileSystemUsage, error) { - f.FileSystemUsagePath = path - return f.FileSystemUsage, f.FileSystemUsageErr -} diff --git a/vendor/github.com/elastic/gosigar/psnotify/README.md b/vendor/github.com/elastic/gosigar/psnotify/README.md deleted file mode 100644 index dd34ebcfbe9..00000000000 --- a/vendor/github.com/elastic/gosigar/psnotify/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# Process notifications for Go - -## Overview - -The psnotify package captures process events from the kernel via -kqueue on Darwin/BSD and the netlink connector on Linux. - -The psnotify API is similar to the -[fsnotify](https://github.com/howeyc/fsnotify) package. - -Example: -```go - watcher, err := psnotify.NewWatcher() - if err != nil { - log.Fatal(err) - } - - // Process events - go func() { - for { - select { - case ev := <-watcher.Fork: - log.Println("fork event:", ev) - case ev := <-watcher.Exec: - log.Println("exec event:", ev) - case ev := <-watcher.Exit: - log.Println("exit event:", ev) - case err := <-watcher.Error: - log.Println("error:", err) - } - } - }() - - err = watcher.Watch(os.Getpid(), psnotify.PROC_EVENT_ALL) - if err != nil { - log.Fatal(err) - } - - /* ... do stuff ... */ - watcher.Close() -``` - -## Supported platforms - -Currently targeting modern flavors of Darwin and Linux. -Should work on BSD, but untested. - -## License - -Apache 2.0 diff --git a/vendor/github.com/elastic/gosigar/psnotify/psnotify.go b/vendor/github.com/elastic/gosigar/psnotify/psnotify.go deleted file mode 100644 index 5fb6f8c3081..00000000000 --- a/vendor/github.com/elastic/gosigar/psnotify/psnotify.go +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright (c) 2012 VMware, Inc. - -// +build darwin freebsd netbsd openbsd linux - -package psnotify - -import ( - "errors" - "fmt" -) - -type ProcEventFork struct { - ParentPid int // Pid of the process that called fork() - ChildPid int // Child process pid created by fork() -} - -type ProcEventExec struct { - Pid int // Pid of the process that called exec() -} - -type ProcEventExit struct { - Pid int // Pid of the process that called exit() -} - -type watch struct { - flags uint32 // Saved value of Watch() flags param -} - -type eventListener interface { - close() error // Watch.Close() closes the OS specific listener -} - -type Watcher struct { - listener eventListener // OS specifics (kqueue or netlink) - watches map[int]*watch // Map of watched process ids - Error chan error // Errors are sent on this channel - Fork chan *ProcEventFork // Fork events are sent on this channel - Exec chan *ProcEventExec // Exec events are sent on this channel - Exit chan *ProcEventExit // Exit events are sent on this channel - done chan bool // Used to stop the readEvents() goroutine - isClosed bool // Set to true when Close() is first called -} - -// Initialize event listener and channels -func NewWatcher() (*Watcher, error) { - listener, err := createListener() - - if err != nil { - return nil, err - } - - w := &Watcher{ - listener: listener, - watches: make(map[int]*watch), - Fork: make(chan *ProcEventFork), - Exec: make(chan *ProcEventExec), - Exit: make(chan *ProcEventExit), - Error: make(chan error), - done: make(chan bool, 1), - } - - go w.readEvents() - return w, nil -} - -// Close event channels when done message is received -func (w *Watcher) finish() { - close(w.Fork) - close(w.Exec) - close(w.Exit) - close(w.Error) -} - -// Closes the OS specific event listener, -// removes all watches and closes all event channels. -func (w *Watcher) Close() error { - if w.isClosed { - return nil - } - w.isClosed = true - - for pid := range w.watches { - w.RemoveWatch(pid) - } - - w.done <- true - - w.listener.close() - - return nil -} - -// Add pid to the watched process set. -// The flags param is a bitmask of process events to capture, -// must be one or more of: PROC_EVENT_FORK, PROC_EVENT_EXEC, PROC_EVENT_EXIT -func (w *Watcher) Watch(pid int, flags uint32) error { - if w.isClosed { - return errors.New("psnotify watcher is closed") - } - - watchEntry, found := w.watches[pid] - - if found { - watchEntry.flags |= flags - } else { - if err := w.register(pid, flags); err != nil { - return err - } - w.watches[pid] = &watch{flags: flags} - } - - return nil -} - -// Remove pid from the watched process set. -func (w *Watcher) RemoveWatch(pid int) error { - _, ok := w.watches[pid] - if !ok { - msg := fmt.Sprintf("watch for pid=%d does not exist", pid) - return errors.New(msg) - } - delete(w.watches, pid) - return w.unregister(pid) -} - -// Internal helper to check if there is a message on the "done" channel. -// The "done" message is sent by the Close() method; when received here, -// the Watcher.finish method is called to close all channels and return -// true - in which case the caller should break from the readEvents loop. -func (w *Watcher) isDone() bool { - var done bool - select { - case done = <-w.done: - w.finish() - default: - } - return done -} diff --git a/vendor/github.com/elastic/gosigar/psnotify/psnotify_bsd.go b/vendor/github.com/elastic/gosigar/psnotify/psnotify_bsd.go deleted file mode 100644 index e147d763855..00000000000 --- a/vendor/github.com/elastic/gosigar/psnotify/psnotify_bsd.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (c) 2012 VMware, Inc. - -// +build darwin freebsd netbsd openbsd - -// Go interface to BSD kqueue process events. -package psnotify - -import ( - "syscall" -) - -const ( - // Flags (from ) - PROC_EVENT_FORK = syscall.NOTE_FORK // fork() events - PROC_EVENT_EXEC = syscall.NOTE_EXEC // exec() events - PROC_EVENT_EXIT = syscall.NOTE_EXIT // exit() events - - // Watch for all process events - PROC_EVENT_ALL = PROC_EVENT_FORK | PROC_EVENT_EXEC | PROC_EVENT_EXIT -) - -type kqueueListener struct { - kq int // The syscall.Kqueue() file descriptor - buf [1]syscall.Kevent_t // An event buffer for Add/Remove watch -} - -// Initialize bsd implementation of the eventListener interface -func createListener() (eventListener, error) { - listener := &kqueueListener{} - kq, err := syscall.Kqueue() - listener.kq = kq - return listener, err -} - -// Initialize Kevent_t fields and propagate changelist for the given pid -func (w *Watcher) kevent(pid int, fflags uint32, flags int) error { - listener, _ := w.listener.(*kqueueListener) - event := &listener.buf[0] - - syscall.SetKevent(event, pid, syscall.EVFILT_PROC, flags) - event.Fflags = fflags - - _, err := syscall.Kevent(listener.kq, listener.buf[:], nil, nil) - - return err -} - -// Delete filter for given pid from the queue -func (w *Watcher) unregister(pid int) error { - return w.kevent(pid, 0, syscall.EV_DELETE) -} - -// Add and enable filter for given pid in the queue -func (w *Watcher) register(pid int, flags uint32) error { - return w.kevent(pid, flags, syscall.EV_ADD|syscall.EV_ENABLE) -} - -// Poll the kqueue file descriptor and dispatch to the Event channels -func (w *Watcher) readEvents() { - listener, _ := w.listener.(*kqueueListener) - events := make([]syscall.Kevent_t, 10) - - for { - if w.isDone() { - return - } - - n, err := syscall.Kevent(listener.kq, nil, events, nil) - if err != nil { - w.Error <- err - continue - } - - for _, ev := range events[:n] { - pid := int(ev.Ident) - - switch ev.Fflags { - case syscall.NOTE_FORK: - w.Fork <- &ProcEventFork{ParentPid: pid} - case syscall.NOTE_EXEC: - w.Exec <- &ProcEventExec{Pid: pid} - case syscall.NOTE_EXIT: - w.RemoveWatch(pid) - w.Exit <- &ProcEventExit{Pid: pid} - } - } - } -} - -// Close our kqueue file descriptor; deletes any remaining filters -func (listener *kqueueListener) close() error { - return syscall.Close(listener.kq) -} diff --git a/vendor/github.com/elastic/gosigar/psnotify/psnotify_linux.go b/vendor/github.com/elastic/gosigar/psnotify/psnotify_linux.go deleted file mode 100644 index f9154ef3deb..00000000000 --- a/vendor/github.com/elastic/gosigar/psnotify/psnotify_linux.go +++ /dev/null @@ -1,253 +0,0 @@ -// Copyright (c) 2012 VMware, Inc. - -// Go interface to the Linux netlink process connector. -// See Documentation/connector/connector.txt in the linux kernel source tree. -package psnotify - -import ( - "bytes" - "encoding/binary" - "os" - "syscall" -) - -const ( - // internal flags (from ) - _CN_IDX_PROC = 0x1 - _CN_VAL_PROC = 0x1 - - // internal flags (from ) - _PROC_CN_MCAST_LISTEN = 1 - _PROC_CN_MCAST_IGNORE = 2 - - // Flags (from ) - PROC_EVENT_FORK = 0x00000001 // fork() events - PROC_EVENT_EXEC = 0x00000002 // exec() events - PROC_EVENT_EXIT = 0x80000000 // exit() events - - // Watch for all process events - PROC_EVENT_ALL = PROC_EVENT_FORK | PROC_EVENT_EXEC | PROC_EVENT_EXIT -) - -var ( - byteOrder = binary.LittleEndian -) - -// linux/connector.h: struct cb_id -type cbId struct { - Idx uint32 - Val uint32 -} - -// linux/connector.h: struct cb_msg -type cnMsg struct { - Id cbId - Seq uint32 - Ack uint32 - Len uint16 - Flags uint16 -} - -// linux/cn_proc.h: struct proc_event.{what,cpu,timestamp_ns} -type procEventHeader struct { - What uint32 - Cpu uint32 - Timestamp uint64 -} - -// linux/cn_proc.h: struct proc_event.fork -type forkProcEvent struct { - ParentPid uint32 - ParentTgid uint32 - ChildPid uint32 - ChildTgid uint32 -} - -// linux/cn_proc.h: struct proc_event.exec -type execProcEvent struct { - ProcessPid uint32 - ProcessTgid uint32 -} - -// linux/cn_proc.h: struct proc_event.exit -type exitProcEvent struct { - ProcessPid uint32 - ProcessTgid uint32 - ExitCode uint32 - ExitSignal uint32 -} - -// standard netlink header + connector header -type netlinkProcMessage struct { - Header syscall.NlMsghdr - Data cnMsg -} - -type netlinkListener struct { - addr *syscall.SockaddrNetlink // Netlink socket address - sock int // The syscall.Socket() file descriptor - seq uint32 // struct cn_msg.seq -} - -// Initialize linux implementation of the eventListener interface -func createListener() (eventListener, error) { - listener := &netlinkListener{} - err := listener.bind() - return listener, err -} - -// noop on linux -func (w *Watcher) unregister(pid int) error { - return nil -} - -// noop on linux -func (w *Watcher) register(pid int, flags uint32) error { - return nil -} - -// Read events from the netlink socket -func (w *Watcher) readEvents() { - buf := make([]byte, syscall.Getpagesize()) - - listener, _ := w.listener.(*netlinkListener) - - for { - if w.isDone() { - return - } - - nr, _, err := syscall.Recvfrom(listener.sock, buf, 0) - - if err != nil { - w.Error <- err - continue - } - if nr < syscall.NLMSG_HDRLEN { - w.Error <- syscall.EINVAL - continue - } - - msgs, _ := syscall.ParseNetlinkMessage(buf[:nr]) - - for _, m := range msgs { - if m.Header.Type == syscall.NLMSG_DONE { - w.handleEvent(m.Data) - } - } - } -} - -// Internal helper to check if pid && event is being watched -func (w *Watcher) isWatching(pid int, event uint32) bool { - if watch, ok := w.watches[pid]; ok { - return (watch.flags & event) == event - } - return false -} - -// Dispatch events from the netlink socket to the Event channels. -// Unlike bsd kqueue, netlink receives events for all pids, -// so we apply filtering based on the watch table via isWatching() -func (w *Watcher) handleEvent(data []byte) { - buf := bytes.NewBuffer(data) - msg := &cnMsg{} - hdr := &procEventHeader{} - - binary.Read(buf, byteOrder, msg) - binary.Read(buf, byteOrder, hdr) - - switch hdr.What { - case PROC_EVENT_FORK: - event := &forkProcEvent{} - binary.Read(buf, byteOrder, event) - ppid := int(event.ParentTgid) - pid := int(event.ChildTgid) - - if w.isWatching(ppid, PROC_EVENT_EXEC) { - // follow forks - watch, _ := w.watches[ppid] - w.Watch(pid, watch.flags) - } - - if w.isWatching(ppid, PROC_EVENT_FORK) { - w.Fork <- &ProcEventFork{ParentPid: ppid, ChildPid: pid} - } - case PROC_EVENT_EXEC: - event := &execProcEvent{} - binary.Read(buf, byteOrder, event) - pid := int(event.ProcessTgid) - - if w.isWatching(pid, PROC_EVENT_EXEC) { - w.Exec <- &ProcEventExec{Pid: pid} - } - case PROC_EVENT_EXIT: - event := &exitProcEvent{} - binary.Read(buf, byteOrder, event) - pid := int(event.ProcessTgid) - - if w.isWatching(pid, PROC_EVENT_EXIT) { - w.RemoveWatch(pid) - w.Exit <- &ProcEventExit{Pid: pid} - } - } -} - -// Bind our netlink socket and -// send a listen control message to the connector driver. -func (listener *netlinkListener) bind() error { - sock, err := syscall.Socket( - syscall.AF_NETLINK, - syscall.SOCK_DGRAM, - syscall.NETLINK_CONNECTOR) - - if err != nil { - return err - } - - listener.sock = sock - listener.addr = &syscall.SockaddrNetlink{ - Family: syscall.AF_NETLINK, - Groups: _CN_IDX_PROC, - } - - err = syscall.Bind(listener.sock, listener.addr) - - if err != nil { - return err - } - - return listener.send(_PROC_CN_MCAST_LISTEN) -} - -// Send an ignore control message to the connector driver -// and close our netlink socket. -func (listener *netlinkListener) close() error { - err := listener.send(_PROC_CN_MCAST_IGNORE) - syscall.Close(listener.sock) - return err -} - -// Generic method for sending control messages to the connector -// driver; where op is one of PROC_CN_MCAST_{LISTEN,IGNORE} -func (listener *netlinkListener) send(op uint32) error { - listener.seq++ - pr := &netlinkProcMessage{} - plen := binary.Size(pr.Data) + binary.Size(op) - pr.Header.Len = syscall.NLMSG_HDRLEN + uint32(plen) - pr.Header.Type = uint16(syscall.NLMSG_DONE) - pr.Header.Flags = 0 - pr.Header.Seq = listener.seq - pr.Header.Pid = uint32(os.Getpid()) - - pr.Data.Id.Idx = _CN_IDX_PROC - pr.Data.Id.Val = _CN_VAL_PROC - - pr.Data.Len = uint16(binary.Size(op)) - - buf := bytes.NewBuffer(make([]byte, 0, pr.Header.Len)) - binary.Write(buf, byteOrder, pr) - binary.Write(buf, byteOrder, op) - - return syscall.Sendto(listener.sock, buf.Bytes(), 0, listener.addr) -} diff --git a/vendor/github.com/elastic/procfs/Makefile b/vendor/github.com/elastic/procfs/Makefile new file mode 100644 index 00000000000..c264a49d179 --- /dev/null +++ b/vendor/github.com/elastic/procfs/Makefile @@ -0,0 +1,6 @@ +ci: + ! gofmt -l *.go | read nothing + go vet + go test -v ./... + go get github.com/golang/lint/golint + golint *.go diff --git a/vendor/github.com/elastic/procfs/net_dev.go b/vendor/github.com/elastic/procfs/net_dev.go new file mode 100644 index 00000000000..ce3b2638356 --- /dev/null +++ b/vendor/github.com/elastic/procfs/net_dev.go @@ -0,0 +1,203 @@ +package procfs + +import ( + "bufio" + "errors" + "os" + "sort" + "strconv" + "strings" +) + +// NetDevLine is single line parsed from /proc/net/dev or /proc/[pid]/net/dev. +type NetDevLine struct { + Name string `json:"name"` // The name of the interface. + RxBytes uint64 `json:"rx_bytes"` // Cumulative count of bytes received. + RxPackets uint64 `json:"rx_packets"` // Cumulative count of packets received. + RxErrors uint64 `json:"rx_errors"` // Cumulative count of receive errors encountered. + RxDropped uint64 `json:"rx_dropped"` // Cumulative count of packets dropped while receiving. + RxFIFO uint64 `json:"rx_fifo"` // Cumulative count of FIFO buffer errors. + RxFrame uint64 `json:"rx_frame"` // Cumulative count of packet framing errors. + RxCompressed uint64 `json:"rx_compressed"` // Cumulative count of compressed packets received by the device driver. + RxMulticast uint64 `json:"rx_multicast"` // Cumulative count of multicast frames received by the device driver. + TxBytes uint64 `json:"tx_bytes"` // Cumulative count of bytes transmitted. + TxPackets uint64 `json:"tx_packets"` // Cumulative count of packets transmitted. + TxErrors uint64 `json:"tx_errors"` // Cumulative count of transmit errors encountered. + TxDropped uint64 `json:"tx_dropped"` // Cumulative count of packets dropped while transmitting. + TxFIFO uint64 `json:"tx_fifo"` // Cumulative count of FIFO buffer errors. + TxCollisions uint64 `json:"tx_collisions"` // Cumulative count of collisions detected on the interface. + TxCarrier uint64 `json:"tx_carrier"` // Cumulative count of carrier losses detected by the device driver. + TxCompressed uint64 `json:"tx_compressed"` // Cumulative count of compressed packets transmitted by the device driver. +} + +// NetDev is parsed from /proc/net/dev or /proc/[pid]/net/dev. The map keys +// are interface names. +type NetDev map[string]NetDevLine + +// NewNetDev returns kernel/system statistics read from /proc/net/dev. +func NewNetDev() (NetDev, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return nil, err + } + + return fs.NewNetDev() +} + +// NewNetDev returns kernel/system statistics read from /proc/net/dev. +func (fs FS) NewNetDev() (NetDev, error) { + return newNetDev(fs.Path("net/dev")) +} + +// NewNetDev returns kernel/system statistics read from /proc/[pid]/net/dev. +func (p Proc) NewNetDev() (NetDev, error) { + return newNetDev(p.path("net/dev")) +} + +// newNetDev creates a new NetDev from the contents of the given file. +func newNetDev(file string) (NetDev, error) { + f, err := os.Open(file) + if err != nil { + return NetDev{}, err + } + defer f.Close() + + nd := NetDev{} + s := bufio.NewScanner(f) + for n := 0; s.Scan(); n++ { + // Skip the 2 header lines. + if n < 2 { + continue + } + + line, err := nd.parseLine(s.Text()) + if err != nil { + return nd, err + } + + nd[line.Name] = *line + } + + return nd, nil +} + +// parseLine parses a single line from the /proc/net/dev file. Header lines +// must be filtered prior to calling this method. +func (nd NetDev) parseLine(rawLine string) (*NetDevLine, error) { + parts := strings.SplitN(rawLine, ":", 2) + if len(parts) != 2 { + return nil, errors.New("invalid net/dev line, missing colon") + } + fields := strings.Fields(strings.TrimSpace(parts[1])) + + var err error + line := &NetDevLine{} + + // Interface Name + line.Name = strings.TrimSpace(parts[0]) + if line.Name == "" { + return nil, errors.New("invalid net/dev line, empty interface name") + } + + // RX + line.RxBytes, err = strconv.ParseUint(fields[0], 10, 64) + if err != nil { + return nil, err + } + line.RxPackets, err = strconv.ParseUint(fields[1], 10, 64) + if err != nil { + return nil, err + } + line.RxErrors, err = strconv.ParseUint(fields[2], 10, 64) + if err != nil { + return nil, err + } + line.RxDropped, err = strconv.ParseUint(fields[3], 10, 64) + if err != nil { + return nil, err + } + line.RxFIFO, err = strconv.ParseUint(fields[4], 10, 64) + if err != nil { + return nil, err + } + line.RxFrame, err = strconv.ParseUint(fields[5], 10, 64) + if err != nil { + return nil, err + } + line.RxCompressed, err = strconv.ParseUint(fields[6], 10, 64) + if err != nil { + return nil, err + } + line.RxMulticast, err = strconv.ParseUint(fields[7], 10, 64) + if err != nil { + return nil, err + } + + // TX + line.TxBytes, err = strconv.ParseUint(fields[8], 10, 64) + if err != nil { + return nil, err + } + line.TxPackets, err = strconv.ParseUint(fields[9], 10, 64) + if err != nil { + return nil, err + } + line.TxErrors, err = strconv.ParseUint(fields[10], 10, 64) + if err != nil { + return nil, err + } + line.TxDropped, err = strconv.ParseUint(fields[11], 10, 64) + if err != nil { + return nil, err + } + line.TxFIFO, err = strconv.ParseUint(fields[12], 10, 64) + if err != nil { + return nil, err + } + line.TxCollisions, err = strconv.ParseUint(fields[13], 10, 64) + if err != nil { + return nil, err + } + line.TxCarrier, err = strconv.ParseUint(fields[14], 10, 64) + if err != nil { + return nil, err + } + line.TxCompressed, err = strconv.ParseUint(fields[15], 10, 64) + if err != nil { + return nil, err + } + + return line, nil +} + +// Total aggregates the values across interfaces and returns a new NetDevLine. +// The Name field will be a sorted comma seperated list of interface names. +func (nd NetDev) Total() NetDevLine { + total := NetDevLine{} + + names := make([]string, 0, len(nd)) + for _, ifc := range nd { + names = append(names, ifc.Name) + total.RxBytes += ifc.RxBytes + total.RxPackets += ifc.RxPackets + total.RxPackets += ifc.RxPackets + total.RxErrors += ifc.RxErrors + total.RxDropped += ifc.RxDropped + total.RxFIFO += ifc.RxFIFO + total.RxFrame += ifc.RxFrame + total.RxCompressed += ifc.RxCompressed + total.RxMulticast += ifc.RxMulticast + total.TxBytes += ifc.TxBytes + total.TxPackets += ifc.TxPackets + total.TxErrors += ifc.TxErrors + total.TxDropped += ifc.TxDropped + total.TxFIFO += ifc.TxFIFO + total.TxCollisions += ifc.TxCollisions + total.TxCarrier += ifc.TxCarrier + total.TxCompressed += ifc.TxCompressed + } + sort.Strings(names) + total.Name = strings.Join(names, ", ") + + return total +} diff --git a/vendor/github.com/elastic/procfs/proc_ns.go b/vendor/github.com/elastic/procfs/proc_ns.go new file mode 100644 index 00000000000..befdd2690c8 --- /dev/null +++ b/vendor/github.com/elastic/procfs/proc_ns.go @@ -0,0 +1,55 @@ +package procfs + +import ( + "fmt" + "os" + "strconv" + "strings" +) + +// Namespace represents a single namespace of a process. +type Namespace struct { + Type string // Namespace type. + Inode uint32 // Inode number of the namespace. If two processes are in the same namespace their inodes will match. +} + +// Namespaces contains all of the namespaces that the process is contained in. +type Namespaces map[string]Namespace + +// NewNamespaces reads from /proc/[pid/ns/* to get the namespaces of which the +// process is a member. +func (p Proc) NewNamespaces() (Namespaces, error) { + d, err := os.Open(p.path("ns")) + if err != nil { + return nil, err + } + defer d.Close() + + names, err := d.Readdirnames(-1) + if err != nil { + return nil, fmt.Errorf("failed to read contents of ns dir: %v", err) + } + + ns := make(Namespaces, len(names)) + for _, name := range names { + target, err := os.Readlink(p.path("ns", name)) + if err != nil { + return nil, err + } + + fields := strings.SplitN(target, ":", 2) + if len(fields) != 2 { + return nil, fmt.Errorf("failed to parse namespace type and inode from '%v'", target) + } + + typ := fields[0] + inode, err := strconv.ParseUint(strings.Trim(fields[1], "[]"), 10, 32) + if err != nil { + return nil, fmt.Errorf("failed to parse inode from '%v': %v", fields[1], err) + } + + ns[name] = Namespace{typ, uint32(inode)} + } + + return ns, nil +} diff --git a/vendor/github.com/garyburd/redigo/README.markdown b/vendor/github.com/garyburd/redigo/README.markdown deleted file mode 100644 index 662690b3dc9..00000000000 --- a/vendor/github.com/garyburd/redigo/README.markdown +++ /dev/null @@ -1,50 +0,0 @@ -Redigo -====== - -[![Build Status](https://travis-ci.org/garyburd/redigo.svg?branch=master)](https://travis-ci.org/garyburd/redigo) -[![GoDoc](https://godoc.org/github.com/garyburd/redigo/redis?status.svg)](https://godoc.org/github.com/garyburd/redigo/redis) - -Redigo is a [Go](http://golang.org/) client for the [Redis](http://redis.io/) database. - -Features -------- - -* A [Print-like](http://godoc.org/github.com/garyburd/redigo/redis#hdr-Executing_Commands) API with support for all Redis commands. -* [Pipelining](http://godoc.org/github.com/garyburd/redigo/redis#hdr-Pipelining), including pipelined transactions. -* [Publish/Subscribe](http://godoc.org/github.com/garyburd/redigo/redis#hdr-Publish_and_Subscribe). -* [Connection pooling](http://godoc.org/github.com/garyburd/redigo/redis#Pool). -* [Script helper type](http://godoc.org/github.com/garyburd/redigo/redis#Script) with optimistic use of EVALSHA. -* [Helper functions](http://godoc.org/github.com/garyburd/redigo/redis#hdr-Reply_Helpers) for working with command replies. - -Documentation -------------- - -- [API Reference](http://godoc.org/github.com/garyburd/redigo/redis) -- [FAQ](https://github.com/garyburd/redigo/wiki/FAQ) - -Installation ------------- - -Install Redigo using the "go get" command: - - go get github.com/garyburd/redigo/redis - -The Go distribution is Redigo's only dependency. - -Related Projects ----------------- - -- [rafaeljusto/redigomock](https://godoc.org/github.com/rafaeljusto/redigomock) - A mock library for Redigo. -- [chasex/redis-go-cluster](https://github.com/chasex/redis-go-cluster) - A Redis cluster client implementation. -- [FZambia/go-sentinel](https://github.com/FZambia/go-sentinel) - Redis Sentinel support for Redigo -- [PuerkitoBio/redisc](https://github.com/PuerkitoBio/redisc) - Redis Cluster client built on top of Redigo - -Contributing ------------- - -Send email to Gary Burd (address in GitHub profile) before doing any work on Redigo. - -License -------- - -Redigo is available under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). diff --git a/vendor/github.com/garyburd/redigo/internal/redistest/testdb.go b/vendor/github.com/garyburd/redigo/internal/redistest/testdb.go deleted file mode 100644 index b6f205b7f25..00000000000 --- a/vendor/github.com/garyburd/redigo/internal/redistest/testdb.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2014 Gary Burd -// -// 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 redistest contains utilities for writing Redigo tests. -package redistest - -import ( - "errors" - "time" - - "github.com/garyburd/redigo/redis" -) - -type testConn struct { - redis.Conn -} - -func (t testConn) Close() error { - _, err := t.Conn.Do("SELECT", "9") - if err != nil { - return nil - } - _, err = t.Conn.Do("FLUSHDB") - if err != nil { - return err - } - return t.Conn.Close() -} - -// Dial dials the local Redis server and selects database 9. To prevent -// stomping on real data, DialTestDB fails if database 9 contains data. The -// returned connection flushes database 9 on close. -func Dial() (redis.Conn, error) { - c, err := redis.DialTimeout("tcp", ":6379", 0, 1*time.Second, 1*time.Second) - if err != nil { - return nil, err - } - - _, err = c.Do("SELECT", "9") - if err != nil { - c.Close() - return nil, err - } - - n, err := redis.Int(c.Do("DBSIZE")) - if err != nil { - c.Close() - return nil, err - } - - if n != 0 { - c.Close() - return nil, errors.New("database #9 is not empty, test can not continue") - } - - return testConn{c}, nil -} diff --git a/vendor/github.com/garyburd/redigo/redis/doc.go b/vendor/github.com/garyburd/redigo/redis/doc.go index a5cd454af56..b9b2c995357 100644 --- a/vendor/github.com/garyburd/redigo/redis/doc.go +++ b/vendor/github.com/garyburd/redigo/redis/doc.go @@ -99,15 +99,14 @@ // // Concurrency // -// Connections do not support concurrent calls to the write methods (Send, -// Flush) or concurrent calls to the read method (Receive). Connections do -// allow a concurrent reader and writer. -// -// Because the Do method combines the functionality of Send, Flush and Receive, -// the Do method cannot be called concurrently with the other methods. -// -// For full concurrent access to Redis, use the thread-safe Pool to get and -// release connections from within a goroutine. +// Connections support one concurrent caller to the Recieve method and one +// concurrent caller to the Send and Flush methods. No other concurrency is +// supported including concurrent calls to the Do method. +// +// For full concurrent access to Redis, use the thread-safe Pool to get, use +// and release a connection from within a goroutine. Connections returned from +// a Pool have the concurrency restrictions described in the previous +// paragraph. // // Publish and Subscribe // diff --git a/vendor/github.com/garyburd/redigo/redisx/connmux.go b/vendor/github.com/garyburd/redigo/redisx/connmux.go deleted file mode 100644 index af2cced3faa..00000000000 --- a/vendor/github.com/garyburd/redigo/redisx/connmux.go +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright 2014 Gary Burd -// -// 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 redisx - -import ( - "errors" - "sync" - - "github.com/garyburd/redigo/internal" - "github.com/garyburd/redigo/redis" -) - -// ConnMux multiplexes one or more connections to a single underlying -// connection. The ConnMux connections do not support concurrency, commands -// that associate server side state with the connection or commands that put -// the connection in a special mode. -type ConnMux struct { - c redis.Conn - - sendMu sync.Mutex - sendID uint - - recvMu sync.Mutex - recvID uint - recvWait map[uint]chan struct{} -} - -func NewConnMux(c redis.Conn) *ConnMux { - return &ConnMux{c: c, recvWait: make(map[uint]chan struct{})} -} - -// Get gets a connection. The application must close the returned connection. -func (p *ConnMux) Get() redis.Conn { - c := &muxConn{p: p} - c.ids = c.buf[:0] - return c -} - -// Close closes the underlying connection. -func (p *ConnMux) Close() error { - return p.c.Close() -} - -type muxConn struct { - p *ConnMux - ids []uint - buf [8]uint -} - -func (c *muxConn) send(flush bool, cmd string, args ...interface{}) error { - if internal.LookupCommandInfo(cmd).Set != 0 { - return errors.New("command not supported by mux pool") - } - p := c.p - p.sendMu.Lock() - id := p.sendID - c.ids = append(c.ids, id) - p.sendID++ - err := p.c.Send(cmd, args...) - if flush { - err = p.c.Flush() - } - p.sendMu.Unlock() - return err -} - -func (c *muxConn) Send(cmd string, args ...interface{}) error { - return c.send(false, cmd, args...) -} - -func (c *muxConn) Flush() error { - p := c.p - p.sendMu.Lock() - err := p.c.Flush() - p.sendMu.Unlock() - return err -} - -func (c *muxConn) Receive() (interface{}, error) { - if len(c.ids) == 0 { - return nil, errors.New("mux pool underflow") - } - - id := c.ids[0] - c.ids = c.ids[1:] - if len(c.ids) == 0 { - c.ids = c.buf[:0] - } - - p := c.p - p.recvMu.Lock() - if p.recvID != id { - ch := make(chan struct{}) - p.recvWait[id] = ch - p.recvMu.Unlock() - <-ch - p.recvMu.Lock() - if p.recvID != id { - panic("out of sync") - } - } - - v, err := p.c.Receive() - - id++ - p.recvID = id - ch, ok := p.recvWait[id] - if ok { - delete(p.recvWait, id) - } - p.recvMu.Unlock() - if ok { - ch <- struct{}{} - } - - return v, err -} - -func (c *muxConn) Close() error { - var err error - if len(c.ids) == 0 { - return nil - } - c.Flush() - for _ = range c.ids { - _, err = c.Receive() - } - return err -} - -func (c *muxConn) Do(cmd string, args ...interface{}) (interface{}, error) { - if err := c.send(true, cmd, args...); err != nil { - return nil, err - } - return c.Receive() -} - -func (c *muxConn) Err() error { - return c.p.c.Err() -} diff --git a/vendor/github.com/garyburd/redigo/redisx/doc.go b/vendor/github.com/garyburd/redigo/redisx/doc.go deleted file mode 100644 index 91653dbe2ff..00000000000 --- a/vendor/github.com/garyburd/redigo/redisx/doc.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2012 Gary Burd -// -// 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 redisx contains experimental features for Redigo. Features in this -// package may be modified or deleted at any time. -package redisx // import "github.com/garyburd/redigo/redisx" diff --git a/vendor/github.com/go-ole/go-ole/data/screenshot.png b/vendor/github.com/go-ole/go-ole/data/screenshot.png deleted file mode 100644 index f61344b6005864217cfdf2b0d822b0575597c64e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14362 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] + b[1] = hextable[byte(v>>24)&0x0f] + b[2] = hextable[byte(v>>16)>>4] + b[3] = hextable[byte(v>>16)&0x0f] + b[4] = hextable[byte(v>>8)>>4] + b[5] = hextable[byte(v>>8)&0x0f] + b[6] = hextable[byte(v)>>4] + b[7] = hextable[byte(v)&0x0f] +} + +func putUint16Hex(b []byte, v uint16) { + b[0] = hextable[byte(v>>8)>>4] + b[1] = hextable[byte(v>>8)&0x0f] + b[2] = hextable[byte(v)>>4] + b[3] = hextable[byte(v)&0x0f] +} + +func putByteHex(dst, src []byte) { + for i := 0; i < len(src); i++ { + dst[i*2] = hextable[src[i]>>4] + dst[i*2+1] = hextable[src[i]&0x0f] + } +} + // IsEqualGUID compares two GUID. // // Not constant time comparison. diff --git a/vendor/github.com/go-ole/go-ole/idispatch_windows.go b/vendor/github.com/go-ole/go-ole/idispatch_windows.go index 10b1ae46494..bb736903825 100644 --- a/vendor/github.com/go-ole/go-ole/idispatch_windows.go +++ b/vendor/github.com/go-ole/go-ole/idispatch_windows.go @@ -180,17 +180,14 @@ func invoke(disp *IDispatch, dispid int32, dispatch int16, params ...interface{} if hr != 0 { err = NewErrorWithSubError(hr, BstrToString(excepInfo.bstrDescription), excepInfo) } - for _, varg := range vargs { + for i, varg := range vargs { + n := len(params) - i - 1 if varg.VT == VT_BSTR && varg.Val != 0 { SysFreeString(((*int16)(unsafe.Pointer(uintptr(varg.Val))))) } - /* - if varg.VT == (VT_BSTR|VT_BYREF) && varg.Val != 0 { - *(params[n].(*string)) = LpOleStrToString((*uint16)(unsafe.Pointer(uintptr(varg.Val)))) - println(*(params[n].(*string))) - fmt.Fprintln(os.Stderr, *(params[n].(*string))) - } - */ + if varg.VT == (VT_BSTR|VT_BYREF) && varg.Val != 0 { + *(params[n].(*string)) = LpOleStrToString(*(**uint16)(unsafe.Pointer(uintptr(varg.Val)))) + } } return } diff --git a/vendor/github.com/go-ole/go-ole/iinspectable_windows.go b/vendor/github.com/go-ole/go-ole/iinspectable_windows.go index b19dde5b57c..4519a4aa449 100644 --- a/vendor/github.com/go-ole/go-ole/iinspectable_windows.go +++ b/vendor/github.com/go-ole/go-ole/iinspectable_windows.go @@ -30,7 +30,7 @@ func (v *IInspectable) GetIids() (iids []*GUID, err error) { slicehdr := reflect.SliceHeader{Data: array, Len: int(byteCount), Cap: int(byteCount)} byteSlice := *(*[]byte)(unsafe.Pointer(&slicehdr)) reader := bytes.NewReader(byteSlice) - for i, _ := range iids { + for i := range iids { guid := GUID{} err = binary.Read(reader, binary.LittleEndian, &guid) if err != nil { diff --git a/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go b/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go index 6b5c0599936..ab9c0d8dcbd 100644 --- a/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go +++ b/vendor/github.com/go-ole/go-ole/oleutil/connection_windows.go @@ -49,6 +49,7 @@ func ConnectObject(disp *ole.IDispatch, iid *ole.GUID, idisp interface{}) (cooki point.Release() return } + return } container.Release() diff --git a/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go b/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go index 55e072a6361..c3edee2ecd8 100644 --- a/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go +++ b/vendor/github.com/go-ole/go-ole/oleutil/oleutil.go @@ -87,3 +87,27 @@ func MustPutProperty(disp *ole.IDispatch, name string, params ...interface{}) (r } return r } + +func ForEach(disp *ole.IDispatch, f func(v *ole.VARIANT) error) error { + newEnum, err := disp.GetProperty("_NewEnum") + if err != nil { + return err + } + defer newEnum.Clear() + + enum, err := newEnum.ToIUnknown().IEnumVARIANT(ole.IID_IEnumVariant) + if err != nil { + return err + } + defer enum.Release() + + for item, length, err := enum.Next(1); length > 0; item, length, err = enum.Next(1) { + if err != nil { + return err + } + if ferr := f(&item); ferr != nil { + return ferr + } + } + return nil +} diff --git a/vendor/github.com/go-ole/go-ole/safearray_func.go b/vendor/github.com/go-ole/go-ole/safearray_func.go index c261a0078c7..8ff0baa41dd 100644 --- a/vendor/github.com/go-ole/go-ole/safearray_func.go +++ b/vendor/github.com/go-ole/go-ole/safearray_func.go @@ -2,6 +2,10 @@ package ole +import ( + "unsafe" +) + // safeArrayAccessData returns raw array pointer. // // AKA: SafeArrayAccessData in Windows API. @@ -120,8 +124,8 @@ func safeArrayGetElementSize(safearray *SafeArray) (*uint32, error) { } // safeArrayGetElement retrieves element at given index. -func safeArrayGetElement(safearray *SafeArray, index int64) (uintptr, error) { - return uintptr(0), NewError(E_NOTIMPL) +func safeArrayGetElement(safearray *SafeArray, index int64, pv unsafe.Pointer) error { + return NewError(E_NOTIMPL) } // safeArrayGetElement retrieves element at given index and converts to string. diff --git a/vendor/github.com/go-ole/go-ole/safearray_windows.go b/vendor/github.com/go-ole/go-ole/safearray_windows.go index 456b8c9b943..b27936e24ed 100644 --- a/vendor/github.com/go-ole/go-ole/safearray_windows.go +++ b/vendor/github.com/go-ole/go-ole/safearray_windows.go @@ -205,16 +205,15 @@ func safeArrayGetElementSize(safearray *SafeArray) (length *uint32, err error) { } // safeArrayGetElement retrieves element at given index. -func safeArrayGetElement(safearray *SafeArray, index int64) (element uintptr, err error) { - err = convertHresultToError( +func safeArrayGetElement(safearray *SafeArray, index int64, pv unsafe.Pointer) error { + return convertHresultToError( procSafeArrayGetElement.Call( uintptr(unsafe.Pointer(safearray)), uintptr(unsafe.Pointer(&index)), - uintptr(unsafe.Pointer(&element)))) - return + uintptr(pv))) } -// safeArrayGetElement retrieves element at given index and converts to string. +// safeArrayGetElementString retrieves element at given index and converts to string. func safeArrayGetElementString(safearray *SafeArray, index int64) (str string, err error) { var element *int16 err = convertHresultToError( diff --git a/vendor/github.com/go-ole/go-ole/safearrayconversion.go b/vendor/github.com/go-ole/go-ole/safearrayconversion.go index c7f0ce540c7..ffeb2b97b02 100644 --- a/vendor/github.com/go-ole/go-ole/safearrayconversion.go +++ b/vendor/github.com/go-ole/go-ole/safearrayconversion.go @@ -2,7 +2,9 @@ package ole -import "unsafe" +import ( + "unsafe" +) type SafeArrayConversion struct { Array *SafeArray @@ -24,8 +26,74 @@ func (sac *SafeArrayConversion) ToByteArray() (bytes []byte) { bytes = make([]byte, totalElements) for i := int64(0); i < totalElements; i++ { - ptr, _ := safeArrayGetElement(sac.Array, i) - bytes[int32(i)] = *(*byte)(unsafe.Pointer(&ptr)) + safeArrayGetElement(sac.Array, i, unsafe.Pointer(&bytes[int32(i)])) + } + + return +} + +func (sac *SafeArrayConversion) ToValueArray() (values []interface{}) { + totalElements, _ := sac.TotalElements(0) + values = make([]interface{}, totalElements) + vt, _ := safeArrayGetVartype(sac.Array) + + for i := 0; i < int(totalElements); i++ { + switch VT(vt) { + case VT_BOOL: + var v bool + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_I1: + var v int8 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_I2: + var v int16 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_I4: + var v int32 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_I8: + var v int64 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_UI1: + var v uint8 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_UI2: + var v uint16 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_UI4: + var v uint32 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_UI8: + var v uint64 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_R4: + var v float32 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_R8: + var v float64 + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_BSTR: + var v string + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v + case VT_VARIANT: + var v VARIANT + safeArrayGetElement(sac.Array, int64(i), unsafe.Pointer(&v)) + values[i] = v.Value() + default: + // TODO + } } return diff --git a/vendor/github.com/go-ole/go-ole/variant.go b/vendor/github.com/go-ole/go-ole/variant.go index 598bf26b751..36969725eba 100644 --- a/vendor/github.com/go-ole/go-ole/variant.go +++ b/vendor/github.com/go-ole/go-ole/variant.go @@ -26,7 +26,9 @@ func (v *VARIANT) ToIDispatch() *IDispatch { // ToArray converts variant to SafeArray helper. func (v *VARIANT) ToArray() *SafeArrayConversion { if v.VT != VT_SAFEARRAY { - return nil + if v.VT&VT_ARRAY == 0 { + return nil + } } var safeArray *SafeArray = (*SafeArray)(unsafe.Pointer(uintptr(v.Val))) return &SafeArrayConversion{safeArray} diff --git a/vendor/github.com/gocarina/gocsv/README.md b/vendor/github.com/gocarina/gocsv/README.md index 69aabca636c..dd11d824c7c 100644 --- a/vendor/github.com/gocarina/gocsv/README.md +++ b/vendor/github.com/gocarina/gocsv/README.md @@ -41,9 +41,9 @@ import ( ) type Client struct { // Our example struct, you can use "-" to ignore a field - Id string `csv:"id"` - Name string `csv:"name"` - Age string `csv:"age"` + Id string `csv:"client_id"` + Name string `csv:"client_name"` + Age string `csv:"client_age"` NotUsed string `csv:"-"` } diff --git a/vendor/github.com/gocarina/gocsv/csv.go b/vendor/github.com/gocarina/gocsv/csv.go index 7725ab1cb86..8f1bbfdf7ed 100644 --- a/vendor/github.com/gocarina/gocsv/csv.go +++ b/vendor/github.com/gocarina/gocsv/csv.go @@ -24,6 +24,10 @@ var FailIfUnmatchedStructTags = false // in the csv header. var FailIfDoubleHeaderNames = false +// ShouldAlignDuplicateHeadersWithStructFieldOrder indicates whether we should align duplicate CSV +// headers per their alignment in the struct definition. +var ShouldAlignDuplicateHeadersWithStructFieldOrder = false + // TagSeparator defines seperator string for multiple csv tags in struct fields var TagSeparator = "," @@ -34,7 +38,15 @@ var selfCSVWriter = DefaultCSVWriter // DefaultCSVWriter is the default CSV writer used to format CSV (cf. csv.NewWriter) func DefaultCSVWriter(out io.Writer) *csv.Writer { - return csv.NewWriter(out) + writer := csv.NewWriter(out) + + // As only one rune can be defined as a CSV separator, we are going to trim + // the custom tag separator and use the first rune. + if runes := []rune(strings.TrimSpace(TagSeparator)); len(runes) > 0 { + writer.Comma = runes[0] + } + + return writer } // SetCSVWriter sets the CSV writer used to format CSV. @@ -102,7 +114,13 @@ func MarshalBytes(in interface{}) (out []byte, err error) { // Marshal returns the CSV in writer from the interface. func Marshal(in interface{}, out io.Writer) (err error) { writer := getCSVWriter(out) - return writeTo(writer, in) + return writeTo(writer, in, false) +} + +// Marshal returns the CSV in writer from the interface. +func MarshalWithoutHeaders(in interface{}, out io.Writer) (err error) { + writer := getCSVWriter(out) + return writeTo(writer, in, true) } // MarshalChan returns the CSV read from the channel. @@ -112,7 +130,7 @@ func MarshalChan(c <-chan interface{}, out *csv.Writer) error { // MarshalCSV returns the CSV in writer from the interface. func MarshalCSV(in interface{}, out *csv.Writer) (err error) { - return writeTo(out, in) + return writeTo(out, in, false) } // -------------------------------------------------------------------------- @@ -139,25 +157,28 @@ func Unmarshal(in io.Reader, out interface{}) (err error) { } // UnmarshalCSV parses the CSV from the reader in the interface. -func UnmarshalCSV(in *csv.Reader, out interface{}) error { +func UnmarshalCSV(in CSVReader, out interface{}) error { return readTo(csvDecoder{in}, out) } // UnmarshalToChan parses the CSV from the reader and send each value in the chan c. // The channel must have a concrete type. -func UnmarshalToChan(in io.Reader, c interface{}) (err error) { +func UnmarshalToChan(in io.Reader, c interface{}) error { + if c == nil { + return fmt.Errorf("goscv: channel is %v", c) + } return readEach(newDecoder(in), c) } // UnmarshalStringToChan parses the CSV from the string and send each value in the chan c. // The channel must have a concrete type. -func UnmarshalStringToChan(in string, c interface{}) (err error) { +func UnmarshalStringToChan(in string, c interface{}) error { return UnmarshalToChan(strings.NewReader(in), c) } // UnmarshalBytesToChan parses the CSV from the bytes and send each value in the chan c. // The channel must have a concrete type. -func UnmarshalBytesToChan(in []byte, c interface{}) (err error) { +func UnmarshalBytesToChan(in []byte, c interface{}) error { return UnmarshalToChan(bytes.NewReader(in), c) } @@ -197,3 +218,25 @@ func UnmarshalBytesToCallback(in []byte, f interface{}) (err error) { func UnmarshalStringToCallback(in string, c interface{}) (err error) { return UnmarshalToCallback(strings.NewReader(in), c) } + +func CSVToMap(in io.Reader) (map[string]string, error) { + decoder := newDecoder(in) + header, err := decoder.getCSVRow() + if err != nil { + return nil, err + } + if len(header) != 2 { + return nil, fmt.Errorf("maps can only be created for csv of two columns") + } + m := make(map[string]string) + for { + line, err := decoder.getCSVRow() + if err == io.EOF { + break + } else if err != nil { + return nil, err + } + m[line[0]] = line[1] + } + return m, nil +} \ No newline at end of file diff --git a/vendor/github.com/gocarina/gocsv/decode.go b/vendor/github.com/gocarina/gocsv/decode.go index c1abcb28133..5d573833a8f 100644 --- a/vendor/github.com/gocarina/gocsv/decode.go +++ b/vendor/github.com/gocarina/gocsv/decode.go @@ -38,8 +38,13 @@ func (decode *decoder) getCSVRow() ([]string, error) { return decode.csvDecoder.Read() } +type CSVReader interface { + Read() ([]string, error) + ReadAll() ([][]string, error) +} + type csvDecoder struct { - *csv.Reader + CSVReader } func (c csvDecoder) getCSVRows() ([][]string, error) { @@ -116,9 +121,15 @@ func readTo(decoder Decoder, out interface{}) error { csvHeadersLabels := make(map[int]*fieldInfo, len(outInnerStructInfo.Fields)) // Used to store the correspondance header <-> position in CSV + headerCount := map[string]int{} for i, csvColumnHeader := range headers { - if fieldInfo := getCSVFieldPosition(csvColumnHeader, outInnerStructInfo); fieldInfo != nil { + curHeaderCount := headerCount[csvColumnHeader] + if fieldInfo := getCSVFieldPosition(csvColumnHeader, outInnerStructInfo, curHeaderCount); fieldInfo != nil { csvHeadersLabels[i] = fieldInfo + if ShouldAlignDuplicateHeadersWithStructFieldOrder { + curHeaderCount++ + headerCount[csvColumnHeader] = curHeaderCount + } } } @@ -170,9 +181,15 @@ func readEach(decoder SimpleDecoder, c interface{}) error { return errors.New("no csv struct tags found") } csvHeadersLabels := make(map[int]*fieldInfo, len(outInnerStructInfo.Fields)) // Used to store the correspondance header <-> position in CSV + headerCount := map[string]int{} for i, csvColumnHeader := range headers { - if fieldInfo := getCSVFieldPosition(csvColumnHeader, outInnerStructInfo); fieldInfo != nil { + curHeaderCount := headerCount[csvColumnHeader] + if fieldInfo := getCSVFieldPosition(csvColumnHeader, outInnerStructInfo, curHeaderCount); fieldInfo != nil { csvHeadersLabels[i] = fieldInfo + if ShouldAlignDuplicateHeadersWithStructFieldOrder { + curHeaderCount++ + headerCount[csvColumnHeader] = curHeaderCount + } } } if err := maybeMissingStructFields(outInnerStructInfo.Fields, headers); err != nil { @@ -249,10 +266,15 @@ func ensureOutCapacity(out *reflect.Value, csvLen int) error { return nil } -func getCSVFieldPosition(key string, structInfo *structInfo) *fieldInfo { +func getCSVFieldPosition(key string, structInfo *structInfo, curHeaderCount int) *fieldInfo { + matchedFieldCount := 0 for _, field := range structInfo.Fields { if field.matchesKey(key) { - return &field + if matchedFieldCount >= curHeaderCount { + return &field + } else { + matchedFieldCount++ + } } } return nil diff --git a/vendor/github.com/gocarina/gocsv/encode.go b/vendor/github.com/gocarina/gocsv/encode.go index 52dd0f722aa..6e4e67bd06b 100644 --- a/vendor/github.com/gocarina/gocsv/encode.go +++ b/vendor/github.com/gocarina/gocsv/encode.go @@ -17,7 +17,10 @@ func newEncoder(out io.Writer) *encoder { func writeFromChan(writer *csv.Writer, c <-chan interface{}) error { // Get the first value. It wil determine the header structure. - firstValue := <-c + firstValue, ok := <-c + if !ok { + return fmt.Errorf("channel is closed") + } inValue, inType := getConcreteReflectValueAndType(firstValue) // Get the concrete type if err := ensureStructOrPtr(inType); err != nil { return err @@ -61,7 +64,7 @@ func writeFromChan(writer *csv.Writer, c <-chan interface{}) error { return writer.Error() } -func writeTo(writer *csv.Writer, in interface{}) error { +func writeTo(writer *csv.Writer, in interface{}, omitHeaders bool) error { inValue, inType := getConcreteReflectValueAndType(in) // Get the concrete type (not pointer) (Slice or Array) if err := ensureInType(inType); err != nil { return err @@ -75,8 +78,10 @@ func writeTo(writer *csv.Writer, in interface{}) error { for i, fieldInfo := range inInnerStructInfo.Fields { // Used to write the header (first line) in CSV csvHeadersLabels[i] = fieldInfo.getFirstKey() } - if err := writer.Write(csvHeadersLabels); err != nil { - return err + if !omitHeaders { + if err := writer.Write(csvHeadersLabels); err != nil { + return err + } } inLen := inValue.Len() for i := 0; i < inLen; i++ { // Iterate over container rows diff --git a/vendor/github.com/gocarina/gocsv/types.go b/vendor/github.com/gocarina/gocsv/types.go index 3af1ad30a11..6768256f525 100644 --- a/vendor/github.com/gocarina/gocsv/types.go +++ b/vendor/github.com/gocarina/gocsv/types.go @@ -206,6 +206,13 @@ func toFloat(in interface{}) (float64, error) { } func setField(field reflect.Value, value string) error { + if field.Kind() == reflect.Ptr { + if field.IsNil() { + field.Set(reflect.New(field.Type().Elem())) + } + field = field.Elem() + } + switch field.Interface().(type) { case string: s, err := toString(value) @@ -386,21 +393,20 @@ func unmarshall(field reflect.Value, value string) error { return nil } - return NoUnmarshalFuncError{"No known conversion from string to " + field.Type().String() + ", " + field.Type().String() + " does not implements TypeUnmarshaller"} + return NoUnmarshalFuncError{"No known conversion from string to " + field.Type().String() + ", " + field.Type().String() + " does not implement TypeUnmarshaller"} } for dupField.Kind() == reflect.Interface || dupField.Kind() == reflect.Ptr { if dupField.IsNil() { dupField = reflect.New(field.Type().Elem()) field.Set(dupField) return unMarshallIt(dupField) - break } dupField = dupField.Elem() } if dupField.CanAddr() { return unMarshallIt(dupField.Addr()) } - return NoUnmarshalFuncError{"No known conversion from string to " + field.Type().String() + ", " + field.Type().String() + " does not implements TypeUnmarshaller"} + return NoUnmarshalFuncError{"No known conversion from string to " + field.Type().String() + ", " + field.Type().String() + " does not implement TypeUnmarshaller"} } func marshall(field reflect.Value) (value string, err error) { @@ -415,7 +421,7 @@ func marshall(field reflect.Value) (value string, err error) { return string(text), err } - return value, NoMarshalFuncError{"No known conversion from " + field.Type().String() + " to string, " + field.Type().String() + " does not implements TypeMarshaller nor Stringer"} + return value, NoMarshalFuncError{"No known conversion from " + field.Type().String() + " to string, " + field.Type().String() + " does not implement TypeMarshaller nor Stringer"} } for dupField.Kind() == reflect.Interface || dupField.Kind() == reflect.Ptr { if dupField.IsNil() { @@ -426,5 +432,5 @@ func marshall(field reflect.Value) (value string, err error) { if dupField.CanAddr() { return marshallIt(dupField.Addr()) } - return value, NoMarshalFuncError{"No known conversion from " + field.Type().String() + " to string, " + field.Type().String() + " does not implements TypeMarshaller nor Stringer"} + return value, NoMarshalFuncError{"No known conversion from " + field.Type().String() + " to string, " + field.Type().String() + " does not implement TypeMarshaller nor Stringer"} } diff --git a/vendor/github.com/golang/snappy/cmd/snappytool/main.cpp b/vendor/github.com/golang/snappy/cmd/snappytool/main.cpp deleted file mode 100644 index fc31f51739a..00000000000 --- a/vendor/github.com/golang/snappy/cmd/snappytool/main.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* -To build the snappytool binary: -g++ main.cpp /usr/lib/libsnappy.a -o snappytool -or, if you have built the C++ snappy library from source: -g++ main.cpp /path/to/your/snappy/.libs/libsnappy.a -o snappytool -after running "make" from your snappy checkout directory. -*/ - -#include -#include -#include -#include - -#include "snappy.h" - -#define N 1000000 - -char dst[N]; -char src[N]; - -int main(int argc, char** argv) { - // Parse args. - if (argc != 2) { - fprintf(stderr, "exactly one of -d or -e must be given\n"); - return 1; - } - bool decode = strcmp(argv[1], "-d") == 0; - bool encode = strcmp(argv[1], "-e") == 0; - if (decode == encode) { - fprintf(stderr, "exactly one of -d or -e must be given\n"); - return 1; - } - - // Read all of stdin into src[:s]. - size_t s = 0; - while (1) { - if (s == N) { - fprintf(stderr, "input too large\n"); - return 1; - } - ssize_t n = read(0, src+s, N-s); - if (n == 0) { - break; - } - if (n < 0) { - fprintf(stderr, "read error: %s\n", strerror(errno)); - // TODO: handle EAGAIN, EINTR? - return 1; - } - s += n; - } - - // Encode or decode src[:s] to dst[:d], and write to stdout. - size_t d = 0; - if (encode) { - if (N < snappy::MaxCompressedLength(s)) { - fprintf(stderr, "input too large after encoding\n"); - return 1; - } - snappy::RawCompress(src, s, dst, &d); - } else { - if (!snappy::GetUncompressedLength(src, s, &d)) { - fprintf(stderr, "could not get uncompressed length\n"); - return 1; - } - if (N < d) { - fprintf(stderr, "input too large after decoding\n"); - return 1; - } - if (!snappy::RawUncompress(src, s, dst)) { - fprintf(stderr, "input was not valid Snappy-compressed data\n"); - return 1; - } - } - write(1, dst, d); - return 0; -} diff --git a/vendor/github.com/golang/snappy/encode.go b/vendor/github.com/golang/snappy/encode.go index 87496890609..8d393e904bb 100644 --- a/vendor/github.com/golang/snappy/encode.go +++ b/vendor/github.com/golang/snappy/encode.go @@ -138,7 +138,7 @@ func NewBufferedWriter(w io.Writer) *Writer { } } -// Writer is an io.Writer than can write Snappy-compressed bytes. +// Writer is an io.Writer that can write Snappy-compressed bytes. type Writer struct { w io.Writer err error diff --git a/vendor/github.com/golang/snappy/encode_amd64.go b/vendor/github.com/golang/snappy/encode_amd64.go index 2a56fb504c7..150d91bc8be 100644 --- a/vendor/github.com/golang/snappy/encode_amd64.go +++ b/vendor/github.com/golang/snappy/encode_amd64.go @@ -26,4 +26,4 @@ func extendMatch(src []byte, i, j int) int // encodeBlock has the same semantics as in encode_other.go. // //go:noescape -func encodeBlock(dst, src []byte) (d int) \ No newline at end of file +func encodeBlock(dst, src []byte) (d int) diff --git a/vendor/github.com/golang/snappy/testdata/Mark.Twain-Tom.Sawyer.txt.rawsnappy b/vendor/github.com/golang/snappy/testdata/Mark.Twain-Tom.Sawyer.txt.rawsnappy deleted file mode 100644 index 9c56d985888e48a9967e187523f0e3326330aeca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9871 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. - -## Install - - go get github.com/gorhill/cronexpr - go install github.com/gorhill/cronexpr - -## Usage - - cronexpr [options] "{cron expression}" - -## Options - -`-l`: - -Go-compliant time layout to use for outputting time value(s), see . - -Default is `"Mon, 02 Jan 2006 15:04:05 MST"` - -`-n`: - -Number of resulting time values to output. - -Default is 1. - -`-t`: - -Whole or partial RFC3339 time value (i.e. `2006-01-02T15:04:05Z07:00`) against which the cron expression is evaluated. Examples of valid values include (assuming EST time zone): - -`13` = 2013-01-01T00:00:00-05:00 -`2013` = 2013-01-01T00:00:00-05:00 -`2013-08` = 2013-08-01T00:00:00-05:00 -`2013-08-31` = 2013-08-31T00:00:00-05:00 -`2013-08-31T12` = 2013-08-31T12:00:00-05:00 -`2013-08-31T12:40` = 2013-08-31T12:40:00-05:00 -`2013-08-31T12:40:35` = 2013-08-31T12:40:35-05:00 -`2013-08-31T12:40:35-10:00` = 2013-08-31T12:40:35-10:00 - -Default time is current time, and default time zone is local time zone. - -## Examples - -#### Example 1 - -Midnight on December 31st of any year. - -Command: - - cronexpr -t="2013-08-31" -n=5 "0 0 31 12 *" - -Output (assuming computer is in EST time zone): - - # "0 0 31 12 *" + "2013-08-31T00:00:00-04:00" = - Tue, 31 Dec 2013 00:00:00 EST - Wed, 31 Dec 2014 00:00:00 EST - Thu, 31 Dec 2015 00:00:00 EST - Sat, 31 Dec 2016 00:00:00 EST - Sun, 31 Dec 2017 00:00:00 EST - -#### Example 2 - -2pm on February 29th of any year. - -Command: - - cronexpr -t=2000 -n=10 "0 14 29 2 *" - -Output (assuming computer is in EST time zone): - - # "0 14 29 2 *" + "2000-01-01T00:00:00-05:00" = - Tue, 29 Feb 2000 14:00:00 EST - Sun, 29 Feb 2004 14:00:00 EST - Fri, 29 Feb 2008 14:00:00 EST - Wed, 29 Feb 2012 14:00:00 EST - Mon, 29 Feb 2016 14:00:00 EST - Sat, 29 Feb 2020 14:00:00 EST - Thu, 29 Feb 2024 14:00:00 EST - Tue, 29 Feb 2028 14:00:00 EST - Sun, 29 Feb 2032 14:00:00 EST - Fri, 29 Feb 2036 14:00:00 EST - -#### Example 3 - -12pm on the work day closest to the 15th of March and every three month -thereafter. - -Command: - - cronexpr -t=2013-09-01 -n=5 "0 12 15W 3/3 *" - -Output (assuming computer is in EST time zone): - - # "0 12 15W 3/3 *" + "2013-09-01T00:00:00-04:00" = - Mon, 16 Sep 2013 12:00:00 EDT - Mon, 16 Dec 2013 12:00:00 EST - Fri, 14 Mar 2014 12:00:00 EDT - Mon, 16 Jun 2014 12:00:00 EDT - Mon, 15 Sep 2014 12:00:00 EDT - -#### Example 4 - -Midnight on the fifth Saturday of any month (twist: not all months have a 5th -specific day of week). - -Command: - - cronexpr -t=2013-09-02 -n 5 "0 0 * * 6#5" - -Output (assuming computer is in EST time zone): - - # "0 0 * * 6#5" + "2013-09-02T00:00:00-04:00" = - Sat, 30 Nov 2013 00:00:00 EST - Sat, 29 Mar 2014 00:00:00 EDT - Sat, 31 May 2014 00:00:00 EDT - Sat, 30 Aug 2014 00:00:00 EDT - Sat, 29 Nov 2014 00:00:00 EST - diff --git a/vendor/github.com/gorhill/cronexpr/cronexpr/main.go b/vendor/github.com/gorhill/cronexpr/cronexpr/main.go deleted file mode 100644 index 1d9abe5bca8..00000000000 --- a/vendor/github.com/gorhill/cronexpr/cronexpr/main.go +++ /dev/null @@ -1,111 +0,0 @@ -/*! - * Copyright 2013 Raymond Hill - * - * Project: github.com/gorhill/cronexpr - * File: main.go - * Version: 1.0 - * License: GPL v3 see - * - */ - -package main - -/******************************************************************************/ - -import ( - "flag" - "fmt" - "os" - "time" - - "github.com/gorhill/cronexpr" -) - -/******************************************************************************/ - -var ( - usage = func() { - fmt.Fprintf(os.Stderr, "usage:\n %s [options] \"{cron expression}\"\noptions:\n", os.Args[0]) - flag.PrintDefaults() - } - inTimeStr string - outTimeCount uint - outTimeLayout string -) - -/******************************************************************************/ - -func main() { - var err error - - flag.Usage = usage - flag.StringVar(&inTimeStr, "t", "", `whole or partial RFC3339 time value (i.e. "2006-01-02T15:04:05Z07:00") against which the cron expression is evaluated, now if not present`) - flag.UintVar(&outTimeCount, "n", 1, `number of resulting time values to output`) - flag.StringVar(&outTimeLayout, "l", "Mon, 02 Jan 2006 15:04:05 MST", `Go-compliant time layout to use for outputting time value(s), see `) - flag.Parse() - - cronStr := flag.Arg(0) - if len(cronStr) == 0 { - flag.Usage() - return - } - - inTime := time.Now() - inTimeLayout := "" - timeStrLen := len(inTimeStr) - if timeStrLen == 2 { - inTimeLayout = "06" - } else if timeStrLen >= 4 { - inTimeLayout += "2006" - if timeStrLen >= 7 { - inTimeLayout += "-01" - if timeStrLen >= 10 { - inTimeLayout += "-02" - if timeStrLen >= 13 { - inTimeLayout += "T15" - if timeStrLen >= 16 { - inTimeLayout += ":04" - if timeStrLen >= 19 { - inTimeLayout += ":05" - if timeStrLen >= 20 { - inTimeLayout += "Z07:00" - } - } - } - } - } - } - } - - if len(inTimeLayout) > 0 { - // default to local time zone - if timeStrLen < 20 { - inTime, err = time.ParseInLocation(inTimeLayout, inTimeStr, time.Local) - } else { - inTime, err = time.Parse(inTimeLayout, inTimeStr) - } - if err != nil { - fmt.Fprintf(os.Stderr, "# error: unparseable time value: \"%s\"\n", inTimeStr) - os.Exit(1) - } - } - - expr, err := cronexpr.Parse(cronStr) - if err != nil { - fmt.Fprintf(os.Stderr, "# %s: %s\n", os.Args[0], err) - os.Exit(1) - } - - // Anything on the output which starts with '#' can be ignored if the caller - // is interested only in the time values. There is only one time - // value per line, and they are always in chronological ascending order. - fmt.Printf("# \"%s\" + \"%s\" =\n", cronStr, inTime.Format(time.RFC3339)) - - if outTimeCount < 1 { - outTimeCount = 1 - } - outTimes := expr.NextN(inTime, outTimeCount) - for _, outTime := range outTimes { - fmt.Println(outTime.Format(outTimeLayout)) - } -} diff --git a/vendor/github.com/gorhill/cronexpr/cronexpr_parse.go b/vendor/github.com/gorhill/cronexpr/cronexpr_parse.go index aeb82968a76..be6ef1769fe 100644 --- a/vendor/github.com/gorhill/cronexpr/cronexpr_parse.go +++ b/vendor/github.com/gorhill/cronexpr/cronexpr_parse.go @@ -446,6 +446,9 @@ func genericFieldParse(s string, desc fieldDescriptor) ([]*cronDirective, error) directive.first = desc.min directive.last = desc.max directive.step = atoi(snormal[pairs[2]:pairs[3]]) + if directive.step < 1 || directive.step > desc.max { + return nil, fmt.Errorf("invalid interval %s", snormal) + } directives = append(directives, &directive) continue } @@ -456,6 +459,9 @@ func genericFieldParse(s string, desc fieldDescriptor) ([]*cronDirective, error) directive.first = desc.atoi(snormal[pairs[2]:pairs[3]]) directive.last = desc.max directive.step = atoi(snormal[pairs[4]:pairs[5]]) + if directive.step < 1 || directive.step > desc.max { + return nil, fmt.Errorf("invalid interval %s", snormal) + } directives = append(directives, &directive) continue } @@ -466,6 +472,9 @@ func genericFieldParse(s string, desc fieldDescriptor) ([]*cronDirective, error) directive.first = desc.atoi(snormal[pairs[2]:pairs[3]]) directive.last = desc.atoi(snormal[pairs[4]:pairs[5]]) directive.step = atoi(snormal[pairs[6]:pairs[7]]) + if directive.step < 1 || directive.step > desc.max { + return nil, fmt.Errorf("invalid interval %s", snormal) + } directives = append(directives, &directive) continue } diff --git a/vendor/github.com/klauspost/compress/README.md b/vendor/github.com/klauspost/compress/README.md deleted file mode 100644 index b8176fa462b..00000000000 --- a/vendor/github.com/klauspost/compress/README.md +++ /dev/null @@ -1,328 +0,0 @@ -# compress - -This package is based on an optimized Deflate function, which is used by gzip/zip/zlib packages. - -It offers slightly better compression at lower compression settings, and up to 3x faster encoding at highest compression level. - -* [High Throughput Benchmark](http://blog.klauspost.com/go-gzipdeflate-benchmarks/). -* [Small Payload/Webserver Benchmarks](http://blog.klauspost.com/gzip-performance-for-go-webservers/). -* [Linear Time Compression](http://blog.klauspost.com/constant-time-gzipzip-compression/). -* [Re-balancing Deflate Compression Levels](https://blog.klauspost.com/rebalancing-deflate-compression-levels/) - -[![Build Status](https://travis-ci.org/klauspost/compress.svg?branch=master)](https://travis-ci.org/klauspost/compress) - -# changelog -* Feb 19. 2016: Faster bit writer, level -2 is 15% faster, level 1 is 4% faster. -* Feb 19, 2016: Handle small payloads faster in level 1-3. -* Feb 19, 2016: Added faster level 2 + 3 compression modes. -* Feb 19, 2016: [Rebalanced compression levels](https://blog.klauspost.com/rebalancing-deflate-compression-levels/), so there is a more even progresssion in terms of compression. New default level is 5. -* Feb 14, 2016: Snappy: Merge upstream changes. -* Feb 14, 2016: Snappy: Fix aggressive skipping. -* Feb 14, 2016: Snappy: Update benchmark. -* Feb 13, 2016: Deflate: Fixed assembler problem that could lead to sub-optimal compression. -* Feb 12, 2016: Snappy: Added AMD64 SSE 4.2 optimizations to matching, which makes easy to compress material run faster. Typical speedup is around 25%. -* Feb 9, 2016: Added Snappy package fork. This version is 5-7% faster, much more on hard to compress content. -* Jan 30, 2016: Optimize level 1 to 3 by not considering static dictionary or storing uncompressed. ~4-5% speedup. -* Jan 16, 2016: Optimization on deflate level 1,2,3 compression. -* Jan 8 2016: Merge [CL 18317](https://go-review.googlesource.com/#/c/18317): fix reading, writing of zip64 archives. -* Dec 8 2015: Make level 1 and -2 deterministic even if write size differs. -* Dec 8 2015: Split encoding functions, so hashing and matching can potentially be inlined. 1-3% faster on AMD64. 5% faster on other platforms. -* Dec 8 2015: Fixed rare [one byte out-of bounds read](https://github.com/klauspost/compress/issues/20). Please update! -* Nov 23 2015: Optimization on token writer. ~2-4% faster. Contributed by [@dsnet](https://github.com/dsnet). -* Nov 20 2015: Small optimization to bit writer on 64 bit systems. -* Nov 17 2015: Fixed out-of-bound errors if the underlying Writer returned an error. See [#15](https://github.com/klauspost/compress/issues/15). -* Nov 12 2015: Added [io.WriterTo](https://golang.org/pkg/io/#WriterTo) support to gzip/inflate. -* Nov 11 2015: Merged [CL 16669](https://go-review.googlesource.com/#/c/16669/4): archive/zip: enable overriding (de)compressors per file -* Oct 15 2015: Added skipping on uncompressible data. Random data speed up >5x. - -# usage - -The packages are drop-in replacements for standard libraries. Simply replace the import path to use them: - -| old import | new import | -|--------------------|-----------------------------------------| -| `compress/gzip` | `github.com/klauspost/compress/gzip` | -| `compress/zlib` | `github.com/klauspost/compress/zlib` | -| `archive/zip` | `github.com/klauspost/compress/zip` | -| `compress/deflate` | `github.com/klauspost/compress/deflate` | -| `github.com/golang/snappy` | `github.com/klauspost/compress/snappy` | - -You may also be interested in [pgzip](https://github.com/klauspost/pgzip), which is a drop in replacement for gzip, which support multithreaded compression on big files and the optimized [crc32](https://github.com/klauspost/crc32) package used by these packages. - -The packages contains the same as the standard library, so you can use the godoc for that: [gzip](http://golang.org/pkg/compress/gzip/), [zip](http://golang.org/pkg/archive/zip/), [zlib](http://golang.org/pkg/compress/zlib/), [flate](http://golang.org/pkg/compress/flate/), [snappy](http://golang.org/pkg/compress/snappy/). - -Currently there is only minor speedup on decompression (mostly CRC32 calculation). - -# deflate optimizations - -* Minimum matches are 4 bytes, this leads to fewer searches and better compression. -* Stronger hash (iSCSI CRC32) for matches on x64 with SSE 4.2 support. This leads to fewer hash collisions. -* Literal byte matching using SSE 4.2 for faster match comparisons. -* Bulk hashing on matches. -* Much faster dictionary indexing with `NewWriterDict()`/`Reset()`. -* Make Bit Coder faster by assuming we are on a 64 bit CPU. -* Level 1 compression replaced by converted "Snappy" algorithm. -* Uncompressible content is detected and skipped faster. -* A lot of branching eliminated by having two encoders for levels 2+3 and 4+. -* All heap memory allocations eliminated. - -``` -benchmark old ns/op new ns/op delta -BenchmarkEncodeDigitsSpeed1e4-4 554029 265175 -52.14% -BenchmarkEncodeDigitsSpeed1e5-4 3908558 2416595 -38.17% -BenchmarkEncodeDigitsSpeed1e6-4 37546692 24875330 -33.75% -BenchmarkEncodeDigitsDefault1e4-4 781510 486322 -37.77% -BenchmarkEncodeDigitsDefault1e5-4 15530248 6740175 -56.60% -BenchmarkEncodeDigitsDefault1e6-4 174915710 76498625 -56.27% -BenchmarkEncodeDigitsCompress1e4-4 769995 485652 -36.93% -BenchmarkEncodeDigitsCompress1e5-4 15450113 6929589 -55.15% -BenchmarkEncodeDigitsCompress1e6-4 175114660 73348495 -58.11% -BenchmarkEncodeTwainSpeed1e4-4 560122 275977 -50.73% -BenchmarkEncodeTwainSpeed1e5-4 3740978 2506095 -33.01% -BenchmarkEncodeTwainSpeed1e6-4 35542802 21904440 -38.37% -BenchmarkEncodeTwainDefault1e4-4 828534 549026 -33.74% -BenchmarkEncodeTwainDefault1e5-4 13667153 7528455 -44.92% -BenchmarkEncodeTwainDefault1e6-4 141191770 79952170 -43.37% -BenchmarkEncodeTwainCompress1e4-4 830050 545694 -34.26% -BenchmarkEncodeTwainCompress1e5-4 16620852 8460600 -49.10% -BenchmarkEncodeTwainCompress1e6-4 193326820 90808750 -53.03% - -benchmark old MB/s new MB/s speedup -BenchmarkEncodeDigitsSpeed1e4-4 18.05 37.71 2.09x -BenchmarkEncodeDigitsSpeed1e5-4 25.58 41.38 1.62x -BenchmarkEncodeDigitsSpeed1e6-4 26.63 40.20 1.51x -BenchmarkEncodeDigitsDefault1e4-4 12.80 20.56 1.61x -BenchmarkEncodeDigitsDefault1e5-4 6.44 14.84 2.30x -BenchmarkEncodeDigitsDefault1e6-4 5.72 13.07 2.28x -BenchmarkEncodeDigitsCompress1e4-4 12.99 20.59 1.59x -BenchmarkEncodeDigitsCompress1e5-4 6.47 14.43 2.23x -BenchmarkEncodeDigitsCompress1e6-4 5.71 13.63 2.39x -BenchmarkEncodeTwainSpeed1e4-4 17.85 36.23 2.03x -BenchmarkEncodeTwainSpeed1e5-4 26.73 39.90 1.49x -BenchmarkEncodeTwainSpeed1e6-4 28.14 45.65 1.62x -BenchmarkEncodeTwainDefault1e4-4 12.07 18.21 1.51x -BenchmarkEncodeTwainDefault1e5-4 7.32 13.28 1.81x -BenchmarkEncodeTwainDefault1e6-4 7.08 12.51 1.77x -BenchmarkEncodeTwainCompress1e4-4 12.05 18.33 1.52x -BenchmarkEncodeTwainCompress1e5-4 6.02 11.82 1.96x -BenchmarkEncodeTwainCompress1e6-4 5.17 11.01 2.13x -``` -* "Speed" is compression level 1 -* "Default" is compression level 6 -* "Compress" is compression level 9 -* Test files are [Digits](https://github.com/klauspost/compress/blob/master/testdata/e.txt) (no matches) and [Twain](https://github.com/klauspost/compress/blob/master/testdata/Mark.Twain-Tom.Sawyer.txt) (plain text) . - -As can be seen it shows a very good speedup all across the line. - -`Twain` is a much more realistic benchmark, and will be closer to JSON/HTML performance. Here speed is equivalent or faster, up to 2 times. - -**Without assembly**. This is what you can expect on systems that does not have amd64 and SSE 4: -``` -benchmark old ns/op new ns/op delta -BenchmarkEncodeDigitsSpeed1e4-4 554029 249558 -54.96% -BenchmarkEncodeDigitsSpeed1e5-4 3908558 2295216 -41.28% -BenchmarkEncodeDigitsSpeed1e6-4 37546692 22594905 -39.82% -BenchmarkEncodeDigitsDefault1e4-4 781510 579850 -25.80% -BenchmarkEncodeDigitsDefault1e5-4 15530248 10096561 -34.99% -BenchmarkEncodeDigitsDefault1e6-4 174915710 111470780 -36.27% -BenchmarkEncodeDigitsCompress1e4-4 769995 579708 -24.71% -BenchmarkEncodeDigitsCompress1e5-4 15450113 10266373 -33.55% -BenchmarkEncodeDigitsCompress1e6-4 175114660 110170120 -37.09% -BenchmarkEncodeTwainSpeed1e4-4 560122 260679 -53.46% -BenchmarkEncodeTwainSpeed1e5-4 3740978 2097372 -43.94% -BenchmarkEncodeTwainSpeed1e6-4 35542802 20353449 -42.74% -BenchmarkEncodeTwainDefault1e4-4 828534 646016 -22.03% -BenchmarkEncodeTwainDefault1e5-4 13667153 10056369 -26.42% -BenchmarkEncodeTwainDefault1e6-4 141191770 105268770 -25.44% -BenchmarkEncodeTwainCompress1e4-4 830050 642401 -22.61% -BenchmarkEncodeTwainCompress1e5-4 16620852 11157081 -32.87% -BenchmarkEncodeTwainCompress1e6-4 193326820 121780770 -37.01% - -benchmark old MB/s new MB/s speedup -BenchmarkEncodeDigitsSpeed1e4-4 18.05 40.07 2.22x -BenchmarkEncodeDigitsSpeed1e5-4 25.58 43.57 1.70x -BenchmarkEncodeDigitsSpeed1e6-4 26.63 44.26 1.66x -BenchmarkEncodeDigitsDefault1e4-4 12.80 17.25 1.35x -BenchmarkEncodeDigitsDefault1e5-4 6.44 9.90 1.54x -BenchmarkEncodeDigitsDefault1e6-4 5.72 8.97 1.57x -BenchmarkEncodeDigitsCompress1e4-4 12.99 17.25 1.33x -BenchmarkEncodeDigitsCompress1e5-4 6.47 9.74 1.51x -BenchmarkEncodeDigitsCompress1e6-4 5.71 9.08 1.59x -BenchmarkEncodeTwainSpeed1e4-4 17.85 38.36 2.15x -BenchmarkEncodeTwainSpeed1e5-4 26.73 47.68 1.78x -BenchmarkEncodeTwainSpeed1e6-4 28.14 49.13 1.75x -BenchmarkEncodeTwainDefault1e4-4 12.07 15.48 1.28x -BenchmarkEncodeTwainDefault1e5-4 7.32 9.94 1.36x -BenchmarkEncodeTwainDefault1e6-4 7.08 9.50 1.34x -BenchmarkEncodeTwainCompress1e4-4 12.05 15.57 1.29x -BenchmarkEncodeTwainCompress1e5-4 6.02 8.96 1.49x -BenchmarkEncodeTwainCompress1e6-4 5.17 8.21 1.59x -``` -So even without the assembly optimizations there is a general speedup across the board. - -## level 1-3 "snappy" compression - -Level 1 "Best Speed" is completely replaced by a converted version of the algorithm found in Snappy, modified to be fully -compatible with the deflate bitstream (and thus still compatible with all existing zlib/gzip libraries and tools). -This version is considerably faster than the "old" deflate at level 1. It does however come at a compression loss, usually in the order of 3-4% compared to the old level 1. However, the speed is usually 1.75 times that of the fastest deflate mode. - -In my previous experiments the most common case for "level 1" was that it provided no significant speedup, only lower compression compared to level 2 and sometimes even 3. However, the modified Snappy algorithm provides a very good sweet spot. Usually about 75% faster and with only little compression loss. Therefore I decided to *replace* level 1 with this mode entirely. - -Input is split into blocks of 64kb of, and they are encoded independently (no backreferences across blocks) for the best speed. Contrary to Snappy the output is entropy-encoded, so you will almost always see better compression than Snappy. But Snappy is still about twice as fast as Snappy in deflate mode. - -Level 2 and 3 have also been replaced. Level 2 is capable is matching between blocks and level 3 checks up to two hashes for matches before choosing the longest for encoding the match. - -## compression levels - -This table shows the compression at each level, and the percentage of the output size compared to output -at the similar level with the standard library. Compression data is `Twain`, see above. - -(Not up-to-date after rebalancing) - -| Level | Bytes | % size | -|-------|--------|--------| -| 1 | 194622 | 103.7% | -| 2 | 174684 | 96.85% | -| 3 | 170301 | 98.45% | -| 4 | 165253 | 97.69% | -| 5 | 161274 | 98.65% | -| 6 | 160464 | 99.71% | -| 7 | 160304 | 99.87% | -| 8 | 160279 | 99.99% | -| 9 | 160279 | 99.99% | - -To interpret and example, this version of deflate compresses input of 407287 bytes to 161274 bytes at level 5, which is 98.6% of the size of what the standard library produces; 161274 bytes. - -This means that from level 4 you can expect a compression level increase of a few percent. Level 1 is about 3% worse, as descibed above. - -# linear time compression - -This compression library adds a special compression level, named `ConstantCompression`, which allows near linear time compression. This is done by completely disabling matching of previous data, and only reduce the number of bits to represent each character. - -This means that often used characters, like 'e' and ' ' (space) in text use the fewest bits to represent, and rare characters like '¤' takes more bits to represent. For more information see [wikipedia](https://en.wikipedia.org/wiki/Huffman_coding) or this nice [video](https://youtu.be/ZdooBTdW5bM). - -Since this type of compression has much less variance, the compression speed is mostly unaffected by the input data, and is usually more than *180MB/s* for a single core. - -The downside is that the compression ratio is usually considerably worse than even the fastest conventional compression. The compression raio can never be better than 8:1 (12.5%). - -The linear time compression can be used as a "better than nothing" mode, where you cannot risk the encoder to slow down on some content. For comparison, the size of the "Twain" text is *233460 bytes* (+29% vs. level 1) and encode speed is 144MB/s (4.5x level 1). So in this case you trade a 30% size increase for a 4 times speedup. - -For more information see my blog post on [Fast Linear Time Compression](http://blog.klauspost.com/constant-time-gzipzip-compression/). - -# gzip/zip optimizations - * Uses the faster deflate - * Uses SSE 4.2 CRC32 calculations. - -Speed increase is up to 3x of the standard library, but usually around 2x. - -This is close to a real world benchmark as you will get. A 2.3MB JSON file. (NOTE: not up-to-date) - -``` -benchmark old ns/op new ns/op delta -BenchmarkGzipL1-4 95212470 59938275 -37.05% -BenchmarkGzipL2-4 102069730 76349195 -25.20% -BenchmarkGzipL3-4 115472770 82492215 -28.56% -BenchmarkGzipL4-4 153197780 107570890 -29.78% -BenchmarkGzipL5-4 203930260 134387930 -34.10% -BenchmarkGzipL6-4 233172100 145495400 -37.60% -BenchmarkGzipL7-4 297190260 197926950 -33.40% -BenchmarkGzipL8-4 512819750 376244733 -26.63% -BenchmarkGzipL9-4 563366800 403266833 -28.42% - -benchmark old MB/s new MB/s speedup -BenchmarkGzipL1-4 52.11 82.78 1.59x -BenchmarkGzipL2-4 48.61 64.99 1.34x -BenchmarkGzipL3-4 42.97 60.15 1.40x -BenchmarkGzipL4-4 32.39 46.13 1.42x -BenchmarkGzipL5-4 24.33 36.92 1.52x -BenchmarkGzipL6-4 21.28 34.10 1.60x -BenchmarkGzipL7-4 16.70 25.07 1.50x -BenchmarkGzipL8-4 9.68 13.19 1.36x -BenchmarkGzipL9-4 8.81 12.30 1.40x -``` - -Multithreaded compression using [pgzip](https://github.com/klauspost/pgzip) comparison, Quadcore, CPU = 8: - -(Not updated, old numbers) - -``` -benchmark old ns/op new ns/op delta -BenchmarkGzipL1 96155500 25981486 -72.98% -BenchmarkGzipL2 101905830 24601408 -75.86% -BenchmarkGzipL3 113506490 26321506 -76.81% -BenchmarkGzipL4 143708220 31761818 -77.90% -BenchmarkGzipL5 188210770 39602266 -78.96% -BenchmarkGzipL6 209812000 40402313 -80.74% -BenchmarkGzipL7 270015440 56103210 -79.22% -BenchmarkGzipL8 461359700 91255220 -80.22% -BenchmarkGzipL9 498361833 88755075 -82.19% - -benchmark old MB/s new MB/s speedup -BenchmarkGzipL1 51.60 190.97 3.70x -BenchmarkGzipL2 48.69 201.69 4.14x -BenchmarkGzipL3 43.71 188.51 4.31x -BenchmarkGzipL4 34.53 156.22 4.52x -BenchmarkGzipL5 26.36 125.29 4.75x -BenchmarkGzipL6 23.65 122.81 5.19x -BenchmarkGzipL7 18.38 88.44 4.81x -BenchmarkGzipL8 10.75 54.37 5.06x -BenchmarkGzipL9 9.96 55.90 5.61x -``` - -# snappy package - -### This is still in development, and should not be used for critical applications. - -The Snappy package contains some optimizations over the standard package. - -This speeds up mainly **hard** and **easy** to compress material. - -Here are the "standard" benchmarks, compared to current Snappy master (13 feb 2016). - -## Speed -``` -name old speed new speed delta -WordsDecode1e3-8 405MB/s ± 5% 444MB/s ± 1% +9.60% (p=0.045 n=3+3) -WordsEncode1e1-8 4.55MB/s ± 1% 98.93MB/s ± 2% +2075.95% (p=0.000 n=3+3) -WordsEncode1e2-8 36.4MB/s ± 0% 166.1MB/s ± 3% +356.03% (p=0.000 n=3+3) -WordsEncode1e3-8 129MB/s ± 0% 185MB/s ± 1% +43.82% (p=0.000 n=3+3) -WordsEncode1e5-8 125MB/s ± 1% 140MB/s ± 2% +11.77% (p=0.005 n=3+3) -WordsEncode1e6-8 121MB/s ± 3% 134MB/s ± 0% +11.15% (p=0.026 n=3+3) -RandomEncode-8 2.80GB/s ± 2% 2.68GB/s ± 1% -4.32% (p=0.019 n=3+3) -_UFlat3-8 746MB/s ± 2% 812MB/s ± 1% +8.90% (p=0.004 n=3+3) -_UFlat4-8 2.50GB/s ± 1% 3.06GB/s ± 1% +22.68% (p=0.000 n=3+3) -_ZFlat0-8 284MB/s ± 1% 362MB/s ± 1% +27.45% (p=0.000 n=3+3) -_ZFlat2-8 2.85GB/s ± 0% 3.71GB/s ± 1% +30.21% (p=0.000 n=3+3) -_ZFlat3-8 64.5MB/s ± 1% 216.9MB/s ± 2% +236.02% (p=0.000 n=3+3) -_ZFlat4-8 415MB/s ± 1% 2000MB/s ± 1% +382.43% (p=0.000 n=3+3) -_ZFlat5-8 282MB/s ± 1% 354MB/s ± 2% +25.67% (p=0.003 n=3+3) -_ZFlat6-8 124MB/s ± 1% 136MB/s ± 2% +9.84% (p=0.013 n=3+3) -_ZFlat7-8 116MB/s ± 2% 127MB/s ± 1% +10.12% (p=0.002 n=3+3) -_ZFlat8-8 128MB/s ± 1% 142MB/s ± 1% +11.38% (p=0.000 n=3+3) -_ZFlat9-8 111MB/s ± 2% 120MB/s ± 1% +8.45% (p=0.009 n=3+3) -_ZFlat10-8 318MB/s ± 1% 439MB/s ± 1% +38.16% (p=0.000 n=3+3) -_ZFlat11-8 183MB/s ± 0% 226MB/s ± 3% +23.53% (p=0.004 n=3+3) -``` -Only significant differences are included. - -## Size Comparison: -``` -name data insize outsize ref red. ref-red r-delta -Flat0: html 102400 23317 23330 77.23% 77.23% 0.01% -Flat1: urls 712086 337290 335282 52.63% 52.63% -0.28% -Flat2: jpg 123093 123035 123032 0.05% 0.05% -0.00% -Flat3: jpg_200 123093 123035 123032 0.05% 0.05% -0.00% -Flat4: pdf 102400 84897 83754 17.09% 17.09% -1.12% -Flat5: html4 409600 92689 92366 77.37% 77.37% -0.08% -Flat6: txt1 152089 89544 89495 41.12% 41.12% -0.03% -Flat7: txt2 129301 80531 80518 37.72% 37.72% -0.01% -Flat8: txt3 426754 238857 238849 44.03% 44.03% -0.00% -Flat9: txt4 481861 324755 325047 32.60% 32.60% 0.06% -Flat10: pb 118588 24723 23392 79.15% 79.15% -1.12% -Flat11: gaviota 184320 73963 73962 59.87% 59.87% -0.00% -``` -r-delta is difference in compression. Negative means this package performs worse. - -# license - -This code is licensed under the same conditions as the original Go code. See LICENSE file. diff --git a/vendor/github.com/klauspost/compress/flate/crc32_amd64.go b/vendor/github.com/klauspost/compress/flate/crc32_amd64.go index 45d52f629c2..70a6095e60d 100644 --- a/vendor/github.com/klauspost/compress/flate/crc32_amd64.go +++ b/vendor/github.com/klauspost/compress/flate/crc32_amd64.go @@ -12,18 +12,20 @@ import ( // crc32sse returns a hash for the first 4 bytes of the slice // len(a) must be >= 4. //go:noescape -func crc32sse(a []byte) hash +func crc32sse(a []byte) uint32 // crc32sseAll calculates hashes for each 4-byte set in a. // dst must be east len(a) - 4 in size. // The size is not checked by the assembly. //go:noescape -func crc32sseAll(a []byte, dst []hash) +func crc32sseAll(a []byte, dst []uint32) // matchLenSSE4 returns the number of matching bytes in a and b // up to length 'max'. Both slices must be at least 'max' // bytes in size. -// It uses the PCMPESTRI SSE 4.2 instruction. +// +// TODO: drop the "SSE4" name, since it doesn't use any SSE instructions. +// //go:noescape func matchLenSSE4(a, b []byte, max int) int diff --git a/vendor/github.com/klauspost/compress/flate/crc32_amd64.s b/vendor/github.com/klauspost/compress/flate/crc32_amd64.s index 0212360d663..2fb2079b9d0 100644 --- a/vendor/github.com/klauspost/compress/flate/crc32_amd64.s +++ b/vendor/github.com/klauspost/compress/flate/crc32_amd64.s @@ -1,9 +1,10 @@ -//+build !noasm !appengine +//+build !noasm +//+build !appengine // Copyright 2015, Klaus Post, see LICENSE for details. -// func crc32sse(a []byte) hash -TEXT ·crc32sse(SB), 7, $0 +// func crc32sse(a []byte) uint32 +TEXT ·crc32sse(SB), 4, $0 MOVQ a+0(FP), R10 XORQ BX, BX @@ -14,8 +15,8 @@ TEXT ·crc32sse(SB), 7, $0 MOVL BX, ret+24(FP) RET -// func crc32sseAll(a []byte, dst []hash) -TEXT ·crc32sseAll(SB), 7, $0 +// func crc32sseAll(a []byte, dst []uint32) +TEXT ·crc32sseAll(SB), 4, $0 MOVQ a+0(FP), R8 // R8: src MOVQ a_len+8(FP), R10 // input length MOVQ dst+24(FP), R9 // R9: dst @@ -95,68 +96,62 @@ one_crc: JMP rem_loop // func matchLenSSE4(a, b []byte, max int) int -TEXT ·matchLenSSE4(SB), 7, $0 - MOVQ a+0(FP), SI // RSI: &a - MOVQ b+24(FP), DI // RDI: &b - MOVQ max+48(FP), R10 // R10: max - XORQ R11, R11 // R11: match length - MOVQ R10, R12 // R12: Remainder - SHRQ $4, R10 // max / 16 - MOVQ $16, AX // Set length for PCMPESTRI - MOVQ $16, DX // Set length for PCMPESTRI - ANDQ $15, R12 // max & 15 - TESTQ R10, R10 - JZ matchlen_verysmall - -loopback_matchlen: - MOVOU (SI), X0 // a[x] - MOVOU (DI), X1 // b[x] - - // PCMPESTRI $0x18, X1, X0 - // 0x18 = _SIDD_UBYTE_OPS (0x0) | _SIDD_CMP_EQUAL_EACH (0x8) | _SIDD_NEGATIVE_POLARITY (0x10) - BYTE $0x66; BYTE $0x0f; BYTE $0x3a - BYTE $0x61; BYTE $0xc1; BYTE $0x18 - - JC match_ended - - ADDQ $16, SI - ADDQ $16, DI - ADDQ $16, R11 - - SUBQ $1, R10 - JNZ loopback_matchlen - - // Check the remainder using REP CMPSB -matchlen_verysmall: - TESTQ R12, R12 - JZ done_matchlen - MOVQ R12, CX - ADDQ R12, R11 - - // Compare CX bytes at [SI] [DI] - // Subtract one from CX for every match. - // Terminates when CX is zero (checked pre-compare) - CLD - REP; CMPSB - - // Check if last was a match. - JZ done_matchlen - - // Subtract remanding bytes. - SUBQ CX, R11 - SUBQ $1, R11 - MOVQ R11, ret+56(FP) +TEXT ·matchLenSSE4(SB), 4, $0 + MOVQ a_base+0(FP), SI + MOVQ b_base+24(FP), DI + MOVQ DI, DX + MOVQ max+48(FP), CX + +cmp8: + // As long as we are 8 or more bytes before the end of max, we can load and + // compare 8 bytes at a time. If those 8 bytes are equal, repeat. + CMPQ CX, $8 + JLT cmp1 + MOVQ (SI), AX + MOVQ (DI), BX + CMPQ AX, BX + JNE bsf + ADDQ $8, SI + ADDQ $8, DI + SUBQ $8, CX + JMP cmp8 + +bsf: + // If those 8 bytes were not equal, XOR the two 8 byte values, and return + // the index of the first byte that differs. The BSF instruction finds the + // least significant 1 bit, the amd64 architecture is little-endian, and + // the shift by 3 converts a bit index to a byte index. + XORQ AX, BX + BSFQ BX, BX + SHRQ $3, BX + ADDQ BX, DI + + // Subtract off &b[0] to convert from &b[ret] to ret, and return. + SUBQ DX, DI + MOVQ DI, ret+56(FP) RET -match_ended: - ADDQ CX, R11 - -done_matchlen: - MOVQ R11, ret+56(FP) +cmp1: + // In the slices' tail, compare 1 byte at a time. + CMPQ CX, $0 + JEQ matchLenEnd + MOVB (SI), AX + MOVB (DI), BX + CMPB AX, BX + JNE matchLenEnd + ADDQ $1, SI + ADDQ $1, DI + SUBQ $1, CX + JMP cmp1 + +matchLenEnd: + // Subtract off &b[0] to convert from &b[ret] to ret, and return. + SUBQ DX, DI + MOVQ DI, ret+56(FP) RET // func histogram(b []byte, h []int32) -TEXT ·histogram(SB), 7, $0 +TEXT ·histogram(SB), 4, $0 MOVQ b+0(FP), SI // SI: &b MOVQ b_len+8(FP), R9 // R9: len(b) MOVQ h+24(FP), DI // DI: Histogram diff --git a/vendor/github.com/klauspost/compress/flate/crc32_noasm.go b/vendor/github.com/klauspost/compress/flate/crc32_noasm.go index 1c6d23eed63..bd98bd598ff 100644 --- a/vendor/github.com/klauspost/compress/flate/crc32_noasm.go +++ b/vendor/github.com/klauspost/compress/flate/crc32_noasm.go @@ -9,12 +9,12 @@ func init() { } // crc32sse should never be called. -func crc32sse(a []byte) hash { +func crc32sse(a []byte) uint32 { panic("no assembler") } // crc32sseAll should never be called. -func crc32sseAll(a []byte, dst []hash) { +func crc32sseAll(a []byte, dst []uint32) { panic("no assembler") } @@ -25,9 +25,10 @@ func matchLenSSE4(a, b []byte, max int) int { } // histogram accumulates a histogram of b in h. -// h must be at least 256 entries in length, -// and must be cleared before calling this function. +// +// len(h) must be >= 256, and h's elements must be all zeroes. func histogram(b []byte, h []int32) { + h = h[:256] for _, t := range b { h[t]++ } diff --git a/vendor/github.com/klauspost/compress/flate/deflate.go b/vendor/github.com/klauspost/compress/flate/deflate.go index b1efa677a57..9e6e7ff0cfe 100644 --- a/vendor/github.com/klauspost/compress/flate/deflate.go +++ b/vendor/github.com/klauspost/compress/flate/deflate.go @@ -12,18 +12,30 @@ import ( ) const ( - NoCompression = 0 - BestSpeed = 1 - BestCompression = 9 - DefaultCompression = -1 - ConstantCompression = -2 // Does only Huffman encoding - logWindowSize = 15 - windowSize = 1 << logWindowSize - windowMask = windowSize - 1 - logMaxOffsetSize = 15 // Standard DEFLATE - minMatchLength = 4 // The smallest match that the compressor looks for - maxMatchLength = 258 // The longest match for the compressor - minOffsetSize = 1 // The shortest offset that makes any sense + NoCompression = 0 + BestSpeed = 1 + BestCompression = 9 + DefaultCompression = -1 + + // HuffmanOnly disables Lempel-Ziv match searching and only performs Huffman + // entropy encoding. This mode is useful in compressing data that has + // already been compressed with an LZ style algorithm (e.g. Snappy or LZ4) + // that lacks an entropy encoder. Compression gains are achieved when + // certain bytes in the input stream occur more frequently than others. + // + // Note that HuffmanOnly produces a compressed output that is + // RFC 1951 compliant. That is, any valid DEFLATE decompressor will + // continue to be able to decompress this output. + HuffmanOnly = -2 + ConstantCompression = HuffmanOnly // compatibility alias. + + logWindowSize = 15 + windowSize = 1 << logWindowSize + windowMask = windowSize - 1 + logMaxOffsetSize = 15 // Standard DEFLATE + minMatchLength = 4 // The smallest match that the compressor looks for + maxMatchLength = 258 // The longest match for the compressor + minOffsetSize = 1 // The shortest offset that makes any sense // The maximum number of tokens we put into a single flat block, just too // stop things from getting too large. @@ -49,29 +61,27 @@ type compressionLevel struct { // See https://blog.klauspost.com/rebalancing-deflate-compression-levels/ var levels = []compressionLevel{ {}, // 0 - // Level 1+2 uses snappy algorithm - values not used + // Level 1-4 uses specialized algorithm - values not used {0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 2}, - // For levels 3-6 we don't bother trying with lazy matches. + {0, 0, 0, 0, 0, 3}, + {0, 0, 0, 0, 0, 4}, + // For levels 5-6 we don't bother trying with lazy matches. // Lazy matching is at least 30% slower, with 1.5% increase. - {4, 0, 8, 4, 4, 3}, - {4, 0, 12, 6, 5, 4}, - {6, 0, 24, 16, 6, 5}, - {8, 0, 32, 32, 7, 6}, + {6, 0, 12, 8, 12, 5}, + {8, 0, 24, 16, 16, 6}, // Levels 7-9 use increasingly more lazy matching // and increasingly stringent conditions for "good enough". - {4, 8, 16, 16, skipNever, 7}, - {6, 16, 32, 64, skipNever, 8}, + {8, 8, 24, 16, skipNever, 7}, + {10, 16, 24, 64, skipNever, 8}, {32, 258, 258, 4096, skipNever, 9}, } -type hashid uint32 - type compressor struct { compressionLevel w *huffmanBitWriter - bulkHasher func([]byte, []hash) + bulkHasher func([]byte, []uint32) // compression algorithm fill func(*compressor, []byte) int // copy data to window @@ -84,8 +94,8 @@ type compressor struct { // hashPrev[hashHead[hashValue] & windowMask] contains the previous index // with the same hash value. chainHead int - hashHead []hashid - hashPrev []hashid + hashHead [hashSize]uint32 + hashPrev [windowSize]uint32 hashOffset int // input window: unprocessed data is window[index:windowEnd] @@ -101,21 +111,19 @@ type compressor struct { // deflate state length int offset int - hash hash + hash uint32 maxInsertIndex int err error ii uint16 // position of last match, intended to overflow to reset. snap snappyEnc - hashMatch [maxMatchLength + minMatchLength]hash + hashMatch [maxMatchLength + minMatchLength]uint32 } -type hash int32 - func (d *compressor) fillDeflate(b []byte) int { if d.index >= 2*windowSize-(minMatchLength+maxMatchLength) { // shift the window by windowSize - copy(d.window, d.window[windowSize:2*windowSize]) + copy(d.window[:], d.window[windowSize:2*windowSize]) d.index -= windowSize d.windowEnd -= windowSize if d.blockStart >= windowSize { @@ -128,16 +136,18 @@ func (d *compressor) fillDeflate(b []byte) int { delta := d.hashOffset - 1 d.hashOffset -= delta d.chainHead -= delta - for i, v := range d.hashPrev { + // Iterate over slices instead of arrays to avoid copying + // the entire table onto the stack (Issue #18625). + for i, v := range d.hashPrev[:] { if int(v) > delta { - d.hashPrev[i] = hashid(int(v) - delta) + d.hashPrev[i] = uint32(int(v) - delta) } else { d.hashPrev[i] = 0 } } - for i, v := range d.hashHead { + for i, v := range d.hashHead[:] { if int(v) > delta { - d.hashHead[i] = hashid(int(v) - delta) + d.hashHead[i] = uint32(int(v) - delta) } else { d.hashHead[i] = 0 } @@ -156,7 +166,7 @@ func (d *compressor) writeBlock(tok tokens, index int, eof bool) error { window = d.window[d.blockStart:index] } d.blockStart = index - d.w.writeBlock(tok, eof, window) + d.w.writeBlock(tok.tokens[:tok.n], eof, window) return d.w.err } return nil @@ -169,17 +179,16 @@ func (d *compressor) writeBlockSkip(tok tokens, index int, eof bool) error { if index > 0 || eof { if d.blockStart <= index { window := d.window[d.blockStart:index] - if tok.n == len(window) && !eof { - d.writeStoredBlock(window) - // If we removed less than 10 literals, huffman compress the block. - } else if tok.n > len(window)-10 { + // If we removed less than a 64th of all literals + // we huffman compress the block. + if int(tok.n) > len(window)-int(tok.n>>6) { d.w.writeBlockHuff(eof, window) } else { // Write a dynamic huffman block. - d.w.writeBlockDynamic(tok, eof, window) + d.w.writeBlockDynamic(tok.tokens[:tok.n], eof, window) } } else { - d.w.writeBlock(tok, eof, nil) + d.w.writeBlock(tok.tokens[:tok.n], eof, nil) } d.blockStart = index return d.w.err @@ -222,7 +231,7 @@ func (d *compressor) fillWindow(b []byte) { dst := d.hashMatch[:dstSize] d.bulkHasher(tocheck, dst) - var newH hash + var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask @@ -230,7 +239,7 @@ func (d *compressor) fillWindow(b []byte) { // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. - d.hashHead[newH] = hashid(di + d.hashOffset) + d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } @@ -357,25 +366,27 @@ func (d *compressor) writeStoredBlock(buf []byte) error { return d.w.err } -// oldHash is the hash function used when no native crc32 calculation -// or similar is present. -func oldHash(b []byte) hash { - return hash(b[0])<<(hashShift*3) + hash(b[1])<<(hashShift*2) + hash(b[2])<= 4. +func hash4(b []byte) uint32 { + return ((uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24) * hashmul) >> (32 - hashBits) } -// oldBulkHash will compute hashes using the same -// algorithm as oldHash -func oldBulkHash(b []byte, dst []hash) { +// bulkHash4 will compute hashes using the same +// algorithm as hash4 +func bulkHash4(b []byte, dst []uint32) { if len(b) < minMatchLength { return } - h := oldHash(b) - dst[0] = h - i := 1 + hb := uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24 + dst[0] = (hb * hashmul) >> (32 - hashBits) end := len(b) - minMatchLength + 1 - for ; i < end; i++ { - h = (h << hashShift) + hash(b[i+3]) - dst[i] = h + for i := 1; i < end; i++ { + hb = (hb << 8) | uint32(b[i+3]) + dst[i] = (hb * hashmul) >> (32 - hashBits) } } @@ -384,6 +395,7 @@ func oldBulkHash(b []byte, dst []hash) { // bytes in size. func matchLen(a, b []byte, max int) int { a = a[:max] + b = b[:len(a)] for i, av := range a { if b[i] != av { return i @@ -393,18 +405,15 @@ func matchLen(a, b []byte, max int) int { } func (d *compressor) initDeflate() { - d.hashHead = make([]hashid, hashSize) - d.hashPrev = make([]hashid, windowSize) d.window = make([]byte, 2*windowSize) d.hashOffset = 1 - d.tokens.tokens = make([]token, maxFlateBlockTokens+1) d.length = minMatchLength - 1 d.offset = 0 d.byteAvailable = false d.index = 0 d.hash = 0 d.chainHead = -1 - d.bulkHasher = oldBulkHash + d.bulkHasher = bulkHash4 if useSSE42 { d.bulkHasher = crc32sseAll } @@ -425,7 +434,7 @@ func (d *compressor) deflate() { d.maxInsertIndex = d.windowEnd - (minMatchLength - 1) if d.index < d.maxInsertIndex { - d.hash = oldHash(d.window[d.index:d.index+minMatchLength]) & hashMask + d.hash = hash4(d.window[d.index : d.index+minMatchLength]) } for { @@ -452,11 +461,11 @@ func (d *compressor) deflate() { } if d.index < d.maxInsertIndex { // Update the hash - d.hash = oldHash(d.window[d.index:d.index+minMatchLength]) & hashMask - ch := d.hashHead[d.hash] + d.hash = hash4(d.window[d.index : d.index+minMatchLength]) + ch := d.hashHead[d.hash&hashMask] d.chainHead = int(ch) d.hashPrev[d.index&windowMask] = ch - d.hashHead[d.hash] = hashid(d.index + d.hashOffset) + d.hashHead[d.hash&hashMask] = uint32(d.index + d.hashOffset) } d.length = minMatchLength - 1 d.offset = 0 @@ -499,8 +508,8 @@ func (d *compressor) deflate() { dstSize := len(tocheck) - minMatchLength + 1 if dstSize > 0 { dst := d.hashMatch[:dstSize] - oldBulkHash(tocheck, dst) - var newH hash + bulkHash4(tocheck, dst) + var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask @@ -508,7 +517,7 @@ func (d *compressor) deflate() { // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. - d.hashHead[newH] = hashid(di + d.hashOffset) + d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } @@ -518,7 +527,7 @@ func (d *compressor) deflate() { // item into the table. d.index += d.length if d.index < d.maxInsertIndex { - d.hash = oldHash(d.window[d.index:d.index+minMatchLength]) & hashMask + d.hash = hash4(d.window[d.index : d.index+minMatchLength]) } } if d.tokens.n == maxFlateBlockTokens { @@ -563,7 +572,7 @@ func (d *compressor) deflateLazy() { d.maxInsertIndex = d.windowEnd - (minMatchLength - 1) if d.index < d.maxInsertIndex { - d.hash = oldHash(d.window[d.index:d.index+minMatchLength]) & hashMask + d.hash = hash4(d.window[d.index : d.index+minMatchLength]) } for { @@ -597,11 +606,11 @@ func (d *compressor) deflateLazy() { } if d.index < d.maxInsertIndex { // Update the hash - d.hash = oldHash(d.window[d.index:d.index+minMatchLength]) & hashMask - ch := d.hashHead[d.hash] + d.hash = hash4(d.window[d.index : d.index+minMatchLength]) + ch := d.hashHead[d.hash&hashMask] d.chainHead = int(ch) d.hashPrev[d.index&windowMask] = ch - d.hashHead[d.hash] = hashid(d.index + d.hashOffset) + d.hashHead[d.hash&hashMask] = uint32(d.index + d.hashOffset) } prevLength := d.length prevOffset := d.offset @@ -644,8 +653,8 @@ func (d *compressor) deflateLazy() { dstSize := len(tocheck) - minMatchLength + 1 if dstSize > 0 { dst := d.hashMatch[:dstSize] - oldBulkHash(tocheck, dst) - var newH hash + bulkHash4(tocheck, dst) + var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask @@ -653,7 +662,7 @@ func (d *compressor) deflateLazy() { // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. - d.hashHead[newH] = hashid(di + d.hashOffset) + d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } @@ -689,7 +698,7 @@ func (d *compressor) deflateLazy() { // If we have a long run of no matches, skip additional bytes // Resets when d.ii overflows after 64KB. if d.ii > 31 { - n := int(d.ii >> 6) + n := int(d.ii >> 5) for j := 0; j < n; j++ { if d.index >= d.windowEnd-1 { break @@ -740,7 +749,7 @@ func (d *compressor) deflateSSE() { d.maxInsertIndex = d.windowEnd - (minMatchLength - 1) if d.index < d.maxInsertIndex { - d.hash = oldHash(d.window[d.index:d.index+minMatchLength]) & hashMask + d.hash = crc32sse(d.window[d.index:d.index+minMatchLength]) & hashMask } for { @@ -771,7 +780,7 @@ func (d *compressor) deflateSSE() { ch := d.hashHead[d.hash] d.chainHead = int(ch) d.hashPrev[d.index&windowMask] = ch - d.hashHead[d.hash] = hashid(d.index + d.hashOffset) + d.hashHead[d.hash] = uint32(d.index + d.hashOffset) } d.length = minMatchLength - 1 d.offset = 0 @@ -816,7 +825,7 @@ func (d *compressor) deflateSSE() { dst := d.hashMatch[:dstSize] crc32sseAll(tocheck, dst) - var newH hash + var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask @@ -824,7 +833,7 @@ func (d *compressor) deflateSSE() { // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. - d.hashHead[newH] = hashid(di + d.hashOffset) + d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } @@ -846,7 +855,7 @@ func (d *compressor) deflateSSE() { } } else { d.ii++ - end := d.index + int(d.ii>>uint(d.fastSkipHashing)) + 1 + end := d.index + int(d.ii>>5) + 1 if end > d.windowEnd { end = d.windowEnd } @@ -917,7 +926,7 @@ func (d *compressor) deflateLazySSE() { ch := d.hashHead[d.hash] d.chainHead = int(ch) d.hashPrev[d.index&windowMask] = ch - d.hashHead[d.hash] = hashid(d.index + d.hashOffset) + d.hashHead[d.hash] = uint32(d.index + d.hashOffset) } prevLength := d.length prevOffset := d.offset @@ -961,7 +970,7 @@ func (d *compressor) deflateLazySSE() { if dstSize > 0 { dst := d.hashMatch[:dstSize] crc32sseAll(tocheck, dst) - var newH hash + var newH uint32 for i, val := range dst { di := i + startindex newH = val & hashMask @@ -969,7 +978,7 @@ func (d *compressor) deflateLazySSE() { // Our chain should point to the previous value. d.hashPrev[di&windowMask] = d.hashHead[newH] // Set the head of the hash chain to us. - d.hashHead[newH] = hashid(di + d.hashOffset) + d.hashHead[newH] = uint32(di + d.hashOffset) } d.hash = newH } @@ -1041,22 +1050,16 @@ func (d *compressor) deflateLazySSE() { } } -func (d *compressor) fillStore(b []byte) int { - n := copy(d.window[d.windowEnd:], b) - d.windowEnd += n - return n -} - func (d *compressor) store() { - if d.windowEnd > 0 { + if d.windowEnd > 0 && (d.windowEnd == maxStoreBlockSize || d.sync) { d.err = d.writeStoredBlock(d.window[:d.windowEnd]) + d.windowEnd = 0 } - d.windowEnd = 0 } -// fillHuff will fill the buffer with data for huffman-only compression. +// fillWindow will fill the buffer with data for huffman-only compression. // The number of bytes copied is returned. -func (d *compressor) fillHuff(b []byte) int { +func (d *compressor) fillBlock(b []byte) int { n := copy(d.window[d.windowEnd:], b) d.windowEnd += n return n @@ -1066,11 +1069,7 @@ func (d *compressor) fillHuff(b []byte) int { // if enough has been accumulated or we at the end of the stream. // Any error that occurred will be in d.err func (d *compressor) storeHuff() { - // We only compress if we have maxStoreBlockSize or we are at end-of-stream - if d.windowEnd < maxStoreBlockSize && !d.sync { - return - } - if d.windowEnd == 0 { + if d.windowEnd < len(d.window) && !d.sync || d.windowEnd == 0 { return } d.w.writeBlockHuff(false, d.window[:d.windowEnd]) @@ -1102,20 +1101,21 @@ func (d *compressor) storeSnappy() { } d.tokens.n = 0 d.windowEnd = 0 + d.snap.Reset() return } } d.snap.Encode(&d.tokens, d.window[:d.windowEnd]) // If we made zero matches, store the block as is. - if d.tokens.n == d.windowEnd { + if int(d.tokens.n) == d.windowEnd { d.err = d.writeStoredBlock(d.window[:d.windowEnd]) // If we removed less than 1/16th, huffman compress the block. - } else if d.tokens.n > d.windowEnd-(d.windowEnd>>4) { + } else if int(d.tokens.n) > d.windowEnd-(d.windowEnd>>4) { d.w.writeBlockHuff(false, d.window[:d.windowEnd]) d.err = d.w.err } else { - d.w.writeBlockDynamic(d.tokens, false, d.window[:d.windowEnd]) + d.w.writeBlockDynamic(d.tokens.tokens[:d.tokens.n], false, d.window[:d.windowEnd]) d.err = d.w.err } d.tokens.n = 0 @@ -1160,22 +1160,21 @@ func (d *compressor) init(w io.Writer, level int) (err error) { switch { case level == NoCompression: d.window = make([]byte, maxStoreBlockSize) - d.fill = (*compressor).fillStore + d.fill = (*compressor).fillBlock d.step = (*compressor).store case level == ConstantCompression: d.window = make([]byte, maxStoreBlockSize) - d.fill = (*compressor).fillHuff + d.fill = (*compressor).fillBlock d.step = (*compressor).storeHuff - case level >= 1 && level <= 3: + case level >= 1 && level <= 4: d.snap = newSnappy(level) d.window = make([]byte, maxStoreBlockSize) - d.fill = (*compressor).fillHuff + d.fill = (*compressor).fillBlock d.step = (*compressor).storeSnappy - d.tokens.tokens = make([]token, maxStoreBlockSize+1) case level == DefaultCompression: level = 5 fallthrough - case 4 <= level && level <= 9: + case 5 <= level && level <= 9: d.compressionLevel = levels[level] d.initDeflate() d.fill = (*compressor).fillDeflate @@ -1199,9 +1198,6 @@ func (d *compressor) init(w io.Writer, level int) (err error) { return nil } -// Used for zeroing the hash slice -var hzeroes [256]hashid - // reset the state of the compressor. func (d *compressor) reset(w io.Writer) { d.w.reset(w) @@ -1220,18 +1216,15 @@ func (d *compressor) reset(w io.Writer) { d.windowEnd = 0 default: d.chainHead = -1 - for s := d.hashHead; len(s) > 0; { - n := copy(s, hzeroes[:]) - s = s[n:] + for i := range d.hashHead { + d.hashHead[i] = 0 } - for s := d.hashPrev; len(s) > 0; s = s[len(hzeroes):] { - copy(s, hzeroes[:]) + for i := range d.hashPrev { + d.hashPrev[i] = 0 } d.hashOffset = 1 - d.index, d.windowEnd = 0, 0 d.blockStart, d.byteAvailable = 0, false - d.tokens.n = 0 d.length = minMatchLength - 1 d.offset = 0 @@ -1315,10 +1308,12 @@ func (w *Writer) Write(data []byte) (n int, err error) { return w.d.write(data) } -// Flush flushes any pending compressed data to the underlying writer. +// Flush flushes any pending data to the underlying writer. // It is useful mainly in compressed network protocols, to ensure that // a remote reader has enough data to reconstruct a packet. // Flush does not return until the data has been written. +// Calling Flush when there is no pending data still causes the Writer +// to emit a sync marker of at least 4 bytes. // If the underlying writer returns an error, Flush returns that error. // // In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH. @@ -1337,7 +1332,7 @@ func (w *Writer) Close() error { // the result of NewWriter or NewWriterDict called with dst // and w's level and dictionary. func (w *Writer) Reset(dst io.Writer) { - if dw, ok := w.d.w.w.(*dictWriter); ok { + if dw, ok := w.d.w.writer.(*dictWriter); ok { // w was created with NewWriterDict dw.w = dst w.d.reset(dw) diff --git a/vendor/github.com/klauspost/compress/flate/dict_decoder.go b/vendor/github.com/klauspost/compress/flate/dict_decoder.go new file mode 100644 index 00000000000..71c75a065ea --- /dev/null +++ b/vendor/github.com/klauspost/compress/flate/dict_decoder.go @@ -0,0 +1,184 @@ +// 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 flate + +// dictDecoder implements the LZ77 sliding dictionary as used in decompression. +// LZ77 decompresses data through sequences of two forms of commands: +// +// * Literal insertions: Runs of one or more symbols are inserted into the data +// stream as is. This is accomplished through the writeByte method for a +// single symbol, or combinations of writeSlice/writeMark for multiple symbols. +// Any valid stream must start with a literal insertion if no preset dictionary +// is used. +// +// * Backward copies: Runs of one or more symbols are copied from previously +// emitted data. Backward copies come as the tuple (dist, length) where dist +// determines how far back in the stream to copy from and length determines how +// many bytes to copy. Note that it is valid for the length to be greater than +// the distance. Since LZ77 uses forward copies, that situation is used to +// perform a form of run-length encoding on repeated runs of symbols. +// The writeCopy and tryWriteCopy are used to implement this command. +// +// For performance reasons, this implementation performs little to no sanity +// checks about the arguments. As such, the invariants documented for each +// method call must be respected. +type dictDecoder struct { + hist []byte // Sliding window history + + // Invariant: 0 <= rdPos <= wrPos <= len(hist) + wrPos int // Current output position in buffer + rdPos int // Have emitted hist[:rdPos] already + full bool // Has a full window length been written yet? +} + +// init initializes dictDecoder to have a sliding window dictionary of the given +// size. If a preset dict is provided, it will initialize the dictionary with +// the contents of dict. +func (dd *dictDecoder) init(size int, dict []byte) { + *dd = dictDecoder{hist: dd.hist} + + if cap(dd.hist) < size { + dd.hist = make([]byte, size) + } + dd.hist = dd.hist[:size] + + if len(dict) > len(dd.hist) { + dict = dict[len(dict)-len(dd.hist):] + } + dd.wrPos = copy(dd.hist, dict) + if dd.wrPos == len(dd.hist) { + dd.wrPos = 0 + dd.full = true + } + dd.rdPos = dd.wrPos +} + +// histSize reports the total amount of historical data in the dictionary. +func (dd *dictDecoder) histSize() int { + if dd.full { + return len(dd.hist) + } + return dd.wrPos +} + +// availRead reports the number of bytes that can be flushed by readFlush. +func (dd *dictDecoder) availRead() int { + return dd.wrPos - dd.rdPos +} + +// availWrite reports the available amount of output buffer space. +func (dd *dictDecoder) availWrite() int { + return len(dd.hist) - dd.wrPos +} + +// writeSlice returns a slice of the available buffer to write data to. +// +// This invariant will be kept: len(s) <= availWrite() +func (dd *dictDecoder) writeSlice() []byte { + return dd.hist[dd.wrPos:] +} + +// writeMark advances the writer pointer by cnt. +// +// This invariant must be kept: 0 <= cnt <= availWrite() +func (dd *dictDecoder) writeMark(cnt int) { + dd.wrPos += cnt +} + +// writeByte writes a single byte to the dictionary. +// +// This invariant must be kept: 0 < availWrite() +func (dd *dictDecoder) writeByte(c byte) { + dd.hist[dd.wrPos] = c + dd.wrPos++ +} + +// writeCopy copies a string at a given (dist, length) to the output. +// This returns the number of bytes copied and may be less than the requested +// length if the available space in the output buffer is too small. +// +// This invariant must be kept: 0 < dist <= histSize() +func (dd *dictDecoder) writeCopy(dist, length int) int { + dstBase := dd.wrPos + dstPos := dstBase + srcPos := dstPos - dist + endPos := dstPos + length + if endPos > len(dd.hist) { + endPos = len(dd.hist) + } + + // Copy non-overlapping section after destination position. + // + // This section is non-overlapping in that the copy length for this section + // is always less than or equal to the backwards distance. This can occur + // if a distance refers to data that wraps-around in the buffer. + // Thus, a backwards copy is performed here; that is, the exact bytes in + // the source prior to the copy is placed in the destination. + if srcPos < 0 { + srcPos += len(dd.hist) + dstPos += copy(dd.hist[dstPos:endPos], dd.hist[srcPos:]) + srcPos = 0 + } + + // Copy possibly overlapping section before destination position. + // + // This section can overlap if the copy length for this section is larger + // than the backwards distance. This is allowed by LZ77 so that repeated + // strings can be succinctly represented using (dist, length) pairs. + // Thus, a forwards copy is performed here; that is, the bytes copied is + // possibly dependent on the resulting bytes in the destination as the copy + // progresses along. This is functionally equivalent to the following: + // + // for i := 0; i < endPos-dstPos; i++ { + // dd.hist[dstPos+i] = dd.hist[srcPos+i] + // } + // dstPos = endPos + // + for dstPos < endPos { + dstPos += copy(dd.hist[dstPos:endPos], dd.hist[srcPos:dstPos]) + } + + dd.wrPos = dstPos + return dstPos - dstBase +} + +// tryWriteCopy tries to copy a string at a given (distance, length) to the +// output. This specialized version is optimized for short distances. +// +// This method is designed to be inlined for performance reasons. +// +// This invariant must be kept: 0 < dist <= histSize() +func (dd *dictDecoder) tryWriteCopy(dist, length int) int { + dstPos := dd.wrPos + endPos := dstPos + length + if dstPos < dist || endPos > len(dd.hist) { + return 0 + } + dstBase := dstPos + srcPos := dstPos - dist + + // Copy possibly overlapping section before destination position. +loop: + dstPos += copy(dd.hist[dstPos:endPos], dd.hist[srcPos:dstPos]) + if dstPos < endPos { + goto loop // Avoid for-loop so that this function can be inlined + } + + dd.wrPos = dstPos + return dstPos - dstBase +} + +// readFlush returns a slice of the historical buffer that is ready to be +// emitted to the user. The data returned by readFlush must be fully consumed +// before calling any other dictDecoder methods. +func (dd *dictDecoder) readFlush() []byte { + toRead := dd.hist[dd.rdPos:dd.wrPos] + dd.rdPos = dd.wrPos + if dd.wrPos == len(dd.hist) { + dd.wrPos, dd.rdPos = 0, 0 + dd.full = true + } + return toRead +} diff --git a/vendor/github.com/klauspost/compress/flate/fixedhuff.go b/vendor/github.com/klauspost/compress/flate/fixedhuff.go deleted file mode 100644 index 7df8b9a293f..00000000000 --- a/vendor/github.com/klauspost/compress/flate/fixedhuff.go +++ /dev/null @@ -1,78 +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 flate - -// autogenerated by go run gen.go -output fixedhuff.go, DO NOT EDIT - -var fixedHuffmanDecoder = huffmanDecoder{ - 7, - [huffmanNumChunks]uint32{ - 0x1007, 0x0508, 0x0108, 0x1188, 0x1107, 0x0708, 0x0308, 0x0c09, - 0x1087, 0x0608, 0x0208, 0x0a09, 0x0008, 0x0808, 0x0408, 0x0e09, - 0x1047, 0x0588, 0x0188, 0x0909, 0x1147, 0x0788, 0x0388, 0x0d09, - 0x10c7, 0x0688, 0x0288, 0x0b09, 0x0088, 0x0888, 0x0488, 0x0f09, - 0x1027, 0x0548, 0x0148, 0x11c8, 0x1127, 0x0748, 0x0348, 0x0c89, - 0x10a7, 0x0648, 0x0248, 0x0a89, 0x0048, 0x0848, 0x0448, 0x0e89, - 0x1067, 0x05c8, 0x01c8, 0x0989, 0x1167, 0x07c8, 0x03c8, 0x0d89, - 0x10e7, 0x06c8, 0x02c8, 0x0b89, 0x00c8, 0x08c8, 0x04c8, 0x0f89, - 0x1017, 0x0528, 0x0128, 0x11a8, 0x1117, 0x0728, 0x0328, 0x0c49, - 0x1097, 0x0628, 0x0228, 0x0a49, 0x0028, 0x0828, 0x0428, 0x0e49, - 0x1057, 0x05a8, 0x01a8, 0x0949, 0x1157, 0x07a8, 0x03a8, 0x0d49, - 0x10d7, 0x06a8, 0x02a8, 0x0b49, 0x00a8, 0x08a8, 0x04a8, 0x0f49, - 0x1037, 0x0568, 0x0168, 0x11e8, 0x1137, 0x0768, 0x0368, 0x0cc9, - 0x10b7, 0x0668, 0x0268, 0x0ac9, 0x0068, 0x0868, 0x0468, 0x0ec9, - 0x1077, 0x05e8, 0x01e8, 0x09c9, 0x1177, 0x07e8, 0x03e8, 0x0dc9, - 0x10f7, 0x06e8, 0x02e8, 0x0bc9, 0x00e8, 0x08e8, 0x04e8, 0x0fc9, - 0x1007, 0x0518, 0x0118, 0x1198, 0x1107, 0x0718, 0x0318, 0x0c29, - 0x1087, 0x0618, 0x0218, 0x0a29, 0x0018, 0x0818, 0x0418, 0x0e29, - 0x1047, 0x0598, 0x0198, 0x0929, 0x1147, 0x0798, 0x0398, 0x0d29, - 0x10c7, 0x0698, 0x0298, 0x0b29, 0x0098, 0x0898, 0x0498, 0x0f29, - 0x1027, 0x0558, 0x0158, 0x11d8, 0x1127, 0x0758, 0x0358, 0x0ca9, - 0x10a7, 0x0658, 0x0258, 0x0aa9, 0x0058, 0x0858, 0x0458, 0x0ea9, - 0x1067, 0x05d8, 0x01d8, 0x09a9, 0x1167, 0x07d8, 0x03d8, 0x0da9, - 0x10e7, 0x06d8, 0x02d8, 0x0ba9, 0x00d8, 0x08d8, 0x04d8, 0x0fa9, - 0x1017, 0x0538, 0x0138, 0x11b8, 0x1117, 0x0738, 0x0338, 0x0c69, - 0x1097, 0x0638, 0x0238, 0x0a69, 0x0038, 0x0838, 0x0438, 0x0e69, - 0x1057, 0x05b8, 0x01b8, 0x0969, 0x1157, 0x07b8, 0x03b8, 0x0d69, - 0x10d7, 0x06b8, 0x02b8, 0x0b69, 0x00b8, 0x08b8, 0x04b8, 0x0f69, - 0x1037, 0x0578, 0x0178, 0x11f8, 0x1137, 0x0778, 0x0378, 0x0ce9, - 0x10b7, 0x0678, 0x0278, 0x0ae9, 0x0078, 0x0878, 0x0478, 0x0ee9, - 0x1077, 0x05f8, 0x01f8, 0x09e9, 0x1177, 0x07f8, 0x03f8, 0x0de9, - 0x10f7, 0x06f8, 0x02f8, 0x0be9, 0x00f8, 0x08f8, 0x04f8, 0x0fe9, - 0x1007, 0x0508, 0x0108, 0x1188, 0x1107, 0x0708, 0x0308, 0x0c19, - 0x1087, 0x0608, 0x0208, 0x0a19, 0x0008, 0x0808, 0x0408, 0x0e19, - 0x1047, 0x0588, 0x0188, 0x0919, 0x1147, 0x0788, 0x0388, 0x0d19, - 0x10c7, 0x0688, 0x0288, 0x0b19, 0x0088, 0x0888, 0x0488, 0x0f19, - 0x1027, 0x0548, 0x0148, 0x11c8, 0x1127, 0x0748, 0x0348, 0x0c99, - 0x10a7, 0x0648, 0x0248, 0x0a99, 0x0048, 0x0848, 0x0448, 0x0e99, - 0x1067, 0x05c8, 0x01c8, 0x0999, 0x1167, 0x07c8, 0x03c8, 0x0d99, - 0x10e7, 0x06c8, 0x02c8, 0x0b99, 0x00c8, 0x08c8, 0x04c8, 0x0f99, - 0x1017, 0x0528, 0x0128, 0x11a8, 0x1117, 0x0728, 0x0328, 0x0c59, - 0x1097, 0x0628, 0x0228, 0x0a59, 0x0028, 0x0828, 0x0428, 0x0e59, - 0x1057, 0x05a8, 0x01a8, 0x0959, 0x1157, 0x07a8, 0x03a8, 0x0d59, - 0x10d7, 0x06a8, 0x02a8, 0x0b59, 0x00a8, 0x08a8, 0x04a8, 0x0f59, - 0x1037, 0x0568, 0x0168, 0x11e8, 0x1137, 0x0768, 0x0368, 0x0cd9, - 0x10b7, 0x0668, 0x0268, 0x0ad9, 0x0068, 0x0868, 0x0468, 0x0ed9, - 0x1077, 0x05e8, 0x01e8, 0x09d9, 0x1177, 0x07e8, 0x03e8, 0x0dd9, - 0x10f7, 0x06e8, 0x02e8, 0x0bd9, 0x00e8, 0x08e8, 0x04e8, 0x0fd9, - 0x1007, 0x0518, 0x0118, 0x1198, 0x1107, 0x0718, 0x0318, 0x0c39, - 0x1087, 0x0618, 0x0218, 0x0a39, 0x0018, 0x0818, 0x0418, 0x0e39, - 0x1047, 0x0598, 0x0198, 0x0939, 0x1147, 0x0798, 0x0398, 0x0d39, - 0x10c7, 0x0698, 0x0298, 0x0b39, 0x0098, 0x0898, 0x0498, 0x0f39, - 0x1027, 0x0558, 0x0158, 0x11d8, 0x1127, 0x0758, 0x0358, 0x0cb9, - 0x10a7, 0x0658, 0x0258, 0x0ab9, 0x0058, 0x0858, 0x0458, 0x0eb9, - 0x1067, 0x05d8, 0x01d8, 0x09b9, 0x1167, 0x07d8, 0x03d8, 0x0db9, - 0x10e7, 0x06d8, 0x02d8, 0x0bb9, 0x00d8, 0x08d8, 0x04d8, 0x0fb9, - 0x1017, 0x0538, 0x0138, 0x11b8, 0x1117, 0x0738, 0x0338, 0x0c79, - 0x1097, 0x0638, 0x0238, 0x0a79, 0x0038, 0x0838, 0x0438, 0x0e79, - 0x1057, 0x05b8, 0x01b8, 0x0979, 0x1157, 0x07b8, 0x03b8, 0x0d79, - 0x10d7, 0x06b8, 0x02b8, 0x0b79, 0x00b8, 0x08b8, 0x04b8, 0x0f79, - 0x1037, 0x0578, 0x0178, 0x11f8, 0x1137, 0x0778, 0x0378, 0x0cf9, - 0x10b7, 0x0678, 0x0278, 0x0af9, 0x0078, 0x0878, 0x0478, 0x0ef9, - 0x1077, 0x05f8, 0x01f8, 0x09f9, 0x1177, 0x07f8, 0x03f8, 0x0df9, - 0x10f7, 0x06f8, 0x02f8, 0x0bf9, 0x00f8, 0x08f8, 0x04f8, 0x0ff9, - }, - nil, 0, -} diff --git a/vendor/github.com/klauspost/compress/flate/huffman_bit_writer.go b/vendor/github.com/klauspost/compress/flate/huffman_bit_writer.go index 5f7ffdd2e63..f9b2a699a3d 100644 --- a/vendor/github.com/klauspost/compress/flate/huffman_bit_writer.go +++ b/vendor/github.com/klauspost/compress/flate/huffman_bit_writer.go @@ -6,7 +6,6 @@ package flate import ( "io" - "math" ) const ( @@ -23,9 +22,16 @@ const ( codegenCodeCount = 19 badCode = 255 - // Output byte buffer size - // Must be multiple of 6 (48 bits) + 8 - bufferSize = 240 + 8 + // bufferFlushSize indicates the buffer size + // after which bytes are flushed to the writer. + // Should preferably be a multiple of 6, since + // we accumulate 6 bytes between writes to the buffer. + bufferFlushSize = 240 + + // bufferSize is the actual output byte buffer size. + // It must have additional headroom for a flush + // which can contain up to 8 bytes. + bufferSize = bufferFlushSize + 8 ) // The number of extra bits needed by length code X - LENGTH_CODES_START. @@ -71,17 +77,21 @@ var offsetBase = []uint32{ var codegenOrder = []uint32{16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15} type huffmanBitWriter struct { - w io.Writer + // writer is the underlying writer. + // Do not use it directly; use the write method, which ensures + // that Write errors are sticky. + writer io.Writer + // Data waiting to be written is bytes[0:nbytes] // and then the low nbits of bits. bits uint64 nbits uint bytes [bufferSize]byte + codegenFreq [codegenCodeCount]int32 nbytes int literalFreq []int32 offsetFreq []int32 codegen []uint8 - codegenFreq []int32 literalEncoding *huffmanEncoder offsetEncoding *huffmanEncoder codegenEncoding *huffmanEncoder @@ -90,11 +100,10 @@ type huffmanBitWriter struct { func newHuffmanBitWriter(w io.Writer) *huffmanBitWriter { return &huffmanBitWriter{ - w: w, + writer: w, literalFreq: make([]int32, maxNumLit), offsetFreq: make([]int32, offsetCodeCount), codegen: make([]uint8, maxNumLit+offsetCodeCount+1), - codegenFreq: make([]int32, codegenCodeCount), literalEncoding: newHuffmanEncoder(maxNumLit), codegenEncoding: newHuffmanEncoder(codegenCodeCount), offsetEncoding: newHuffmanEncoder(offsetCodeCount), @@ -102,7 +111,7 @@ func newHuffmanBitWriter(w io.Writer) *huffmanBitWriter { } func (w *huffmanBitWriter) reset(writer io.Writer) { - w.w = writer + w.writer = writer w.bits, w.nbits, w.nbytes, w.err = 0, 0, 0, nil w.bytes = [bufferSize]byte{} } @@ -124,11 +133,21 @@ func (w *huffmanBitWriter) flush() { n++ } w.bits = 0 - _, w.err = w.w.Write(w.bytes[0:n]) + w.write(w.bytes[:n]) w.nbytes = 0 } +func (w *huffmanBitWriter) write(b []byte) { + if w.err != nil { + return + } + _, w.err = w.writer.Write(b) +} + func (w *huffmanBitWriter) writeBits(b int32, nb uint) { + if w.err != nil { + return + } w.bits |= uint64(b) << w.nbits w.nbits += nb if w.nbits >= 48 { @@ -136,15 +155,16 @@ func (w *huffmanBitWriter) writeBits(b int32, nb uint) { w.bits >>= 48 w.nbits -= 48 n := w.nbytes - w.bytes[n] = byte(bits) - w.bytes[n+1] = byte(bits >> 8) - w.bytes[n+2] = byte(bits >> 16) - w.bytes[n+3] = byte(bits >> 24) - w.bytes[n+4] = byte(bits >> 32) - w.bytes[n+5] = byte(bits >> 40) + bytes := w.bytes[n : n+6] + bytes[0] = byte(bits) + bytes[1] = byte(bits >> 8) + bytes[2] = byte(bits >> 16) + bytes[3] = byte(bits >> 24) + bytes[4] = byte(bits >> 32) + bytes[5] = byte(bits >> 40) n += 6 - if n >= bufferSize-8 { - _, w.err = w.w.Write(w.bytes[:bufferSize-8]) + if n >= bufferFlushSize { + w.write(w.bytes[:n]) n = 0 } w.nbytes = n @@ -156,24 +176,21 @@ func (w *huffmanBitWriter) writeBytes(bytes []byte) { return } n := w.nbytes + if w.nbits&7 != 0 { + w.err = InternalError("writeBytes with unfinished bits") + return + } for w.nbits != 0 { w.bytes[n] = byte(w.bits) w.bits >>= 8 w.nbits -= 8 n++ } - if w.nbits != 0 { - w.err = InternalError("writeBytes with unfinished bits") - return - } if n != 0 { - _, w.err = w.w.Write(w.bytes[0:n]) - if w.err != nil { - return - } + w.write(w.bytes[:n]) } w.nbytes = 0 - _, w.err = w.w.Write(bytes) + w.write(bytes) } // RFC 1951 3.2.7 specifies a special run-length encoding for specifying @@ -183,11 +200,12 @@ func (w *huffmanBitWriter) writeBytes(bytes []byte) { // The result is written into the codegen array, and the frequencies // of each code is written into the codegenFreq array. // Codes 0-15 are single byte codes. Codes 16-18 are followed by additional -// information. Code badCode is an end marker +// information. Code badCode is an end marker // // numLiterals The number of literals in literalEncoding // numOffsets The number of offsets in offsetEncoding -func (w *huffmanBitWriter) generateCodegen(numLiterals int, numOffsets int, offenc *huffmanEncoder) { +// litenc, offenc The literal and offset encoder to use +func (w *huffmanBitWriter) generateCodegen(numLiterals int, numOffsets int, litEnc, offEnc *huffmanEncoder) { for i := range w.codegenFreq { w.codegenFreq[i] = 0 } @@ -196,15 +214,15 @@ func (w *huffmanBitWriter) generateCodegen(numLiterals int, numOffsets int, offe // This is fine because the output is always shorter than the input used // so far. codegen := w.codegen // cache - // Copy the concatenated code sizes to codegen. Put a marker at the end. - cgnl := codegen[0:numLiterals] + // Copy the concatenated code sizes to codegen. Put a marker at the end. + cgnl := codegen[:numLiterals] for i := range cgnl { - cgnl[i] = uint8(w.literalEncoding.codes[i].bits()) + cgnl[i] = uint8(litEnc.codes[i].len) } cgnl = codegen[numLiterals : numLiterals+numOffsets] for i := range cgnl { - cgnl[i] = uint8(offenc.codes[i].bits()) + cgnl[i] = uint8(offEnc.codes[i].len) } codegen[numLiterals+numOffsets] = badCode @@ -274,31 +292,71 @@ func (w *huffmanBitWriter) generateCodegen(numLiterals int, numOffsets int, offe codegen[outIndex] = badCode } +// dynamicSize returns the size of dynamically encoded data in bits. +func (w *huffmanBitWriter) dynamicSize(litEnc, offEnc *huffmanEncoder, extraBits int) (size, numCodegens int) { + numCodegens = len(w.codegenFreq) + for numCodegens > 4 && w.codegenFreq[codegenOrder[numCodegens-1]] == 0 { + numCodegens-- + } + header := 3 + 5 + 5 + 4 + (3 * numCodegens) + + w.codegenEncoding.bitLength(w.codegenFreq[:]) + + int(w.codegenFreq[16])*2 + + int(w.codegenFreq[17])*3 + + int(w.codegenFreq[18])*7 + size = header + + litEnc.bitLength(w.literalFreq) + + offEnc.bitLength(w.offsetFreq) + + extraBits + + return size, numCodegens +} + +// fixedSize returns the size of dynamically encoded data in bits. +func (w *huffmanBitWriter) fixedSize(extraBits int) int { + return 3 + + fixedLiteralEncoding.bitLength(w.literalFreq) + + fixedOffsetEncoding.bitLength(w.offsetFreq) + + extraBits +} + +// storedSize calculates the stored size, including header. +// The function returns the size in bits and whether the block +// fits inside a single block. +func (w *huffmanBitWriter) storedSize(in []byte) (int, bool) { + if in == nil { + return 0, false + } + if len(in) <= maxStoreBlockSize { + return (len(in) + 5) * 8, true + } + return 0, false +} + func (w *huffmanBitWriter) writeCode(c hcode) { if w.err != nil { return } - w.bits |= uint64(c.code()) << w.nbits - w.nbits += c.bits() + w.bits |= uint64(c.code) << w.nbits + w.nbits += uint(c.len) if w.nbits >= 48 { bits := w.bits w.bits >>= 48 w.nbits -= 48 n := w.nbytes - w.bytes[n] = byte(bits) - w.bytes[n+1] = byte(bits >> 8) - w.bytes[n+2] = byte(bits >> 16) - w.bytes[n+3] = byte(bits >> 24) - w.bytes[n+4] = byte(bits >> 32) - w.bytes[n+5] = byte(bits >> 40) + bytes := w.bytes[n : n+6] + bytes[0] = byte(bits) + bytes[1] = byte(bits >> 8) + bytes[2] = byte(bits >> 16) + bytes[3] = byte(bits >> 24) + bytes[4] = byte(bits >> 32) + bytes[5] = byte(bits >> 40) n += 6 - if n >= bufferSize-8 { - _, w.err = w.w.Write(w.bytes[:bufferSize-8]) + if n >= bufferFlushSize { + w.write(w.bytes[:n]) n = 0 } w.nbytes = n } - } // Write the header of a dynamic Huffman block to the output stream. @@ -320,7 +378,7 @@ func (w *huffmanBitWriter) writeDynamicHeader(numLiterals int, numOffsets int, n w.writeBits(int32(numCodegens-4), 4) for i := 0; i < numCodegens; i++ { - value := w.codegenEncoding.codes[codegenOrder[i]].bits() + value := uint(w.codegenEncoding.codes[codegenOrder[i]].len) w.writeBits(int32(value), 3) } @@ -331,7 +389,6 @@ func (w *huffmanBitWriter) writeDynamicHeader(numLiterals int, numOffsets int, n if codeWord == badCode { break } - // The low byte contains the actual code to generate. w.writeCode(w.codegenEncoding.codes[uint32(codeWord)]) switch codeWord { @@ -377,102 +434,50 @@ func (w *huffmanBitWriter) writeFixedHeader(isEof bool) { w.writeBits(value, 3) } -func (w *huffmanBitWriter) writeBlock(tok tokens, eof bool, input []byte) { +// writeBlock will write a block of tokens with the smallest encoding. +// The original input can be supplied, and if the huffman encoded data +// is larger than the original bytes, the data will be written as a +// stored block. +// If the input is nil, the tokens will always be Huffman encoded. +func (w *huffmanBitWriter) writeBlock(tokens []token, eof bool, input []byte) { if w.err != nil { return } - for i := range w.literalFreq { - w.literalFreq[i] = 0 - } - for i := range w.offsetFreq { - w.offsetFreq[i] = 0 - } - - tok.tokens[tok.n] = endBlockMarker - tokens := tok.tokens[0 : tok.n+1] - for _, t := range tokens { - if t < matchType { - w.literalFreq[t.literal()]++ - } else { - length := t.length() - offset := t.offset() - w.literalFreq[lengthCodesStart+lengthCode(length)]++ - w.offsetFreq[offsetCode(offset)]++ - } - } + tokens = append(tokens, endBlockMarker) + numLiterals, numOffsets := w.indexTokens(tokens) - // get the number of literals - numLiterals := len(w.literalFreq) - for w.literalFreq[numLiterals-1] == 0 { - numLiterals-- - } - // get the number of offsets - numOffsets := len(w.offsetFreq) - for numOffsets > 0 && w.offsetFreq[numOffsets-1] == 0 { - numOffsets-- - } - if numOffsets == 0 { - // We haven't found a single match. If we want to go with the dynamic encoding, - // we should count at least one offset to be sure that the offset huffman tree could be encoded. - w.offsetFreq[0] = 1 - numOffsets = 1 - } - - w.literalEncoding.generate(w.literalFreq, 15) - w.offsetEncoding.generate(w.offsetFreq, 15) - - storedBytes := 0 - if input != nil { - storedBytes = len(input) - } - var extraBits int64 - var storedSize int64 = math.MaxInt64 - if storedBytes <= maxStoreBlockSize && input != nil { - storedSize = int64((storedBytes + 5) * 8) + var extraBits int + storedSize, storable := w.storedSize(input) + if storable { // We only bother calculating the costs of the extra bits required by // the length of offset fields (which will be the same for both fixed // and dynamic encoding), if we need to compare those two encodings // against stored encoding. for lengthCode := lengthCodesStart + 8; lengthCode < numLiterals; lengthCode++ { // First eight length codes have extra size = 0. - extraBits += int64(w.literalFreq[lengthCode]) * int64(lengthExtraBits[lengthCode-lengthCodesStart]) + extraBits += int(w.literalFreq[lengthCode]) * int(lengthExtraBits[lengthCode-lengthCodesStart]) } for offsetCode := 4; offsetCode < numOffsets; offsetCode++ { // First four offset codes have extra size = 0. - extraBits += int64(w.offsetFreq[offsetCode]) * int64(offsetExtraBits[offsetCode]) + extraBits += int(w.offsetFreq[offsetCode]) * int(offsetExtraBits[offsetCode]) } } // Figure out smallest code. // Fixed Huffman baseline. - var size = int64(3) + - fixedLiteralEncoding.bitLength(w.literalFreq) + - fixedOffsetEncoding.bitLength(w.offsetFreq) + - extraBits var literalEncoding = fixedLiteralEncoding var offsetEncoding = fixedOffsetEncoding + var size = w.fixedSize(extraBits) // Dynamic Huffman? var numCodegens int // Generate codegen and codegenFrequencies, which indicates how to encode // the literalEncoding and the offsetEncoding. - w.generateCodegen(numLiterals, numOffsets, w.offsetEncoding) - w.codegenEncoding.generate(w.codegenFreq, 7) - numCodegens = len(w.codegenFreq) - for numCodegens > 4 && w.codegenFreq[codegenOrder[numCodegens-1]] == 0 { - numCodegens-- - } - dynamicHeader := int64(3+5+5+4+(3*numCodegens)) + - w.codegenEncoding.bitLength(w.codegenFreq) + - int64(extraBits) + - int64(w.codegenFreq[16]*2) + - int64(w.codegenFreq[17]*3) + - int64(w.codegenFreq[18]*7) - dynamicSize := dynamicHeader + - w.literalEncoding.bitLength(w.literalFreq) + - w.offsetEncoding.bitLength(w.offsetFreq) + w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, w.offsetEncoding) + w.codegenEncoding.generate(w.codegenFreq[:], 7) + dynamicSize, numCodegens := w.dynamicSize(w.literalEncoding, w.offsetEncoding, extraBits) if dynamicSize < size { size = dynamicSize @@ -481,9 +486,9 @@ func (w *huffmanBitWriter) writeBlock(tok tokens, eof bool, input []byte) { } // Stored bytes? - if storedSize < size { - w.writeStoredHeader(storedBytes, eof) - w.writeBytes(input[0:storedBytes]) + if storable && storedSize < size { + w.writeStoredHeader(len(input), eof) + w.writeBytes(input) return } @@ -494,41 +499,48 @@ func (w *huffmanBitWriter) writeBlock(tok tokens, eof bool, input []byte) { w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) } - leCodes := literalEncoding.codes - oeCodes := offsetEncoding.codes - for _, t := range tokens { - if t < matchType { - w.writeCode(leCodes[t.literal()]) - } else { - // Write the length - length := t.length() - lengthCode := lengthCode(length) - w.writeCode(leCodes[lengthCode+lengthCodesStart]) - extraLengthBits := uint(lengthExtraBits[lengthCode]) - if extraLengthBits > 0 { - extraLength := int32(length - lengthBase[lengthCode]) - w.writeBits(extraLength, extraLengthBits) - } - // Write the offset - offset := t.offset() - offsetCode := offsetCode(offset) - w.writeCode(oeCodes[offsetCode]) - extraOffsetBits := uint(offsetExtraBits[offsetCode]) - if extraOffsetBits > 0 { - extraOffset := int32(offset - offsetBase[offsetCode]) - w.writeBits(extraOffset, extraOffsetBits) - } - } - } + // Write the tokens. + w.writeTokens(tokens, literalEncoding.codes, offsetEncoding.codes) } -// writeBlockDynamic will write a block as dynamic Huffman table -// compressed. This should be used, if the caller has a reasonable expectation -// that this block contains compressible data. -func (w *huffmanBitWriter) writeBlockDynamic(tok tokens, eof bool, input []byte) { +// writeBlockDynamic encodes a block using a dynamic Huffman table. +// This should be used if the symbols used have a disproportionate +// histogram distribution. +// If input is supplied and the compression savings are below 1/16th of the +// input size the block is stored. +func (w *huffmanBitWriter) writeBlockDynamic(tokens []token, eof bool, input []byte) { if w.err != nil { return } + + tokens = append(tokens, endBlockMarker) + numLiterals, numOffsets := w.indexTokens(tokens) + + // Generate codegen and codegenFrequencies, which indicates how to encode + // the literalEncoding and the offsetEncoding. + w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, w.offsetEncoding) + w.codegenEncoding.generate(w.codegenFreq[:], 7) + size, numCodegens := w.dynamicSize(w.literalEncoding, w.offsetEncoding, 0) + + // Store bytes, if we don't get a reasonable improvement. + if ssize, storable := w.storedSize(input); storable && ssize < (size+size>>4) { + w.writeStoredHeader(len(input), eof) + w.writeBytes(input) + return + } + + // Write Huffman table. + w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) + + // Write the tokens. + w.writeTokens(tokens, w.literalEncoding.codes, w.offsetEncoding.codes) +} + +// indexTokens indexes a slice of tokens, and updates +// literalFreq and offsetFreq, and generates literalEncoding +// and offsetEncoding. +// The number of literal and offset tokens is returned. +func (w *huffmanBitWriter) indexTokens(tokens []token) (numLiterals, numOffsets int) { for i := range w.literalFreq { w.literalFreq[i] = 0 } @@ -536,27 +548,24 @@ func (w *huffmanBitWriter) writeBlockDynamic(tok tokens, eof bool, input []byte) w.offsetFreq[i] = 0 } - tok.tokens[tok.n] = endBlockMarker - tokens := tok.tokens[0 : tok.n+1] - for _, t := range tokens { if t < matchType { w.literalFreq[t.literal()]++ - } else { - length := t.length() - offset := t.offset() - w.literalFreq[lengthCodesStart+lengthCode(length)]++ - w.offsetFreq[offsetCode(offset)]++ + continue } + length := t.length() + offset := t.offset() + w.literalFreq[lengthCodesStart+lengthCode(length)]++ + w.offsetFreq[offsetCode(offset)]++ } // get the number of literals - numLiterals := len(w.literalFreq) + numLiterals = len(w.literalFreq) for w.literalFreq[numLiterals-1] == 0 { numLiterals-- } // get the number of offsets - numOffsets := len(w.offsetFreq) + numOffsets = len(w.offsetFreq) for numOffsets > 0 && w.offsetFreq[numOffsets-1] == 0 { numOffsets-- } @@ -566,65 +575,55 @@ func (w *huffmanBitWriter) writeBlockDynamic(tok tokens, eof bool, input []byte) w.offsetFreq[0] = 1 numOffsets = 1 } - w.literalEncoding.generate(w.literalFreq, 15) w.offsetEncoding.generate(w.offsetFreq, 15) + return +} - var numCodegens int - - // Generate codegen and codegenFrequencies, which indicates how to encode - // the literalEncoding and the offsetEncoding. - w.generateCodegen(numLiterals, numOffsets, w.offsetEncoding) - w.codegenEncoding.generate(w.codegenFreq, 7) - numCodegens = len(w.codegenFreq) - for numCodegens > 4 && w.codegenFreq[codegenOrder[numCodegens-1]] == 0 { - numCodegens-- +// writeTokens writes a slice of tokens to the output. +// codes for literal and offset encoding must be supplied. +func (w *huffmanBitWriter) writeTokens(tokens []token, leCodes, oeCodes []hcode) { + if w.err != nil { + return } - var literalEncoding = w.literalEncoding - var offsetEncoding = w.offsetEncoding - - // Write Huffman table. - w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) - leCodes := literalEncoding.codes - oeCodes := offsetEncoding.codes - for _, t := range tokens { if t < matchType { w.writeCode(leCodes[t.literal()]) - } else { - // Write the length - length := t.length() - lengthCode := lengthCode(length) - w.writeCode(leCodes[lengthCode+lengthCodesStart]) - extraLengthBits := uint(lengthExtraBits[lengthCode]) - if extraLengthBits > 0 { - extraLength := int32(length - lengthBase[lengthCode]) - w.writeBits(extraLength, extraLengthBits) - } - // Write the offset - offset := t.offset() - offsetCode := offsetCode(offset) - w.writeCode(oeCodes[offsetCode]) - extraOffsetBits := uint(offsetExtraBits[offsetCode]) - if extraOffsetBits > 0 { - extraOffset := int32(offset - offsetBase[offsetCode]) - w.writeBits(extraOffset, extraOffsetBits) - } + continue + } + // Write the length + length := t.length() + lengthCode := lengthCode(length) + w.writeCode(leCodes[lengthCode+lengthCodesStart]) + extraLengthBits := uint(lengthExtraBits[lengthCode]) + if extraLengthBits > 0 { + extraLength := int32(length - lengthBase[lengthCode]) + w.writeBits(extraLength, extraLengthBits) + } + // Write the offset + offset := t.offset() + offsetCode := offsetCode(offset) + w.writeCode(oeCodes[offsetCode]) + extraOffsetBits := uint(offsetExtraBits[offsetCode]) + if extraOffsetBits > 0 { + extraOffset := int32(offset - offsetBase[offsetCode]) + w.writeBits(extraOffset, extraOffsetBits) } } } -// static offset encoder used for huffman only encoding. +// huffOffset is a static offset encoder used for huffman only encoding. +// It can be reused since we will not be encoding offset values. var huffOffset *huffmanEncoder func init() { - var w = newHuffmanBitWriter(nil) + w := newHuffmanBitWriter(nil) w.offsetFreq[0] = 1 huffOffset = newHuffmanEncoder(offsetCodeCount) huffOffset.generate(w.offsetFreq, 15) } -// writeBlockHuff will write a block of bytes as either +// writeBlockHuff encodes a block of bytes as either // Huffman encoded literals or uncompressed bytes if the // results only gains very little from compression. func (w *huffmanBitWriter) writeBlockHuff(eof bool, input []byte) { @@ -653,65 +652,50 @@ func (w *huffmanBitWriter) writeBlockHuff(eof bool, input []byte) { // Generate codegen and codegenFrequencies, which indicates how to encode // the literalEncoding and the offsetEncoding. - w.generateCodegen(numLiterals, numOffsets, huffOffset) - w.codegenEncoding.generate(w.codegenFreq, 7) - numCodegens = len(w.codegenFreq) - for numCodegens > 4 && w.codegenFreq[codegenOrder[numCodegens-1]] == 0 { - numCodegens-- - } - headerSize := int64(3+5+5+4+(3*numCodegens)) + - w.codegenEncoding.bitLength(w.codegenFreq) + - int64(w.codegenFreq[16]*2) + - int64(w.codegenFreq[17]*3) + - int64(w.codegenFreq[18]*7) - - // Includes EOB marker - size := headerSize + w.literalEncoding.bitLength(w.literalFreq) - - // Calculate stored size - var storedSize int64 = math.MaxInt64 - var storedBytes = len(input) - if storedBytes <= maxStoreBlockSize { - storedSize = int64(storedBytes+5) * 8 - } + w.generateCodegen(numLiterals, numOffsets, w.literalEncoding, huffOffset) + w.codegenEncoding.generate(w.codegenFreq[:], 7) + size, numCodegens := w.dynamicSize(w.literalEncoding, huffOffset, 0) // Store bytes, if we don't get a reasonable improvement. - if storedSize < (size + size>>4) { - w.writeStoredHeader(storedBytes, eof) + if ssize, storable := w.storedSize(input); storable && ssize < (size+size>>4) { + w.writeStoredHeader(len(input), eof) w.writeBytes(input) return } // Huffman. w.writeDynamicHeader(numLiterals, numOffsets, numCodegens, eof) - encoding := w.literalEncoding.codes + encoding := w.literalEncoding.codes[:257] + n := w.nbytes for _, t := range input { // Bitwriting inlined, ~30% speedup c := encoding[t] - w.bits |= uint64(c.code()) << w.nbits - w.nbits += c.bits() - if w.nbits >= 48 { - bits := w.bits - w.bits >>= 48 - w.nbits -= 48 - n := w.nbytes - w.bytes[n] = byte(bits) - w.bytes[n+1] = byte(bits >> 8) - w.bytes[n+2] = byte(bits >> 16) - w.bytes[n+3] = byte(bits >> 24) - w.bytes[n+4] = byte(bits >> 32) - w.bytes[n+5] = byte(bits >> 40) - n += 6 - if n >= bufferSize-8 { - _, w.err = w.w.Write(w.bytes[:bufferSize-8]) - if w.err != nil { - return - } - w.nbytes = 0 - } else { - w.nbytes = n - } + w.bits |= uint64(c.code) << w.nbits + w.nbits += uint(c.len) + if w.nbits < 48 { + continue + } + // Store 6 bytes + bits := w.bits + w.bits >>= 48 + w.nbits -= 48 + bytes := w.bytes[n : n+6] + bytes[0] = byte(bits) + bytes[1] = byte(bits >> 8) + bytes[2] = byte(bits >> 16) + bytes[3] = byte(bits >> 24) + bytes[4] = byte(bits >> 32) + bytes[5] = byte(bits >> 40) + n += 6 + if n < bufferFlushSize { + continue + } + w.write(w.bytes[:n]) + if w.err != nil { + return // Return early in the event of write failures } + n = 0 } + w.nbytes = n w.writeCode(encoding[endBlockMarker]) } diff --git a/vendor/github.com/klauspost/compress/flate/huffman_code.go b/vendor/github.com/klauspost/compress/flate/huffman_code.go index 9dba0faf339..bdcbd823b00 100644 --- a/vendor/github.com/klauspost/compress/flate/huffman_code.go +++ b/vendor/github.com/klauspost/compress/flate/huffman_code.go @@ -9,14 +9,17 @@ import ( "sort" ) -type hcode uint32 +// hcode is a huffman code with a bit code and bit length. +type hcode struct { + code, len uint16 +} type huffmanEncoder struct { codes []hcode freqcache []literalNode bitCount [17]int32 - lns literalNodeSorter - lfs literalFreqSorter + lns byLiteral // stored to avoid repeated allocation in generate + lfs byFreq // stored to avoid repeated allocation in generate } type literalNode struct { @@ -44,34 +47,16 @@ type levelInfo struct { needed int32 } -func (h hcode) codeBits() (code uint16, bits uint8) { - return uint16(h), uint8(h >> 16) -} - -func (h *hcode) set(code uint16, bits uint8) { - *h = hcode(code) | hcode(uint32(bits)<<16) -} - -func (h *hcode) setBits(bits uint8) { - *h = hcode(*h&0xffff) | hcode(uint32(bits)<<16) -} - -func toCode(code uint16, bits uint8) hcode { - return hcode(code) | hcode(uint32(bits)<<16) -} - -func (h hcode) code() (code uint16) { - return uint16(h) -} - -func (h hcode) bits() (bits uint) { - return uint(h >> 16) +// set sets the code and length of an hcode. +func (h *hcode) set(code uint16, length uint16) { + h.len = length + h.code = code } func maxNode() literalNode { return literalNode{math.MaxUint16, math.MaxInt32} } func newHuffmanEncoder(size int) *huffmanEncoder { - return &huffmanEncoder{codes: make([]hcode, size), freqcache: nil} + return &huffmanEncoder{codes: make([]hcode, size)} } // Generates a HuffmanCode corresponding to the fixed literal table @@ -81,7 +66,7 @@ func generateFixedLiteralEncoding() *huffmanEncoder { var ch uint16 for ch = 0; ch < maxNumLit; ch++ { var bits uint16 - var size uint8 + var size uint16 switch { case ch < 144: // size 8, 000110000 .. 10111111 @@ -103,7 +88,7 @@ func generateFixedLiteralEncoding() *huffmanEncoder { bits = ch + 192 - 280 size = 8 } - codes[ch] = toCode(reverseBits(bits, size), size) + codes[ch] = hcode{code: reverseBits(bits, byte(size)), len: size} } return h } @@ -111,8 +96,8 @@ func generateFixedLiteralEncoding() *huffmanEncoder { func generateFixedOffsetEncoding() *huffmanEncoder { h := newHuffmanEncoder(30) codes := h.codes - for ch := uint16(0); ch < 30; ch++ { - codes[ch] = toCode(reverseBits(ch, 5), 5) + for ch := range codes { + codes[ch] = hcode{code: reverseBits(uint16(ch), 5), len: 5} } return h } @@ -120,11 +105,11 @@ func generateFixedOffsetEncoding() *huffmanEncoder { var fixedLiteralEncoding *huffmanEncoder = generateFixedLiteralEncoding() var fixedOffsetEncoding *huffmanEncoder = generateFixedOffsetEncoding() -func (h *huffmanEncoder) bitLength(freq []int32) int64 { - var total int64 +func (h *huffmanEncoder) bitLength(freq []int32) int { + var total int for i, f := range freq { if f != 0 { - total += int64(f) * int64(h.codes[i].bits()) + total += int(f) * int(h.codes[i].len) } } return total @@ -138,7 +123,7 @@ const maxBitsLimit = 16 // The cases of 0, 1, and 2 literals are handled by special case code. // // list An array of the literals with non-zero frequencies -// and their associated frequencies. The array is in order of increasing +// and their associated frequencies. The array is in order of increasing // frequency, and has as its last element a special element with frequency // MaxInt32 // maxBits The maximum number of bits that should be used to encode any literal. @@ -153,7 +138,7 @@ func (h *huffmanEncoder) bitCounts(list []literalNode, maxBits int32) []int32 { list = list[0 : n+1] list[n] = maxNode() - // The tree can't have greater depth than n - 1, no matter what. This + // The tree can't have greater depth than n - 1, no matter what. This // saves a little bit of work in some small cases if maxBits > n-1 { maxBits = n - 1 @@ -222,7 +207,7 @@ func (h *huffmanEncoder) bitCounts(list []literalNode, maxBits int32) []int32 { if l.needed--; l.needed == 0 { // We've done everything we need to do for this level. - // Continue calculating one level up. Fill in nextPairFreq + // Continue calculating one level up. Fill in nextPairFreq // of that level with the sum of the two nodes we've just calculated on // this level. if l.level == maxBits { @@ -246,7 +231,6 @@ func (h *huffmanEncoder) bitCounts(list []literalNode, maxBits int32) []int32 { } bitCount := h.bitCount[:maxBits+1] - //make([]int32, maxBits+1) bits := 1 counts := &leafCounts[maxBits] for level := maxBits; level > 0; level-- { @@ -273,9 +257,9 @@ func (h *huffmanEncoder) assignEncodingAndSize(bitCount []int32, list []literalN // assigned in literal order (not frequency order). chunk := list[len(list)-int(bits):] - h.lns.Sort(chunk) + h.lns.sort(chunk) for _, node := range chunk { - h.codes[node.literal] = toCode(reverseBits(code, uint8(n)), uint8(n)) + h.codes[node.literal] = hcode{code: reverseBits(code, uint8(n)), len: uint16(n)} code++ } list = list[0 : len(list)-int(bits)] @@ -288,7 +272,10 @@ func (h *huffmanEncoder) assignEncodingAndSize(bitCount []int32, list []literalN // maxBits The maximum number of bits to use for any literal. func (h *huffmanEncoder) generate(freq []int32, maxBits int32) { if h.freqcache == nil { - h.freqcache = make([]literalNode, 300) + // Allocate a reusable buffer with the longest possible frequency table. + // Possible lengths are codegenCodeCount, offsetCodeCount and maxNumLit. + // The largest of these is maxNumLit, so we allocate for that case. + h.freqcache = make([]literalNode, maxNumLit+1) } list := h.freqcache[:len(freq)+1] // Number of non-zero literals @@ -300,28 +287,22 @@ func (h *huffmanEncoder) generate(freq []int32, maxBits int32) { count++ } else { list[count] = literalNode{} - //h.codeBits[i] = 0 - h.codes[i].setBits(0) + h.codes[i].len = 0 } } list[len(freq)] = literalNode{} - // If freq[] is shorter than codeBits[], fill rest of codeBits[] with zeros - // FIXME: Doesn't do what it says on the tin (klauspost) - //h.codeBits = h.codeBits[0:len(freq)] - list = list[0:count] + list = list[:count] if count <= 2 { - // Handle the small cases here, because they are awkward for the general case code. With + // Handle the small cases here, because they are awkward for the general case code. With // two or fewer literals, everything has bit length 1. for i, node := range list { // "list" is in order of increasing literal value. h.codes[node.literal].set(uint16(i), 1) - //h.codeBits[node.literal] = 1 - //h.code[node.literal] = uint16(i) } return } - h.lfs.Sort(list) + h.lfs.sort(list) // Get the number of literals for each bit count bitCount := h.bitCounts(list, maxBits) @@ -329,35 +310,35 @@ func (h *huffmanEncoder) generate(freq []int32, maxBits int32) { h.assignEncodingAndSize(bitCount, list) } -type literalNodeSorter []literalNode +type byLiteral []literalNode -func (s *literalNodeSorter) Sort(a []literalNode) { - *s = literalNodeSorter(a) +func (s *byLiteral) sort(a []literalNode) { + *s = byLiteral(a) sort.Sort(s) } -func (s literalNodeSorter) Len() int { return len(s) } +func (s byLiteral) Len() int { return len(s) } -func (s literalNodeSorter) Less(i, j int) bool { +func (s byLiteral) Less(i, j int) bool { return s[i].literal < s[j].literal } -func (s literalNodeSorter) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s byLiteral) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -type literalFreqSorter []literalNode +type byFreq []literalNode -func (s *literalFreqSorter) Sort(a []literalNode) { - *s = literalFreqSorter(a) +func (s *byFreq) sort(a []literalNode) { + *s = byFreq(a) sort.Sort(s) } -func (s literalFreqSorter) Len() int { return len(s) } +func (s byFreq) Len() int { return len(s) } -func (s literalFreqSorter) Less(i, j int) bool { +func (s byFreq) Less(i, j int) bool { if s[i].freq == s[j].freq { return s[i].literal < s[j].literal } return s[i].freq < s[j].freq } -func (s literalFreqSorter) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s byFreq) Swap(i, j int) { s[i], s[j] = s[j], s[i] } diff --git a/vendor/github.com/klauspost/compress/flate/inflate.go b/vendor/github.com/klauspost/compress/flate/inflate.go index 91e27e7e280..53b63d9a0b3 100644 --- a/vendor/github.com/klauspost/compress/flate/inflate.go +++ b/vendor/github.com/klauspost/compress/flate/inflate.go @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:generate go run gen.go -output fixedhuff.go - // Package flate implements the DEFLATE compressed data format, described in // RFC 1951. The gzip and zlib packages implement access to DEFLATE-based file // formats. @@ -13,11 +11,11 @@ import ( "bufio" "io" "strconv" + "sync" ) const ( - maxCodeLen = 16 // max length of Huffman code - maxHist = 32768 // max history required + maxCodeLen = 16 // max length of Huffman code // The next three numbers come from the RFC section 3.2.7, with the // additional proviso in section 3.2.5 which implies that distance codes // 30 and 31 should never occur in compressed data. @@ -26,6 +24,10 @@ const ( numCodes = 19 // number of codes in Huffman meta-code ) +// Initialize the fixedHuffmanDecoder only once upon first use. +var fixedOnce sync.Once +var fixedHuffmanDecoder huffmanDecoder + // A CorruptInputError reports the presence of corrupt input at a given offset. type CorruptInputError int64 @@ -39,6 +41,8 @@ type InternalError string func (e InternalError) Error() string { return "flate: internal error: " + string(e) } // A ReadError reports an error encountered while reading input. +// +// Deprecated: No longer returned. type ReadError struct { Offset int64 // byte offset where error occurred Err error // error returned by underlying Read @@ -49,6 +53,8 @@ func (e *ReadError) Error() string { } // A WriteError reports an error encountered while writing output. +// +// Deprecated: No longer returned. type WriteError struct { Offset int64 // byte offset where error occurred Err error // error returned by underlying Write @@ -67,10 +73,6 @@ type Resetter interface { Reset(r io.Reader, dict []byte) error } -// Note that much of the implementation of huffmanDecoder is also copied -// into gen.go (in package main) for the purpose of precomputing the -// fixed huffman tables so they can be included statically. - // The data structure for decoding Huffman tables is based on that of // zlib. There is a lookup table of a fixed bit width (huffmanChunkBits), // For codes smaller than the table width, there are multiple entries @@ -78,12 +80,15 @@ type Resetter interface { // larger than the table width, the table contains a link to an overflow // table. The width of each entry in the link table is the maximum code // size minus the chunk width. - +// // Note that you can do a lookup in the table even without all bits // filled. Since the extra bits are zero, and the DEFLATE Huffman codes // have the property that shorter codes come before longer ones, the // bit length estimate in the result is a lower bound on the actual // number of bits. +// +// See the following: +// http://www.gzip.org/algorithm.txt // chunk & 15 is number of bits // chunk >> 4 is value, including table link @@ -109,7 +114,7 @@ type huffmanDecoder struct { // trees are permitted. func (h *huffmanDecoder) init(bits []int) bool { // Sanity enables additional runtime tests during Huffman - // table construction. It's intended to be used during + // table construction. It's intended to be used during // development to supplement the currently ad-hoc unit tests. const sanity = false @@ -156,7 +161,7 @@ func (h *huffmanDecoder) init(bits []int) bool { // Check that the coding is complete (i.e., that we've // assigned all 2-to-the-max possible bit sequences). // Exception: To be compatible with zlib, we also need to - // accept degenerate single-code codings. See also + // accept degenerate single-code codings. See also // TestDegenerateHuffmanCoding. if code != 1< 0 { n := copy(b, f.toRead) f.toRead = f.toRead[n:] + if len(f.toRead) == 0 { + return n, f.err + } return n, nil } if f.err != nil { return 0, f.err } f.step(f) + if f.err != nil && len(f.toRead) == 0 { + f.toRead = f.dict.readFlush() // Flush what's left in case of error + } } } // Support the io.WriteTo interface for io.Copy and friends. func (f *decompressor) WriteTo(w io.Writer) (int64, error) { total := int64(0) + flushed := false for { - if f.err != nil { - if f.err == io.EOF { - return total, nil - } - return total, f.err - } if len(f.toRead) > 0 { - var n int - n, f.err = w.Write(f.toRead) - if f.err != nil { - return total, f.err + n, err := w.Write(f.toRead) + total += int64(n) + if err != nil { + f.err = err + return total, err } if n != len(f.toRead) { return total, io.ErrShortWrite } f.toRead = f.toRead[:0] - total += int64(n) } - f.step(f) + if f.err != nil && flushed { + if f.err == io.EOF { + return total, nil + } + return total, f.err + } + if f.err == nil { + f.step(f) + } + if len(f.toRead) == 0 && f.err != nil && !flushed { + f.toRead = f.dict.readFlush() // Flush what's left in case of error + flushed = true + } } } @@ -485,13 +492,12 @@ func (f *decompressor) readHuffman() error { return CorruptInputError(f.roffset) } - // In order to preserve the property that we never read any extra bytes - // after the end of the DEFLATE stream, huffSym conservatively reads min - // bits at a time until it decodes the symbol. However, since every block - // must end with an EOB marker, we can use that as the minimum number of - // bits to read and guarantee we never read past the end of the stream. - if f.bits[endBlockMarker] > 0 { - f.h1.min = f.bits[endBlockMarker] // Length of EOB marker + // As an optimization, we can initialize the min bits to read at a time + // for the HLIT tree to the length of the EOB marker since we know that + // every block must terminate with one. This preserves the property that + // we never read any extra bytes after the end of the DEFLATE stream. + if f.h1.min < f.bits[endBlockMarker] { + f.h1.min = f.bits[endBlockMarker] } return nil @@ -499,10 +505,24 @@ func (f *decompressor) readHuffman() error { // Decode a single Huffman block from f. // hl and hd are the Huffman states for the lit/length values -// and the distance values, respectively. If hd == nil, using the +// and the distance values, respectively. If hd == nil, using the // fixed distance encoding associated with fixed Huffman blocks. func (f *decompressor) huffmanBlock() { - for { + const ( + stateInit = iota // Zero value must be stateInit + stateDict + ) + + switch f.stepState { + case stateInit: + goto readLiteral + case stateDict: + goto copyHistory + } + +readLiteral: + // Read literal and/or (length, distance) according to RFC section 3.2.3. + { v, err := f.huffSym(f.hl) if err != nil { f.err = err @@ -512,17 +532,16 @@ func (f *decompressor) huffmanBlock() { var length int switch { case v < 256: - f.hist[f.hp] = byte(v) - f.hp++ - if f.hp == len(f.hist) { - // After the flush, continue this loop. - f.flush((*decompressor).huffmanBlock) + f.dict.writeByte(byte(v)) + if f.dict.availWrite() == 0 { + f.toRead = f.dict.readFlush() + f.step = (*decompressor).huffmanBlock + f.stepState = stateInit return } - continue + goto readLiteral case v == 256: - // Done with huffman block; read next block. - f.step = (*decompressor).nextBlock + f.finishBlock() return // otherwise, reference to older data case v < 265: @@ -602,61 +621,33 @@ func (f *decompressor) huffmanBlock() { return } - // Copy history[-dist:-dist+length] into output. - if dist > len(f.hist) { - f.err = InternalError("bad history distance") - return - } - // No check on length; encoding can be prescient. - if !f.hfull && dist > f.hp { + if dist > f.dict.histSize() { f.err = CorruptInputError(f.roffset) return } f.copyLen, f.copyDist = length, dist - if f.copyHist() { - return - } + goto copyHistory } -} -// copyHist copies f.copyLen bytes from f.hist (f.copyDist bytes ago) to itself. -// It reports whether the f.hist buffer is full. -func (f *decompressor) copyHist() bool { - p := f.hp - f.copyDist - if p < 0 { - p += len(f.hist) - } - for f.copyLen > 0 { - n := f.copyLen - if x := len(f.hist) - f.hp; n > x { - n = x - } - if x := len(f.hist) - p; n > x { - n = x - } - forwardCopy(f.hist[:], f.hp, p, n) - p += n - f.hp += n - f.copyLen -= n - if f.hp == len(f.hist) { - // After flush continue copying out of history. - f.flush((*decompressor).copyHuff) - return true +copyHistory: + // Perform a backwards copy according to RFC section 3.2.3. + { + cnt := f.dict.tryWriteCopy(f.copyDist, f.copyLen) + if cnt == 0 { + cnt = f.dict.writeCopy(f.copyDist, f.copyLen) } - if p == len(f.hist) { - p = 0 - } - } - return false -} + f.copyLen -= cnt -func (f *decompressor) copyHuff() { - if f.copyHist() { - return + if f.dict.availWrite() == 0 || f.copyLen > 0 { + f.toRead = f.dict.readFlush() + f.step = (*decompressor).huffmanBlock // We need to continue this work + f.stepState = stateDict + return + } + goto readLiteral } - f.huffmanBlock() } // Copy a single uncompressed data block from input to output. @@ -670,7 +661,10 @@ func (f *decompressor) dataBlock() { nr, err := io.ReadFull(f.r, f.buf[0:4]) f.roffset += int64(nr) if err != nil { - f.err = &ReadError{f.roffset, err} + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + f.err = err return } n := int(f.buf[0]) | int(f.buf[1])<<8 @@ -681,8 +675,8 @@ func (f *decompressor) dataBlock() { } if n == 0 { - // 0-length block means sync - f.flush((*decompressor).nextBlock) + f.toRead = f.dict.readFlush() + f.finishBlock() return } @@ -693,41 +687,39 @@ func (f *decompressor) dataBlock() { // copyData copies f.copyLen bytes from the underlying reader into f.hist. // It pauses for reads when f.hist is full. func (f *decompressor) copyData() { - n := f.copyLen - for n > 0 { - m := len(f.hist) - f.hp - if m > n { - m = n - } - m, err := io.ReadFull(f.r, f.hist[f.hp:f.hp+m]) - f.roffset += int64(m) - if err != nil { - f.err = &ReadError{f.roffset, err} - return - } - n -= m - f.hp += m - if f.hp == len(f.hist) { - f.copyLen = n - f.flush((*decompressor).copyData) - return + buf := f.dict.writeSlice() + if len(buf) > f.copyLen { + buf = buf[:f.copyLen] + } + + cnt, err := io.ReadFull(f.r, buf) + f.roffset += int64(cnt) + f.copyLen -= cnt + f.dict.writeMark(cnt) + if err != nil { + if err == io.EOF { + err = io.ErrUnexpectedEOF } + f.err = err + return } - f.step = (*decompressor).nextBlock -} -func (f *decompressor) setDict(dict []byte) { - if len(dict) > len(f.hist) { - // Will only remember the tail. - dict = dict[len(dict)-len(f.hist):] + if f.dict.availWrite() == 0 || f.copyLen > 0 { + f.toRead = f.dict.readFlush() + f.step = (*decompressor).copyData + return } + f.finishBlock() +} - f.hp = copy(f.hist[:], dict) - if f.hp == len(f.hist) { - f.hp = 0 - f.hfull = true +func (f *decompressor) finishBlock() { + if f.final { + if f.dict.availRead() > 0 { + f.toRead = f.dict.readFlush() + } + f.err = io.EOF } - f.hw = f.hp + f.step = (*decompressor).nextBlock } func (f *decompressor) moreBits() error { @@ -775,19 +767,6 @@ func (f *decompressor) huffSym(h *huffmanDecoder) (int, error) { } } -// Flush any buffered output to the underlying writer. -func (f *decompressor) flush(step func(*decompressor)) { - f.toRead = f.hist[f.hw:f.hp] - f.woffset += int64(f.hp - f.hw) - f.hw = f.hp - if f.hp == len(f.hist) { - f.hp = 0 - f.hw = 0 - f.hfull = true - } - f.step = step -} - func makeReader(r io.Reader) Reader { if rr, ok := r.(Reader); ok { return rr @@ -795,17 +774,35 @@ func makeReader(r io.Reader) Reader { return bufio.NewReader(r) } +func fixedHuffmanDecoderInit() { + fixedOnce.Do(func() { + // These come from the RFC section 3.2.6. + var bits [288]int + for i := 0; i < 144; i++ { + bits[i] = 8 + } + for i := 144; i < 256; i++ { + bits[i] = 9 + } + for i := 256; i < 280; i++ { + bits[i] = 7 + } + for i := 280; i < 288; i++ { + bits[i] = 8 + } + fixedHuffmanDecoder.init(bits[:]) + }) +} + func (f *decompressor) Reset(r io.Reader, dict []byte) error { *f = decompressor{ r: makeReader(r), bits: f.bits, codebits: f.codebits, - hist: f.hist, + dict: f.dict, step: (*decompressor).nextBlock, } - if dict != nil { - f.setDict(dict) - } + f.dict.init(maxMatchOffset, dict) return nil } @@ -818,29 +815,32 @@ func (f *decompressor) Reset(r io.Reader, dict []byte) error { // // The ReadCloser returned by NewReader also implements Resetter. func NewReader(r io.Reader) io.ReadCloser { + fixedHuffmanDecoderInit() + var f decompressor + f.r = makeReader(r) f.bits = new([maxNumLit + maxNumDist]int) f.codebits = new([numCodes]int) - f.r = makeReader(r) - f.hist = new([maxHist]byte) f.step = (*decompressor).nextBlock + f.dict.init(maxMatchOffset, nil) return &f } // NewReaderDict is like NewReader but initializes the reader -// with a preset dictionary. The returned Reader behaves as if +// with a preset dictionary. The returned Reader behaves as if // the uncompressed data stream started with the given dictionary, -// which has already been read. NewReaderDict is typically used +// which has already been read. NewReaderDict is typically used // to read data compressed by NewWriterDict. // // The ReadCloser returned by NewReader also implements Resetter. func NewReaderDict(r io.Reader, dict []byte) io.ReadCloser { + fixedHuffmanDecoderInit() + var f decompressor f.r = makeReader(r) - f.hist = new([maxHist]byte) f.bits = new([maxNumLit + maxNumDist]int) f.codebits = new([numCodes]int) f.step = (*decompressor).nextBlock - f.setDict(dict) + f.dict.init(maxMatchOffset, dict) return &f } diff --git a/vendor/github.com/klauspost/compress/flate/snappy.go b/vendor/github.com/klauspost/compress/flate/snappy.go index a7cbf351d0e..d853320a758 100644 --- a/vendor/github.com/klauspost/compress/flate/snappy.go +++ b/vendor/github.com/klauspost/compress/flate/snappy.go @@ -5,16 +5,13 @@ package flate -// We limit how far copy back-references can go, the same as the C++ code. -const maxOffset = 1 << 15 - // emitLiteral writes a literal chunk and returns the number of bytes written. func emitLiteral(dst *tokens, lit []byte) { - ol := dst.n + ol := int(dst.n) for i, v := range lit { - dst.tokens[i+ol] = token(v) + dst.tokens[(i+ol)&maxStoreBlockSize] = token(v) } - dst.n += len(lit) + dst.n += uint16(len(lit)) } // emitCopy writes a copy chunk and returns the number of bytes written. @@ -29,740 +26,875 @@ type snappyEnc interface { } func newSnappy(level int) snappyEnc { - if useSSE42 { - e := &snappySSE4{} - switch level { - case 3: - e.enc = e.encodeL3 - return e - } - } - e := &snappyGen{} switch level { case 1: - e.enc = e.encodeL1 + return &snappyL1{} case 2: - e.enc = e.encodeL2 + return &snappyL2{snappyGen: snappyGen{cur: maxStoreBlockSize, prev: make([]byte, 0, maxStoreBlockSize)}} case 3: - e.enc = e.encodeL3 + return &snappyL3{snappyGen: snappyGen{cur: maxStoreBlockSize, prev: make([]byte, 0, maxStoreBlockSize)}} + case 4: + return &snappyL4{snappyL3{snappyGen: snappyGen{cur: maxStoreBlockSize, prev: make([]byte, 0, maxStoreBlockSize)}}} default: panic("invalid level specified") } - return e } -const tableBits = 14 // Bits used in the table -const tableSize = 1 << tableBits // Size of the table +const ( + tableBits = 14 // Bits used in the table + tableSize = 1 << tableBits // Size of the table + tableMask = tableSize - 1 // Mask for table indices. Redundant, but can eliminate bounds checks. + tableShift = 32 - tableBits // Right-shift to get the tableBits most significant bits of a uint32. + baseMatchOffset = 1 // The smallest match offset + baseMatchLength = 3 // The smallest match length per the RFC section 3.2.5 + maxMatchOffset = 1 << 15 // The largest match offset +) + +func load32(b []byte, i int) uint32 { + b = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line. + return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 +} -// snappyGen maintains the table for matches, -// and the previous byte block for level 2. -// This is the generic implementation. -type snappyGen struct { - table [tableSize]int64 - block [maxStoreBlockSize]byte - prev []byte - cur int - enc func(dst *tokens, src []byte) +func load64(b []byte, i int) uint64 { + b = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line. + 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 } -func (e *snappyGen) Encode(dst *tokens, src []byte) { - e.enc(dst, src) +func hash(u uint32) uint32 { + return (u * 0x1e35a7bd) >> tableShift } -// EncodeL1 uses Snappy-like compression, but stores as Huffman -// blocks. -func (e *snappyGen) encodeL1(dst *tokens, src []byte) { - // Return early if src is short. - if len(src) <= 4 { - if len(src) != 0 { - emitLiteral(dst, src) - } - e.cur += 4 - return - } +// snappyL1 encapsulates level 1 compression +type snappyL1 struct{} - // Ensure that e.cur doesn't wrap, mainly an issue on 32 bits. - if e.cur > 1<<30 { - e.cur = 0 - } +func (e *snappyL1) Reset() {} - // Iterate over the source bytes. - var ( - s int // The iterator position. - t int // The last position with the same hash as s. - lit int // The start position of any pending literal bytes. +func (e *snappyL1) Encode(dst *tokens, src []byte) { + const ( + inputMargin = 16 - 1 + minNonLiteralBlockSize = 1 + 1 + inputMargin ) - for s+3 < len(src) { - // Update the hash table. - b0, b1, b2, b3 := src[s], src[s+1], src[s+2], src[s+3] - h := uint32(b0) | uint32(b1)<<8 | uint32(b2)<<16 | uint32(b3)<<24 - p := &e.table[(h*0x1e35a7bd)>>(32-tableBits)] - // We need to to store values in [-1, inf) in table. To save - // some initialization time, (re)use the table's zero value - // and shift the values against this zero: add 1 on writes, - // subtract 1 on reads. - t, *p = int(*p)-1-e.cur, int64(s+1+e.cur) - - offset := uint(s - t - 1) - - // If t is invalid or src[s:s+4] differs from src[t:t+4], accumulate a literal byte. - if t < 0 || offset >= (maxOffset-1) || b0 != src[t] || b1 != src[t+1] || b2 != src[t+2] || b3 != src[t+3] { - // Skip 1 byte for 16 consecutive missed. - s += 1 + ((s - lit) >> 4) - continue - } - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - emitLiteral(dst, src[lit:s]) - } - // Extend the match to be as long as possible. - s0 := s - s1 := s + maxMatchLength - if s1 > len(src) { - s1 = len(src) - } - s, t = s+4, t+4 - for s < s1 && src[s] == src[t] { - s++ - t++ - } - // Emit the copied bytes. - // inlined: emitCopy(dst, s-t, s-s0) - - dst.tokens[dst.n] = matchToken(uint32(s-s0-3), uint32(s-t-minOffsetSize)) - dst.n++ - lit = s - } - - // Emit any final pending literal bytes and return. - if lit != len(src) { - emitLiteral(dst, src[lit:]) - } - e.cur += len(src) -} - -// EncodeL2 uses a similar algorithm to level 1, but is capable -// of matching across blocks giving better compression at a small slowdown. -func (e *snappyGen) encodeL2(dst *tokens, src []byte) { - // Return early if src is short. - if len(src) <= 4 { - if len(src) != 0 { - emitLiteral(dst, src) - } - e.prev = nil - e.cur += len(src) + // This check isn't in the Snappy implementation, but there, the caller + // instead of the callee handles this case. + if len(src) < minNonLiteralBlockSize { + // We do not fill the token table. + // This will be picked up by caller. + dst.n = uint16(len(src)) return } - // Ensure that e.cur doesn't wrap, mainly an issue on 32 bits. - if e.cur > 1<<30 { - e.cur = 0 - } - - // Iterate over the source bytes. - var ( - s int // The iterator position. - t int // The last position with the same hash as s. - lit int // The start position of any pending literal bytes. - ) - - for s+3 < len(src) { - // Update the hash table. - b0, b1, b2, b3 := src[s], src[s+1], src[s+2], src[s+3] - h := uint32(b0) | uint32(b1)<<8 | uint32(b2)<<16 | uint32(b3)<<24 - p := &e.table[(h*0x1e35a7bd)>>(32-tableBits)] - // We need to to store values in [-1, inf) in table. To save - // some initialization time, (re)use the table's zero value - // and shift the values against this zero: add 1 on writes, - // subtract 1 on reads. - t, *p = int(*p)-1-e.cur, int64(s+1+e.cur) - - // If t is positive, the match starts in the current block - if t >= 0 { - - offset := uint(s - t - 1) - // Check that the offset is valid and that we match at least 4 bytes - if offset >= (maxOffset-1) || b0 != src[t] || b1 != src[t+1] || b2 != src[t+2] || b3 != src[t+3] { - // Skip 1 byte for 32 consecutive missed. - s += 1 + ((s - lit) >> 5) - continue + // Initialize the hash table. + // + // The table element type is uint16, as s < sLimit and sLimit < len(src) + // and len(src) <= maxStoreBlockSize and maxStoreBlockSize == 65535. + var table [tableSize]uint16 + + // sLimit is when to stop looking for offset/length copies. The inputMargin + // lets us use a fast path for emitLiteral in the main loop, while we are + // looking for copies. + sLimit := len(src) - inputMargin + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := 0 + + // The encoded form must start with a literal, as there are no previous + // bytes to copy, so we start looking for hash matches at s == 1. + s := 1 + nextHash := hash(load32(src, s)) + + for { + // Copied from the C++ snappy implementation: + // + // Heuristic match skipping: If 32 bytes are scanned with no matches + // found, start looking only at every other byte. If 32 more bytes are + // scanned (or skipped), look at every third byte, etc.. When a match + // is found, immediately go back to looking at every byte. This is a + // small loss (~5% performance, ~0.1% density) for compressible data + // due to more bookkeeping, but for non-compressible data (such as + // JPEG) it's a huge win since the compressor quickly "realizes" the + // data is incompressible and doesn't bother looking for matches + // everywhere. + // + // The "skip" variable keeps track of how many bytes there are since + // the last match; dividing it by 32 (ie. right-shifting by five) gives + // the number of bytes to move ahead for each iteration. + skip := 32 + + nextS := s + candidate := 0 + for { + s = nextS + bytesBetweenHashLookups := skip >> 5 + nextS = s + bytesBetweenHashLookups + skip += bytesBetweenHashLookups + if nextS > sLimit { + goto emitRemainder } - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - emitLiteral(dst, src[lit:s]) + candidate = int(table[nextHash&tableMask]) + table[nextHash&tableMask] = uint16(s) + nextHash = hash(load32(src, nextS)) + if s-candidate <= maxMatchOffset && load32(src, s) == load32(src, candidate) { + break } - // Extend the match to be as long as possible. - s0 := s - s1 := s + maxMatchLength + } + + // A 4-byte match has been found. We'll later see if more than 4 bytes + // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit + // them as literal bytes. + emitLiteral(dst, src[nextEmit:s]) + + // Call emitCopy, and then see if another emitCopy could be our next + // move. Repeat until we find no match for the input immediately after + // what was consumed by the last emitCopy call. + // + // If we exit this loop normally then we need to call emitLiteral next, + // though we don't yet know how big the literal will be. We handle that + // by proceeding to the next iteration of the main loop. We also can + // exit this loop via goto if we get close to exhausting the input. + for { + // Invariant: we have a 4-byte match at s, and no need to emit any + // literal bytes prior to s. + base := s + + // Extend the 4-byte match as long as possible. + // + // This is an inlined version of Snappy's: + // s = extendMatch(src, candidate+4, s+4) + s += 4 + s1 := base + maxMatchLength if s1 > len(src) { s1 = len(src) } - s, t = s+4, t+4 - for s < s1 && src[s] == src[t] { - s++ - t++ + a := src[s:s1] + b := src[candidate+4:] + b = b[:len(a)] + l := len(a) + for i := range a { + if a[i] != b[i] { + l = i + break + } } - // Emit the copied bytes. - // inlined: emitCopy(dst, s-t, s-s0) - dst.tokens[dst.n] = matchToken(uint32(s-s0-3), uint32(s-t-minOffsetSize)) + s += l + + // matchToken is flate's equivalent of Snappy's emitCopy. + dst.tokens[dst.n] = matchToken(uint32(s-base-baseMatchLength), uint32(base-candidate-baseMatchOffset)) dst.n++ - lit = s - continue - } - // We found a match in the previous block. - tp := len(e.prev) + t - if tp < 0 || t > -5 || s-t >= maxOffset || b0 != e.prev[tp] || b1 != e.prev[tp+1] || b2 != e.prev[tp+2] || b3 != e.prev[tp+3] { - // Skip 1 byte for 32 consecutive missed. - s += 1 + ((s - lit) >> 5) - continue - } - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - emitLiteral(dst, src[lit:s]) - } - // Extend the match to be as long as possible. - s0 := s - s1 := s + maxMatchLength - if s1 > len(src) { - s1 = len(src) - } - s, tp = s+4, tp+4 - for s < s1 && src[s] == e.prev[tp] { - s++ - tp++ - if tp == len(e.prev) { - t = 0 - // continue in current buffer - for s < s1 && src[s] == src[t] { - s++ - t++ - } - goto l + nextEmit = s + if s >= sLimit { + goto emitRemainder } - } - l: - // Emit the copied bytes. - if t < 0 { - t = tp - len(e.prev) - } - dst.tokens[dst.n] = matchToken(uint32(s-s0-3), uint32(s-t-minOffsetSize)) - dst.n++ - lit = s + // We could immediately start working at s now, but to improve + // compression we first update the hash table at s-1 and at s. If + // another emitCopy is not our next move, also calculate nextHash + // at s+1. At least on GOARCH=amd64, these three hash calculations + // are faster as one load64 call (with some shifts) instead of + // three load32 calls. + x := load64(src, s-1) + prevHash := hash(uint32(x >> 0)) + table[prevHash&tableMask] = uint16(s - 1) + currHash := hash(uint32(x >> 8)) + candidate = int(table[currHash&tableMask]) + table[currHash&tableMask] = uint16(s) + if s-candidate > maxMatchOffset || uint32(x>>8) != load32(src, candidate) { + nextHash = hash(uint32(x >> 16)) + s++ + break + } + } } - // Emit any final pending literal bytes and return. - if lit != len(src) { - emitLiteral(dst, src[lit:]) - } - e.cur += len(src) - // Store this block, if it was full length. - if len(src) == maxStoreBlockSize { - copy(e.block[:], src) - e.prev = e.block[:len(src)] - } else { - e.prev = nil +emitRemainder: + if nextEmit < len(src) { + emitLiteral(dst, src[nextEmit:]) } } -// EncodeL3 uses a similar algorithm to level 2, but is capable -// will keep two matches per hash. -// Both hashes are checked if the first isn't ok, and the longest is selected. -func (e *snappyGen) encodeL3(dst *tokens, src []byte) { - // Return early if src is short. - if len(src) <= 4 { - if len(src) != 0 { - emitLiteral(dst, src) - } - e.prev = nil - e.cur += len(src) - return - } - - // Ensure that e.cur doesn't wrap, mainly an issue on 32 bits. - if e.cur > 1<<30 { - e.cur = 0 - } +type tableEntry struct { + val uint32 + offset int32 +} - // Iterate over the source bytes. - var ( - s int // The iterator position. - lit int // The start position of any pending literal bytes. - ) +func load3232(b []byte, i int32) uint32 { + b = b[i : i+4 : len(b)] // Help the compiler eliminate bounds checks on the next line. + return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 +} - for s+3 < len(src) { - // Update the hash table. - h := uint32(src[s]) | uint32(src[s+1])<<8 | uint32(src[s+2])<<16 | uint32(src[s+3])<<24 - p := &e.table[(h*0x1e35a7bd)>>(32-tableBits)] - tmp := *p - p1 := int(tmp & 0xffffffff) // Closest match position - p2 := int(tmp >> 32) // Furthest match position - - // We need to to store values in [-1, inf) in table. To save - // some initialization time, (re)use the table's zero value - // and shift the values against this zero: add 1 on writes, - // subtract 1 on reads. - t1 := p1 - 1 - e.cur - - var l2 int - var t2 int - l1 := e.matchlen(s, t1, src) - // If fist match was ok, don't do the second. - if l1 < 16 { - t2 = p2 - 1 - e.cur - l2 = e.matchlen(s, t2, src) - - // If both are short, continue - if l1 < 4 && l2 < 4 { - // Update hash table - *p = int64(s+1+e.cur) | (int64(p1) << 32) - // Skip 1 byte for 32 consecutive missed. - s += 1 + ((s - lit) >> 5) - continue - } - } +func load6432(b []byte, i int32) uint64 { + b = b[i : i+8 : len(b)] // Help the compiler eliminate bounds checks on the next line. + 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 +} - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - emitLiteral(dst, src[lit:s]) - } - // Update hash table - *p = int64(s+1+e.cur) | (int64(p1) << 32) - - // Store the longest match l1 will be closest, so we prefer that if equal length - if l1 >= l2 { - dst.tokens[dst.n] = matchToken(uint32(l1-3), uint32(s-t1-minOffsetSize)) - s += l1 - } else { - dst.tokens[dst.n] = matchToken(uint32(l2-3), uint32(s-t2-minOffsetSize)) - s += l2 - } - dst.n++ - lit = s - } +// snappyGen maintains the table for matches, +// and the previous byte block for level 2. +// This is the generic implementation. +type snappyGen struct { + prev []byte + cur int32 +} - // Emit any final pending literal bytes and return. - if lit != len(src) { - emitLiteral(dst, src[lit:]) - } - e.cur += len(src) - // Store this block, if it was full length. - if len(src) == maxStoreBlockSize { - copy(e.block[:], src) - e.prev = e.block[:len(src)] - } else { - e.prev = nil - } +// snappyGen maintains the table for matches, +// and the previous byte block for level 2. +// This is the generic implementation. +type snappyL2 struct { + snappyGen + table [tableSize]tableEntry } -func (e *snappyGen) matchlen(s, t int, src []byte) int { - // If t is invalid or src[s:s+4] differs from src[t:t+4], accumulate a literal byte. - offset := uint(s - t - 1) +// EncodeL2 uses a similar algorithm to level 1, but is capable +// of matching across blocks giving better compression at a small slowdown. +func (e *snappyL2) Encode(dst *tokens, src []byte) { + const ( + inputMargin = 8 - 1 + minNonLiteralBlockSize = 1 + 1 + inputMargin + ) - // If we are inside the current block - if t >= 0 { - if offset >= (maxOffset-1) || - src[s] != src[t] || src[s+1] != src[t+1] || - src[s+2] != src[t+2] || src[s+3] != src[t+3] { - return 0 - } - // Extend the match to be as long as possible. - s0 := s - s1 := s + maxMatchLength - if s1 > len(src) { - s1 = len(src) - } - s, t = s+4, t+4 - for s < s1 && src[s] == src[t] { - s++ - t++ + // Protect against e.cur wraparound. + if e.cur > 1<<30 { + for i := range e.table[:] { + e.table[i] = tableEntry{} } - return s - s0 + e.cur = maxStoreBlockSize } - // We found a match in the previous block. - tp := len(e.prev) + t - if tp < 0 || offset >= (maxOffset-1) || t > -5 || - src[s] != e.prev[tp] || src[s+1] != e.prev[tp+1] || - src[s+2] != e.prev[tp+2] || src[s+3] != e.prev[tp+3] { - return 0 + // This check isn't in the Snappy implementation, but there, the caller + // instead of the callee handles this case. + if len(src) < minNonLiteralBlockSize { + // We do not fill the token table. + // This will be picked up by caller. + dst.n = uint16(len(src)) + e.cur += maxStoreBlockSize + e.prev = e.prev[:0] + return } - // Extend the match to be as long as possible. - s0 := s - s1 := s + maxMatchLength - if s1 > len(src) { - s1 = len(src) - } - s, tp = s+4, tp+4 - for s < s1 && src[s] == e.prev[tp] { - s++ - tp++ - if tp == len(e.prev) { - t = 0 - // continue in current buffer - for s < s1 && src[s] == src[t] { + // sLimit is when to stop looking for offset/length copies. The inputMargin + // lets us use a fast path for emitLiteral in the main loop, while we are + // looking for copies. + sLimit := int32(len(src) - inputMargin) + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := int32(0) + s := int32(0) + cv := load3232(src, s) + nextHash := hash(cv) + + for { + // Copied from the C++ snappy implementation: + // + // Heuristic match skipping: If 32 bytes are scanned with no matches + // found, start looking only at every other byte. If 32 more bytes are + // scanned (or skipped), look at every third byte, etc.. When a match + // is found, immediately go back to looking at every byte. This is a + // small loss (~5% performance, ~0.1% density) for compressible data + // due to more bookkeeping, but for non-compressible data (such as + // JPEG) it's a huge win since the compressor quickly "realizes" the + // data is incompressible and doesn't bother looking for matches + // everywhere. + // + // The "skip" variable keeps track of how many bytes there are since + // the last match; dividing it by 32 (ie. right-shifting by five) gives + // the number of bytes to move ahead for each iteration. + skip := int32(32) + + nextS := s + var candidate tableEntry + for { + s = nextS + bytesBetweenHashLookups := skip >> 5 + nextS = s + bytesBetweenHashLookups + skip += bytesBetweenHashLookups + if nextS > sLimit { + goto emitRemainder + } + candidate = e.table[nextHash&tableMask] + now := load3232(src, nextS) + e.table[nextHash&tableMask] = tableEntry{offset: s + e.cur, val: cv} + nextHash = hash(now) + + offset := s - (candidate.offset - e.cur) + if offset > maxMatchOffset || cv != candidate.val { + // Out of range or not matched. + cv = now + continue + } + break + } + + // A 4-byte match has been found. We'll later see if more than 4 bytes + // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit + // them as literal bytes. + emitLiteral(dst, src[nextEmit:s]) + + // Call emitCopy, and then see if another emitCopy could be our next + // move. Repeat until we find no match for the input immediately after + // what was consumed by the last emitCopy call. + // + // If we exit this loop normally then we need to call emitLiteral next, + // though we don't yet know how big the literal will be. We handle that + // by proceeding to the next iteration of the main loop. We also can + // exit this loop via goto if we get close to exhausting the input. + for { + // Invariant: we have a 4-byte match at s, and no need to emit any + // literal bytes prior to s. + + // Extend the 4-byte match as long as possible. + // + s += 4 + t := candidate.offset - e.cur + 4 + l := e.matchlen(s, t, src) + + // matchToken is flate's equivalent of Snappy's emitCopy. (length,offset) + dst.tokens[dst.n] = matchToken(uint32(l+4-baseMatchLength), uint32(s-t-baseMatchOffset)) + dst.n++ + s += l + nextEmit = s + if s >= sLimit { + t += l + // Index first pair after match end. + if int(t+4) < len(src) && t > 0 { + cv := load3232(src, t) + e.table[hash(cv)&tableMask] = tableEntry{offset: t + e.cur, val: cv} + } + goto emitRemainder + } + + // We could immediately start working at s now, but to improve + // compression we first update the hash table at s-1 and at s. If + // another emitCopy is not our next move, also calculate nextHash + // at s+1. At least on GOARCH=amd64, these three hash calculations + // are faster as one load64 call (with some shifts) instead of + // three load32 calls. + x := load6432(src, s-1) + prevHash := hash(uint32(x)) + e.table[prevHash&tableMask] = tableEntry{offset: e.cur + s - 1, val: uint32(x)} + x >>= 8 + currHash := hash(uint32(x)) + candidate = e.table[currHash&tableMask] + e.table[currHash&tableMask] = tableEntry{offset: e.cur + s, val: uint32(x)} + + offset := s - (candidate.offset - e.cur) + if offset > maxMatchOffset || uint32(x) != candidate.val { + cv = uint32(x >> 8) + nextHash = hash(cv) s++ - t++ + break } - return s - s0 } } - return s - s0 + +emitRemainder: + if int(nextEmit) < len(src) { + emitLiteral(dst, src[nextEmit:]) + } + e.cur += int32(len(src)) + e.prev = e.prev[:len(src)] + copy(e.prev, src) } -// Reset the encoding table. -func (e *snappyGen) Reset() { - e.prev = nil +type tableEntryPrev struct { + Cur tableEntry + Prev tableEntry } -// snappySSE4 extends snappyGen. -// This implementation can use SSE 4.2 for length matching. -type snappySSE4 struct { +// snappyL3 +type snappyL3 struct { snappyGen + table [tableSize]tableEntryPrev } -/* -// EncodeL1 uses Snappy-like compression, but stores as Huffman -// blocks. -func (e *snappySSE4) encodeL1(dst *tokens, src []byte) { - // Return early if src is short. - if len(src) <= 4 { - if len(src) != 0 { - emitLiteral(dst, src) - } - e.cur += 4 - return - } - - // Ensure that e.cur doesn't wrap, mainly an issue on 32 bits. - if e.cur > 1<<30 { - e.cur = 0 - } - - // Iterate over the source bytes. - var ( - s int // The iterator position. - t int // The last position with the same hash as s. - lit int // The start position of any pending literal bytes. +// Encode uses a similar algorithm to level 2, will check up to two candidates. +func (e *snappyL3) Encode(dst *tokens, src []byte) { + const ( + inputMargin = 8 - 1 + minNonLiteralBlockSize = 1 + 1 + inputMargin ) - for s+3 < len(src) { - // Update the hash table. - h := uint32(src[s]) | uint32(src[s+1])<<8 | uint32(src[s+2])<<16 | uint32(src[s+3])<<24 - p := &e.table[(h*0x1e35a7bd)>>(32-tableBits)] - // We need to to store values in [-1, inf) in table. To save - // some initialization time, (re)use the table's zero value - // and shift the values against this zero: add 1 on writes, - // subtract 1 on reads. - t, *p = int(*p)-1-e.cur, int64(s+1+e.cur) - - offset := uint(s - t - 1) - - // If t is invalid or src[s:s+4] differs from src[t:t+4], accumulate a literal byte. - if t < 0 || offset >= (maxOffset-1) { - // Skip 1 byte for 16 consecutive missed. - s += 1 + ((s - lit) >> 4) - continue - } - - length := len(src) - s - if length > maxMatchLength { - length = maxMatchLength - } - // Extend the match to be as long as possible. - match := matchLenSSE4(src[t:], src[s:], length) - - // Return if short. - if match < 4 { - s += 1 + (s-lit)>>4 - continue - } - - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - emitLiteral(dst, src[lit:s]) + // Protect against e.cur wraparound. + if e.cur > 1<<30 { + for i := range e.table[:] { + e.table[i] = tableEntryPrev{} } - - dst.tokens[dst.n] = matchToken(uint32(match-3), uint32(offset)) - dst.n++ - s += match - lit = s + e.snappyGen = snappyGen{cur: maxStoreBlockSize, prev: e.prev[:0]} } - // Emit any final pending literal bytes and return. - if lit != len(src) { - emitLiteral(dst, src[lit:]) - } - e.cur += len(src) -} - -// EncodeL2 uses a similar algorithm to level 1, but is capable -// of matching across blocks giving better compression at a small slowdown. -func (e *snappySSE4) encodeL2(dst *tokens, src []byte) { - // Return early if src is short. - if len(src) <= 4 { - if len(src) != 0 { - emitLiteral(dst, src) - } - e.prev = nil - e.cur += len(src) + // This check isn't in the Snappy implementation, but there, the caller + // instead of the callee handles this case. + if len(src) < minNonLiteralBlockSize { + // We do not fill the token table. + // This will be picked up by caller. + dst.n = uint16(len(src)) + e.cur += maxStoreBlockSize + e.prev = e.prev[:0] return } - // Ensure that e.cur doesn't wrap, mainly an issue on 32 bits. - if e.cur > 1<<30 { - e.cur = 0 - } - - // Iterate over the source bytes. - var ( - s int // The iterator position. - t int // The last position with the same hash as s. - lit int // The start position of any pending literal bytes. - ) - - for s+3 < len(src) { - // Update the hash table. - b0, b1, b2, b3 := src[s], src[s+1], src[s+2], src[s+3] - h := uint32(b0) | uint32(b1)<<8 | uint32(b2)<<16 | uint32(b3)<<24 - p := &e.table[(h*0x1e35a7bd)>>(32-tableBits)] - // We need to to store values in [-1, inf) in table. To save - // some initialization time, (re)use the table's zero value - // and shift the values against this zero: add 1 on writes, - // subtract 1 on reads. - t, *p = int(*p)-1-e.cur, int64(s+1+e.cur) - - // If t is positive, the match starts in the current block - if t >= 0 { - offset := uint(s - t - 1) - - // If t is invalid or src[s:s+4] differs from src[t:t+4], accumulate a literal byte. - if t < 0 || offset >= (maxOffset-1) { - // Skip 1 byte for 16 consecutive missed. - s += 1 + ((s - lit) >> 5) - continue + // sLimit is when to stop looking for offset/length copies. The inputMargin + // lets us use a fast path for emitLiteral in the main loop, while we are + // looking for copies. + sLimit := int32(len(src) - inputMargin) + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := int32(0) + s := int32(0) + cv := load3232(src, s) + nextHash := hash(cv) + + for { + // Copied from the C++ snappy implementation: + // + // Heuristic match skipping: If 32 bytes are scanned with no matches + // found, start looking only at every other byte. If 32 more bytes are + // scanned (or skipped), look at every third byte, etc.. When a match + // is found, immediately go back to looking at every byte. This is a + // small loss (~5% performance, ~0.1% density) for compressible data + // due to more bookkeeping, but for non-compressible data (such as + // JPEG) it's a huge win since the compressor quickly "realizes" the + // data is incompressible and doesn't bother looking for matches + // everywhere. + // + // The "skip" variable keeps track of how many bytes there are since + // the last match; dividing it by 32 (ie. right-shifting by five) gives + // the number of bytes to move ahead for each iteration. + skip := int32(32) + + nextS := s + var candidate tableEntry + for { + s = nextS + bytesBetweenHashLookups := skip >> 5 + nextS = s + bytesBetweenHashLookups + skip += bytesBetweenHashLookups + if nextS > sLimit { + goto emitRemainder } - - length := maxMatchLength - if length > len(src)-s { - length = len(src) - s + candidates := e.table[nextHash&tableMask] + now := load3232(src, nextS) + e.table[nextHash&tableMask] = tableEntryPrev{Prev: candidates.Cur, Cur: tableEntry{offset: s + e.cur, val: cv}} + nextHash = hash(now) + + // Check both candidates + candidate = candidates.Cur + if cv == candidate.val { + offset := s - (candidate.offset - e.cur) + if offset <= maxMatchOffset { + break + } + } else { + // We only check if value mismatches. + // Offset will always be invalid in other cases. + candidate = candidates.Prev + if cv == candidate.val { + offset := s - (candidate.offset - e.cur) + if offset <= maxMatchOffset { + break + } + } + } + cv = now + } + + // A 4-byte match has been found. We'll later see if more than 4 bytes + // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit + // them as literal bytes. + emitLiteral(dst, src[nextEmit:s]) + + // Call emitCopy, and then see if another emitCopy could be our next + // move. Repeat until we find no match for the input immediately after + // what was consumed by the last emitCopy call. + // + // If we exit this loop normally then we need to call emitLiteral next, + // though we don't yet know how big the literal will be. We handle that + // by proceeding to the next iteration of the main loop. We also can + // exit this loop via goto if we get close to exhausting the input. + for { + // Invariant: we have a 4-byte match at s, and no need to emit any + // literal bytes prior to s. + + // Extend the 4-byte match as long as possible. + // + s += 4 + t := candidate.offset - e.cur + 4 + l := e.matchlen(s, t, src) + + // matchToken is flate's equivalent of Snappy's emitCopy. (length,offset) + dst.tokens[dst.n] = matchToken(uint32(l+4-baseMatchLength), uint32(s-t-baseMatchOffset)) + dst.n++ + s += l + nextEmit = s + if s >= sLimit { + t += l + // Index first pair after match end. + if int(t+4) < len(src) && t > 0 { + cv := load3232(src, t) + nextHash = hash(cv) + e.table[nextHash&tableMask] = tableEntryPrev{ + Prev: e.table[nextHash&tableMask].Cur, + Cur: tableEntry{offset: e.cur + t, val: cv}, + } + } + goto emitRemainder } - // Extend the match to be as long as possible. - match := matchLenSSE4(src[t:], src[s:], length) - // Return if short. - if match < 4 { - s += 1 + (s-lit)>>5 - continue + // We could immediately start working at s now, but to improve + // compression we first update the hash table at s-3 to s. If + // another emitCopy is not our next move, also calculate nextHash + // at s+1. At least on GOARCH=amd64, these three hash calculations + // are faster as one load64 call (with some shifts) instead of + // three load32 calls. + x := load6432(src, s-3) + prevHash := hash(uint32(x)) + e.table[prevHash&tableMask] = tableEntryPrev{ + Prev: e.table[prevHash&tableMask].Cur, + Cur: tableEntry{offset: e.cur + s - 3, val: uint32(x)}, } + x >>= 8 + prevHash = hash(uint32(x)) - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - emitLiteral(dst, src[lit:s]) + e.table[prevHash&tableMask] = tableEntryPrev{ + Prev: e.table[prevHash&tableMask].Cur, + Cur: tableEntry{offset: e.cur + s - 2, val: uint32(x)}, } + x >>= 8 + prevHash = hash(uint32(x)) - dst.tokens[dst.n] = matchToken(uint32(match-3), uint32(offset)) - s += match - dst.n++ - lit = s - continue - } + e.table[prevHash&tableMask] = tableEntryPrev{ + Prev: e.table[prevHash&tableMask].Cur, + Cur: tableEntry{offset: e.cur + s - 1, val: uint32(x)}, + } + x >>= 8 + currHash := hash(uint32(x)) + candidates := e.table[currHash&tableMask] + cv = uint32(x) + e.table[currHash&tableMask] = tableEntryPrev{ + Prev: candidates.Cur, + Cur: tableEntry{offset: s + e.cur, val: cv}, + } - // We found a match in the previous block. - tp := len(e.prev) + t - if tp < 0 || t > -5 || s-t >= maxOffset || b0 != e.prev[tp] || b1 != e.prev[tp+1] || b2 != e.prev[tp+2] || b3 != e.prev[tp+3] { - // Skip 1 byte for 32 consecutive missed. - s += 1 + ((s - lit) >> 5) - continue - } - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - emitLiteral(dst, src[lit:s]) - } - // Extend the match to be as long as possible. - s0 := s - s1 := s + maxMatchLength - if s1 > len(src) { - s1 = len(src) - } - s, tp = s+4, tp+4 - for s < s1 && src[s] == e.prev[tp] { - s++ - tp++ - if tp == len(e.prev) { - t = 0 - // continue in current buffer - for s < s1 && src[s] == src[t] { - s++ - t++ + // Check both candidates + candidate = candidates.Cur + if cv == candidate.val { + offset := s - (candidate.offset - e.cur) + if offset <= maxMatchOffset { + continue + } + } else { + // We only check if value mismatches. + // Offset will always be invalid in other cases. + candidate = candidates.Prev + if cv == candidate.val { + offset := s - (candidate.offset - e.cur) + if offset <= maxMatchOffset { + continue + } } - goto l } + cv = uint32(x >> 8) + nextHash = hash(cv) + s++ + break } - l: - // Emit the copied bytes. - // inlined: emitCopy(dst, s-t, s-s0) - if t < 0 { - t = tp - len(e.prev) - } - dst.tokens[dst.n] = matchToken(uint32(s-s0-3), uint32(s-t-minOffsetSize)) - dst.n++ - lit = s - continue - } - // Emit any final pending literal bytes and return. - if lit != len(src) { - emitLiteral(dst, src[lit:]) - } - e.cur += len(src) - // Store this block, if it was full length. - if len(src) == maxStoreBlockSize { - copy(e.block[:], src) - e.prev = e.block[:len(src)] - } else { - e.prev = nil +emitRemainder: + if int(nextEmit) < len(src) { + emitLiteral(dst, src[nextEmit:]) } + e.cur += int32(len(src)) + e.prev = e.prev[:len(src)] + copy(e.prev, src) } -*/ - -// EncodeL3 uses a similar algorithm to level 2, -// but will keep two matches per hash. -// Both hashes are checked if the first isn't ok, and the longest is selected. -func (e *snappySSE4) encodeL3(dst *tokens, src []byte) { - // Return early if src is short. - if len(src) <= 4 { - if len(src) != 0 { - emitLiteral(dst, src) + +// snappyL4 +type snappyL4 struct { + snappyL3 +} + +// Encode uses a similar algorithm to level 3, +// but will check up to two candidates if first isn't long enough. +func (e *snappyL4) Encode(dst *tokens, src []byte) { + const ( + inputMargin = 8 - 3 + minNonLiteralBlockSize = 1 + 1 + inputMargin + matchLenGood = 12 + ) + + // Protect against e.cur wraparound. + if e.cur > 1<<30 { + for i := range e.table[:] { + e.table[i] = tableEntryPrev{} } - e.prev = nil - e.cur += len(src) - return + e.snappyGen = snappyGen{cur: maxStoreBlockSize, prev: e.prev[:0]} } - // Ensure that e.cur doesn't wrap, mainly an issue on 32 bits. - if e.cur > 1<<30 { - e.cur = 0 + // This check isn't in the Snappy implementation, but there, the caller + // instead of the callee handles this case. + if len(src) < minNonLiteralBlockSize { + // We do not fill the token table. + // This will be picked up by caller. + dst.n = uint16(len(src)) + e.cur += maxStoreBlockSize + e.prev = e.prev[:0] + return } - // Iterate over the source bytes. - var ( - s int // The iterator position. - lit int // The start position of any pending literal bytes. - ) + // sLimit is when to stop looking for offset/length copies. The inputMargin + // lets us use a fast path for emitLiteral in the main loop, while we are + // looking for copies. + sLimit := int32(len(src) - inputMargin) + + // nextEmit is where in src the next emitLiteral should start from. + nextEmit := int32(0) + s := int32(0) + cv := load3232(src, s) + nextHash := hash(cv) + + for { + // Copied from the C++ snappy implementation: + // + // Heuristic match skipping: If 32 bytes are scanned with no matches + // found, start looking only at every other byte. If 32 more bytes are + // scanned (or skipped), look at every third byte, etc.. When a match + // is found, immediately go back to looking at every byte. This is a + // small loss (~5% performance, ~0.1% density) for compressible data + // due to more bookkeeping, but for non-compressible data (such as + // JPEG) it's a huge win since the compressor quickly "realizes" the + // data is incompressible and doesn't bother looking for matches + // everywhere. + // + // The "skip" variable keeps track of how many bytes there are since + // the last match; dividing it by 32 (ie. right-shifting by five) gives + // the number of bytes to move ahead for each iteration. + skip := int32(32) + + nextS := s + var candidate tableEntry + var candidateAlt tableEntry + for { + s = nextS + bytesBetweenHashLookups := skip >> 5 + nextS = s + bytesBetweenHashLookups + skip += bytesBetweenHashLookups + if nextS > sLimit { + goto emitRemainder + } + candidates := e.table[nextHash&tableMask] + now := load3232(src, nextS) + e.table[nextHash&tableMask] = tableEntryPrev{Prev: candidates.Cur, Cur: tableEntry{offset: s + e.cur, val: cv}} + nextHash = hash(now) + + // Check both candidates + candidate = candidates.Cur + if cv == candidate.val { + offset := s - (candidate.offset - e.cur) + if offset < maxMatchOffset { + offset = s - (candidates.Prev.offset - e.cur) + if cv == candidates.Prev.val && offset < maxMatchOffset { + candidateAlt = candidates.Prev + } + break + } + } else { + // We only check if value mismatches. + // Offset will always be invalid in other cases. + candidate = candidates.Prev + if cv == candidate.val { + offset := s - (candidate.offset - e.cur) + if offset < maxMatchOffset { + break + } + } + } + cv = now + } + + // A 4-byte match has been found. We'll later see if more than 4 bytes + // match. But, prior to the match, src[nextEmit:s] are unmatched. Emit + // them as literal bytes. + emitLiteral(dst, src[nextEmit:s]) + + // Call emitCopy, and then see if another emitCopy could be our next + // move. Repeat until we find no match for the input immediately after + // what was consumed by the last emitCopy call. + // + // If we exit this loop normally then we need to call emitLiteral next, + // though we don't yet know how big the literal will be. We handle that + // by proceeding to the next iteration of the main loop. We also can + // exit this loop via goto if we get close to exhausting the input. + for { + // Invariant: we have a 4-byte match at s, and no need to emit any + // literal bytes prior to s. + + // Extend the 4-byte match as long as possible. + // + s += 4 + t := candidate.offset - e.cur + 4 + l := e.matchlen(s, t, src) + // Try alternative candidate if match length < matchLenGood. + if l < matchLenGood-4 && candidateAlt.offset != 0 { + t2 := candidateAlt.offset - e.cur + 4 + l2 := e.matchlen(s, t2, src) + if l2 > l { + l = l2 + t = t2 + } + } + // matchToken is flate's equivalent of Snappy's emitCopy. (length,offset) + dst.tokens[dst.n] = matchToken(uint32(l+4-baseMatchLength), uint32(s-t-baseMatchOffset)) + dst.n++ + s += l + nextEmit = s + if s >= sLimit { + t += l + // Index first pair after match end. + if int(t+4) < len(src) && t > 0 { + cv := load3232(src, t) + nextHash = hash(cv) + e.table[nextHash&tableMask] = tableEntryPrev{ + Prev: e.table[nextHash&tableMask].Cur, + Cur: tableEntry{offset: e.cur + t, val: cv}, + } + } + goto emitRemainder + } - for s+3 < len(src) { - // Load potential matches from hash table. - h := uint32(src[s]) | uint32(src[s+1])<<8 | uint32(src[s+2])<<16 | uint32(src[s+3])<<24 - p := &e.table[(h*0x1e35a7bd)>>(32-tableBits)] - tmp := *p - p1 := int(tmp & 0xffffffff) // Closest match position - p2 := int(tmp >> 32) // Furthest match position - - // We need to to store values in [-1, inf) in table. To save - // some initialization time, (re)use the table's zero value - // and shift the values against this zero: add 1 on writes, - // subtract 1 on reads. - t1 := int(p1) - 1 - e.cur - - var l2 int - var t2 int - l1 := e.matchlen(s, t1, src) - // If fist match was ok, don't do the second. - if l1 < 16 { - t2 = int(p2) - 1 - e.cur - l2 = e.matchlen(s, t2, src) - - // If both are short, continue - if l1 < 4 && l2 < 4 { - // Update hash table - *p = int64(s+1+e.cur) | (int64(p1) << 32) - // Skip 1 byte for 32 consecutive missed. - s += 1 + ((s - lit) >> 5) - continue + // We could immediately start working at s now, but to improve + // compression we first update the hash table at s-3 to s. If + // another emitCopy is not our next move, also calculate nextHash + // at s+1. At least on GOARCH=amd64, these three hash calculations + // are faster as one load64 call (with some shifts) instead of + // three load32 calls. + x := load6432(src, s-3) + prevHash := hash(uint32(x)) + e.table[prevHash&tableMask] = tableEntryPrev{ + Prev: e.table[prevHash&tableMask].Cur, + Cur: tableEntry{offset: e.cur + s - 3, val: uint32(x)}, } - } + x >>= 8 + prevHash = hash(uint32(x)) - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - emitLiteral(dst, src[lit:s]) - } - // Update hash table - *p = int64(s+1+e.cur) | (int64(p1) << 32) - - // Store the longest match l1 will be closest, so we prefer that if equal length - if l1 >= l2 { - dst.tokens[dst.n] = matchToken(uint32(l1-3), uint32(s-t1-minOffsetSize)) - s += l1 - } else { - dst.tokens[dst.n] = matchToken(uint32(l2-3), uint32(s-t2-minOffsetSize)) - s += l2 + e.table[prevHash&tableMask] = tableEntryPrev{ + Prev: e.table[prevHash&tableMask].Cur, + Cur: tableEntry{offset: e.cur + s - 2, val: uint32(x)}, + } + x >>= 8 + prevHash = hash(uint32(x)) + + e.table[prevHash&tableMask] = tableEntryPrev{ + Prev: e.table[prevHash&tableMask].Cur, + Cur: tableEntry{offset: e.cur + s - 1, val: uint32(x)}, + } + x >>= 8 + currHash := hash(uint32(x)) + candidates := e.table[currHash&tableMask] + cv = uint32(x) + e.table[currHash&tableMask] = tableEntryPrev{ + Prev: candidates.Cur, + Cur: tableEntry{offset: s + e.cur, val: cv}, + } + + // Check both candidates + candidate = candidates.Cur + candidateAlt = tableEntry{} + if cv == candidate.val { + offset := s - (candidate.offset - e.cur) + if offset <= maxMatchOffset { + offset = s - (candidates.Prev.offset - e.cur) + if cv == candidates.Prev.val && offset <= maxMatchOffset { + candidateAlt = candidates.Prev + } + continue + } + } else { + // We only check if value mismatches. + // Offset will always be invalid in other cases. + candidate = candidates.Prev + if cv == candidate.val { + offset := s - (candidate.offset - e.cur) + if offset <= maxMatchOffset { + continue + } + } + } + cv = uint32(x >> 8) + nextHash = hash(cv) + s++ + break } - dst.n++ - lit = s } - // Emit any final pending literal bytes and return. - if lit != len(src) { - emitLiteral(dst, src[lit:]) - } - e.cur += len(src) - // Store this block, if it was full length. - if len(src) == maxStoreBlockSize { - copy(e.block[:], src) - e.prev = e.block[:len(src)] - } else { - e.prev = nil +emitRemainder: + if int(nextEmit) < len(src) { + emitLiteral(dst, src[nextEmit:]) } + e.cur += int32(len(src)) + e.prev = e.prev[:len(src)] + copy(e.prev, src) } -func (e *snappySSE4) matchlen(s, t int, src []byte) int { - // If t is invalid or src[s:s+4] differs from src[t:t+4], accumulate a literal byte. - offset := uint(s - t - 1) +func (e *snappyGen) matchlen(s, t int32, src []byte) int32 { + s1 := int(s) + maxMatchLength - 4 + if s1 > len(src) { + s1 = len(src) + } // If we are inside the current block if t >= 0 { - if offset >= (maxOffset - 1) { - return 0 - } - length := len(src) - s - if length > maxMatchLength { - length = maxMatchLength - } + b := src[t:] + a := src[s:s1] + b = b[:len(a)] // Extend the match to be as long as possible. - return matchLenSSE4(src[t:], src[s:], length) + for i := range a { + if a[i] != b[i] { + return int32(i) + } + } + return int32(len(a)) } // We found a match in the previous block. - tp := len(e.prev) + t - if tp < 0 || offset >= (maxOffset-1) || t > -5 || - src[s] != e.prev[tp] || src[s+1] != e.prev[tp+1] || - src[s+2] != e.prev[tp+2] || src[s+3] != e.prev[tp+3] { + tp := int32(len(e.prev)) + t + if tp < 0 { return 0 } // Extend the match to be as long as possible. - s0 := s - s1 := s + maxMatchLength - if s1 > len(src) { - s1 = len(src) + a := src[s:s1] + b := e.prev[tp:] + if len(b) > len(a) { + b = b[:len(a)] } - s, tp = s+4, tp+4 - for s < s1 && src[s] == e.prev[tp] { - s++ - tp++ - if tp == len(e.prev) { - t = 0 - // continue in current buffer - for s < s1 && src[s] == src[t] { - s++ - t++ - } - return s - s0 + a = a[:len(b)] + for i := range b { + if a[i] != b[i] { + return int32(i) } } - return s - s0 + + // If we reached our limit, we matched everything we are + // allowed to in the previous block and we return. + n := int32(len(b)) + if int(s+n) == s1 { + return n + } + + // Continue looking for more matches in the current block. + a = src[s+n : s1] + b = src[:len(a)] + for i := range a { + if a[i] != b[i] { + return int32(i) + n + } + } + return int32(len(a)) + n +} + +// Reset the encoding table. +func (e *snappyGen) Reset() { + e.prev = e.prev[:0] + e.cur += maxMatchOffset } diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.dyn.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.dyn.expect deleted file mode 100644 index c08165143f2c570013c4916cbac5addfe9622a55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 ZcmaEJppgLx8W#LrDZUcKq5v#l0|1+Y23i0B diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.dyn.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.dyn.expect-noinput deleted file mode 100644 index c08165143f2c570013c4916cbac5addfe9622a55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 ZcmaEJppgLx8W#LrDZUcKq5v#l0|1+Y23i0B diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.golden b/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.golden deleted file mode 100644 index db422ca3983d12e71e31979d7b3dddd080dcbca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8204 zcmeIuK@9*P3YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ t0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFwg)F00961 diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.wb.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.wb.expect deleted file mode 100644 index c08165143f2c570013c4916cbac5addfe9622a55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 ZcmaEJppgLx8W#LrDZUcKq5v#l0|1+Y23i0B diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.wb.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-null-max.wb.expect-noinput deleted file mode 100644 index c08165143f2c570013c4916cbac5addfe9622a55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 ZcmaEJppgLx8W#LrDZUcKq5v#l0|1+Y23i0B diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.dyn.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.dyn.expect deleted file mode 100644 index e4396ac6fe5e34609ccb7ea0bc359e6adb48c7f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1696 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 EAEW(DiU0rr diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.in b/vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.in deleted file mode 100644 index efaed43431a..00000000000 --- a/vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.in +++ /dev/null @@ -1 +0,0 @@ -3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180 \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.wb.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-pi.wb.expect deleted file mode 100644 index e4396ac6fe5e34609ccb7ea0bc359e6adb48c7f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1696 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 Yxt^P)DKm4sCRYuzNKydW#Fu~kAGX;UBLDyZ diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.dyn.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.dyn.expect-noinput deleted file mode 100644 index 0c24742fde2487e3a454ec3364f15e541693c37c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1054 zcmV+(1mXJxzzaAU2mk=!nayIXbMy_f)7H$mL&SF;F?3`%k8@)&&%@Oe(UOiioadDG zS>BI}35WJ&PF@*1*&LbA=aF5pFj3x*HIFRrKcto>d1~bp8)vlgPG~al`sLh_uD4>f zwcquqQs)bz`O{dU_?0E5ZyfOj3vL$R|;Io1R(-}eKi+pE+?-hv`IeFsDFRE4SU5j~y=5(3C6?qYw^br64(dswwJMG1iwh9bz5{6%{CK{d z?OTrws1RG0;tdgAc^^}S;a;h-Le*Jl$;@?4WVbi2?}j$(yZ8P0lo@^JyA?I@?GEt7oU6m&;AhmaN!WN2o4Ue&a8T%J8g~M#1p4zh)_hxG4z2`Ogny za;mxRW4Md@6TRsPIrIrmbY`0*@-5uMh;C)*<4Qh|=G6i5GP){GL)z@9EkaXFMahfN zv?c%P&)d;?j&h!ypwqm%P^YHL3jM3}%*^0B)TTYwcr0m+>#+B{By^cDULDE6Dg;&& zO=u{r#qY9CX2q~>M2)v~oJjxXwYfA4W6UEykUq9QGg?N01rigUU44BE!qnW&8XUe) zez=s$?Lpl~RS(YSo`<)!77bHS>Gu?tEqHX60yc4tb%nr56)BI?!K^R=U-@BSOT=w5 zsVIvXfM*tHgqR0EakjC|{oW&au|@y5MGR8cGC-Yn06%^E0PC$!Cb-Z0wr}jN>)ms9 zL;@;_wIK!J>p%w{0>eRLG6F9RY`9EcFXkV~=#m(_eoQp~r+?KjZg}QSSL~iFyscF_ z+e_{^90j}~rTuecm=4dkoD6jMc=)XI@ePwzb~aU<_(Cb{iZR=;j^CkY@49GGUfJU< zh|_pVqS;)85%YqWL`@t%i6ZSgMZJLK5AGbA<2Z~&Y6y(OZ<17W7CzqwPW|%tkU??k z4*_!bQ%1vsp<0>Q04?4|yQkkrm{&#|cY?4524U<_tm@Hqt*?a07|`vlpP7J3xS#y+ zPf2l=uqk^9aS%w&GBx^|J3nR zNecGe6yILAWA?u!e(Cl<@PcA2?CSjWxPaGt_JWfJ*C8~T`^Pp$vI5uS*J~uVqo@>8 Yxt^P)DKm4sCRYuzNKydW#Fu~kAGX;UBLDyZ diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.golden b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.golden deleted file mode 100644 index 09dc798ee37df82176b8b7c9998c88a14207c1ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1005 zcmVlcQ}x5eHD>U|iC=ROD8-~ViL-puE1 zjRYA__oQ{&>YEB=3*aLuz4zyXJp13Xu1};#Rhix|mTnwF zOo!rp*PZhF=TqnOy;6>9pEFaaeUqI8B!YL)2W zP7ZdtNvU6;rei#QejpQ1yJnKOE~NTM%dWXRuhSpl)r~@J@cfJn0Ny~Wi$|AEsLzhu zri&m6gnDM>m?;94<~TB71LK+=ROn-XNSxENOU6sujQmH^hn%vbF>Y9-Bf>bg4ep_N_banGD$o@)BlG0~`IFf*!A z7ZZY+$P{3oO)_oT873jzel8_va>@^q&Gy#Imx?o3b8wLzzbGT44Do}*$X0h~ljl$J4Xnb zbD&&|U+WJ#!b4}YW@ms{4#Dg|)FPD1`RJ15X*j-TWXe#-24_NUqwu$E^5|c&ujkvl zceVJ-2*h=M!1)}1Jc%#TSUTePk+ypzC+V()i{5ms{n@u^D(o_E@REe_Kn#k!Ic_d< z)NYD&D%@ZnqX*t~i*(5TV|DgDW2`fY!|?bmYqXwpi(E6b%BbX-wveIk57S|?#u}7- zL{;=f|DL5<#-Qjb!HsV;5xKrj*@u^N&pjiq)f!%|U1|gQA`KAPM`;y5?oy)&(mYZ0 z_?_gKiO6R;)m}AtC+IwYu6c3Nlk}=l5*$k#%8*z(mO5DYDWih#pN0k_;dS~5vECO-S0Dj5 diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.in b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.in deleted file mode 100644 index ce038ebb5bd911cd054b86c044fd26e6003225e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1000 zcmV&K%;#;51Q|(x zM;}NPu;`xhFDh+BMJ6ccYFsSUg>Bfi<~bp&jg-~DiA=I+_Co^FF# z)zpAln0JXoILWUtGMXS8Mm=Y4*K(dtAy3BO)O!Str33Z_n`_)ElXocnv|`#I=O3$U zQA0T|pppS>bw2bp{X;JIq;=Zrn+jwL;3Fx$_veE=``@#!Pozgxncgp!ZX82QhvIzM zUrc=HkOSK=mDVB*N4QOEy(AHOADFT(|I5J=Zkm4@Lua&RXMk7^!R$cPB9zMc=#u1VIKF3O%23A!XF_hH@V9L8=wGp~=i9q?wfM^j z#C3ka`5b>di7(PvI^y_|wtFNe>8^x}-gK<}*|%vb>@sigl7#U<42rxtZZ31wZi;j& z++ZK02i|pybjbc=b@n}DtTTzj@c1ojw4QW}Tr;%FsN|WpkfHAn(_ym48kBrQRrE#w zo~2sGpy(>Wjc+s&xxP->hnI8DJtMBw8eXnlY6JNq4G`H!X%#>2QlkjcJW=%co#dE_ z$Y(j#UNv|p=sbX~d2!N{^r}%397`MJZWV9jyHT4(pZUa$D*GDWRnth5CjlnHYgKKc z`-F?ho+!fa8YJwSuDxLC6*cZcq%&Lk54QIKrUFdLkXSmFLFdZ}jN64xsEPBnj{S98 zPwn16>o}vnuyg#lRQF6UXD&FRR2aGlzw$ZN{-r_2W@fs9?`P!ZJPgXD3VE|vi;8ua W7(y>8qk`|Bh6W?yb@~Xg-WN)Vp#LfW diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.wb.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.wb.expect deleted file mode 100644 index 09dc798ee37df82176b8b7c9998c88a14207c1ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1005 zcmVlcQ}x5eHD>U|iC=ROD8-~ViL-puE1 zjRYA__oQ{&>YEB=3*aLuz4zyXJp13Xu1};#Rhix|mTnwF zOo!rp*PZhF=TqnOy;6>9pEFaaeUqI8B!YL)2W zP7ZdtNvU6;rei#QejpQ1yJnKOE~NTM%dWXRuhSpl)r~@J@cfJn0Ny~Wi$|AEsLzhu zri&m6gnDM>m?;94<~TB71LK+=ROn-XNSxENOU6sujQmH^hn%vbF>Y9-Bf>bg4ep_N_banGD$o@)BlG0~`IFf*!A z7ZZY+$P{3oO)_oT873jzel8_va>@^q&Gy#Imx?o3b8wLzzbGT44Do}*$X0h~ljl$J4Xnb zbD&&|U+WJ#!b4}YW@ms{4#Dg|)FPD1`RJ15X*j-TWXe#-24_NUqwu$E^5|c&ujkvl zceVJ-2*h=M!1)}1Jc%#TSUTePk+ypzC+V()i{5ms{n@u^D(o_E@REe_Kn#k!Ic_d< z)NYD&D%@ZnqX*t~i*(5TV|DgDW2`fY!|?bmYqXwpi(E6b%BbX-wveIk57S|?#u}7- zL{;=f|DL5<#-Qjb!HsV;5xKrj*@u^N&pjiq)f!%|U1|gQA`KAPM`;y5?oy)&(mYZ0 z_?_gKiO6R;)m}AtC+IwYu6c3Nlk}=l5*$k#%8*z(mO5DYDWih#pN0k_;dS~5vECO-S0Dj5 diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.wb.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-1k.wb.expect-noinput deleted file mode 100644 index 0c24742fde2487e3a454ec3364f15e541693c37c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1054 zcmV+(1mXJxzzaAU2mk=!nayIXbMy_f)7H$mL&SF;F?3`%k8@)&&%@Oe(UOiioadDG zS>BI}35WJ&PF@*1*&LbA=aF5pFj3x*HIFRrKcto>d1~bp8)vlgPG~al`sLh_uD4>f zwcquqQs)bz`O{dU_?0E5ZyfOj3vL$R|;Io1R(-}eKi+pE+?-hv`IeFsDFRE4SU5j~y=5(3C6?qYw^br64(dswwJMG1iwh9bz5{6%{CK{d z?OTrws1RG0;tdgAc^^}S;a;h-Le*Jl$;@?4WVbi2?}j$(yZ8P0lo@^JyA?I@?GEt7oU6m&;AhmaN!WN2o4Ue&a8T%J8g~M#1p4zh)_hxG4z2`Ogny za;mxRW4Md@6TRsPIrIrmbY`0*@-5uMh;C)*<4Qh|=G6i5GP){GL)z@9EkaXFMahfN zv?c%P&)d;?j&h!ypwqm%P^YHL3jM3}%*^0B)TTYwcr0m+>#+B{By^cDULDE6Dg;&& zO=u{r#qY9CX2q~>M2)v~oJjxXwYfA4W6UEykUq9QGg?N01rigUU44BE!qnW&8XUe) zez=s$?Lpl~RS(YSo`<)!77bHS>Gu?tEqHX60yc4tb%nr56)BI?!K^R=U-@BSOT=w5 zsVIvXfM*tHgqR0EakjC|{oW&au|@y5MGR8cGC-Yn06%^E0PC$!Cb-Z0wr}jN>)ms9 zL;@;_wIK!J>p%w{0>eRLG6F9RY`9EcFXkV~=#m(_eoQp~r+?KjZg}QSSL~iFyscF_ z+e_{^90j}~rTuecm=4dkoD6jMc=)XI@ePwzb~aU<_(Cb{iZR=;j^CkY@49GGUfJU< zh|_pVqS;)85%YqWL`@t%i6ZSgMZJLK5AGbA<2Z~&Y6y(OZ<17W7CzqwPW|%tkU??k z4*_!bQ%1vsp<0>Q04?4|yQkkrm{&#|cY?4524U<_tm@Hqt*?a07|`vlpP7J3xS#y+ zPf2l=uqk^9aS%w&GBx^|J3nR zNecGe6yILAWA?u!e(Cl<@PcA2?CSjWxPaGt_JWfJ*C8~T`^Pp$vI5uS*J~uVqo@>8 Yxt^P)DKm4sCRYuzNKydW#Fu~kAGX;UBLDyZ diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.dyn.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.dyn.expect deleted file mode 100644 index 2d6527934e98300d744c7558a025250f67e0f1c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmVoXRI~IhW&XxGJNu5- o$p8QV diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.in b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.in deleted file mode 100644 index fb5b1be6198..00000000000 --- a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.in +++ /dev/null @@ -1,4 +0,0 @@ -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ø‹–vH -…”%€¯Âþè ë†É·ÅÞê}‹ç>ÚßÿlsÞÌçmIGH°èžò1YÞ4´[åà 0ˆ[|]o#© -¼-#¾Ùíul™ßýpfæîÙ±žnƒYÕÔ€Y˜w‰C8ɯ02š F=gn×ržN!OÆàÔ{¥ö›kÜ*“w(ý´bÚ ç«kQC9/ ’lu>ô5ýC.÷¤uÚê› diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.wb.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.wb.expect deleted file mode 100644 index 881e59c9ab9bb356c5f1b8f2e188818bd42dbcf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmV;r07d^wq#oe<(LJrqgR6ClYQy?N|9W32ycTaex&7!pwpX+&C|&*fKV2Rd8oFPOxbQ)>6c^slqt_a&vbUd`qL0Dk3ZG5`Po diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.wb.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-limit.wb.expect-noinput deleted file mode 100644 index 881e59c9ab9bb356c5f1b8f2e188818bd42dbcf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmV;r07d^wq#oe<(LJrqgR6ClYQy?N|9W32ycTaex&7!pwpX+&C|&*fKV2Rd8oFPOxbQ)>6c^slqt_a&vbUd`qL0Dk3ZG5`Po diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-max.golden b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-max.golden deleted file mode 100644 index 47d53c89c077d0e62aeaf818154f60921960de5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65540 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

EX1}=qzy8wF0O3Y(SaC~(L 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 diff --git a/vendor/github.com/klauspost/compress/gzip/testdata/test.json b/vendor/github.com/klauspost/compress/gzip/testdata/test.json deleted file mode 100644 index 3b7b678b5e4..00000000000 --- a/vendor/github.com/klauspost/compress/gzip/testdata/test.json +++ /dev/null @@ -1,5902 +0,0 @@ -[ - { - "_id": "543fa821aeca0fed7f182f01", - "index": 0, - "guid": "3526d142-6d2b-4266-9855-e6ec1589a265", - "isActive": false, - "balance": "$2,156.72", - "picture": "http://placehold.it/32x32", - "age": 29, - "eyeColor": "brown", - "name": { - "first": "Rosella", - "last": "Hale" - }, - "company": "SKINSERVE", - "email": "rosella.hale@skinserve.net", - "phone": "+1 (920) 528-2959", - "address": "324 Imlay Street, Sehili, Guam, 3022", - "about": "Est consectetur ut incididunt commodo elit cillum incididunt consectetur id officia pariatur pariatur cillum. Ipsum non incididunt tempor non. Cillum aliquip aliquip non minim ipsum voluptate incididunt adipisicing aute pariatur laborum minim deserunt laborum. Do do consequat enim adipisicing dolor incididunt reprehenderit sint. Veniam dolor consequat sint ullamco id enim occaecat.\r\n", - "registered": "Wednesday, August 27, 2014 9:12 PM", - "latitude": 43.44586, - "longitude": -65.480986, - "tags": [ - "Lorem", - "ex", - "magna", - "aliqua", - "id", - "sint", - "elit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Etta Stanton" - }, - { - "id": 1, - "name": "Cora Velazquez" - }, - { - "id": 2, - "name": "Deann Guy" - } - ], - "greeting": "Hello, Rosella! You have 6 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8218066e8499ef38bcc", - "index": 1, - "guid": "991a35b5-91db-49e8-8a1e-13688b5ed88d", - "isActive": true, - "balance": "$1,762.71", - "picture": "http://placehold.it/32x32", - "age": 28, - "eyeColor": "green", - "name": { - "first": "Rose", - "last": "Lynn" - }, - "company": "NITRACYR", - "email": "rose.lynn@nitracyr.com", - "phone": "+1 (912) 564-2131", - "address": "485 Pulaski Street, Logan, Mississippi, 7453", - "about": "Minim proident enim eiusmod reprehenderit excepteur laboris. Adipisicing culpa cupidatat eiusmod exercitation reprehenderit anim. Nostrud mollit reprehenderit reprehenderit id magna et id esse cillum et proident. Incididunt eu nisi excepteur est est irure voluptate id nulla. Laboris consectetur aliqua cupidatat ex elit proident officia ex quis. Minim officia eu eiusmod velit. Ullamco dolor non quis aliqua cupidatat amet laborum laborum ad ex proident qui eiusmod ea.\r\n", - "registered": "Sunday, October 5, 2014 10:36 PM", - "latitude": -3.548698, - "longitude": 79.421107, - "tags": [ - "exercitation", - "adipisicing", - "aliqua", - "do", - "id", - "veniam", - "est" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Ada Little" - }, - { - "id": 1, - "name": "Lopez Osborne" - }, - { - "id": 2, - "name": "Tami Leach" - } - ], - "greeting": "Hello, Rose! You have 5 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821255974bb9f89e5ea", - "index": 2, - "guid": "e5727238-63a4-4e1e-88cc-67300826259c", - "isActive": false, - "balance": "$2,131.97", - "picture": "http://placehold.it/32x32", - "age": 21, - "eyeColor": "green", - "name": { - "first": "Gloria", - "last": "Richards" - }, - "company": "SPHERIX", - "email": "gloria.richards@spherix.biz", - "phone": "+1 (884) 536-3434", - "address": "493 Judge Street, Cetronia, Rhode Island, 4439", - "about": "Lorem cupidatat ea et laboris tempor enim non. Sit consequat culpa et qui aute cillum ut ullamco. Nulla duis sit Lorem incididunt mollit nostrud dolor veniam ullamco. Sunt magna id velit in laborum nisi labore. Id deserunt labore dolore dolor aliqua culpa est id duis.\r\n", - "registered": "Saturday, March 29, 2014 8:18 AM", - "latitude": 60.328012, - "longitude": 126.657357, - "tags": [ - "dolore", - "laboris", - "proident", - "cillum", - "in", - "fugiat", - "incididunt" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Bowen Cote" - }, - { - "id": 1, - "name": "Olga Gardner" - }, - { - "id": 2, - "name": "Evangeline Howard" - } - ], - "greeting": "Hello, Gloria! You have 9 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa8212b7e1e8201a38702", - "index": 3, - "guid": "bab757bd-2ebd-4c2c-86b7-0d4d8b059d35", - "isActive": true, - "balance": "$2,509.81", - "picture": "http://placehold.it/32x32", - "age": 39, - "eyeColor": "green", - "name": { - "first": "Casey", - "last": "Hayes" - }, - "company": "SURELOGIC", - "email": "casey.hayes@surelogic.co.uk", - "phone": "+1 (993) 573-3937", - "address": "330 Tapscott Avenue, Eastvale, New Mexico, 928", - "about": "Eu elit sint sunt labore dolor cillum esse ad voluptate commodo. Dolor aliqua do dolore ex tempor sint consequat culpa et consectetur nisi voluptate reprehenderit. Dolor velit eu cillum tempor anim anim. Nostrud laboris eiusmod elit enim duis in consectetur esse anim qui. Et eiusmod culpa nulla anim et officia pariatur reprehenderit eiusmod veniam. Ullamco nisi ea incididunt velit. Ullamco cillum mollit ea aliqua ea eu et enim.\r\n", - "registered": "Sunday, September 14, 2014 8:35 AM", - "latitude": -43.494604, - "longitude": 95.217518, - "tags": [ - "officia", - "sunt", - "dolore", - "qui", - "elit", - "irure", - "cillum" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Serrano Wise" - }, - { - "id": 1, - "name": "Lorene Macias" - }, - { - "id": 2, - "name": "Kristen Lott" - } - ], - "greeting": "Hello, Casey! You have 7 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821bfefa43403d5d054", - "index": 4, - "guid": "675d1598-8c45-4d67-a4df-d38a270de371", - "isActive": false, - "balance": "$3,887.07", - "picture": "http://placehold.it/32x32", - "age": 35, - "eyeColor": "blue", - "name": { - "first": "Price", - "last": "Oconnor" - }, - "company": "ANOCHA", - "email": "price.oconnor@anocha.tv", - "phone": "+1 (855) 410-3197", - "address": "447 Stockholm Street, Templeton, Wisconsin, 2216", - "about": "Cillum veniam esse duis tempor incididunt do dolor officia elit eu. Excepteur velit reprehenderit minim Lorem commodo est. Duis Lorem nisi elit aliquip est deserunt fugiat ut. Nisi tempor ex est pariatur laborum eiusmod anim eu nulla. Nisi enim id aute id ex id nostrud.\r\n", - "registered": "Wednesday, May 14, 2014 5:19 PM", - "latitude": 26.083477, - "longitude": 122.61114, - "tags": [ - "in", - "ad", - "aliqua", - "minim", - "nisi", - "cupidatat", - "id" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Montgomery Mccray" - }, - { - "id": 1, - "name": "Lucia Ferrell" - }, - { - "id": 2, - "name": "Glover Brock" - } - ], - "greeting": "Hello, Price! You have 5 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821a699260d8ed4439a", - "index": 5, - "guid": "5e271270-fef3-48a7-b389-346251b46abc", - "isActive": false, - "balance": "$1,046.50", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "blue", - "name": { - "first": "Rita", - "last": "Huber" - }, - "company": "VURBO", - "email": "rita.huber@vurbo.name", - "phone": "+1 (803) 589-3948", - "address": "838 River Street, Gadsden, American Samoa, 2602", - "about": "Culpa quis qui exercitation velit officia eu id qui consequat qui. Ea fugiat quis fugiat proident velit. Velit et reprehenderit quis irure adipisicing duis dolor id cupidatat ea aliqua elit.\r\n", - "registered": "Friday, April 11, 2014 11:56 AM", - "latitude": 30.717665, - "longitude": -29.687902, - "tags": [ - "veniam", - "ex", - "deserunt", - "cillum", - "sint", - "eu", - "proident" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Oliver Terrell" - }, - { - "id": 1, - "name": "Lora Shepherd" - }, - { - "id": 2, - "name": "Guzman Holman" - } - ], - "greeting": "Hello, Rita! You have 7 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821b888230e87ce950e", - "index": 6, - "guid": "7e4efd9a-4923-42ae-8924-d6d5fae80ec0", - "isActive": false, - "balance": "$1,205.59", - "picture": "http://placehold.it/32x32", - "age": 30, - "eyeColor": "green", - "name": { - "first": "Peterson", - "last": "Oliver" - }, - "company": "ZENTIX", - "email": "peterson.oliver@zentix.me", - "phone": "+1 (924) 564-2815", - "address": "596 Middleton Street, Walker, Louisiana, 3358", - "about": "Exercitation cillum sit exercitation voluptate duis nostrud incididunt cillum sint minim labore tempor minim ad. Esse ad id pariatur cillum id exercitation ullamco elit. Quis nisi excepteur mollit consectetur id et. Ea voluptate nulla duis minim exercitation aliqua aute nisi enim enim excepteur dolor ad non. Aliquip elit eu enim officia minim enim Lorem tempor. Cillum anim aute sunt cupidatat deserunt consequat.\r\n", - "registered": "Friday, March 28, 2014 2:28 PM", - "latitude": 45.092029, - "longitude": 56.730029, - "tags": [ - "in", - "voluptate", - "sit", - "sit", - "Lorem", - "reprehenderit", - "esse" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Wiley Henry" - }, - { - "id": 1, - "name": "Downs Rowland" - }, - { - "id": 2, - "name": "White Guerra" - } - ], - "greeting": "Hello, Peterson! You have 8 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8210f8589ab846b3d88", - "index": 7, - "guid": "afc25e30-7e70-4a87-bdd3-519e1837969a", - "isActive": false, - "balance": "$3,928.85", - "picture": "http://placehold.it/32x32", - "age": 39, - "eyeColor": "green", - "name": { - "first": "Shauna", - "last": "Morse" - }, - "company": "CENTICE", - "email": "shauna.morse@centice.us", - "phone": "+1 (926) 517-3679", - "address": "752 Dunne Place, Ebro, Kansas, 3215", - "about": "Cupidatat incididunt sit duis tempor labore dolore aute qui magna in. Consequat aute ut veniam laborum aliqua Lorem esse. Cillum in qui sint excepteur eiusmod eiusmod eu anim adipisicing et.\r\n", - "registered": "Saturday, September 6, 2014 2:32 PM", - "latitude": 36.341849, - "longitude": 108.378341, - "tags": [ - "in", - "nulla", - "labore", - "qui", - "id", - "enim", - "fugiat" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Lizzie Carson" - }, - { - "id": 1, - "name": "Eliza Hall" - }, - { - "id": 2, - "name": "Baxter Burton" - } - ], - "greeting": "Hello, Shauna! You have 6 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8213c997bd81d4a7fa5", - "index": 8, - "guid": "1337ad27-17e3-459f-90a3-a43b54b88184", - "isActive": true, - "balance": "$2,096.67", - "picture": "http://placehold.it/32x32", - "age": 24, - "eyeColor": "blue", - "name": { - "first": "Glenn", - "last": "Brooks" - }, - "company": "MANGLO", - "email": "glenn.brooks@manglo.ca", - "phone": "+1 (895) 595-2669", - "address": "605 McDonald Avenue, Nicholson, Indiana, 2302", - "about": "Deserunt incididunt ullamco dolore nostrud cupidatat sit consequat adipisicing incididunt sunt. Laboris fugiat et laboris est eu laborum culpa. Labore ad aliquip ut enim aute nulla quis cillum dolor aliqua. Culpa labore occaecat et sunt qui. Velit consequat ad proident non voluptate non mollit eu et cillum tempor. Velit quis deserunt Lorem cupidatat enim ut.\r\n", - "registered": "Friday, March 21, 2014 9:06 AM", - "latitude": -40.51084, - "longitude": -137.771438, - "tags": [ - "enim", - "laboris", - "culpa", - "do", - "nulla", - "anim", - "cillum" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Shelly Cardenas" - }, - { - "id": 1, - "name": "Kristine Mendoza" - }, - { - "id": 2, - "name": "Hall Hendrix" - } - ], - "greeting": "Hello, Glenn! You have 10 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821054bcf388259b272", - "index": 9, - "guid": "cd9601fc-7ca7-4d54-830b-145ff5c5c147", - "isActive": true, - "balance": "$1,816.14", - "picture": "http://placehold.it/32x32", - "age": 33, - "eyeColor": "green", - "name": { - "first": "Maribel", - "last": "Small" - }, - "company": "FUTURITY", - "email": "maribel.small@futurity.org", - "phone": "+1 (825) 532-2134", - "address": "424 Rockaway Parkway, Vale, Alaska, 1834", - "about": "Aliqua irure culpa exercitation nostrud qui exercitation deserunt ullamco culpa aliquip irure. Proident officia in consequat laborum ex adipisicing exercitation proident anim cupidatat excepteur anim. Labore irure pariatur laboris reprehenderit.\r\n", - "registered": "Tuesday, July 29, 2014 9:59 PM", - "latitude": 53.843872, - "longitude": 85.292318, - "tags": [ - "dolore", - "laborum", - "aute", - "aliqua", - "nostrud", - "commodo", - "commodo" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Anthony Bray" - }, - { - "id": 1, - "name": "Vicki Kelly" - }, - { - "id": 2, - "name": "Baird Wagner" - } - ], - "greeting": "Hello, Maribel! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821f14efb6f7f1210b9", - "index": 10, - "guid": "c9400d51-ea8d-4748-9a10-fa0e3a037b23", - "isActive": false, - "balance": "$1,395.15", - "picture": "http://placehold.it/32x32", - "age": 31, - "eyeColor": "green", - "name": { - "first": "Kendra", - "last": "Knapp" - }, - "company": "UNCORP", - "email": "kendra.knapp@uncorp.biz", - "phone": "+1 (830) 509-3054", - "address": "765 Cameron Court, Ferney, Florida, 1963", - "about": "Duis irure ea qui ut velit nostrud. Lorem laborum excepteur do qui ad sit culpa. Labore mollit mollit deserunt sint aute officia qui laboris dolor aliqua magna in officia.\r\n", - "registered": "Sunday, April 27, 2014 11:55 AM", - "latitude": 84.200593, - "longitude": -155.377179, - "tags": [ - "laborum", - "labore", - "aliquip", - "ex", - "voluptate", - "dolor", - "Lorem" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Marva Cash" - }, - { - "id": 1, - "name": "Aimee Velez" - }, - { - "id": 2, - "name": "Eaton Delgado" - } - ], - "greeting": "Hello, Kendra! You have 7 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa82119105322ba52b407", - "index": 11, - "guid": "b6862230-95da-43d5-97ba-13ed4bcc0744", - "isActive": false, - "balance": "$1,442.51", - "picture": "http://placehold.it/32x32", - "age": 21, - "eyeColor": "brown", - "name": { - "first": "Katrina", - "last": "Ferguson" - }, - "company": "MANTRIX", - "email": "katrina.ferguson@mantrix.io", - "phone": "+1 (938) 541-3037", - "address": "447 Putnam Avenue, Collins, Georgia, 8421", - "about": "Minim aliquip Lorem fugiat et fugiat esse aliqua consectetur non officia esse. Fugiat irure eu ut irure cillum mollit nisi consequat do cillum. Est exercitation deserunt proident ex cupidatat. Elit aliquip pariatur ad minim adipisicing qui. Quis enim laborum incididunt eiusmod deserunt cillum amet enim. Proident et do voluptate esse laboris nisi. Duis cupidatat fugiat adipisicing aute velit et ullamco anim velit velit et excepteur laboris.\r\n", - "registered": "Tuesday, February 4, 2014 5:01 PM", - "latitude": 43.287084, - "longitude": 133.518964, - "tags": [ - "magna", - "officia", - "reprehenderit", - "excepteur", - "cillum", - "veniam", - "officia" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Tameka Mccullough" - }, - { - "id": 1, - "name": "Madden Vincent" - }, - { - "id": 2, - "name": "Jewel Mccarthy" - } - ], - "greeting": "Hello, Katrina! You have 7 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821ee55902ac207b17a", - "index": 12, - "guid": "50161207-4477-47b9-8aa7-a845c3c2e96f", - "isActive": false, - "balance": "$1,937.64", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "brown", - "name": { - "first": "Gilliam", - "last": "Flowers" - }, - "company": "INTERLOO", - "email": "gilliam.flowers@interloo.net", - "phone": "+1 (930) 564-2474", - "address": "986 Elton Street, Bagtown, Alabama, 9115", - "about": "Velit incididunt ut nulla adipisicing ad qui sint dolor cillum cupidatat in. Commodo aliqua deserunt ea eu irure irure nisi ullamco culpa nostrud. Adipisicing exercitation excepteur et id cupidatat. Ullamco ut incididunt proident est ad deserunt duis id ut. Excepteur cupidatat irure reprehenderit et excepteur minim cillum occaecat adipisicing. Commodo fugiat ad ex consectetur commodo dolore id nisi deserunt commodo aliquip. Veniam amet mollit nulla adipisicing eu minim sit magna incididunt adipisicing.\r\n", - "registered": "Tuesday, April 1, 2014 12:42 AM", - "latitude": -55.19047, - "longitude": 177.975351, - "tags": [ - "sint", - "pariatur", - "incididunt", - "exercitation", - "quis", - "ad", - "sint" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Patsy Hunter" - }, - { - "id": 1, - "name": "Cecilia Green" - }, - { - "id": 2, - "name": "Meyer Jones" - } - ], - "greeting": "Hello, Gilliam! You have 9 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821658f3962ce822678", - "index": 13, - "guid": "7017674f-79b3-43ed-8832-2b787c51f59d", - "isActive": false, - "balance": "$2,291.31", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "blue", - "name": { - "first": "Roberts", - "last": "Floyd" - }, - "company": "OVOLO", - "email": "roberts.floyd@ovolo.com", - "phone": "+1 (935) 401-2916", - "address": "723 Amherst Street, Brady, District Of Columbia, 4241", - "about": "Occaecat incididunt eu do quis est. Est mollit incididunt sint aute sunt. Consectetur incididunt officia eu fugiat quis officia pariatur excepteur sint. In enim nostrud nisi culpa. Ex incididunt exercitation id voluptate.\r\n", - "registered": "Thursday, June 19, 2014 4:16 PM", - "latitude": 72.321258, - "longitude": 28.548926, - "tags": [ - "et", - "ipsum", - "anim", - "dolor", - "commodo", - "do", - "exercitation" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Tracey Vasquez" - }, - { - "id": 1, - "name": "Castro Harrell" - }, - { - "id": 2, - "name": "Sanders Barr" - } - ], - "greeting": "Hello, Roberts! You have 10 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821f95ca5383b9eb53d", - "index": 14, - "guid": "a6532d9a-d291-4a51-92e7-33c50ceecc12", - "isActive": true, - "balance": "$3,310.31", - "picture": "http://placehold.it/32x32", - "age": 33, - "eyeColor": "green", - "name": { - "first": "Miles", - "last": "Valdez" - }, - "company": "DENTREX", - "email": "miles.valdez@dentrex.biz", - "phone": "+1 (960) 513-3228", - "address": "726 Stillwell Place, Soham, Pennsylvania, 3510", - "about": "Sit labore ex commodo duis tempor labore officia et et est qui ullamco. Aute elit in labore laboris magna duis ipsum excepteur anim laboris ipsum magna magna non. Sint mollit eiusmod in est sint ipsum excepteur do anim cillum cillum.\r\n", - "registered": "Thursday, May 1, 2014 6:08 PM", - "latitude": 88.123309, - "longitude": -121.226418, - "tags": [ - "voluptate", - "sunt", - "anim", - "laboris", - "exercitation", - "deserunt", - "culpa" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Bradford Horn" - }, - { - "id": 1, - "name": "Hanson Dillon" - }, - { - "id": 2, - "name": "Whitley Stanley" - } - ], - "greeting": "Hello, Miles! You have 8 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821c52f80cda8ff36b3", - "index": 15, - "guid": "63820e33-a8c7-410e-afa9-32b7f7017a32", - "isActive": true, - "balance": "$2,616.09", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "brown", - "name": { - "first": "Floyd", - "last": "Barker" - }, - "company": "TALAE", - "email": "floyd.barker@talae.co.uk", - "phone": "+1 (843) 435-2898", - "address": "501 Sullivan Place, Cotopaxi, Nevada, 5498", - "about": "Non deserunt voluptate occaecat est mollit dolor aliqua. Qui elit aute qui aliquip ipsum et labore est aliquip pariatur. Sint deserunt tempor dolore excepteur elit est sint in est ex anim. Nostrud culpa amet eiusmod incididunt. Ea exercitation amet labore cillum culpa duis aute incididunt dolore sunt. Cillum velit laboris quis eiusmod fugiat consectetur sit fugiat irure labore.\r\n", - "registered": "Monday, March 10, 2014 7:48 AM", - "latitude": -86.397923, - "longitude": 171.646534, - "tags": [ - "dolore", - "sit", - "qui", - "id", - "aliquip", - "mollit", - "laborum" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Eileen Daniels" - }, - { - "id": 1, - "name": "Genevieve Wood" - }, - { - "id": 2, - "name": "Carver Fields" - } - ], - "greeting": "Hello, Floyd! You have 6 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8219eb621c418384935", - "index": 16, - "guid": "ed67eac2-cfdf-4d28-a734-bc973cba8613", - "isActive": false, - "balance": "$1,917.58", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "green", - "name": { - "first": "Carrillo", - "last": "Cox" - }, - "company": "ARCHITAX", - "email": "carrillo.cox@architax.tv", - "phone": "+1 (818) 444-3875", - "address": "309 Randolph Street, Avoca, Illinois, 770", - "about": "Labore consequat et nostrud officia ad. Sint ipsum ipsum sint laboris adipisicing minim voluptate aliqua proident est commodo nulla. Officia sint ipsum laborum aliquip adipisicing adipisicing ea et reprehenderit dolore. Et deserunt sint incididunt velit dolore voluptate deserunt anim nisi sit est officia fugiat. Velit dolore ea do enim veniam ut do. Duis adipisicing fugiat magna Lorem ullamco quis sint ut cupidatat laborum aute laboris sint aliqua.\r\n", - "registered": "Friday, January 17, 2014 12:19 AM", - "latitude": -31.228015, - "longitude": -82.248255, - "tags": [ - "occaecat", - "nostrud", - "ex", - "dolor", - "magna", - "minim", - "pariatur" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Douglas Mayer" - }, - { - "id": 1, - "name": "Dorothy Riddle" - }, - { - "id": 2, - "name": "Melanie Thompson" - } - ], - "greeting": "Hello, Carrillo! You have 7 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821e152869356625777", - "index": 17, - "guid": "1dc17af3-a194-42e8-add8-a73853f16da2", - "isActive": true, - "balance": "$1,703.08", - "picture": "http://placehold.it/32x32", - "age": 36, - "eyeColor": "green", - "name": { - "first": "Ana", - "last": "Reese" - }, - "company": "FORTEAN", - "email": "ana.reese@fortean.name", - "phone": "+1 (876) 419-2128", - "address": "451 Brevoort Place, Leola, Tennessee, 3725", - "about": "Consectetur officia irure proident nulla. Anim veniam mollit sit id aliqua. Do reprehenderit culpa magna magna aute est pariatur consequat ut occaecat cillum adipisicing consectetur. Sint qui pariatur id velit deserunt laborum. Minim consequat ut sunt qui. Ex occaecat tempor fugiat sit anim veniam incididunt mollit mollit. Non id anim cillum culpa tempor voluptate aute consequat proident reprehenderit.\r\n", - "registered": "Saturday, June 28, 2014 4:53 AM", - "latitude": 80.18306, - "longitude": 70.818006, - "tags": [ - "mollit", - "voluptate", - "est", - "magna", - "ad", - "duis", - "est" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Mclaughlin Johns" - }, - { - "id": 1, - "name": "Leanne Hanson" - }, - { - "id": 2, - "name": "Isabel Leon" - } - ], - "greeting": "Hello, Ana! You have 7 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa82168ed66f19f510aea", - "index": 18, - "guid": "87be73dd-bf5e-48c4-8168-f8f76cda905d", - "isActive": true, - "balance": "$1,307.88", - "picture": "http://placehold.it/32x32", - "age": 31, - "eyeColor": "green", - "name": { - "first": "Daugherty", - "last": "Ware" - }, - "company": "TYPHONICA", - "email": "daugherty.ware@typhonica.me", - "phone": "+1 (936) 470-3445", - "address": "919 Oriental Boulevard, Westboro, Iowa, 2587", - "about": "Occaecat in nisi et consequat. Laboris minim consequat qui proident id aute occaecat pariatur. Sint esse anim id ex voluptate fugiat culpa anim commodo incididunt.\r\n", - "registered": "Tuesday, March 4, 2014 11:53 PM", - "latitude": -15.007384, - "longitude": -86.496257, - "tags": [ - "consequat", - "nisi", - "duis", - "cupidatat", - "anim", - "eu", - "culpa" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Maddox Wells" - }, - { - "id": 1, - "name": "Maura May" - }, - { - "id": 2, - "name": "Terry Calhoun" - } - ], - "greeting": "Hello, Daugherty! You have 10 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8210abc44da895c5591", - "index": 19, - "guid": "32c4c5d0-b54c-4ea4-999a-f4fa517ac5ce", - "isActive": true, - "balance": "$2,706.98", - "picture": "http://placehold.it/32x32", - "age": 34, - "eyeColor": "green", - "name": { - "first": "Sonja", - "last": "Craft" - }, - "company": "KOZGENE", - "email": "sonja.craft@kozgene.us", - "phone": "+1 (808) 410-3427", - "address": "808 Lawn Court, Blodgett, Massachusetts, 560", - "about": "Eu occaecat reprehenderit ea ad ullamco ea sint cupidatat ex. Deserunt eu est veniam consectetur do anim in. Dolore minim veniam dolore elit sunt labore id eiusmod.\r\n", - "registered": "Sunday, August 31, 2014 12:09 AM", - "latitude": -47.101894, - "longitude": -130.294589, - "tags": [ - "sint", - "cillum", - "magna", - "sit", - "fugiat", - "nisi", - "reprehenderit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Loretta Mcgee" - }, - { - "id": 1, - "name": "Wilson Merritt" - }, - { - "id": 2, - "name": "Susanne Lloyd" - } - ], - "greeting": "Hello, Sonja! You have 8 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa82134480e13e931193a", - "index": 20, - "guid": "c4a7ded5-aa3e-411f-9956-f4b938ce93dc", - "isActive": false, - "balance": "$3,216.50", - "picture": "http://placehold.it/32x32", - "age": 23, - "eyeColor": "green", - "name": { - "first": "Powers", - "last": "Mathews" - }, - "company": "ANDRYX", - "email": "powers.mathews@andryx.ca", - "phone": "+1 (914) 559-2596", - "address": "545 Nolans Lane, Brenton, Arkansas, 7607", - "about": "In irure et tempor ad commodo culpa reprehenderit excepteur tempor ex. Exercitation eiusmod consequat anim incididunt veniam duis sunt velit sunt aliquip esse adipisicing do. Elit ea incididunt id amet mollit ea in ad ea cupidatat duis minim consectetur incididunt.\r\n", - "registered": "Friday, July 11, 2014 11:27 AM", - "latitude": 64.259332, - "longitude": 111.604942, - "tags": [ - "ut", - "ex", - "cillum", - "commodo", - "pariatur", - "ex", - "reprehenderit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Woodward Witt" - }, - { - "id": 1, - "name": "Hazel Mcfadden" - }, - { - "id": 2, - "name": "Desiree Mclean" - } - ], - "greeting": "Hello, Powers! You have 5 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821117e0b8bd3f6e566", - "index": 21, - "guid": "fae9ba5c-948b-429c-b1e6-a0a6835f0694", - "isActive": false, - "balance": "$1,046.41", - "picture": "http://placehold.it/32x32", - "age": 31, - "eyeColor": "brown", - "name": { - "first": "Lola", - "last": "Roy" - }, - "company": "EURON", - "email": "lola.roy@euron.org", - "phone": "+1 (920) 413-2000", - "address": "237 Tabor Court, Berwind, Hawaii, 2276", - "about": "Aute voluptate proident occaecat exercitation aute proident ullamco veniam aute magna velit cupidatat. Occaecat dolor aliquip adipisicing dolor do elit eu elit laboris officia magna dolore. Velit tempor sit ad et occaecat nisi elit excepteur. Non velit sint deserunt culpa magna irure.\r\n", - "registered": "Thursday, February 27, 2014 1:20 AM", - "latitude": 12.90929, - "longitude": 68.693395, - "tags": [ - "ad", - "officia", - "non", - "aute", - "magna", - "minim", - "sint" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Lee Tate" - }, - { - "id": 1, - "name": "Miranda Payne" - }, - { - "id": 2, - "name": "Jocelyn Cantrell" - } - ], - "greeting": "Hello, Lola! You have 9 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8211cf627425d947100", - "index": 22, - "guid": "590c913b-2457-47a5-ad5c-8a5fc3c249f9", - "isActive": true, - "balance": "$2,144.16", - "picture": "http://placehold.it/32x32", - "age": 22, - "eyeColor": "green", - "name": { - "first": "Marci", - "last": "Mcpherson" - }, - "company": "VIAGREAT", - "email": "marci.mcpherson@viagreat.biz", - "phone": "+1 (916) 417-2166", - "address": "527 Kenilworth Place, Bartonsville, Puerto Rico, 4739", - "about": "Duis velit irure sit sit aliquip sit culpa velit labore velit ipsum amet. Pariatur labore ex et sunt proident ad minim. Aliquip qui adipisicing elit do sunt mollit irure adipisicing in labore cillum. Ut velit dolor cillum irure voluptate ad incididunt consequat cillum esse laborum consequat do.\r\n", - "registered": "Wednesday, August 27, 2014 6:55 AM", - "latitude": 23.135493, - "longitude": -133.213153, - "tags": [ - "ut", - "ex", - "deserunt", - "mollit", - "cillum", - "aliquip", - "excepteur" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Latisha Ortiz" - }, - { - "id": 1, - "name": "Ila Marshall" - }, - { - "id": 2, - "name": "Kathie Strong" - } - ], - "greeting": "Hello, Marci! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa82113ff45aaf64d6b75", - "index": 23, - "guid": "a074b7d2-92de-4728-9032-ac711cc8ca1b", - "isActive": true, - "balance": "$1,927.67", - "picture": "http://placehold.it/32x32", - "age": 26, - "eyeColor": "green", - "name": { - "first": "Lorie", - "last": "Haynes" - }, - "company": "CUBIX", - "email": "lorie.haynes@cubix.io", - "phone": "+1 (914) 479-2574", - "address": "209 Stoddard Place, Grahamtown, New Hampshire, 3422", - "about": "Commodo eu reprehenderit aute veniam occaecat eiusmod ex enim mollit elit. Officia fugiat proident cillum sint sint. In anim occaecat in dolore pariatur occaecat dolore eu duis sint veniam labore tempor id.\r\n", - "registered": "Thursday, June 19, 2014 3:03 AM", - "latitude": -80.694066, - "longitude": 98.315178, - "tags": [ - "proident", - "est", - "nulla", - "minim", - "aute", - "duis", - "ea" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Shana Jensen" - }, - { - "id": 1, - "name": "Audra Hays" - }, - { - "id": 2, - "name": "Shannon Stewart" - } - ], - "greeting": "Hello, Lorie! You have 5 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8216788a07fe633c5a6", - "index": 24, - "guid": "ff361134-2ce3-4cce-b043-d571e87a041d", - "isActive": false, - "balance": "$1,274.62", - "picture": "http://placehold.it/32x32", - "age": 34, - "eyeColor": "green", - "name": { - "first": "Parker", - "last": "Higgins" - }, - "company": "ISOSTREAM", - "email": "parker.higgins@isostream.net", - "phone": "+1 (965) 467-3975", - "address": "908 Division Place, Homeland, South Carolina, 2577", - "about": "Laborum minim consectetur ipsum incididunt cupidatat ex ad labore eu non est consequat. Tempor eiusmod commodo Lorem enim aliquip ad non sint ipsum culpa amet. Eu sit amet velit est sit cupidatat aliquip magna proident id veniam Lorem dolore. Eiusmod ex amet proident enim ipsum proident mollit adipisicing ut.\r\n", - "registered": "Monday, August 25, 2014 4:51 AM", - "latitude": -28.784274, - "longitude": -151.224185, - "tags": [ - "ea", - "cupidatat", - "do", - "culpa", - "ea", - "ullamco", - "nulla" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Bridgette Tyler" - }, - { - "id": 1, - "name": "Harris Pollard" - }, - { - "id": 2, - "name": "Davenport Skinner" - } - ], - "greeting": "Hello, Parker! You have 6 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821ff898d23056717a4", - "index": 25, - "guid": "f5e85a0d-f46e-427e-86a7-657eaaadb169", - "isActive": true, - "balance": "$3,413.58", - "picture": "http://placehold.it/32x32", - "age": 36, - "eyeColor": "brown", - "name": { - "first": "Rios", - "last": "Reilly" - }, - "company": "QUILTIGEN", - "email": "rios.reilly@quiltigen.com", - "phone": "+1 (982) 565-3930", - "address": "789 Beekman Place, Wiscon, Texas, 8745", - "about": "Consectetur qui do sint deserunt voluptate sunt dolor in officia aliquip. Eu irure sit veniam nostrud culpa laboris. Commodo nostrud cillum nulla nostrud.\r\n", - "registered": "Thursday, September 4, 2014 1:54 PM", - "latitude": 6.093115, - "longitude": 145.037939, - "tags": [ - "eu", - "consectetur", - "veniam", - "pariatur", - "laboris", - "ad", - "cupidatat" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Sweet Conley" - }, - { - "id": 1, - "name": "Key Grant" - }, - { - "id": 2, - "name": "Guthrie Moss" - } - ], - "greeting": "Hello, Rios! You have 10 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa82125f7c765fcbb1743", - "index": 26, - "guid": "e5f12323-5c7c-4103-b20c-1a633845a28c", - "isActive": true, - "balance": "$1,645.61", - "picture": "http://placehold.it/32x32", - "age": 26, - "eyeColor": "green", - "name": { - "first": "Hurley", - "last": "Cooke" - }, - "company": "QUORDATE", - "email": "hurley.cooke@quordate.biz", - "phone": "+1 (841) 404-3894", - "address": "369 Denton Place, Curtice, South Dakota, 2613", - "about": "Nulla non in aliqua sit mollit pariatur do mollit. Ut pariatur ut velit minim. Fugiat deserunt velit duis consequat labore culpa voluptate sint voluptate consectetur officia voluptate et laborum. Et exercitation ut eu pariatur minim velit elit. Dolore amet officia ipsum voluptate occaecat eiusmod cupidatat do dolore consequat esse consectetur aliquip.\r\n", - "registered": "Sunday, April 13, 2014 11:42 AM", - "latitude": -78.463811, - "longitude": 36.580914, - "tags": [ - "deserunt", - "nisi", - "do", - "enim", - "nisi", - "qui", - "ipsum" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Harvey Norman" - }, - { - "id": 1, - "name": "Porter Shannon" - }, - { - "id": 2, - "name": "Reyes Goodman" - } - ], - "greeting": "Hello, Hurley! You have 10 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821f375b9cabd418303", - "index": 27, - "guid": "452fe001-7fff-4f69-9336-00e3e80e9792", - "isActive": true, - "balance": "$2,608.67", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "green", - "name": { - "first": "Jill", - "last": "Blair" - }, - "company": "ORBALIX", - "email": "jill.blair@orbalix.co.uk", - "phone": "+1 (863) 519-2778", - "address": "680 Cleveland Street, Kohatk, Ohio, 1688", - "about": "Do labore sint cupidatat dolor. Mollit nulla voluptate nostrud tempor ad cillum in mollit officia reprehenderit duis commodo veniam ad. Adipisicing enim adipisicing consequat sint minim ut. Cupidatat non ullamco sunt mollit proident. Aliquip dolore dolor excepteur cupidatat. Consectetur duis adipisicing qui enim aute quis veniam deserunt occaecat. Duis elit exercitation ullamco voluptate aliqua.\r\n", - "registered": "Tuesday, September 30, 2014 11:23 PM", - "latitude": -33.279869, - "longitude": 6.221211, - "tags": [ - "nostrud", - "elit", - "adipisicing", - "esse", - "in", - "commodo", - "ea" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Tania Flores" - }, - { - "id": 1, - "name": "Nina Blackburn" - }, - { - "id": 2, - "name": "Mathews Fischer" - } - ], - "greeting": "Hello, Jill! You have 10 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821304372a99199671f", - "index": 28, - "guid": "d160ded3-911c-4ce2-a314-9ed9a8e6fa9b", - "isActive": true, - "balance": "$3,005.54", - "picture": "http://placehold.it/32x32", - "age": 35, - "eyeColor": "brown", - "name": { - "first": "Estela", - "last": "Dalton" - }, - "company": "POWERNET", - "email": "estela.dalton@powernet.tv", - "phone": "+1 (959) 527-2607", - "address": "820 Montauk Avenue, Whitmer, Maine, 3867", - "about": "Commodo est ullamco sit eu irure tempor veniam deserunt in aute cillum tempor. Occaecat velit et deserunt incididunt sint do eu consectetur enim ullamco consectetur esse ipsum pariatur. Tempor exercitation dolore tempor enim. Dolor esse est magna occaecat. Elit culpa sint non ea exercitation. Aliquip nostrud aliquip culpa Lorem cillum incididunt do sit sunt velit id. Proident sit proident est velit consequat cillum officia in et.\r\n", - "registered": "Sunday, April 13, 2014 5:53 AM", - "latitude": 32.713335, - "longitude": 174.505048, - "tags": [ - "aliquip", - "dolore", - "proident", - "pariatur", - "elit", - "cillum", - "id" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Gibson Durham" - }, - { - "id": 1, - "name": "Carolina Cooley" - }, - { - "id": 2, - "name": "Rosa Mcintyre" - } - ], - "greeting": "Hello, Estela! You have 8 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa82187c6143c96c5ce1f", - "index": 29, - "guid": "f62ae8de-8905-4ac0-9b5c-ce12dad96a86", - "isActive": false, - "balance": "$1,859.49", - "picture": "http://placehold.it/32x32", - "age": 34, - "eyeColor": "brown", - "name": { - "first": "Martina", - "last": "Jacobson" - }, - "company": "CUIZINE", - "email": "martina.jacobson@cuizine.name", - "phone": "+1 (927) 493-2997", - "address": "234 Utica Avenue, Hinsdale, Vermont, 459", - "about": "Pariatur nulla ad sint tempor qui in id aliqua ex et ut. Qui occaecat quis veniam mollit officia duis ad ea. Est consectetur sit sint proident sit do. Id ut incididunt tempor id irure. Qui commodo cillum labore anim eiusmod exercitation ea qui nulla qui amet.\r\n", - "registered": "Sunday, February 9, 2014 3:54 AM", - "latitude": -36.70558, - "longitude": -140.397297, - "tags": [ - "voluptate", - "adipisicing", - "do", - "deserunt", - "aliquip", - "est", - "minim" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Griffith Martinez" - }, - { - "id": 1, - "name": "Richard Chavez" - }, - { - "id": 2, - "name": "Mckinney Butler" - } - ], - "greeting": "Hello, Martina! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821392ebf56130b6eaa", - "index": 30, - "guid": "91c5f9c9-d3c7-435a-98cc-06e360c12e1d", - "isActive": true, - "balance": "$3,693.79", - "picture": "http://placehold.it/32x32", - "age": 21, - "eyeColor": "brown", - "name": { - "first": "Althea", - "last": "Valencia" - }, - "company": "BLANET", - "email": "althea.valencia@blanet.me", - "phone": "+1 (887) 501-3212", - "address": "911 Adams Street, Brambleton, Delaware, 5831", - "about": "Quis culpa exercitation dolor anim. Id labore ea aute aliqua. Dolor dolore sit duis anim cillum nostrud officia dolor sit. Laborum tempor dolore id consequat.\r\n", - "registered": "Saturday, January 11, 2014 6:27 PM", - "latitude": -39.101471, - "longitude": -22.991091, - "tags": [ - "eu", - "anim", - "elit", - "pariatur", - "cupidatat", - "cupidatat", - "enim" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Dawson Foreman" - }, - { - "id": 1, - "name": "Sanford Meyer" - }, - { - "id": 2, - "name": "Ruth Barron" - } - ], - "greeting": "Hello, Althea! You have 8 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa82111b129b44454e349", - "index": 31, - "guid": "184ea3dd-af3f-400a-aa64-429b6cac091f", - "isActive": true, - "balance": "$1,351.78", - "picture": "http://placehold.it/32x32", - "age": 20, - "eyeColor": "blue", - "name": { - "first": "Morrison", - "last": "Chan" - }, - "company": "TALKALOT", - "email": "morrison.chan@talkalot.us", - "phone": "+1 (822) 448-3384", - "address": "599 Olive Street, Franklin, Palau, 3303", - "about": "Ex deserunt nulla velit dolore. Sunt sit ea irure incididunt aute sint do veniam. Sit ut ad ipsum est velit ea duis exercitation aliquip consectetur Lorem fugiat eu.\r\n", - "registered": "Sunday, February 16, 2014 2:04 PM", - "latitude": 61.099205, - "longitude": -37.736061, - "tags": [ - "eu", - "deserunt", - "pariatur", - "labore", - "reprehenderit", - "magna", - "consectetur" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Norma Montoya" - }, - { - "id": 1, - "name": "Bailey Gillespie" - }, - { - "id": 2, - "name": "Candace Kent" - } - ], - "greeting": "Hello, Morrison! You have 7 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821aec56cb0ce50b54b", - "index": 32, - "guid": "b211ab76-8674-4ed0-9a40-2087930468ad", - "isActive": false, - "balance": "$1,492.99", - "picture": "http://placehold.it/32x32", - "age": 34, - "eyeColor": "green", - "name": { - "first": "Walters", - "last": "Potts" - }, - "company": "FLUMBO", - "email": "walters.potts@flumbo.ca", - "phone": "+1 (871) 461-3958", - "address": "438 Highland Avenue, Elwood, Arizona, 9669", - "about": "Lorem do Lorem aliquip ipsum. Elit labore reprehenderit tempor do. Incididunt labore ad eu occaecat enim laborum irure elit nulla Lorem anim sit exercitation velit. Proident ullamco voluptate aute ex et aute mollit nostrud. Adipisicing labore sit irure amet dolore nostrud. Tempor nulla aliqua culpa commodo aliqua ut esse velit mollit ad. Aliqua nulla enim non nisi laboris sint aute duis proident qui officia.\r\n", - "registered": "Saturday, September 6, 2014 11:47 AM", - "latitude": 64.732922, - "longitude": -168.513014, - "tags": [ - "tempor", - "amet", - "dolore", - "proident", - "reprehenderit", - "non", - "tempor" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Freida Bailey" - }, - { - "id": 1, - "name": "Bernice Curry" - }, - { - "id": 2, - "name": "Ochoa Jefferson" - } - ], - "greeting": "Hello, Walters! You have 6 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa82137be18ee6b852a45", - "index": 33, - "guid": "e8c67cca-c977-4668-9aff-46bfde1cd3de", - "isActive": true, - "balance": "$3,747.65", - "picture": "http://placehold.it/32x32", - "age": 24, - "eyeColor": "blue", - "name": { - "first": "Meredith", - "last": "Santana" - }, - "company": "GADTRON", - "email": "meredith.santana@gadtron.org", - "phone": "+1 (836) 438-3637", - "address": "999 Centre Street, Chaparrito, Colorado, 4540", - "about": "Magna nisi laboris sit quis duis anim et ullamco nostrud exercitation. Tempor enim nisi non culpa sit ex elit labore proident veniam dolore anim ex. Nostrud est qui do magna proident et. Nulla ea laboris incididunt elit labore id mollit reprehenderit. Amet in Lorem exercitation tempor voluptate labore anim adipisicing labore in dolor proident labore. Lorem labore duis ex Lorem nulla. Veniam in fugiat ex ullamco officia elit eiusmod enim.\r\n", - "registered": "Sunday, March 2, 2014 1:38 PM", - "latitude": 80.220732, - "longitude": 79.102966, - "tags": [ - "culpa", - "esse", - "velit", - "consectetur", - "incididunt", - "dolore", - "aliqua" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Bernadine Manning" - }, - { - "id": 1, - "name": "Daphne Wyatt" - }, - { - "id": 2, - "name": "Keri Harrison" - } - ], - "greeting": "Hello, Meredith! You have 7 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821ecdd700bb0b77dc2", - "index": 34, - "guid": "b93f3a6f-f05b-4d7e-93b8-4502d9c76cd2", - "isActive": true, - "balance": "$3,059.56", - "picture": "http://placehold.it/32x32", - "age": 25, - "eyeColor": "brown", - "name": { - "first": "Samantha", - "last": "Finley" - }, - "company": "XYQAG", - "email": "samantha.finley@xyqag.biz", - "phone": "+1 (879) 568-2419", - "address": "349 Truxton Street, Haring, Missouri, 8383", - "about": "Consequat do id et quis eiusmod eu irure sunt qui. Mollit minim nulla magna duis nostrud cillum ullamco sunt adipisicing elit ex. Minim fugiat deserunt nostrud esse laboris ullamco sit sit magna. Tempor occaecat Lorem qui ad ut tempor excepteur. Et sunt ullamco officia et Lorem est. Ipsum dolor ut ut elit do nisi in aute consequat. Enim esse ex aliqua anim aliquip cupidatat do Lorem voluptate quis ea culpa incididunt reprehenderit.\r\n", - "registered": "Saturday, March 29, 2014 1:38 PM", - "latitude": 79.209401, - "longitude": -139.211605, - "tags": [ - "irure", - "eiusmod", - "nulla", - "officia", - "eu", - "elit", - "nisi" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Mayer Justice" - }, - { - "id": 1, - "name": "Mae Hancock" - }, - { - "id": 2, - "name": "Sherri Bradshaw" - } - ], - "greeting": "Hello, Samantha! You have 8 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8218ac5365ad300d1bd", - "index": 35, - "guid": "f3b50cb9-da35-47fe-b0fa-fec9fc84cf8e", - "isActive": false, - "balance": "$2,819.28", - "picture": "http://placehold.it/32x32", - "age": 29, - "eyeColor": "blue", - "name": { - "first": "Cohen", - "last": "Finch" - }, - "company": "SYNTAC", - "email": "cohen.finch@syntac.io", - "phone": "+1 (950) 459-2729", - "address": "436 Pineapple Street, Deercroft, Minnesota, 3218", - "about": "Sint velit officia quis esse. Nulla aute laborum veniam dolore tempor adipisicing proident. Duis irure esse nostrud veniam est mollit mollit voluptate eiusmod anim veniam eiusmod. Ullamco sunt sit sint minim ea reprehenderit qui consequat ipsum. Sint id voluptate reprehenderit irure nulla veniam eu Lorem enim nulla. Cupidatat amet pariatur dolor amet ex nostrud dolor ipsum tempor enim nulla aliquip tempor Lorem.\r\n", - "registered": "Wednesday, October 8, 2014 10:04 PM", - "latitude": -84.299718, - "longitude": 52.573184, - "tags": [ - "deserunt", - "eu", - "consectetur", - "ea", - "non", - "officia", - "reprehenderit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Stevenson Mcintosh" - }, - { - "id": 1, - "name": "Chrystal Oneill" - }, - { - "id": 2, - "name": "Janine Rowe" - } - ], - "greeting": "Hello, Cohen! You have 10 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa82161d5c66d4bd0996e", - "index": 36, - "guid": "6dfc2232-f3c6-4818-956a-e8c683fd69fe", - "isActive": true, - "balance": "$3,262.20", - "picture": "http://placehold.it/32x32", - "age": 33, - "eyeColor": "blue", - "name": { - "first": "Joy", - "last": "Moran" - }, - "company": "UPDAT", - "email": "joy.moran@updat.net", - "phone": "+1 (968) 581-3365", - "address": "279 Kosciusko Street, Smock, Northern Mariana Islands, 5007", - "about": "Quis elit pariatur eu enim magna magna sunt dolore duis commodo. Pariatur sint duis ex aute eu est deserunt culpa fugiat minim non. Tempor consequat consectetur consequat sit incididunt officia id. Incididunt ex eiusmod excepteur aute mollit veniam quis excepteur occaecat excepteur deserunt reprehenderit. Est sit laboris eu dolor. Sunt voluptate quis aliquip nulla ex irure velit in. Aliqua sit id eiusmod amet commodo pariatur deserunt voluptate qui minim ex incididunt voluptate.\r\n", - "registered": "Saturday, February 8, 2014 9:55 PM", - "latitude": 53.735731, - "longitude": 46.00211, - "tags": [ - "exercitation", - "dolor", - "minim", - "incididunt", - "laborum", - "qui", - "sit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Joyce Mckay" - }, - { - "id": 1, - "name": "Turner Murray" - }, - { - "id": 2, - "name": "Jackson Jackson" - } - ], - "greeting": "Hello, Joy! You have 7 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821a9817ca1a9be6517", - "index": 37, - "guid": "84fe8707-cfbc-4434-98bb-faf9cb97471a", - "isActive": true, - "balance": "$3,224.80", - "picture": "http://placehold.it/32x32", - "age": 27, - "eyeColor": "blue", - "name": { - "first": "Brennan", - "last": "Stafford" - }, - "company": "LOVEPAD", - "email": "brennan.stafford@lovepad.com", - "phone": "+1 (873) 405-3600", - "address": "471 Ryder Avenue, Succasunna, Marshall Islands, 2595", - "about": "Et officia quis magna laborum et proident labore elit do Lorem reprehenderit irure. Laborum culpa culpa voluptate commodo consequat non et amet. Mollit cupidatat irure magna sint commodo ipsum proident tempor est. Laboris exercitation aliqua aute deserunt do in aliqua minim ex excepteur. Consequat in minim officia labore laboris laboris occaecat occaecat. Ex qui aliquip sint consectetur elit excepteur incididunt eu non laborum do eu excepteur.\r\n", - "registered": "Saturday, May 31, 2014 3:28 PM", - "latitude": -69.429728, - "longitude": 46.837644, - "tags": [ - "proident", - "ad", - "non", - "duis", - "occaecat", - "proident", - "non" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Jones Kirk" - }, - { - "id": 1, - "name": "Howe Drake" - }, - { - "id": 2, - "name": "Kimberly Jennings" - } - ], - "greeting": "Hello, Brennan! You have 6 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa8219251dc49e1cb846a", - "index": 38, - "guid": "c260bce1-46ac-4e84-9490-13eb8202904e", - "isActive": true, - "balance": "$1,330.69", - "picture": "http://placehold.it/32x32", - "age": 27, - "eyeColor": "brown", - "name": { - "first": "Neal", - "last": "Mooney" - }, - "company": "SOFTMICRO", - "email": "neal.mooney@softmicro.biz", - "phone": "+1 (883) 463-3623", - "address": "818 Lancaster Avenue, Chelsea, New Jersey, 3590", - "about": "Reprehenderit anim nostrud adipisicing non minim ea. Elit deserunt id in mollit nisi. Pariatur in consequat irure aliqua laboris ipsum.\r\n", - "registered": "Wednesday, May 21, 2014 4:33 PM", - "latitude": -57.826881, - "longitude": 154.840249, - "tags": [ - "consequat", - "aliquip", - "pariatur", - "nulla", - "dolore", - "deserunt", - "ipsum" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Beach Roman" - }, - { - "id": 1, - "name": "Nash Young" - }, - { - "id": 2, - "name": "Carey Dale" - } - ], - "greeting": "Hello, Neal! You have 10 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821cedc96e4f2209487", - "index": 39, - "guid": "ed7bbe27-811c-44e4-896e-cdf6ef62e048", - "isActive": false, - "balance": "$3,148.21", - "picture": "http://placehold.it/32x32", - "age": 35, - "eyeColor": "green", - "name": { - "first": "Roy", - "last": "Becker" - }, - "company": "KONGENE", - "email": "roy.becker@kongene.co.uk", - "phone": "+1 (895) 426-2172", - "address": "414 Seagate Avenue, Watrous, Virgin Islands, 3905", - "about": "Commodo mollit do minim dolor magna occaecat labore Lorem eiusmod. Occaecat mollit occaecat ex anim est amet irure non minim. Tempor laborum cupidatat tempor ex Lorem cupidatat incididunt ullamco fugiat Lorem consequat labore Lorem non.\r\n", - "registered": "Sunday, August 17, 2014 3:16 PM", - "latitude": -2.609533, - "longitude": -143.844769, - "tags": [ - "do", - "culpa", - "sint", - "ea", - "duis", - "aliqua", - "anim" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Lowery Hull" - }, - { - "id": 1, - "name": "Abbott Oneal" - }, - { - "id": 2, - "name": "Nellie Hammond" - } - ], - "greeting": "Hello, Roy! You have 9 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821668031e7f50e30e9", - "index": 40, - "guid": "14dc3a87-0acf-4edd-93e4-ddcbeeecf96b", - "isActive": false, - "balance": "$2,617.16", - "picture": "http://placehold.it/32x32", - "age": 31, - "eyeColor": "brown", - "name": { - "first": "Courtney", - "last": "Watson" - }, - "company": "ISOSWITCH", - "email": "courtney.watson@isoswitch.tv", - "phone": "+1 (882) 468-2163", - "address": "385 Douglass Street, Iberia, Oregon, 7802", - "about": "Culpa sunt amet eu magna id quis quis irure velit. Culpa nostrud do enim proident officia. Laboris laborum laborum esse irure proident laborum amet sunt ipsum dolor nulla non ipsum sint. Amet deserunt in esse aliquip laboris proident fugiat nisi cillum ullamco occaecat est. Reprehenderit laborum enim labore ex. Velit do adipisicing irure dolor pariatur duis magna velit. Laborum sint laborum eu anim aliquip adipisicing labore.\r\n", - "registered": "Tuesday, July 22, 2014 6:03 PM", - "latitude": -75.831312, - "longitude": -172.468604, - "tags": [ - "dolor", - "velit", - "et", - "id", - "cupidatat", - "exercitation", - "laborum" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Mccray Gomez" - }, - { - "id": 1, - "name": "Hoover Rasmussen" - }, - { - "id": 2, - "name": "Hillary Castillo" - } - ], - "greeting": "Hello, Courtney! You have 5 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8213c480453670f0428", - "index": 41, - "guid": "e7b97ea6-a13f-42ab-a998-e48614000aca", - "isActive": true, - "balance": "$1,499.72", - "picture": "http://placehold.it/32x32", - "age": 35, - "eyeColor": "blue", - "name": { - "first": "Dale", - "last": "Love" - }, - "company": "BULLJUICE", - "email": "dale.love@bulljuice.name", - "phone": "+1 (933) 588-3310", - "address": "603 Myrtle Avenue, Allentown, Utah, 793", - "about": "Ad quis anim commodo nulla et anim minim commodo irure excepteur. Pariatur ut anim aliquip id ex ipsum exercitation irure qui in nisi quis. Cillum deserunt duis dolore quis nostrud incididunt ipsum ea ipsum id fugiat eu voluptate nisi. Exercitation laborum fugiat irure anim. Ex nostrud aliqua deserunt amet.\r\n", - "registered": "Tuesday, July 22, 2014 1:19 PM", - "latitude": 55.335017, - "longitude": 101.730023, - "tags": [ - "ea", - "non", - "fugiat", - "Lorem", - "tempor", - "ut", - "do" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Spears Diaz" - }, - { - "id": 1, - "name": "Nora Dominguez" - }, - { - "id": 2, - "name": "Tamra Paul" - } - ], - "greeting": "Hello, Dale! You have 9 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821c82bf70ca08206a9", - "index": 42, - "guid": "4367142d-e2b7-475c-b430-ac617295fbfc", - "isActive": false, - "balance": "$2,698.29", - "picture": "http://placehold.it/32x32", - "age": 37, - "eyeColor": "blue", - "name": { - "first": "Gibbs", - "last": "Hunt" - }, - "company": "COWTOWN", - "email": "gibbs.hunt@cowtown.me", - "phone": "+1 (960) 424-3404", - "address": "758 Suydam Place, Adamstown, North Carolina, 2800", - "about": "Veniam qui incididunt officia amet commodo nostrud. Magna consectetur consectetur officia Lorem amet sit officia excepteur minim consectetur pariatur dolore. Mollit fugiat aliqua consectetur qui non elit in aliquip culpa Lorem consectetur velit ad.\r\n", - "registered": "Monday, February 10, 2014 4:10 PM", - "latitude": 62.263652, - "longitude": 64.978136, - "tags": [ - "et", - "dolor", - "aute", - "minim", - "sunt", - "veniam", - "do" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Henry Schmidt" - }, - { - "id": 1, - "name": "Herman Wynn" - }, - { - "id": 2, - "name": "Wilda Grimes" - } - ], - "greeting": "Hello, Gibbs! You have 5 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8210b1096c8a2f821c4", - "index": 43, - "guid": "5184508c-47f7-48b5-85ac-d15ed747ed07", - "isActive": true, - "balance": "$3,460.45", - "picture": "http://placehold.it/32x32", - "age": 30, - "eyeColor": "green", - "name": { - "first": "Francis", - "last": "Barton" - }, - "company": "COMTRAIL", - "email": "francis.barton@comtrail.us", - "phone": "+1 (881) 419-2936", - "address": "562 Ferris Street, Ola, Maryland, 3838", - "about": "Duis minim laboris in reprehenderit id ut laborum esse consequat. In dolore sunt consequat non fugiat do duis duis. Officia ipsum eiusmod laboris do aliqua aute velit minim nulla nisi. Dolor incididunt enim est eu cupidatat. Dolor commodo sit consectetur irure aliqua ea enim esse reprehenderit ullamco.\r\n", - "registered": "Thursday, April 10, 2014 2:48 PM", - "latitude": -35.457713, - "longitude": 141.805123, - "tags": [ - "tempor", - "officia", - "quis", - "tempor", - "ex", - "mollit", - "amet" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Mayra Walters" - }, - { - "id": 1, - "name": "Casey Gross" - }, - { - "id": 2, - "name": "Aisha Santos" - } - ], - "greeting": "Hello, Francis! You have 7 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821890ad48b2eaabcfb", - "index": 44, - "guid": "07497907-7e6f-471d-af9d-1dcbcf056a56", - "isActive": true, - "balance": "$2,166.79", - "picture": "http://placehold.it/32x32", - "age": 33, - "eyeColor": "blue", - "name": { - "first": "Dina", - "last": "Travis" - }, - "company": "VENOFLEX", - "email": "dina.travis@venoflex.ca", - "phone": "+1 (921) 485-3865", - "address": "366 Tillary Street, Century, New York, 6335", - "about": "Dolor sunt culpa enim sint officia sint id do ut anim ex in. Dolore est irure aliquip nulla laborum aliqua tempor id ea mollit in ad deserunt. Qui ullamco duis qui elit excepteur. Aute proident duis veniam enim commodo non minim id. Consequat anim eiusmod consectetur ut et labore officia ex ad cillum occaecat. Sit irure officia veniam sint et consequat reprehenderit officia qui. Aute esse nulla ad quis reprehenderit duis.\r\n", - "registered": "Friday, September 12, 2014 5:53 AM", - "latitude": 24.764352, - "longitude": 148.493552, - "tags": [ - "qui", - "officia", - "dolor", - "velit", - "ex", - "veniam", - "ullamco" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Sharpe Foster" - }, - { - "id": 1, - "name": "Kathrine Ayers" - }, - { - "id": 2, - "name": "Cox Acosta" - } - ], - "greeting": "Hello, Dina! You have 8 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa82101996fc944f7f215", - "index": 45, - "guid": "46b331f8-78d3-403f-8c93-cbaac9438998", - "isActive": false, - "balance": "$2,193.84", - "picture": "http://placehold.it/32x32", - "age": 33, - "eyeColor": "blue", - "name": { - "first": "Haney", - "last": "Garrett" - }, - "company": "EZENTIA", - "email": "haney.garrett@ezentia.org", - "phone": "+1 (965) 596-2629", - "address": "162 Village Road, Southmont, Virginia, 6673", - "about": "Laboris do veniam exercitation officia id eu minim irure Lorem laborum. Sint magna aliquip ad elit eiusmod cillum laborum. Adipisicing aliquip nulla mollit ipsum cupidatat nisi duis irure ullamco. Et elit nulla nisi culpa mollit esse in. Dolore non nulla anim magna enim aliquip quis amet non tempor incididunt dolor.\r\n", - "registered": "Monday, August 18, 2014 3:42 PM", - "latitude": 6.549909, - "longitude": 32.226887, - "tags": [ - "laboris", - "duis", - "culpa", - "qui", - "dolor", - "esse", - "reprehenderit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Mariana Sharp" - }, - { - "id": 1, - "name": "Sue Baldwin" - }, - { - "id": 2, - "name": "Ross Arnold" - } - ], - "greeting": "Hello, Haney! You have 10 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821453cc33bd1abd21d", - "index": 46, - "guid": "313f0c45-6eaf-46d9-a28d-ca31e79d2c1c", - "isActive": false, - "balance": "$2,303.36", - "picture": "http://placehold.it/32x32", - "age": 28, - "eyeColor": "blue", - "name": { - "first": "Gale", - "last": "Robles" - }, - "company": "NEWCUBE", - "email": "gale.robles@newcube.biz", - "phone": "+1 (996) 558-2811", - "address": "597 Java Street, Sanborn, North Dakota, 1789", - "about": "Anim fugiat do nisi dolor sunt consequat irure quis laborum. Nisi cupidatat dolore excepteur irure ea minim proident excepteur exercitation ut voluptate deserunt. Ad do amet id voluptate enim commodo ex. Sunt sint quis sint aute do ea aliqua. Enim ullamco dolore proident qui mollit irure consequat. Nostrud sunt adipisicing elit incididunt do laboris ad officia ea amet id reprehenderit nulla.\r\n", - "registered": "Tuesday, July 15, 2014 2:25 PM", - "latitude": -21.549196, - "longitude": -97.373962, - "tags": [ - "ullamco", - "amet", - "sint", - "elit", - "tempor", - "ex", - "pariatur" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Bell Gould" - }, - { - "id": 1, - "name": "Denise Kirby" - }, - { - "id": 2, - "name": "Hess Hinton" - } - ], - "greeting": "Hello, Gale! You have 5 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821ed643a410e2d79dc", - "index": 47, - "guid": "2620cb2b-df00-4303-a5ff-768ffb1697c5", - "isActive": true, - "balance": "$2,890.73", - "picture": "http://placehold.it/32x32", - "age": 39, - "eyeColor": "blue", - "name": { - "first": "Alisha", - "last": "Hamilton" - }, - "company": "FITCORE", - "email": "alisha.hamilton@fitcore.io", - "phone": "+1 (853) 468-3192", - "address": "257 Bayard Street, Coldiron, Oklahoma, 9228", - "about": "Sunt nostrud sunt magna amet excepteur est tempor veniam aliqua. Laboris id aliquip fugiat exercitation dolore veniam et anim duis sit esse ex elit ullamco. Lorem commodo exercitation in sit cillum ipsum do dolor.\r\n", - "registered": "Tuesday, March 11, 2014 12:29 PM", - "latitude": 85.840017, - "longitude": -57.093095, - "tags": [ - "consectetur", - "commodo", - "est", - "ut", - "incididunt", - "elit", - "ipsum" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Steele Ellis" - }, - { - "id": 1, - "name": "Serena Emerson" - }, - { - "id": 2, - "name": "Betty Langley" - } - ], - "greeting": "Hello, Alisha! You have 8 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8215c6db03112e3e13d", - "index": 48, - "guid": "28b59ead-0fd8-480b-8eb8-2d75290934f6", - "isActive": false, - "balance": "$3,497.68", - "picture": "http://placehold.it/32x32", - "age": 25, - "eyeColor": "blue", - "name": { - "first": "Kaufman", - "last": "Williams" - }, - "company": "COMBOGENE", - "email": "kaufman.williams@combogene.net", - "phone": "+1 (820) 465-3213", - "address": "353 Clarendon Road, Wilmington, Michigan, 3811", - "about": "Irure id sint elit mollit occaecat occaecat veniam elit reprehenderit esse officia cillum. Aute aute occaecat ipsum commodo laborum adipisicing fugiat aliquip dolore. Deserunt id excepteur enim eu adipisicing nulla ut non est dolore est. Culpa magna et sit et non ex.\r\n", - "registered": "Sunday, September 7, 2014 5:57 AM", - "latitude": 10.667631, - "longitude": 157.707911, - "tags": [ - "consequat", - "dolor", - "deserunt", - "amet", - "Lorem", - "aliqua", - "minim" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Horn Franco" - }, - { - "id": 1, - "name": "Kathleen Hickman" - }, - { - "id": 2, - "name": "Rosario Scott" - } - ], - "greeting": "Hello, Kaufman! You have 7 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821045c82593b79538d", - "index": 49, - "guid": "cef964ed-4208-41eb-a8d8-916d95d18f8a", - "isActive": true, - "balance": "$3,808.37", - "picture": "http://placehold.it/32x32", - "age": 28, - "eyeColor": "blue", - "name": { - "first": "Tran", - "last": "Gallegos" - }, - "company": "CONCILITY", - "email": "tran.gallegos@concility.com", - "phone": "+1 (925) 487-2143", - "address": "969 Schermerhorn Street, Watchtower, Idaho, 413", - "about": "Velit ut enim cupidatat adipisicing culpa in non incididunt exercitation dolor pariatur. Deserunt dolor occaecat dolor officia ipsum occaecat tempor nisi. Culpa et culpa aute incididunt et labore sunt cillum nulla. Reprehenderit culpa enim laborum nostrud consectetur velit nulla consequat aliqua non exercitation sunt nulla aliqua. Labore incididunt aliqua aliqua anim duis culpa elit labore. Aliqua ipsum mollit ut sint aliquip in aute do qui amet.\r\n", - "registered": "Friday, May 9, 2014 9:24 AM", - "latitude": -49.148583, - "longitude": 4.911715, - "tags": [ - "labore", - "duis", - "proident", - "adipisicing", - "nisi", - "tempor", - "nisi" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Nicole Holloway" - }, - { - "id": 1, - "name": "Minerva Beasley" - }, - { - "id": 2, - "name": "Bowers Suarez" - } - ], - "greeting": "Hello, Tran! You have 7 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821fbd8e9836595f96d", - "index": 50, - "guid": "966b2f5e-5686-4381-9ab7-87bc9ac9968b", - "isActive": true, - "balance": "$1,351.67", - "picture": "http://placehold.it/32x32", - "age": 23, - "eyeColor": "green", - "name": { - "first": "Mable", - "last": "Lambert" - }, - "company": "ZENSUS", - "email": "mable.lambert@zensus.biz", - "phone": "+1 (917) 404-3441", - "address": "174 Concord Street, Somerset, Nebraska, 7318", - "about": "Ad minim esse ipsum incididunt incididunt enim Lorem nulla excepteur velit fugiat ullamco amet reprehenderit. Labore velit fugiat proident enim Lorem mollit ex. Tempor voluptate cupidatat officia nostrud qui. Veniam duis voluptate deserunt commodo consectetur eiusmod qui excepteur aliquip. Exercitation laborum Lorem excepteur ipsum aliqua fugiat reprehenderit ea dolore deserunt commodo cillum ipsum eu. Ullamco quis voluptate eiusmod ea aute et pariatur consequat duis occaecat nulla aliquip.\r\n", - "registered": "Sunday, May 25, 2014 4:54 PM", - "latitude": 79.811908, - "longitude": -62.629133, - "tags": [ - "sit", - "non", - "reprehenderit", - "exercitation", - "dolor", - "labore", - "irure" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Rosie Gill" - }, - { - "id": 1, - "name": "Parrish Dean" - }, - { - "id": 2, - "name": "Annmarie Delacruz" - } - ], - "greeting": "Hello, Mable! You have 10 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821c85822cf149b785f", - "index": 51, - "guid": "1afd0e8f-b518-4bca-a4df-29e9b6a961d6", - "isActive": true, - "balance": "$2,628.22", - "picture": "http://placehold.it/32x32", - "age": 22, - "eyeColor": "brown", - "name": { - "first": "Sadie", - "last": "Clarke" - }, - "company": "UNISURE", - "email": "sadie.clarke@unisure.co.uk", - "phone": "+1 (905) 480-2930", - "address": "326 Gilmore Court, Hamilton, Montana, 9217", - "about": "Dolore do nisi reprehenderit consectetur in. In esse sit proident enim duis veniam quis laboris nulla cillum adipisicing veniam aute. Culpa sunt ex exercitation sit esse exercitation dolor ea enim ad est aute consequat qui. Esse esse nulla eiusmod eiusmod ullamco esse cillum aute ea id ex quis. Pariatur officia Lorem aute officia anim velit velit elit sint voluptate. Aliquip ad velit velit laboris et culpa. Do consectetur aliqua sit sunt eu anim culpa ut incididunt et.\r\n", - "registered": "Sunday, April 27, 2014 10:37 AM", - "latitude": -71.828101, - "longitude": -138.908359, - "tags": [ - "nostrud", - "amet", - "minim", - "occaecat", - "proident", - "sint", - "nostrud" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Christa Estes" - }, - { - "id": 1, - "name": "Alana Schneider" - }, - { - "id": 2, - "name": "Frank Spears" - } - ], - "greeting": "Hello, Sadie! You have 6 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821aa6b44e8d20db81c", - "index": 52, - "guid": "e0220e02-565c-424a-8834-f955ccb72f7d", - "isActive": false, - "balance": "$2,918.63", - "picture": "http://placehold.it/32x32", - "age": 30, - "eyeColor": "brown", - "name": { - "first": "Deana", - "last": "Fletcher" - }, - "company": "VISALIA", - "email": "deana.fletcher@visalia.tv", - "phone": "+1 (815) 430-2641", - "address": "347 Tehama Street, Hollins, Washington, 5953", - "about": "Est consequat id ad Lorem consequat quis ullamco minim pariatur ipsum cillum. Enim exercitation qui duis cillum ea amet ea sint proident officia dolor non. Irure culpa cillum minim officia est culpa sit.\r\n", - "registered": "Monday, May 5, 2014 1:51 AM", - "latitude": 51.516197, - "longitude": 80.400628, - "tags": [ - "ut", - "tempor", - "pariatur", - "ex", - "dolore", - "deserunt", - "culpa" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Hansen Estrada" - }, - { - "id": 1, - "name": "Regina Munoz" - }, - { - "id": 2, - "name": "Bethany Cabrera" - } - ], - "greeting": "Hello, Deana! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa82120c61930bc25e2ff", - "index": 53, - "guid": "99c62c99-ef16-4eb7-a41d-80feafca740a", - "isActive": false, - "balance": "$1,836.96", - "picture": "http://placehold.it/32x32", - "age": 27, - "eyeColor": "brown", - "name": { - "first": "Long", - "last": "Sandoval" - }, - "company": "GINKLE", - "email": "long.sandoval@ginkle.name", - "phone": "+1 (989) 541-2327", - "address": "161 Crown Street, Omar, Kentucky, 8615", - "about": "Et ea eiusmod ex consequat culpa proident. Reprehenderit proident ullamco ullamco aliquip incididunt ullamco sit proident dolore nulla fugiat sit laboris. Adipisicing ullamco laborum nulla exercitation reprehenderit irure ex.\r\n", - "registered": "Tuesday, July 29, 2014 12:14 AM", - "latitude": -20.766582, - "longitude": 74.616145, - "tags": [ - "et", - "consequat", - "duis", - "excepteur", - "sint", - "sunt", - "aliqua" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Aline Rosa" - }, - { - "id": 1, - "name": "Olivia Quinn" - }, - { - "id": 2, - "name": "Fowler Carter" - } - ], - "greeting": "Hello, Long! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821cc7ceb7da88472ed", - "index": 54, - "guid": "3a965f51-48f9-4d10-8a9b-a0b529749c93", - "isActive": true, - "balance": "$2,950.94", - "picture": "http://placehold.it/32x32", - "age": 25, - "eyeColor": "green", - "name": { - "first": "Rush", - "last": "Thornton" - }, - "company": "AQUASSEUR", - "email": "rush.thornton@aquasseur.me", - "phone": "+1 (916) 493-2777", - "address": "344 Sunnyside Avenue, Brethren, California, 9529", - "about": "Duis ut consequat eu laborum voluptate eu Lorem cillum ad in commodo adipisicing. Excepteur aliquip sint dolor voluptate cillum nisi mollit mollit laborum ex culpa adipisicing voluptate. Cupidatat do sit fugiat amet irure. Cupidatat ex ut commodo reprehenderit veniam sit est officia ad pariatur aliquip.\r\n", - "registered": "Thursday, September 25, 2014 11:09 AM", - "latitude": -61.409359, - "longitude": -87.414208, - "tags": [ - "adipisicing", - "consequat", - "magna", - "Lorem", - "consequat", - "voluptate", - "eu" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Hill Good" - }, - { - "id": 1, - "name": "Hartman Rice" - }, - { - "id": 2, - "name": "Petersen Hogan" - } - ], - "greeting": "Hello, Rush! You have 7 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821e221eb5b7ed845c0", - "index": 55, - "guid": "ab0f1517-8c25-46ff-a281-0dcc932e2f9a", - "isActive": false, - "balance": "$2,070.82", - "picture": "http://placehold.it/32x32", - "age": 39, - "eyeColor": "green", - "name": { - "first": "Alyce", - "last": "Perez" - }, - "company": "CAPSCREEN", - "email": "alyce.perez@capscreen.us", - "phone": "+1 (955) 432-2025", - "address": "896 Troutman Street, Williamson, West Virginia, 6491", - "about": "In consequat quis ex sint nisi proident esse excepteur quis nostrud. Enim incididunt ullamco sint quis eiusmod qui tempor ad laboris eiusmod nulla in aliquip sit. Nostrud fugiat fugiat Lorem laboris pariatur eiusmod amet ea do irure et. Excepteur pariatur consequat exercitation amet occaecat do aliqua non deserunt nulla cupidatat tempor id. Mollit ex incididunt et nulla culpa mollit veniam qui amet in excepteur pariatur. Commodo reprehenderit tempor laborum nisi anim minim deserunt eiusmod adipisicing deserunt ut eiusmod excepteur.\r\n", - "registered": "Monday, June 23, 2014 7:37 AM", - "latitude": -4.180393, - "longitude": 21.4789, - "tags": [ - "dolore", - "officia", - "laborum", - "aliquip", - "ex", - "eu", - "sint" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Rosalind Lang" - }, - { - "id": 1, - "name": "Ina Pratt" - }, - { - "id": 2, - "name": "Tamika Mercer" - } - ], - "greeting": "Hello, Alyce! You have 5 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8215e315c720e186460", - "index": 56, - "guid": "10727900-9be7-46d5-8f2c-7c6834d95a25", - "isActive": false, - "balance": "$1,907.19", - "picture": "http://placehold.it/32x32", - "age": 37, - "eyeColor": "brown", - "name": { - "first": "Snider", - "last": "Johnson" - }, - "company": "IPLAX", - "email": "snider.johnson@iplax.ca", - "phone": "+1 (883) 539-3127", - "address": "424 Hancock Street, Springdale, Wyoming, 7054", - "about": "Incididunt proident amet consectetur cupidatat ex officia labore cupidatat laborum. Tempor proident officia nisi Lorem. Lorem commodo commodo ea voluptate excepteur consequat anim quis excepteur sunt officia.\r\n", - "registered": "Saturday, March 8, 2014 9:23 PM", - "latitude": 16.66716, - "longitude": 17.844641, - "tags": [ - "esse", - "est", - "eu", - "dolor", - "ea", - "voluptate", - "nostrud" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Bauer Burt" - }, - { - "id": 1, - "name": "Lowe Boyd" - }, - { - "id": 2, - "name": "Moon Garcia" - } - ], - "greeting": "Hello, Snider! You have 9 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa82130f82b9ee9265e5f", - "index": 57, - "guid": "ba427ee5-5013-498f-a1a2-97a71b249a6e", - "isActive": true, - "balance": "$2,070.53", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "brown", - "name": { - "first": "Berry", - "last": "Carver" - }, - "company": "EVENTIX", - "email": "berry.carver@eventix.org", - "phone": "+1 (907) 508-2463", - "address": "415 Havens Place, Nile, Connecticut, 6089", - "about": "Quis dolor aute consequat sunt esse dolore Lorem pariatur reprehenderit incididunt aliqua. Officia sunt aute fugiat consectetur id exercitation aliquip velit do fugiat culpa. Et ad amet exercitation veniam ipsum duis qui sunt incididunt. Eiusmod commodo esse aliquip exercitation pariatur consequat nulla nulla quis eiusmod dolor. Ut consectetur qui culpa id veniam dolore pariatur quis est cillum voluptate esse. Sunt eiusmod adipisicing mollit est tempor ipsum dolore tempor. Velit consequat dolore cillum adipisicing id nulla veniam nisi velit in magna id anim.\r\n", - "registered": "Monday, January 13, 2014 10:45 PM", - "latitude": -60.884888, - "longitude": 139.360489, - "tags": [ - "eu", - "deserunt", - "minim", - "quis", - "eiusmod", - "sint", - "dolor" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Tanisha Dudley" - }, - { - "id": 1, - "name": "Dale Mcgowan" - }, - { - "id": 2, - "name": "Torres Pennington" - } - ], - "greeting": "Hello, Berry! You have 7 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821bc354233d50ef914", - "index": 58, - "guid": "6ab626f8-6b71-4f17-ba39-4cc97fdf4855", - "isActive": false, - "balance": "$2,822.25", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "green", - "name": { - "first": "Kramer", - "last": "Berg" - }, - "company": "INTRADISK", - "email": "kramer.berg@intradisk.biz", - "phone": "+1 (901) 534-3326", - "address": "455 Bath Avenue, Hoagland, Guam, 2206", - "about": "Labore ullamco aliquip id incididunt cupidatat pariatur. In magna et aliquip consectetur dolor ullamco aliqua reprehenderit. Ad velit nisi ex culpa consequat. Culpa eiusmod incididunt pariatur esse tempor officia mollit.\r\n", - "registered": "Friday, June 13, 2014 8:45 AM", - "latitude": -43.442578, - "longitude": 69.627031, - "tags": [ - "exercitation", - "dolor", - "quis", - "laboris", - "exercitation", - "sunt", - "ipsum" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Love Hutchinson" - }, - { - "id": 1, - "name": "Hayden Marquez" - }, - { - "id": 2, - "name": "Macdonald Hahn" - } - ], - "greeting": "Hello, Kramer! You have 5 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821cf5d51b48b4bd07a", - "index": 59, - "guid": "7b339d1e-d759-4fed-9e58-fd2608cdb0f2", - "isActive": false, - "balance": "$3,836.86", - "picture": "http://placehold.it/32x32", - "age": 20, - "eyeColor": "brown", - "name": { - "first": "Joann", - "last": "Elliott" - }, - "company": "ATOMICA", - "email": "joann.elliott@atomica.io", - "phone": "+1 (992) 429-2667", - "address": "788 Willow Place, Lindisfarne, Mississippi, 3656", - "about": "Ut consequat sunt ipsum minim velit. Lorem eiusmod dolor voluptate est deserunt cupidatat ut ipsum. Et et irure Lorem laborum sint mollit pariatur elit et enim eu eu sunt. Nisi do quis proident enim irure dolore ut Lorem fugiat quis voluptate non reprehenderit dolore.\r\n", - "registered": "Monday, May 12, 2014 6:04 PM", - "latitude": 14.309335, - "longitude": 32.596666, - "tags": [ - "nulla", - "magna", - "dolore", - "incididunt", - "fugiat", - "elit", - "veniam" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Mason Hurst" - }, - { - "id": 1, - "name": "Castaneda Davidson" - }, - { - "id": 2, - "name": "Rasmussen Adkins" - } - ], - "greeting": "Hello, Joann! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821876778d3d011eb7b", - "index": 60, - "guid": "a016ab64-b6dd-42bc-8b5f-dbbab7a01d2a", - "isActive": true, - "balance": "$2,795.00", - "picture": "http://placehold.it/32x32", - "age": 31, - "eyeColor": "green", - "name": { - "first": "Barbara", - "last": "Nolan" - }, - "company": "FURNAFIX", - "email": "barbara.nolan@furnafix.net", - "phone": "+1 (892) 600-2820", - "address": "540 Dennett Place, Mammoth, Rhode Island, 6151", - "about": "In velit officia quis Lorem. Ex quis cillum esse deserunt consectetur et nulla tempor. Lorem reprehenderit cillum excepteur ea veniam commodo et ad ullamco. Ex elit nisi non ipsum aliqua laborum sint aliqua. Reprehenderit consectetur dolore occaecat irure incididunt sunt.\r\n", - "registered": "Monday, April 21, 2014 11:59 AM", - "latitude": 71.103088, - "longitude": -78.48592, - "tags": [ - "eu", - "ullamco", - "cillum", - "est", - "commodo", - "nisi", - "tempor" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Cynthia Aguilar" - }, - { - "id": 1, - "name": "Deanna Graves" - }, - { - "id": 2, - "name": "Bertha Caldwell" - } - ], - "greeting": "Hello, Barbara! You have 9 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821d6e2aaf18a0b184f", - "index": 61, - "guid": "89ca6bc0-19c2-4d13-a37c-90d02005a6bc", - "isActive": false, - "balance": "$3,134.62", - "picture": "http://placehold.it/32x32", - "age": 39, - "eyeColor": "blue", - "name": { - "first": "Penelope", - "last": "William" - }, - "company": "UTARA", - "email": "penelope.william@utara.com", - "phone": "+1 (968) 575-2395", - "address": "276 Ralph Avenue, Ezel, New Mexico, 2656", - "about": "Pariatur officia anim dolore commodo ipsum labore sint officia. Lorem culpa ea sunt non. Voluptate irure voluptate ut cupidatat nulla nostrud.\r\n", - "registered": "Monday, July 7, 2014 11:29 PM", - "latitude": -83.184502, - "longitude": -91.222471, - "tags": [ - "anim", - "incididunt", - "aliqua", - "id", - "reprehenderit", - "laboris", - "consequat" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Maxwell Rocha" - }, - { - "id": 1, - "name": "Roach Bryan" - }, - { - "id": 2, - "name": "Woods Daugherty" - } - ], - "greeting": "Hello, Penelope! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8217abc85acd32fb42a", - "index": 62, - "guid": "cc58e868-7934-40a2-a350-13ad47e86a56", - "isActive": true, - "balance": "$3,734.05", - "picture": "http://placehold.it/32x32", - "age": 33, - "eyeColor": "green", - "name": { - "first": "Kris", - "last": "Cotton" - }, - "company": "CORPORANA", - "email": "kris.cotton@corporana.biz", - "phone": "+1 (873) 412-2513", - "address": "650 Bushwick Court, Malott, Wisconsin, 9739", - "about": "Aliquip cupidatat exercitation exercitation consectetur. Sit id excepteur ea ut laborum irure ullamco laborum irure reprehenderit nisi aute eu. Ipsum do anim ea veniam do amet pariatur. Lorem consectetur labore deserunt anim deserunt aute.\r\n", - "registered": "Thursday, February 20, 2014 7:18 AM", - "latitude": 41.787092, - "longitude": -44.032192, - "tags": [ - "ex", - "incididunt", - "ut", - "cupidatat", - "commodo", - "commodo", - "occaecat" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Angela Middleton" - }, - { - "id": 1, - "name": "Hicks Douglas" - }, - { - "id": 2, - "name": "Shaffer West" - } - ], - "greeting": "Hello, Kris! You have 8 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821c20dda84da819450", - "index": 63, - "guid": "6ecab19a-0268-4d43-ad43-af2e4941b2e7", - "isActive": false, - "balance": "$2,748.00", - "picture": "http://placehold.it/32x32", - "age": 33, - "eyeColor": "green", - "name": { - "first": "William", - "last": "Haney" - }, - "company": "PROSURE", - "email": "william.haney@prosure.co.uk", - "phone": "+1 (890) 508-3193", - "address": "930 Hopkins Street, Bluetown, American Samoa, 9860", - "about": "Ad aute aliquip eiusmod tempor ullamco. Et ipsum consequat consequat magna do fugiat sint proident nostrud ad fugiat commodo dolor. Est anim do laboris id esse minim do voluptate occaecat nulla esse. Veniam sit dolore aliqua pariatur quis commodo enim nisi sint excepteur pariatur.\r\n", - "registered": "Friday, January 10, 2014 2:42 PM", - "latitude": 70.057151, - "longitude": -46.509685, - "tags": [ - "pariatur", - "est", - "adipisicing", - "aute", - "in", - "ex", - "eu" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Aida Lindsey" - }, - { - "id": 1, - "name": "Harper Roberson" - }, - { - "id": 2, - "name": "Flora Woods" - } - ], - "greeting": "Hello, William! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8219387ab6d8ebd8c1d", - "index": 64, - "guid": "732dfcb2-f8ab-44bf-a11b-d98f5b589993", - "isActive": true, - "balance": "$1,010.25", - "picture": "http://placehold.it/32x32", - "age": 26, - "eyeColor": "green", - "name": { - "first": "Barrera", - "last": "Sellers" - }, - "company": "KLUGGER", - "email": "barrera.sellers@klugger.tv", - "phone": "+1 (968) 510-3228", - "address": "954 Verona Place, Homeworth, Louisiana, 6862", - "about": "Lorem ex voluptate cupidatat minim officia voluptate enim proident qui mollit dolore ipsum. Non consectetur adipisicing quis consectetur. Non est Lorem ad qui nostrud aute aliqua labore exercitation ea aliquip irure dolor nisi. Excepteur anim ex exercitation velit adipisicing qui excepteur enim culpa consequat sint. Velit consectetur velit culpa eu sint irure culpa consequat anim incididunt ad amet excepteur. Non est anim id sint ipsum id officia dolor commodo dolore labore consectetur.\r\n", - "registered": "Sunday, September 14, 2014 1:44 AM", - "latitude": -88.561319, - "longitude": -44.881241, - "tags": [ - "aliquip", - "eiusmod", - "nisi", - "aliquip", - "minim", - "ullamco", - "commodo" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Bond Goff" - }, - { - "id": 1, - "name": "Cathleen Hatfield" - }, - { - "id": 2, - "name": "Pansy Burke" - } - ], - "greeting": "Hello, Barrera! You have 8 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821ab4d9564c853db57", - "index": 65, - "guid": "bba298e6-ebca-4334-afe9-91807ed1b672", - "isActive": true, - "balance": "$2,345.80", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "brown", - "name": { - "first": "Mullen", - "last": "Stephenson" - }, - "company": "POLARIUM", - "email": "mullen.stephenson@polarium.name", - "phone": "+1 (935) 461-2692", - "address": "228 Court Square, Beaulieu, Kansas, 9445", - "about": "Ex magna proident do dolore nostrud aliqua aute dolore enim mollit consectetur sunt pariatur. Ex id duis enim duis laborum do tempor proident exercitation duis. Aute dolor cillum anim incididunt voluptate. Qui proident consectetur sit laboris ex enim excepteur qui.\r\n", - "registered": "Thursday, May 1, 2014 7:57 PM", - "latitude": 34.294733, - "longitude": 138.270754, - "tags": [ - "minim", - "veniam", - "do", - "consequat", - "esse", - "sit", - "do" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Bobbi Pate" - }, - { - "id": 1, - "name": "Moran Griffith" - }, - { - "id": 2, - "name": "Marian Hopkins" - } - ], - "greeting": "Hello, Mullen! You have 7 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8218eb53a92791a3185", - "index": 66, - "guid": "d297bed2-0986-4d22-b120-0e04c253fb34", - "isActive": false, - "balance": "$2,586.70", - "picture": "http://placehold.it/32x32", - "age": 22, - "eyeColor": "brown", - "name": { - "first": "Leigh", - "last": "Kidd" - }, - "company": "SUNCLIPSE", - "email": "leigh.kidd@sunclipse.me", - "phone": "+1 (870) 427-3520", - "address": "156 Keen Court, Chamizal, Indiana, 4250", - "about": "Ut sunt elit irure eiusmod aliquip consectetur in. Dolore id exercitation irure consectetur. Pariatur occaecat cillum nulla cillum esse deserunt minim consectetur aliqua duis eiusmod. Ea proident aliquip cillum ullamco duis elit Lorem dolore aliqua. Do fugiat culpa reprehenderit ea eu non enim.\r\n", - "registered": "Wednesday, January 15, 2014 1:57 AM", - "latitude": 61.842523, - "longitude": -56.422447, - "tags": [ - "non", - "non", - "incididunt", - "elit", - "aliqua", - "proident", - "nostrud" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Jean Burns" - }, - { - "id": 1, - "name": "Patel Wilkinson" - }, - { - "id": 2, - "name": "Lillie Lane" - } - ], - "greeting": "Hello, Leigh! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8211c12bb8d837e265b", - "index": 67, - "guid": "6560e2f0-6bd2-4e19-bcd1-35297f162890", - "isActive": false, - "balance": "$2,040.59", - "picture": "http://placehold.it/32x32", - "age": 29, - "eyeColor": "green", - "name": { - "first": "Perry", - "last": "Leonard" - }, - "company": "CANDECOR", - "email": "perry.leonard@candecor.us", - "phone": "+1 (945) 556-2907", - "address": "359 Barbey Street, Grandview, Alaska, 9082", - "about": "Dolor fugiat consequat reprehenderit duis duis ex consectetur ea non ut. Irure et elit et mollit consequat dolor exercitation exercitation deserunt culpa mollit nulla. Est sunt deserunt incididunt exercitation eu aliqua qui elit labore id in eu ex.\r\n", - "registered": "Tuesday, August 26, 2014 11:34 PM", - "latitude": -67.974417, - "longitude": 97.189082, - "tags": [ - "sit", - "ex", - "ullamco", - "exercitation", - "adipisicing", - "non", - "laboris" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Alissa Ramsey" - }, - { - "id": 1, - "name": "Adela Bell" - }, - { - "id": 2, - "name": "Pearl Henderson" - } - ], - "greeting": "Hello, Perry! You have 9 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa8219a0b8e44380bd954", - "index": 68, - "guid": "4aa2bec3-3eaa-464f-9577-27f6c65e64b7", - "isActive": false, - "balance": "$3,911.59", - "picture": "http://placehold.it/32x32", - "age": 22, - "eyeColor": "blue", - "name": { - "first": "Barbra", - "last": "Mejia" - }, - "company": "ANIXANG", - "email": "barbra.mejia@anixang.ca", - "phone": "+1 (987) 517-2550", - "address": "635 Franklin Street, Allensworth, Florida, 1895", - "about": "Aliqua tempor excepteur velit do exercitation laborum commodo laboris aliqua nostrud. Aute aliquip nisi nulla labore id veniam ad voluptate non eiusmod minim mollit. Minim incididunt nostrud sint ex.\r\n", - "registered": "Thursday, January 16, 2014 11:04 PM", - "latitude": 44.320545, - "longitude": -61.392889, - "tags": [ - "cupidatat", - "excepteur", - "eu", - "consectetur", - "fugiat", - "aliquip", - "deserunt" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Potts Church" - }, - { - "id": 1, - "name": "Dianna Valentine" - }, - { - "id": 2, - "name": "Valeria Whitney" - } - ], - "greeting": "Hello, Barbra! You have 9 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821b618d050a076972c", - "index": 69, - "guid": "ef47a627-c517-4f5a-931b-d67c8a18614b", - "isActive": false, - "balance": "$1,771.53", - "picture": "http://placehold.it/32x32", - "age": 32, - "eyeColor": "brown", - "name": { - "first": "Gonzales", - "last": "Walker" - }, - "company": "EVIDENDS", - "email": "gonzales.walker@evidends.org", - "phone": "+1 (984) 510-3347", - "address": "336 Pershing Loop, Croom, Georgia, 9128", - "about": "Quis reprehenderit consectetur ad aliqua ad amet incididunt aute irure Lorem veniam. Consequat consequat ut reprehenderit officia cupidatat irure aliqua nostrud veniam velit aliquip magna elit. Ullamco amet nostrud est cupidatat adipisicing fugiat magna anim eu occaecat incididunt. Ut ex ut quis veniam nulla ad ea magna elit incididunt Lorem anim ipsum elit. Aliqua laborum officia magna aliqua. Est quis adipisicing cillum cupidatat sunt velit fugiat mollit exercitation cupidatat sit.\r\n", - "registered": "Saturday, June 21, 2014 9:02 PM", - "latitude": -64.407501, - "longitude": -157.742045, - "tags": [ - "pariatur", - "minim", - "consectetur", - "consequat", - "ad", - "aliqua", - "ut" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Tina Patterson" - }, - { - "id": 1, - "name": "Gabriela Nielsen" - }, - { - "id": 2, - "name": "Amalia Mueller" - } - ], - "greeting": "Hello, Gonzales! You have 8 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8210426ced41d67a58b", - "index": 70, - "guid": "5d045ae8-c32c-43f6-b404-30a943205f5e", - "isActive": true, - "balance": "$2,054.02", - "picture": "http://placehold.it/32x32", - "age": 36, - "eyeColor": "green", - "name": { - "first": "Clarissa", - "last": "Madden" - }, - "company": "NIQUENT", - "email": "clarissa.madden@niquent.biz", - "phone": "+1 (910) 480-3769", - "address": "637 Scholes Street, Needmore, Alabama, 9344", - "about": "Sunt nulla ad aliquip incididunt ullamco culpa laboris. Consectetur non enim in officia incididunt deserunt. Quis est consequat ipsum ad. Pariatur nostrud voluptate magna occaecat minim irure sint nostrud voluptate ea labore ullamco quis. Mollit veniam consequat commodo sunt.\r\n", - "registered": "Wednesday, January 8, 2014 4:02 AM", - "latitude": 46.115788, - "longitude": 79.731859, - "tags": [ - "reprehenderit", - "nisi", - "id", - "consectetur", - "sunt", - "nostrud", - "laboris" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Mandy Buckner" - }, - { - "id": 1, - "name": "Hickman Brown" - }, - { - "id": 2, - "name": "Kemp Mclaughlin" - } - ], - "greeting": "Hello, Clarissa! You have 8 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8211049b550404f3ce5", - "index": 71, - "guid": "2f9a6201-6728-4509-8d88-c0a614649311", - "isActive": true, - "balance": "$1,324.10", - "picture": "http://placehold.it/32x32", - "age": 22, - "eyeColor": "blue", - "name": { - "first": "Joyce", - "last": "Callahan" - }, - "company": "OPTYK", - "email": "joyce.callahan@optyk.io", - "phone": "+1 (893) 544-2327", - "address": "567 Crystal Street, Freetown, District Of Columbia, 8319", - "about": "Deserunt in nisi id consequat qui. Sunt velit proident id culpa incididunt velit aute dolore labore. Deserunt qui ea adipisicing cillum irure sit sunt excepteur quis et quis nulla dolore pariatur. Consequat ut et veniam dolor velit nulla veniam fugiat commodo velit fugiat ad veniam ad. Anim consequat labore deserunt eiusmod esse. Laborum labore eu et incididunt commodo dolore eiusmod occaecat. Nisi elit duis mollit cillum id enim.\r\n", - "registered": "Tuesday, February 4, 2014 2:38 AM", - "latitude": -76.437449, - "longitude": -169.66079, - "tags": [ - "ullamco", - "non", - "officia", - "eiusmod", - "duis", - "cupidatat", - "mollit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Hendricks Logan" - }, - { - "id": 1, - "name": "Dolly Baird" - }, - { - "id": 2, - "name": "Wendi Wallace" - } - ], - "greeting": "Hello, Joyce! You have 6 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa82176dab97e42086b90", - "index": 72, - "guid": "9680920d-9303-471b-849e-c30e38e06d45", - "isActive": false, - "balance": "$2,696.40", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "blue", - "name": { - "first": "Felecia", - "last": "Gonzalez" - }, - "company": "CORIANDER", - "email": "felecia.gonzalez@coriander.net", - "phone": "+1 (923) 575-3582", - "address": "315 Borinquen Pl, Rosburg, Pennsylvania, 9619", - "about": "Laboris officia exercitation duis aliqua in sint consectetur. Ad ut labore ipsum ipsum ut culpa labore irure aute. Et exercitation tempor do dolor culpa ad ipsum pariatur adipisicing fugiat. Incididunt amet incididunt minim quis cupidatat pariatur enim fugiat reprehenderit est ipsum labore.\r\n", - "registered": "Monday, January 20, 2014 11:59 PM", - "latitude": -36.201421, - "longitude": 162.994705, - "tags": [ - "cillum", - "reprehenderit", - "non", - "est", - "tempor", - "exercitation", - "fugiat" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Gould Waters" - }, - { - "id": 1, - "name": "Ramona Coffey" - }, - { - "id": 2, - "name": "Taylor Byers" - } - ], - "greeting": "Hello, Felecia! You have 10 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821df55849ccd4ca74c", - "index": 73, - "guid": "01b7c49a-6dac-4b65-906b-4483de07a5e8", - "isActive": true, - "balance": "$2,037.32", - "picture": "http://placehold.it/32x32", - "age": 27, - "eyeColor": "blue", - "name": { - "first": "Stanton", - "last": "Rutledge" - }, - "company": "EXOBLUE", - "email": "stanton.rutledge@exoblue.com", - "phone": "+1 (817) 408-2566", - "address": "741 Crooke Avenue, Newry, Nevada, 8555", - "about": "Commodo adipisicing ea ipsum non irure quis excepteur. Qui laborum qui sit cupidatat dolore consectetur tempor esse occaecat cillum qui. Dolore in amet ea ex proident do nulla.\r\n", - "registered": "Thursday, August 28, 2014 8:35 PM", - "latitude": 87.299409, - "longitude": 22.167535, - "tags": [ - "commodo", - "aliqua", - "irure", - "ea", - "dolor", - "aute", - "non" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Best Klein" - }, - { - "id": 1, - "name": "Dickerson Mcknight" - }, - { - "id": 2, - "name": "Gayle Washington" - } - ], - "greeting": "Hello, Stanton! You have 6 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821f3516c63c6fa05e8", - "index": 74, - "guid": "c299ecf4-0528-4280-b6b4-909801b1e9dd", - "isActive": true, - "balance": "$1,695.83", - "picture": "http://placehold.it/32x32", - "age": 27, - "eyeColor": "green", - "name": { - "first": "Thelma", - "last": "Barnett" - }, - "company": "DUOFLEX", - "email": "thelma.barnett@duoflex.biz", - "phone": "+1 (947) 416-2234", - "address": "325 Tampa Court, Zortman, Illinois, 3609", - "about": "Exercitation esse culpa enim anim. Cillum voluptate quis tempor excepteur elit aliquip consequat officia cupidatat laborum ad cupidatat. Mollit exercitation esse fugiat do do id irure tempor et duis. Ut sit reprehenderit velit sit eiusmod in officia nisi commodo magna id in. Lorem sint velit adipisicing aute.\r\n", - "registered": "Tuesday, April 22, 2014 5:11 AM", - "latitude": 20.61329, - "longitude": 48.592063, - "tags": [ - "et", - "excepteur", - "nostrud", - "ullamco", - "quis", - "occaecat", - "in" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Amy Parks" - }, - { - "id": 1, - "name": "Greene Nunez" - }, - { - "id": 2, - "name": "Janna Roth" - } - ], - "greeting": "Hello, Thelma! You have 6 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821637950981c0fa4c8", - "index": 75, - "guid": "bc58930c-58d8-4223-8a98-20295ac61c4e", - "isActive": true, - "balance": "$1,836.33", - "picture": "http://placehold.it/32x32", - "age": 23, - "eyeColor": "green", - "name": { - "first": "Nunez", - "last": "Freeman" - }, - "company": "ZILCH", - "email": "nunez.freeman@zilch.co.uk", - "phone": "+1 (959) 439-2497", - "address": "729 Varick Street, Marne, Tennessee, 1687", - "about": "Sunt nulla ipsum non in nulla. Dolore in fugiat in laborum veniam enim dolore cupidatat. Elit tempor ullamco id in minim excepteur et aute ut mollit aliquip qui consequat. Duis esse magna culpa aliqua ad ipsum deserunt laborum amet sint. Quis voluptate quis quis aute.\r\n", - "registered": "Monday, August 11, 2014 5:27 PM", - "latitude": 85.57657, - "longitude": -145.772132, - "tags": [ - "ullamco", - "tempor", - "et", - "non", - "magna", - "non", - "ex" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Latasha Randolph" - }, - { - "id": 1, - "name": "Neva Porter" - }, - { - "id": 2, - "name": "Drake Nicholson" - } - ], - "greeting": "Hello, Nunez! You have 10 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821ed9d29afc180b718", - "index": 76, - "guid": "45fb73c9-30e9-4e61-b78d-41c8f79a282e", - "isActive": false, - "balance": "$1,298.91", - "picture": "http://placehold.it/32x32", - "age": 25, - "eyeColor": "green", - "name": { - "first": "Bentley", - "last": "Reyes" - }, - "company": "ZYPLE", - "email": "bentley.reyes@zyple.tv", - "phone": "+1 (919) 510-3585", - "address": "227 Oakland Place, Farmers, Iowa, 9827", - "about": "Cillum proident eiusmod id amet anim laboris elit sint ea et non. Aliqua et reprehenderit amet est ea fugiat aute. Minim aute aliquip nulla elit. Duis ad exercitation excepteur laborum anim occaecat nulla sunt. Quis pariatur nulla Lorem consectetur proident sunt amet est et elit eu sunt. Ut irure voluptate consequat amet sint deserunt quis. Incididunt ea culpa commodo fugiat qui veniam quis Lorem incididunt dolor.\r\n", - "registered": "Wednesday, April 9, 2014 1:19 AM", - "latitude": -82.587336, - "longitude": -74.931056, - "tags": [ - "dolore", - "nisi", - "exercitation", - "ullamco", - "excepteur", - "qui", - "ut" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Nadia Pearson" - }, - { - "id": 1, - "name": "Reba Frost" - }, - { - "id": 2, - "name": "Lilia Mcbride" - } - ], - "greeting": "Hello, Bentley! You have 7 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821a936a115315db0b9", - "index": 77, - "guid": "a1b82517-f6a6-437a-9f2d-2c0043591cfa", - "isActive": false, - "balance": "$1,016.00", - "picture": "http://placehold.it/32x32", - "age": 22, - "eyeColor": "blue", - "name": { - "first": "Morales", - "last": "Shields" - }, - "company": "CORECOM", - "email": "morales.shields@corecom.name", - "phone": "+1 (814) 407-2079", - "address": "472 Coleridge Street, Shasta, Massachusetts, 501", - "about": "Ipsum elit adipisicing nostrud quis ut nisi ullamco consectetur ex laborum reprehenderit anim magna fugiat. In nulla dolor esse exercitation elit exercitation. Laborum sit esse velit magna ea irure est ut velit id nisi sint qui. Laborum voluptate amet cupidatat laborum aute in id duis irure. Enim aliqua enim magna ut consequat. Tempor est commodo elit eu et ut occaecat culpa ex ex. Ullamco cillum sint ipsum tempor anim ullamco sit pariatur excepteur dolor mollit ad quis.\r\n", - "registered": "Saturday, July 5, 2014 5:10 AM", - "latitude": -20.583102, - "longitude": -23.34973, - "tags": [ - "nulla", - "proident", - "enim", - "dolor", - "elit", - "excepteur", - "dolore" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Lacey Perry" - }, - { - "id": 1, - "name": "Stokes Foley" - }, - { - "id": 2, - "name": "Trisha Morales" - } - ], - "greeting": "Hello, Morales! You have 6 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa8214ceb22176ac554f9", - "index": 78, - "guid": "1aa9258a-f508-4e73-adb9-5d2cce0dff79", - "isActive": true, - "balance": "$1,100.42", - "picture": "http://placehold.it/32x32", - "age": 21, - "eyeColor": "blue", - "name": { - "first": "Chandra", - "last": "Patel" - }, - "company": "PROVIDCO", - "email": "chandra.patel@providco.me", - "phone": "+1 (875) 430-3869", - "address": "543 Bainbridge Street, Kidder, Arkansas, 3624", - "about": "Magna ad tempor commodo esse labore mollit sit. Duis laborum excepteur dolor officia exercitation. Elit sunt ex voluptate anim consectetur in ullamco mollit qui non. Cupidatat ipsum et cupidatat cupidatat consequat nulla Lorem culpa minim dolore cupidatat ipsum sint.\r\n", - "registered": "Sunday, June 29, 2014 1:41 AM", - "latitude": 55.150075, - "longitude": -26.185265, - "tags": [ - "amet", - "consectetur", - "occaecat", - "cillum", - "enim", - "ut", - "occaecat" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Geneva Snider" - }, - { - "id": 1, - "name": "Rose Michael" - }, - { - "id": 2, - "name": "Kirkland Mason" - } - ], - "greeting": "Hello, Chandra! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821050884ba49ad868d", - "index": 79, - "guid": "88a0d238-e3c9-4b1a-8d19-08c622f9eaae", - "isActive": false, - "balance": "$1,263.98", - "picture": "http://placehold.it/32x32", - "age": 30, - "eyeColor": "green", - "name": { - "first": "Elsa", - "last": "Chambers" - }, - "company": "VICON", - "email": "elsa.chambers@vicon.us", - "phone": "+1 (940) 436-3956", - "address": "190 Albemarle Terrace, Sheatown, Hawaii, 2654", - "about": "Est do esse elit consectetur elit. Aliqua esse duis est sint non. Enim minim laborum ad duis. Proident laboris quis ea amet nulla occaecat ex laboris duis ut velit.\r\n", - "registered": "Saturday, April 19, 2014 3:28 AM", - "latitude": 62.679122, - "longitude": 95.229313, - "tags": [ - "magna", - "ipsum", - "Lorem", - "ut", - "duis", - "elit", - "sit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Laurie Fuentes" - }, - { - "id": 1, - "name": "Juana Blevins" - }, - { - "id": 2, - "name": "Virginia Hester" - } - ], - "greeting": "Hello, Elsa! You have 6 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821eb0dd28cfdc525a9", - "index": 80, - "guid": "e1574006-8d49-4399-8b59-92eaa0ed2be1", - "isActive": true, - "balance": "$2,395.40", - "picture": "http://placehold.it/32x32", - "age": 23, - "eyeColor": "brown", - "name": { - "first": "Morris", - "last": "Trujillo" - }, - "company": "ZOGAK", - "email": "morris.trujillo@zogak.ca", - "phone": "+1 (919) 553-3453", - "address": "127 Clove Road, Keyport, Puerto Rico, 5969", - "about": "Minim do veniam non elit excepteur enim sunt excepteur non amet. Duis eu consequat adipisicing nostrud ad cupidatat tempor occaecat. Ea id consectetur non anim. Irure dolor qui excepteur anim excepteur adipisicing ea sint id aliquip consequat eu id. Ea exercitation officia nostrud ipsum. Voluptate sunt irure aliqua tempor pariatur irure labore ea amet. Quis reprehenderit aliqua pariatur esse id anim laborum ullamco amet.\r\n", - "registered": "Sunday, February 2, 2014 12:52 PM", - "latitude": -86.963921, - "longitude": -157.636932, - "tags": [ - "occaecat", - "amet", - "ex", - "ea", - "exercitation", - "aliqua", - "elit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Lester Watkins" - }, - { - "id": 1, - "name": "Kellie Clayton" - }, - { - "id": 2, - "name": "Valencia Edwards" - } - ], - "greeting": "Hello, Morris! You have 6 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821f5f0ae13a893ce36", - "index": 81, - "guid": "9dd75e1e-8f3c-473e-800e-518254719ca1", - "isActive": true, - "balance": "$1,956.52", - "picture": "http://placehold.it/32x32", - "age": 36, - "eyeColor": "brown", - "name": { - "first": "Gwen", - "last": "Park" - }, - "company": "INTERGEEK", - "email": "gwen.park@intergeek.org", - "phone": "+1 (830) 581-3561", - "address": "514 Beayer Place, Maxville, New Hampshire, 4162", - "about": "Consequat labore commodo nulla veniam aliqua. Tempor ipsum officia exercitation amet elit dolor labore eu voluptate cillum reprehenderit exercitation proident. Id cillum laborum cupidatat reprehenderit anim cillum exercitation culpa aliqua deserunt cupidatat. In proident ea eu nisi est enim. Quis dolor sit aliquip reprehenderit in id ipsum proident duis. Sit eu sint nisi velit. Minim elit nostrud aliquip anim.\r\n", - "registered": "Wednesday, September 17, 2014 9:38 AM", - "latitude": -66.199245, - "longitude": -52.824656, - "tags": [ - "ex", - "magna", - "incididunt", - "veniam", - "mollit", - "eu", - "sunt" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Nieves Potter" - }, - { - "id": 1, - "name": "Welch Reeves" - }, - { - "id": 2, - "name": "Hardy Forbes" - } - ], - "greeting": "Hello, Gwen! You have 8 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821a20d620a7ec793ac", - "index": 82, - "guid": "1ae142ff-8d6a-4e72-a3f1-3ac4349ad0b7", - "isActive": false, - "balance": "$2,560.11", - "picture": "http://placehold.it/32x32", - "age": 31, - "eyeColor": "green", - "name": { - "first": "Erickson", - "last": "Lancaster" - }, - "company": "SCENTRIC", - "email": "erickson.lancaster@scentric.biz", - "phone": "+1 (980) 465-3465", - "address": "412 Jackson Street, Chumuckla, South Carolina, 3216", - "about": "Id laborum consectetur pariatur non nulla incididunt labore magna minim duis. Ipsum laboris deserunt velit sunt voluptate. Laboris ipsum duis aliquip non aliqua. Commodo veniam mollit voluptate elit nisi nostrud laboris dolor tempor pariatur duis laborum.\r\n", - "registered": "Wednesday, May 7, 2014 8:50 PM", - "latitude": -57.590749, - "longitude": 117.31662, - "tags": [ - "ad", - "elit", - "non", - "fugiat", - "laborum", - "incididunt", - "enim" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Reeves Nguyen" - }, - { - "id": 1, - "name": "Jo Christian" - }, - { - "id": 2, - "name": "Myers Lowe" - } - ], - "greeting": "Hello, Erickson! You have 10 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa8213747fd3443999762", - "index": 83, - "guid": "ec870637-4e65-49c4-abfb-7b99c2d2f094", - "isActive": true, - "balance": "$2,079.21", - "picture": "http://placehold.it/32x32", - "age": 21, - "eyeColor": "blue", - "name": { - "first": "Saundra", - "last": "Kemp" - }, - "company": "LUNCHPOD", - "email": "saundra.kemp@lunchpod.io", - "phone": "+1 (950) 433-2550", - "address": "593 Stuart Street, Edenburg, Texas, 6251", - "about": "Ipsum proident et duis reprehenderit in minim in sint dolore enim aute excepteur cillum eiusmod. Do nulla deserunt quis adipisicing sunt reprehenderit. Dolor pariatur tempor sint ullamco.\r\n", - "registered": "Tuesday, June 24, 2014 6:44 AM", - "latitude": 81.565149, - "longitude": -92.061448, - "tags": [ - "magna", - "commodo", - "esse", - "ad", - "labore", - "amet", - "mollit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Tommie Mays" - }, - { - "id": 1, - "name": "Lou Hubbard" - }, - { - "id": 2, - "name": "Jenna Gentry" - } - ], - "greeting": "Hello, Saundra! You have 9 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821524a5fd2a5f037a2", - "index": 84, - "guid": "e7894fe9-efd4-44ae-afd5-49bfde09b000", - "isActive": true, - "balance": "$2,320.08", - "picture": "http://placehold.it/32x32", - "age": 37, - "eyeColor": "green", - "name": { - "first": "Christensen", - "last": "Wolf" - }, - "company": "GLUKGLUK", - "email": "christensen.wolf@glukgluk.net", - "phone": "+1 (937) 519-3107", - "address": "460 Porter Avenue, Irwin, South Dakota, 2498", - "about": "Ullamco reprehenderit non aliquip amet do deserunt nostrud ea deserunt fugiat. Commodo pariatur est officia dolor dolore in excepteur pariatur laborum ut. Occaecat cillum ullamco nulla eu esse non nisi pariatur ipsum amet do ea ad culpa. Excepteur esse elit laborum deserunt ad consequat. Culpa esse esse nostrud commodo laborum officia sint ea mollit. Dolor culpa pariatur fugiat cillum quis proident non enim esse pariatur duis adipisicing amet. Consequat minim aliqua enim excepteur.\r\n", - "registered": "Saturday, February 8, 2014 10:20 PM", - "latitude": 22.478522, - "longitude": 30.070646, - "tags": [ - "quis", - "ad", - "adipisicing", - "exercitation", - "non", - "eu", - "anim" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Bright Moon" - }, - { - "id": 1, - "name": "Stephenson Sears" - }, - { - "id": 2, - "name": "Fletcher Swanson" - } - ], - "greeting": "Hello, Christensen! You have 9 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa82160fa0826e90b747b", - "index": 85, - "guid": "af08cc83-e8c9-4bcd-84b3-2f3251cf9a02", - "isActive": true, - "balance": "$2,575.60", - "picture": "http://placehold.it/32x32", - "age": 29, - "eyeColor": "brown", - "name": { - "first": "Weaver", - "last": "Parker" - }, - "company": "RETROTEX", - "email": "weaver.parker@retrotex.com", - "phone": "+1 (951) 411-2545", - "address": "560 Madison Place, Sidman, Ohio, 5153", - "about": "Reprehenderit esse dolor tempor consectetur occaecat exercitation consectetur irure commodo. Et eiusmod aute ipsum eu commodo qui id anim proident. Excepteur labore laboris aliqua incididunt ut nisi consequat deserunt dolore officia velit sint consectetur. Laboris sint minim mollit duis. Excepteur nostrud incididunt aute consequat ad magna eu quis. Id dolor eu aliqua deserunt cillum sint ea et nostrud. Lorem amet cillum nulla tempor commodo mollit aliquip do est enim enim.\r\n", - "registered": "Thursday, February 6, 2014 12:55 PM", - "latitude": 87.778566, - "longitude": -122.687026, - "tags": [ - "eu", - "voluptate", - "commodo", - "magna", - "ullamco", - "nulla", - "ea" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Ratliff Mckinney" - }, - { - "id": 1, - "name": "Walker Frye" - }, - { - "id": 2, - "name": "Mcgowan Daniel" - } - ], - "greeting": "Hello, Weaver! You have 5 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8217a543d20bd4b10c1", - "index": 86, - "guid": "5b670ab7-4ee6-4b8e-b379-4e1849b6e329", - "isActive": false, - "balance": "$3,114.39", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "green", - "name": { - "first": "Annabelle", - "last": "Sanders" - }, - "company": "PHORMULA", - "email": "annabelle.sanders@phormula.biz", - "phone": "+1 (982) 489-2678", - "address": "970 Llama Court, Moraida, Maine, 8694", - "about": "Nostrud adipisicing magna nulla magna voluptate duis eu voluptate cupidatat ut dolore excepteur esse dolor. Aliquip exercitation occaecat amet excepteur sit. Velit adipisicing esse labore veniam duis ullamco in ea. Adipisicing eiusmod cillum veniam nostrud sint laboris sit id officia. Esse esse anim sint do ea id. Esse ipsum mollit sit laborum nostrud mollit nulla id.\r\n", - "registered": "Tuesday, January 7, 2014 7:34 AM", - "latitude": 9.515348, - "longitude": -99.138606, - "tags": [ - "ipsum", - "sint", - "dolor", - "laborum", - "est", - "consequat", - "magna" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Juliet Clements" - }, - { - "id": 1, - "name": "Jeannine Pruitt" - }, - { - "id": 2, - "name": "Chambers Warren" - } - ], - "greeting": "Hello, Annabelle! You have 7 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa82179c1fe89e1ccec4d", - "index": 87, - "guid": "31ecaae4-6443-4c00-a20d-82100c49b488", - "isActive": true, - "balance": "$3,803.83", - "picture": "http://placehold.it/32x32", - "age": 40, - "eyeColor": "blue", - "name": { - "first": "Kelley", - "last": "Miles" - }, - "company": "AQUASURE", - "email": "kelley.miles@aquasure.co.uk", - "phone": "+1 (819) 529-2967", - "address": "680 Monument Walk, Wakulla, Vermont, 8903", - "about": "Ea sint dolor nostrud dolor id commodo esse nisi. Reprehenderit minim dolore nostrud sint incididunt excepteur reprehenderit enim velit velit. Proident officia velit Lorem dolore ullamco occaecat.\r\n", - "registered": "Saturday, May 3, 2014 12:23 AM", - "latitude": 73.767872, - "longitude": -118.631186, - "tags": [ - "consectetur", - "irure", - "nostrud", - "nostrud", - "aliquip", - "quis", - "reprehenderit" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Maynard Townsend" - }, - { - "id": 1, - "name": "Carlene Molina" - }, - { - "id": 2, - "name": "Mai Bentley" - } - ], - "greeting": "Hello, Kelley! You have 7 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8218de20c1f1e1e93fa", - "index": 88, - "guid": "8f6b0aac-f2ba-45aa-a7c8-76c413bdeb7a", - "isActive": true, - "balance": "$1,898.86", - "picture": "http://placehold.it/32x32", - "age": 38, - "eyeColor": "brown", - "name": { - "first": "Mckay", - "last": "Velasquez" - }, - "company": "NORALEX", - "email": "mckay.velasquez@noralex.tv", - "phone": "+1 (973) 599-3463", - "address": "152 Roebling Street, Mathews, Delaware, 7958", - "about": "Nostrud esse dolor excepteur cillum aliqua. Ea nulla elit minim sint non culpa id. Et ullamco aute laborum incididunt sint quis. Tempor tempor aliqua in sunt. Minim elit dolor quis excepteur exercitation adipisicing. Pariatur incididunt tempor irure proident exercitation deserunt sint.\r\n", - "registered": "Monday, August 4, 2014 5:00 AM", - "latitude": 81.463276, - "longitude": -66.291508, - "tags": [ - "nisi", - "anim", - "qui", - "est", - "qui", - "ipsum", - "ullamco" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Myrna Rollins" - }, - { - "id": 1, - "name": "Tricia Gilliam" - }, - { - "id": 2, - "name": "Collins Obrien" - } - ], - "greeting": "Hello, Mckay! You have 10 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821b3490524365bc954", - "index": 89, - "guid": "43825015-fed6-40c8-bd80-8aaf228067f9", - "isActive": false, - "balance": "$3,035.21", - "picture": "http://placehold.it/32x32", - "age": 40, - "eyeColor": "blue", - "name": { - "first": "Brandy", - "last": "Hayden" - }, - "company": "OMNIGOG", - "email": "brandy.hayden@omnigog.name", - "phone": "+1 (827) 481-2334", - "address": "537 Pioneer Street, Saticoy, Palau, 803", - "about": "Ea velit consectetur ipsum ut elit pariatur id labore sunt eu incididunt est aliqua. Veniam esse officia do non officia cupidatat proident id officia esse tempor non mollit dolore. Elit voluptate nulla exercitation laboris ex ad irure est do enim aute velit aute. Cillum adipisicing nisi dolor velit duis ad fugiat deserunt non commodo Lorem fugiat sint qui. Aute consectetur magna incididunt tempor in esse consectetur magna qui sit. Culpa consequat laborum duis adipisicing dolor in deserunt ut velit ea ex dolore ullamco esse.\r\n", - "registered": "Wednesday, February 12, 2014 7:32 PM", - "latitude": 4.319892, - "longitude": 81.048442, - "tags": [ - "labore", - "ullamco", - "commodo", - "quis", - "aute", - "nulla", - "do" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Riggs Flynn" - }, - { - "id": 1, - "name": "Kidd Guerrero" - }, - { - "id": 2, - "name": "Rosario Wade" - } - ], - "greeting": "Hello, Brandy! You have 10 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8211b737d086264c9a9", - "index": 90, - "guid": "ec5fe190-d16f-4728-bce1-c5140852c583", - "isActive": true, - "balance": "$2,932.98", - "picture": "http://placehold.it/32x32", - "age": 28, - "eyeColor": "green", - "name": { - "first": "Sonia", - "last": "Orr" - }, - "company": "MUSANPOLY", - "email": "sonia.orr@musanpoly.me", - "phone": "+1 (822) 422-2010", - "address": "908 Dekalb Avenue, Elfrida, Arizona, 6925", - "about": "Ut cillum ex irure amet aliquip voluptate Lorem fugiat reprehenderit sunt reprehenderit quis. Nulla laborum sunt elit ad labore ut cupidatat cillum eiusmod est. Ea irure amet excepteur mollit eu ipsum id adipisicing occaecat. Cupidatat sunt do veniam esse enim sint qui voluptate sint. Qui officia ad cupidatat mollit laboris. Duis tempor fugiat ea mollit cupidatat exercitation sunt incididunt.\r\n", - "registered": "Thursday, September 25, 2014 8:21 PM", - "latitude": 71.876999, - "longitude": 79.322401, - "tags": [ - "pariatur", - "sit", - "culpa", - "dolore", - "cupidatat", - "minim", - "cillum" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Morgan Pittman" - }, - { - "id": 1, - "name": "Bullock Cannon" - }, - { - "id": 2, - "name": "Lakeisha Lynch" - } - ], - "greeting": "Hello, Sonia! You have 9 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821b271c92236e5e9b0", - "index": 91, - "guid": "57cff12c-2a18-48c2-b15a-3c393de707b6", - "isActive": false, - "balance": "$1,874.97", - "picture": "http://placehold.it/32x32", - "age": 40, - "eyeColor": "green", - "name": { - "first": "Stephens", - "last": "Whitaker" - }, - "company": "EARTHPLEX", - "email": "stephens.whitaker@earthplex.us", - "phone": "+1 (960) 419-2183", - "address": "368 Division Avenue, Fivepointville, Colorado, 8609", - "about": "Do aliquip laboris irure consectetur esse reprehenderit. Cillum ex deserunt fugiat ut dolore excepteur culpa eiusmod sit ullamco velit consequat consequat aliquip. Nostrud officia est enim velit fugiat laboris.\r\n", - "registered": "Monday, May 26, 2014 8:04 PM", - "latitude": 7.153481, - "longitude": 100.823578, - "tags": [ - "laborum", - "irure", - "dolore", - "enim", - "nisi", - "cillum", - "deserunt" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Perkins Campos" - }, - { - "id": 1, - "name": "Murray Randall" - }, - { - "id": 2, - "name": "Wallace Blackwell" - } - ], - "greeting": "Hello, Stephens! You have 7 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821c115ee94a728efa4", - "index": 92, - "guid": "7bbe7ace-73f9-4d25-8f20-b50f4b9d4e60", - "isActive": true, - "balance": "$1,168.18", - "picture": "http://placehold.it/32x32", - "age": 33, - "eyeColor": "green", - "name": { - "first": "Shepard", - "last": "Sanchez" - }, - "company": "YOGASM", - "email": "shepard.sanchez@yogasm.ca", - "phone": "+1 (959) 436-3299", - "address": "154 Seeley Street, Witmer, Missouri, 994", - "about": "Adipisicing ut id nulla occaecat enim officia reprehenderit non magna dolor Lorem. Culpa ad proident duis cupidatat nostrud occaecat esse elit pariatur quis Lorem. Velit exercitation anim dolore nisi labore consequat cupidatat magna nostrud sint ut deserunt enim.\r\n", - "registered": "Saturday, February 22, 2014 10:23 PM", - "latitude": -81.429217, - "longitude": -27.374426, - "tags": [ - "aliqua", - "minim", - "consequat", - "aliqua", - "qui", - "proident", - "consequat" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Sara Bruce" - }, - { - "id": 1, - "name": "Kimberley Mcdaniel" - }, - { - "id": 2, - "name": "Tammi England" - } - ], - "greeting": "Hello, Shepard! You have 7 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821a094fdd2592addbd", - "index": 93, - "guid": "69bc8858-bd55-4fa0-95f9-d2cb680a390c", - "isActive": false, - "balance": "$1,746.96", - "picture": "http://placehold.it/32x32", - "age": 35, - "eyeColor": "blue", - "name": { - "first": "Kristy", - "last": "Johnston" - }, - "company": "KONGLE", - "email": "kristy.johnston@kongle.org", - "phone": "+1 (823) 558-3033", - "address": "122 Cadman Plaza, Suitland, Minnesota, 3918", - "about": "Laboris excepteur ea nostrud incididunt est laborum dolor. Consequat ad duis aute proident incididunt commodo adipisicing. Enim voluptate sunt et est excepteur eiusmod commodo. Mollit fugiat reprehenderit ex ullamco magna laboris commodo mollit. Cupidatat tempor tempor minim dolore. Excepteur ipsum esse ipsum nulla.\r\n", - "registered": "Wednesday, January 29, 2014 11:15 PM", - "latitude": 15.335329, - "longitude": -78.001472, - "tags": [ - "veniam", - "consequat", - "ex", - "anim", - "culpa", - "ullamco", - "ex" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Johns Cochran" - }, - { - "id": 1, - "name": "Sheppard Hicks" - }, - { - "id": 2, - "name": "Cervantes Donovan" - } - ], - "greeting": "Hello, Kristy! You have 10 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821311b6242dc75f718", - "index": 94, - "guid": "9de76ab8-2ef7-4b46-a478-5dea8732650a", - "isActive": false, - "balance": "$2,549.05", - "picture": "http://placehold.it/32x32", - "age": 40, - "eyeColor": "blue", - "name": { - "first": "Melendez", - "last": "Golden" - }, - "company": "GRONK", - "email": "melendez.golden@gronk.biz", - "phone": "+1 (986) 553-2124", - "address": "647 Broadway , Reno, Northern Mariana Islands, 9487", - "about": "Aliquip pariatur deserunt culpa eu nostrud eu amet. Adipisicing elit occaecat aliqua ipsum ut. Cillum magna consectetur elit esse sint laboris duis. In ea enim aute eiusmod culpa. Labore quis sunt aliquip excepteur tempor irure amet consequat eu excepteur et occaecat.\r\n", - "registered": "Monday, April 14, 2014 9:41 AM", - "latitude": 55.489443, - "longitude": 3.620039, - "tags": [ - "pariatur", - "magna", - "quis", - "in", - "irure", - "amet", - "esse" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Hilary Dennis" - }, - { - "id": 1, - "name": "Tyler Burgess" - }, - { - "id": 2, - "name": "Eugenia Donaldson" - } - ], - "greeting": "Hello, Melendez! You have 9 unread messages.", - "favoriteFruit": "strawberry" - }, - { - "_id": "543fa821c394a9871527c834", - "index": 95, - "guid": "ec0f31d4-7264-4649-9af9-2716082915d3", - "isActive": true, - "balance": "$2,810.24", - "picture": "http://placehold.it/32x32", - "age": 34, - "eyeColor": "brown", - "name": { - "first": "Eleanor", - "last": "Curtis" - }, - "company": "ZAPPIX", - "email": "eleanor.curtis@zappix.io", - "phone": "+1 (824) 461-3776", - "address": "981 Lyme Avenue, Oneida, Marshall Islands, 6015", - "about": "Commodo labore do pariatur exercitation voluptate ea velit velit qui ex duis. Commodo est excepteur ad labore aute enim eu. Adipisicing irure exercitation sint consectetur exercitation occaecat aute exercitation commodo.\r\n", - "registered": "Monday, May 5, 2014 7:51 AM", - "latitude": -5.604007, - "longitude": -125.532894, - "tags": [ - "aliqua", - "commodo", - "non", - "magna", - "quis", - "velit", - "irure" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Monica Carr" - }, - { - "id": 1, - "name": "Coleman Simpson" - }, - { - "id": 2, - "name": "Wilma Fisher" - } - ], - "greeting": "Hello, Eleanor! You have 7 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa821a5b5e35d24f265b3", - "index": 96, - "guid": "c865c0ff-8505-4d02-af0a-c5a275d03fd5", - "isActive": true, - "balance": "$3,192.24", - "picture": "http://placehold.it/32x32", - "age": 22, - "eyeColor": "blue", - "name": { - "first": "Terrell", - "last": "Greene" - }, - "company": "AUTOGRATE", - "email": "terrell.greene@autograte.net", - "phone": "+1 (933) 557-3825", - "address": "435 Bridgewater Street, Fresno, New Jersey, 8124", - "about": "Elit sit ut anim reprehenderit anim ipsum esse tempor aliqua id ullamco. Exercitation est velit aliquip est elit mollit magna velit. Elit eiusmod esse voluptate consectetur enim id exercitation adipisicing et laborum. Irure fugiat ut sint exercitation dolor nostrud qui mollit eiusmod cupidatat. Commodo ad dolore incididunt ex quis nostrud veniam pariatur aliquip ea reprehenderit reprehenderit.\r\n", - "registered": "Sunday, September 21, 2014 3:31 AM", - "latitude": 76.638623, - "longitude": 147.966829, - "tags": [ - "aliquip", - "qui", - "nisi", - "ut", - "non", - "proident", - "et" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Lucile Jordan" - }, - { - "id": 1, - "name": "Bender Sheppard" - }, - { - "id": 2, - "name": "Milagros Francis" - } - ], - "greeting": "Hello, Terrell! You have 8 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa8216cc444257e522ec0", - "index": 97, - "guid": "90c19881-6521-4012-aba7-f4d143953965", - "isActive": false, - "balance": "$1,509.96", - "picture": "http://placehold.it/32x32", - "age": 31, - "eyeColor": "green", - "name": { - "first": "Holman", - "last": "Hines" - }, - "company": "NORSUP", - "email": "holman.hines@norsup.com", - "phone": "+1 (925) 565-2825", - "address": "902 Monroe Street, Marienthal, Virgin Islands, 2354", - "about": "Eu cupidatat consectetur labore voluptate nulla non amet incididunt labore non magna tempor. Veniam et sint qui reprehenderit reprehenderit sint ut laboris elit. Pariatur in eu dolore culpa nisi laboris officia magna do velit. Cupidatat proident excepteur officia labore irure sunt elit velit dolor commodo. Minim quis sint minim non incididunt Lorem elit cupidatat adipisicing quis esse non sint et. Laborum culpa incididunt incididunt fugiat minim ex deserunt et.\r\n", - "registered": "Sunday, April 27, 2014 8:05 PM", - "latitude": 61.825518, - "longitude": -28.393161, - "tags": [ - "voluptate", - "veniam", - "Lorem", - "ex", - "in", - "est", - "exercitation" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Cecelia Chapman" - }, - { - "id": 1, - "name": "Isabella Castaneda" - }, - { - "id": 2, - "name": "Montoya Chen" - } - ], - "greeting": "Hello, Holman! You have 9 unread messages.", - "favoriteFruit": "apple" - }, - { - "_id": "543fa8210659aa5cdca41f7e", - "index": 98, - "guid": "81adf15d-24b6-454c-a75f-f5be12f6ac75", - "isActive": false, - "balance": "$2,564.95", - "picture": "http://placehold.it/32x32", - "age": 39, - "eyeColor": "green", - "name": { - "first": "Horton", - "last": "Poole" - }, - "company": "GROK", - "email": "horton.poole@grok.biz", - "phone": "+1 (908) 520-3683", - "address": "141 Gatling Place, Hackneyville, Oregon, 2976", - "about": "Consequat nisi reprehenderit incididunt id minim cillum. Lorem reprehenderit fugiat irure dolor excepteur velit. Est nostrud culpa ut reprehenderit in duis id voluptate pariatur voluptate. Exercitation Lorem esse exercitation Lorem esse. Excepteur mollit sit ut voluptate ipsum pariatur anim sint sunt cillum sit consequat.\r\n", - "registered": "Thursday, September 18, 2014 6:11 AM", - "latitude": -3.525694, - "longitude": -103.351985, - "tags": [ - "deserunt", - "voluptate", - "cillum", - "id", - "magna", - "deserunt", - "incididunt" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Hope Lara" - }, - { - "id": 1, - "name": "French Garner" - }, - { - "id": 2, - "name": "Stein Sykes" - } - ], - "greeting": "Hello, Horton! You have 5 unread messages.", - "favoriteFruit": "banana" - }, - { - "_id": "543fa821cf1b15f13d8c3938", - "index": 99, - "guid": "44533089-c11a-4656-b2d1-9ab6be887f30", - "isActive": false, - "balance": "$3,192.31", - "picture": "http://placehold.it/32x32", - "age": 37, - "eyeColor": "green", - "name": { - "first": "Wanda", - "last": "Wiggins" - }, - "company": "ZEPITOPE", - "email": "wanda.wiggins@zepitope.co.uk", - "phone": "+1 (998) 461-3780", - "address": "427 Canton Court, Heil, Utah, 8283", - "about": "Do officia et exercitation dolor esse. Ut nisi eiusmod dolore laborum ad ex mollit minim. Pariatur qui culpa ullamco ex eiusmod.\r\n", - "registered": "Tuesday, August 26, 2014 6:59 PM", - "latitude": 44.770809, - "longitude": 150.936963, - "tags": [ - "consectetur", - "mollit", - "laborum", - "ipsum", - "quis", - "cupidatat", - "in" - ], - "range": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "friends": [ - { - "id": 0, - "name": "Kristie Cain" - }, - { - "id": 1, - "name": "Geraldine Zimmerman" - }, - { - "id": 2, - "name": "Ingrid Harper" - } - ], - "greeting": "Hello, Wanda! You have 5 unread messages.", - "favoriteFruit": "strawberry" - } -] \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/snappy/AUTHORS b/vendor/github.com/klauspost/compress/snappy/AUTHORS deleted file mode 100644 index dc5563f2db6..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/AUTHORS +++ /dev/null @@ -1,14 +0,0 @@ -# This is the official list of Snappy-Go authors for copyright purposes. -# This file is distinct from the CONTRIBUTORS files. -# See the latter for an explanation. - -# Names should be added to this file as -# Name or Organization -# The email address is not required for organizations. - -# Please keep the list sorted. - -Damian Gryski -Google Inc. -Jan Mercl <0xjnml@gmail.com> -Sebastien Binet diff --git a/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS b/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS deleted file mode 100644 index 1c7cb7fa8c5..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/CONTRIBUTORS +++ /dev/null @@ -1,36 +0,0 @@ -# This is the official list of people who can contribute -# (and typically have contributed) code to the Snappy-Go repository. -# The AUTHORS file lists the copyright holders; this file -# lists people. For example, Google employees are listed here -# but not in AUTHORS, because Google holds the copyright. -# -# The submission process automatically checks to make sure -# that people submitting code are listed in this file (by email address). -# -# Names should be added to this file only after verifying that -# the individual or the individual's organization has agreed to -# the appropriate Contributor License Agreement, found here: -# -# http://code.google.com/legal/individual-cla-v1.0.html -# http://code.google.com/legal/corporate-cla-v1.0.html -# -# The agreement for individuals can be filled out on the web. -# -# When adding J Random Contributor's name to this file, -# either J's name or J's organization's name should be -# added to the AUTHORS file, depending on whether the -# individual or corporate CLA was used. - -# Names should be added to this file like so: -# Name - -# Please keep the list sorted. - -Damian Gryski -Jan Mercl <0xjnml@gmail.com> -Kai Backman -Marc-Antoine Ruel -Nigel Tao -Rob Pike -Russ Cox -Sebastien Binet diff --git a/vendor/github.com/klauspost/compress/snappy/README b/vendor/github.com/klauspost/compress/snappy/README deleted file mode 100644 index 97a622c87a7..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/README +++ /dev/null @@ -1,9 +0,0 @@ -The Snappy compression format in the Go programming language. - -Forked by Klaus Post 2016. - -To download and install from source: -$ go get github.com/klauspost/compress/snappy - -Unless otherwise noted, the Snappy-Go source files are distributed -under the BSD-style license found in the LICENSE file. diff --git a/vendor/github.com/klauspost/compress/snappy/asm_amd64.go b/vendor/github.com/klauspost/compress/snappy/asm_amd64.go deleted file mode 100644 index d1da9364741..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/asm_amd64.go +++ /dev/null @@ -1,32 +0,0 @@ -//+build !noasm -//+build !appengine - -// Copyright 2015, Klaus Post, see LICENSE for details. - -package snappy - -import ( - "github.com/klauspost/cpuid" -) - -// matchLenSSE4 returns the number of matching bytes in a and b -// up to length 'max'. Both slices must be at least 'max' -// bytes in size. -// It uses the PCMPESTRI SSE 4.2 instruction. -//go:noescape -func matchLenSSE4(a, b []byte, max int) int - -// Detect SSE 4.2 feature. -func init() { - useSSE42 = cpuid.CPU.SSE42() -} - -// matchLenSSE4Ref is a reference matcher. -func matchLenSSE4Ref(a, b []byte, max int) int { - for i := 0; i < max; i++ { - if a[i] != b[i] { - return i - } - } - return max -} diff --git a/vendor/github.com/klauspost/compress/snappy/asm_amd64.s b/vendor/github.com/klauspost/compress/snappy/asm_amd64.s deleted file mode 100644 index 4c3f46201b9..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/asm_amd64.s +++ /dev/null @@ -1,65 +0,0 @@ -//+build !noasm !appengine - -// Copyright 2015, Klaus Post, see LICENSE for details. - -// func matchLenSSE4(a, b []byte, max int) int -TEXT ·matchLenSSE4(SB), 7, $0 - MOVQ a+0(FP), SI // RSI: &a - MOVQ b+24(FP), DI // RDI: &b - MOVQ max+48(FP), R10 // R10: max - XORQ R11, R11 // R11: match length - MOVQ R10, R12 // R12: Remainder - SHRQ $4, R10 // max / 16 - MOVQ $16, AX // Set length for PCMPESTRI - MOVQ $16, DX // Set length for PCMPESTRI - ANDQ $15, R12 // max & 15 - TESTQ R10, R10 - JZ matchlen_verysmall - -loopback_matchlen: - MOVOU (SI), X0 // a[x] - MOVOU (DI), X1 // b[x] - - // PCMPESTRI $0x18, X1, X0 - // 0x18 = _SIDD_UBYTE_OPS (0x0) | _SIDD_CMP_EQUAL_EACH (0x8) | _SIDD_NEGATIVE_POLARITY (0x10) - BYTE $0x66; BYTE $0x0f; BYTE $0x3a - BYTE $0x61; BYTE $0xc1; BYTE $0x18 - - JC match_ended - - ADDQ $16, SI - ADDQ $16, DI - ADDQ $16, R11 - - SUBQ $1, R10 - JNZ loopback_matchlen - - // Check the remainder using REP CMPSB -matchlen_verysmall: - TESTQ R12, R12 - JZ done_matchlen - MOVQ R12, CX - ADDQ R12, R11 - - // Compare CX bytes at [SI] [DI] - // Subtract one from CX for every match. - // Terminates when CX is zero (checked pre-compare) - CLD - REP; CMPSB - - // Check if last was a match. - JZ done_matchlen - - // Subtract remanding bytes. - SUBQ CX, R11 - SUBQ $1, R11 - MOVQ R11, ret+56(FP) - RET - -match_ended: - ADDQ CX, R11 - -done_matchlen: - MOVQ R11, ret+56(FP) - RET - diff --git a/vendor/github.com/klauspost/compress/snappy/asm_generic.go b/vendor/github.com/klauspost/compress/snappy/asm_generic.go deleted file mode 100644 index 1d45dd06c86..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/asm_generic.go +++ /dev/null @@ -1,15 +0,0 @@ -//+build !amd64 noasm appengine - -// Copyright 2015, Klaus Post, see LICENSE for details. - -package snappy - -func init() { - useSSE42 = false -} - -// matchLenSSE4 should never be called. -func matchLenSSE4(a, b []byte, max int) int { - panic("no assembler") - return 0 -} diff --git a/vendor/github.com/klauspost/compress/snappy/decode.go b/vendor/github.com/klauspost/compress/snappy/decode.go deleted file mode 100644 index 861ef0a2956..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/decode.go +++ /dev/null @@ -1,294 +0,0 @@ -// Copyright 2011 The Snappy-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 snappy - -import ( - "encoding/binary" - "errors" - "io" -) - -var ( - // ErrCorrupt reports that the input is invalid. - ErrCorrupt = errors.New("snappy: corrupt input") - // ErrTooLarge reports that the uncompressed length is too large. - ErrTooLarge = errors.New("snappy: decoded block is too large") - // ErrUnsupported reports that the input isn't supported. - ErrUnsupported = errors.New("snappy: unsupported input") - - errUnsupportedCopy4Tag = errors.New("snappy: unsupported COPY_4 tag") - errUnsupportedLiteralLength = errors.New("snappy: unsupported literal length") -) - -// DecodedLen returns the length of the decoded block. -func DecodedLen(src []byte) (int, error) { - v, _, err := decodedLen(src) - return v, err -} - -// decodedLen returns the length of the decoded block and the number of bytes -// that the length header occupied. -func decodedLen(src []byte) (blockLen, headerLen int, err error) { - v, n := binary.Uvarint(src) - if n <= 0 || v > 0xffffffff { - return 0, 0, ErrCorrupt - } - - const wordSize = 32 << (^uint(0) >> 32 & 1) - if wordSize == 32 && v > 0x7fffffff { - return 0, 0, ErrTooLarge - } - return int(v), n, nil -} - -// Decode returns the decoded form of src. The returned slice may be a sub- -// slice of dst if dst was large enough to hold the entire decoded block. -// Otherwise, a newly allocated slice will be returned. -// It is valid to pass a nil dst. -func Decode(dst, src []byte) ([]byte, error) { - dLen, s, err := decodedLen(src) - if err != nil { - return nil, err - } - if len(dst) < dLen { - dst = make([]byte, dLen) - } - - var d, offset, length int - for s < len(src) { - switch src[s] & 0x03 { - case tagLiteral: - x := uint(src[s] >> 2) - switch { - case x < 60: - s++ - case x == 60: - s += 2 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return nil, ErrCorrupt - } - x = uint(src[s-1]) - case x == 61: - s += 3 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return nil, ErrCorrupt - } - x = uint(src[s-2]) | uint(src[s-1])<<8 - case x == 62: - s += 4 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return nil, ErrCorrupt - } - x = uint(src[s-3]) | uint(src[s-2])<<8 | uint(src[s-1])<<16 - case x == 63: - s += 5 - if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line. - return nil, ErrCorrupt - } - x = uint(src[s-4]) | uint(src[s-3])<<8 | uint(src[s-2])<<16 | uint(src[s-1])<<24 - } - // length always > 0 - length = int(x + 1) - if length > len(dst)-d || length > len(src)-s { - return nil, ErrCorrupt - } - copy(dst[d:], src[s:s+length]) - d += length - s += length - continue - - case tagCopy1: - s += 2 - if s > len(src) { - return nil, ErrCorrupt - } - length = 4 + int(src[s-2])>>2&0x7 - offset = int(src[s-2])&0xe0<<3 | int(src[s-1]) - - case tagCopy2: - s += 3 - if s > len(src) { - return nil, ErrCorrupt - } - length = 1 + int(src[s-3])>>2 - offset = int(src[s-2]) | int(src[s-1])<<8 - - case tagCopy4: - return nil, errUnsupportedCopy4Tag - } - - if uint(offset-1) >= uint(d) || length > len(dst)-d { - return nil, ErrCorrupt - } - for end := d + length; d != end; d++ { - dst[d] = dst[d-offset] - } - } - if d != dLen { - return nil, ErrCorrupt - } - return dst[:d], nil -} - -// NewReader returns a new Reader that decompresses from r, using the framing -// format described at -// https://github.com/google/snappy/blob/master/framing_format.txt -func NewReader(r io.Reader) *Reader { - return &Reader{ - r: r, - decoded: make([]byte, maxUncompressedChunkLen), - buf: make([]byte, maxEncodedLenOfMaxUncompressedChunkLen+checksumSize), - } -} - -// Reader is an io.Reader that can read Snappy-compressed bytes. -type Reader struct { - r io.Reader - err error - decoded []byte - buf []byte - // decoded[i:j] contains decoded bytes that have not yet been passed on. - i, j int - readHeader bool -} - -// Reset discards any buffered data, resets all state, and switches the Snappy -// reader to read from r. This permits reusing a Reader rather than allocating -// a new one. -func (r *Reader) Reset(reader io.Reader) { - r.r = reader - r.err = nil - r.i = 0 - r.j = 0 - r.readHeader = false -} - -func (r *Reader) readFull(p []byte) (ok bool) { - if _, r.err = io.ReadFull(r.r, p); r.err != nil { - if r.err == io.ErrUnexpectedEOF { - r.err = ErrCorrupt - } - return false - } - return true -} - -// Read satisfies the io.Reader interface. -func (r *Reader) Read(p []byte) (int, error) { - if r.err != nil { - return 0, r.err - } - for { - if r.i < r.j { - n := copy(p, r.decoded[r.i:r.j]) - r.i += n - return n, nil - } - if !r.readFull(r.buf[:4]) { - return 0, r.err - } - chunkType := r.buf[0] - if !r.readHeader { - if chunkType != chunkTypeStreamIdentifier { - r.err = ErrCorrupt - return 0, r.err - } - r.readHeader = true - } - chunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16 - if chunkLen > len(r.buf) { - r.err = ErrUnsupported - return 0, r.err - } - - // The chunk types are specified at - // https://github.com/google/snappy/blob/master/framing_format.txt - switch chunkType { - case chunkTypeCompressedData: - // Section 4.2. Compressed data (chunk type 0x00). - if chunkLen < checksumSize { - r.err = ErrCorrupt - return 0, r.err - } - buf := r.buf[:chunkLen] - if !r.readFull(buf) { - return 0, r.err - } - checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 - buf = buf[checksumSize:] - - n, err := DecodedLen(buf) - if err != nil { - r.err = err - return 0, r.err - } - if n > len(r.decoded) { - r.err = ErrCorrupt - return 0, r.err - } - if _, err := Decode(r.decoded, buf); err != nil { - r.err = err - return 0, r.err - } - if crc(r.decoded[:n]) != checksum { - r.err = ErrCorrupt - return 0, r.err - } - r.i, r.j = 0, n - continue - - case chunkTypeUncompressedData: - // Section 4.3. Uncompressed data (chunk type 0x01). - if chunkLen < checksumSize { - r.err = ErrCorrupt - return 0, r.err - } - buf := r.buf[:checksumSize] - if !r.readFull(buf) { - return 0, r.err - } - checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24 - // Read directly into r.decoded instead of via r.buf. - n := chunkLen - checksumSize - if !r.readFull(r.decoded[:n]) { - return 0, r.err - } - if crc(r.decoded[:n]) != checksum { - r.err = ErrCorrupt - return 0, r.err - } - r.i, r.j = 0, n - continue - - case chunkTypeStreamIdentifier: - // Section 4.1. Stream identifier (chunk type 0xff). - if chunkLen != len(magicBody) { - r.err = ErrCorrupt - return 0, r.err - } - if !r.readFull(r.buf[:len(magicBody)]) { - return 0, r.err - } - for i := 0; i < len(magicBody); i++ { - if r.buf[i] != magicBody[i] { - r.err = ErrCorrupt - return 0, r.err - } - } - continue - } - - if chunkType <= 0x7f { - // Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f). - r.err = ErrUnsupported - return 0, r.err - } - // Section 4.4 Padding (chunk type 0xfe). - // Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd). - if !r.readFull(r.buf[:chunkLen]) { - return 0, r.err - } - } -} diff --git a/vendor/github.com/klauspost/compress/snappy/encode.go b/vendor/github.com/klauspost/compress/snappy/encode.go deleted file mode 100644 index b3835178f49..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/encode.go +++ /dev/null @@ -1,514 +0,0 @@ -// Copyright 2011 The Snappy-Go Authors. All rights reserved. -// Copyright 2016 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package snappy - -import ( - "encoding/binary" - "errors" - "io" - "sync" -) - -// We limit how far copy back-references can go, the same as the C++ code. -const maxOffset = 1 << 15 - -// emitLiteral writes a literal chunk and returns the number of bytes written. -func emitLiteral(dst, lit []byte) int { - i, n := 0, uint(len(lit)-1) - switch { - case n < 60: - dst[0] = uint8(n)<<2 | tagLiteral - i = 1 - case n < 1<<8: - dst[0] = 60<<2 | tagLiteral - dst[1] = uint8(n) - i = 2 - case n < 1<<16: - dst[0] = 61<<2 | tagLiteral - dst[1] = uint8(n) - dst[2] = uint8(n >> 8) - i = 3 - case n < 1<<24: - dst[0] = 62<<2 | tagLiteral - dst[1] = uint8(n) - dst[2] = uint8(n >> 8) - dst[3] = uint8(n >> 16) - i = 4 - case int64(n) < 1<<32: - dst[0] = 63<<2 | tagLiteral - dst[1] = uint8(n) - dst[2] = uint8(n >> 8) - dst[3] = uint8(n >> 16) - dst[4] = uint8(n >> 24) - i = 5 - default: - panic("snappy: source buffer is too long") - } - if copy(dst[i:], lit) != len(lit) { - panic("snappy: destination buffer is too short") - } - return i + len(lit) -} - -// emitCopy writes a copy chunk and returns the number of bytes written. -func emitCopy(dst []byte, offset, length int) int { - i := 0 - for length > 0 { - x := length - 4 - if 0 <= x && x < 1<<3 && offset < 1<<11 { - dst[i+0] = uint8(offset>>8)&0x07<<5 | uint8(x)<<2 | tagCopy1 - dst[i+1] = uint8(offset) - i += 2 - break - } - - x = length - if x > 1<<6 { - x = 1 << 6 - } - dst[i+0] = uint8(x-1)<<2 | tagCopy2 - dst[i+1] = uint8(offset) - dst[i+2] = uint8(offset >> 8) - i += 3 - length -= x - } - return i -} - -var encPool = sync.Pool{New: func() interface{} { return new(encoder) }} - -// Encode returns the encoded form of src. The returned slice may be a sub- -// slice of dst if dst was large enough to hold the entire encoded block. -// Otherwise, a newly allocated slice will be returned. -// It is valid to pass a nil dst. -// -// The source may not be larger than 2^32 - 1 bytes (4GB). -// This is a Snappy format limitation. Use the framing format Writer -// for larger data sizes. -func Encode(dst, src []byte) []byte { - e := encPool.Get().(*encoder) - if n := MaxEncodedLen(len(src)); n < 0 { - panic(ErrTooLarge) - } else if len(dst) < n { - dst = make([]byte, n) - } - - // The block starts with the varint-encoded length of the decompressed bytes. - d := binary.PutUvarint(dst, uint64(len(src))) - - for len(src) > 0 { - p := src - src = nil - if len(p) > maxInternalEncodeSrcLen { - p, src = p[:maxInternalEncodeSrcLen], p[maxInternalEncodeSrcLen:] - } - d += e.encode(dst[d:], p) - } - encPool.Put(e) - return dst[:d] -} - -const tableBits = 14 // Bits used in the table -const tableSize = 1 << tableBits // Size of the table -var useSSE42 bool - -// maxInternalEncodeSrcLen must be less than math.MaxInt32, so that in the -// (internal) encode function, it is safe to have the s variable (which indexes -// the src slice), and therefore the hash table entries, to have type int32 -// instead of int. -const maxInternalEncodeSrcLen = 0x40000000 - -type encoder struct { - table [tableSize]int32 - cur int -} - -// encode encodes a non-empty src to a guaranteed-large-enough dst. It assumes -// that the varint-encoded length of the decompressed bytes has already been -// written. -// -// It also assumes that: -// len(dst) >= MaxEncodedLen(len(src)) && -// 0 < len(src) && -// len(src) <= maxInternalEncodeSrcLen && -// maxInternalEncodeSrcLen < math.MaxInt32. -func (e *encoder) encode(dst, src []byte) (d int) { - // Return early if src is short. - if len(src) <= 4 { - if len(src) != 0 { - d += emitLiteral(dst[d:], src) - } - e.cur += len(src) - return d - } - if useSSE42 { - return e.encSSE4(dst, src) - } - return e.enc(dst, src) -} - -const skipBits = 4 -const maxSkip = (1 << 7) - 1 - -func (e *encoder) enc(dst, src []byte) (d int) { - // Ensure that e.cur doesn't wrap. - if e.cur > maxInternalEncodeSrcLen { - e.cur = 0 - } - - // Iterate over the source bytes. - var ( - s int // The iterator position. - t int // The last position with the same hash as s. - lit int // The start position of any pending literal bytes. - tadd = -1 - e.cur // Added to t to adjust match to offset - sadd = 1 + e.cur // Added to s to adjust match to offset - ) - for s+3 < len(src) { - // Update the hash table. - b0, b1, b2, b3 := src[s], src[s+1], src[s+2], src[s+3] - h := uint32(b0) | uint32(b1)<<8 | uint32(b2)<<16 | uint32(b3)<<24 - p := &e.table[(h*0x1e35a7bd)>>(32-tableBits)] - // We need to to store values in [-1, inf) in table. To save - // some initialization time, (re)use the table's zero value - // and shift the values against this zero: add 1 on writes, - // subtract 1 on reads. - t, *p = int(*p)+tadd, int32(s+sadd) - - // We calculate the offset in the current buffer. - // if t >= s this will be negative, when converted to a uint this will always be > maxOffset - offset := uint(s - t - 1) - - // If t is invalid or src[s:s+4] differs from src[t:t+4], accumulate a literal byte. - if t < 0 || offset >= (maxOffset-1) || b0 != src[t] || b1 != src[t+1] || b2 != src[t+2] || b3 != src[t+3] { - // Skip bytes if last match was >= 32 bytes in the past. - s += 1 + (((s - lit) >> skipBits) & maxSkip) - continue - } - - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - d += emitLiteral(dst[d:], src[lit:s]) - } - // Extend the match to be as long as possible. - s0 := s - s, t = s+4, t+4 - for s < len(src) && src[s] == src[t] { - s++ - t++ - } - // Emit the copied bytes. - d += emitCopy(dst[d:], s-t, s-s0) - lit = s - } - - // Emit any final pending literal bytes and return. - if lit != len(src) { - d += emitLiteral(dst[d:], src[lit:]) - } - - e.cur += len(src) - return d -} - -func (e *encoder) encSSE4(dst, src []byte) (d int) { - // Ensure that e.cur doesn't wrap. - if e.cur > maxInternalEncodeSrcLen { - e.cur = 0 - } - - // Iterate over the source bytes. - var ( - s int // The iterator position. - t int // The last position with the same hash as s. - lit int // The start position of any pending literal bytes. - tadd = -1 - e.cur // Added to t to adjust match to offset - sadd = 1 + e.cur // Added to s to adjust match to offset - ) - for s+3 < len(src) { - // Update the hash table. - h := uint32(src[s]) | uint32(src[s+1])<<8 | uint32(src[s+2])<<16 | uint32(src[s+3])<<24 - p := &e.table[(h*0x1e35a7bd)>>(32-tableBits)] - // We need to to store values in [-1, inf) in table. To save - // some initialization time, (re)use the table's zero value - // and shift the values against this zero: add 1 on writes, - // subtract 1 on reads. - t, *p = int(*p)+tadd, int32(s+sadd) - - // We calculate the offset in the current buffer. - // if t >= s this will be negative, when converted to a uint this will always be > maxOffset - offset := uint(s - t - 1) - - // If t is invalid or src[s:s+4] differs from src[t:t+4], accumulate a literal byte. - // This saves us the branch to test if t >=s, which would indicate a forward reference, - // that is a result of e.cur wrapping. - if t < 0 || offset >= maxOffset-1 { - // Skip bytes if last match was >= 32 bytes in the past. - s += 1 + (((s - lit) >> skipBits) & maxSkip) - continue - } - - length := len(src) - s - - // Extend the match to be as long as possible. - match := matchLenSSE4(src[t:], src[s:], length) - - /* match2 := matchLenSSE4Ref(src[t:], src[s:], length) - - if match != match2 { - fmt.Printf("%v\n%v\nlen: %d\n", src[t:t+length], src[s:s+length], len(src)-s) - s := fmt.Sprintf("got %d != %d expected", match, match2) - panic(s) - } - */ - // Return if short. - if match < 4 { - s += 1 + (((s - lit) >> skipBits) & maxSkip) - continue - } - - // Otherwise, we have a match. First, emit any pending literal bytes. - if lit != s { - // Skip bytes if last match was >= 32 bytes in the past. - d += emitLiteral(dst[d:], src[lit:s]) - } - - // Emit the copied bytes. - d += emitCopy(dst[d:], s-t, match) - s += match - lit = s - } - - // Emit any final pending literal bytes and return. - if lit != len(src) { - d += emitLiteral(dst[d:], src[lit:]) - } - - e.cur += len(src) - return d -} - -// MaxEncodedLen returns the maximum length of a snappy block, given its -// uncompressed length. -// -// It will return a negative value if srcLen is too large to encode. -func MaxEncodedLen(srcLen int) int { - n := uint64(srcLen) - if n > 0xffffffff { - return -1 - } - // Compressed data can be defined as: - // compressed := item* literal* - // item := literal* copy - // - // The trailing literal sequence has a space blowup of at most 62/60 - // since a literal of length 60 needs one tag byte + one extra byte - // for length information. - // - // Item blowup is trickier to measure. Suppose the "copy" op copies - // 4 bytes of data. Because of a special check in the encoding code, - // we produce a 4-byte copy only if the offset is < 65536. Therefore - // the copy op takes 3 bytes to encode, and this type of item leads - // to at most the 62/60 blowup for representing literals. - // - // Suppose the "copy" op copies 5 bytes of data. If the offset is big - // enough, it will take 5 bytes to encode the copy op. Therefore the - // worst case here is a one-byte literal followed by a five-byte copy. - // That is, 6 bytes of input turn into 7 bytes of "compressed" data. - // - // This last factor dominates the blowup, so the final estimate is: - n = 32 + n + n/6 - if n > 0xffffffff { - return -1 - } - return int(n) -} - -var errClosed = errors.New("snappy: Writer is closed") - -// NewWriter returns a new Writer that compresses to w. -// -// The Writer returned does not buffer writes. There is no need to Flush or -// Close such a Writer. -// -// Deprecated: the Writer returned is not suitable for many small writes, only -// for few large writes. Use NewBufferedWriter instead, which is efficient -// regardless of the frequency and shape of the writes, and remember to Close -// that Writer when done. -func NewWriter(w io.Writer) *Writer { - return &Writer{ - w: w, - e: encPool.Get().(*encoder), - obuf: make([]byte, obufLen), - } -} - -// NewBufferedWriter returns a new Writer that compresses to w, using the -// framing format described at -// https://github.com/google/snappy/blob/master/framing_format.txt -// -// The Writer returned buffers writes. Users must call Close to guarantee all -// data has been forwarded to the underlying io.Writer. They may also call -// Flush zero or more times before calling Close. -func NewBufferedWriter(w io.Writer) *Writer { - return &Writer{ - w: w, - e: encPool.Get().(*encoder), - ibuf: make([]byte, 0, maxUncompressedChunkLen), - obuf: make([]byte, obufLen), - } -} - -// Writer is an io.Writer than can write Snappy-compressed bytes. -type Writer struct { - w io.Writer - err error - e *encoder - - // ibuf is a buffer for the incoming (uncompressed) bytes. - // - // Its use is optional. For backwards compatibility, Writers created by the - // NewWriter function have ibuf == nil, do not buffer incoming bytes, and - // therefore do not need to be Flush'ed or Close'd. - ibuf []byte - - // obuf is a buffer for the outgoing (compressed) bytes. - obuf []byte - - // wroteStreamHeader is whether we have written the stream header. - wroteStreamHeader bool -} - -// Reset discards the writer's state and switches the Snappy writer to write to -// w. This permits reusing a Writer rather than allocating a new one. -func (w *Writer) Reset(writer io.Writer) { - w.w = writer - w.err = nil - if w.ibuf != nil { - w.ibuf = w.ibuf[:0] - } - w.wroteStreamHeader = false -} - -// Write satisfies the io.Writer interface. -func (w *Writer) Write(p []byte) (nRet int, errRet error) { - if w.ibuf == nil { - // Do not buffer incoming bytes. This does not perform or compress well - // if the caller of Writer.Write writes many small slices. This - // behavior is therefore deprecated, but still supported for backwards - // compatibility with code that doesn't explicitly Flush or Close. - return w.write(p) - } - - // The remainder of this method is based on bufio.Writer.Write from the - // standard library. - - for len(p) > (cap(w.ibuf)-len(w.ibuf)) && w.err == nil { - var n int - if len(w.ibuf) == 0 { - // Large write, empty buffer. - // Write directly from p to avoid copy. - n, _ = w.write(p) - } else { - n = copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) - w.ibuf = w.ibuf[:len(w.ibuf)+n] - w.Flush() - } - nRet += n - p = p[n:] - } - if w.err != nil { - return nRet, w.err - } - n := copy(w.ibuf[len(w.ibuf):cap(w.ibuf)], p) - w.ibuf = w.ibuf[:len(w.ibuf)+n] - nRet += n - return nRet, nil -} - -func (w *Writer) write(p []byte) (nRet int, errRet error) { - if w.err != nil { - return 0, w.err - } - for len(p) > 0 { - obufStart := len(magicChunk) - if !w.wroteStreamHeader { - w.wroteStreamHeader = true - copy(w.obuf, magicChunk) - obufStart = 0 - } - - var uncompressed []byte - if len(p) > maxUncompressedChunkLen { - uncompressed, p = p[:maxUncompressedChunkLen], p[maxUncompressedChunkLen:] - } else { - uncompressed, p = p, nil - } - checksum := crc(uncompressed) - - // Compress the buffer, discarding the result if the improvement - // isn't at least 12.5%. - - // The block starts with the varint-encoded length of the decompressed bytes. - d := binary.PutUvarint(w.obuf[obufHeaderLen:], uint64(len(uncompressed))) - d += w.e.encode(w.obuf[obufHeaderLen+d:], uncompressed) - - chunkType := uint8(chunkTypeCompressedData) - chunkLen := 4 + d - obufEnd := obufHeaderLen + d - if d >= len(uncompressed)-len(uncompressed)/8 { - chunkType = chunkTypeUncompressedData - chunkLen = 4 + len(uncompressed) - obufEnd = obufHeaderLen - } - - // Fill in the per-chunk header that comes before the body. - w.obuf[len(magicChunk)+0] = chunkType - w.obuf[len(magicChunk)+1] = uint8(chunkLen >> 0) - w.obuf[len(magicChunk)+2] = uint8(chunkLen >> 8) - w.obuf[len(magicChunk)+3] = uint8(chunkLen >> 16) - w.obuf[len(magicChunk)+4] = uint8(checksum >> 0) - w.obuf[len(magicChunk)+5] = uint8(checksum >> 8) - w.obuf[len(magicChunk)+6] = uint8(checksum >> 16) - w.obuf[len(magicChunk)+7] = uint8(checksum >> 24) - - if _, err := w.w.Write(w.obuf[obufStart:obufEnd]); err != nil { - w.err = err - return nRet, err - } - if chunkType == chunkTypeUncompressedData { - if _, err := w.w.Write(uncompressed); err != nil { - w.err = err - return nRet, err - } - } - nRet += len(uncompressed) - } - return nRet, nil -} - -// Flush flushes the Writer to its underlying io.Writer. -func (w *Writer) Flush() error { - if w.err != nil { - return w.err - } - if len(w.ibuf) == 0 { - return nil - } - w.write(w.ibuf) - w.ibuf = w.ibuf[:0] - return w.err -} - -// Close calls Flush and then closes the Writer. -func (w *Writer) Close() error { - w.Flush() - ret := w.err - if w.err == nil { - w.err = errClosed - } - return ret -} diff --git a/vendor/github.com/klauspost/compress/snappy/snappy.go b/vendor/github.com/klauspost/compress/snappy/snappy.go deleted file mode 100644 index f5611be403e..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/snappy.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2011 The Snappy-Go Authors. All rights reserved. -// Copyright 2016 Klaus Post. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package snappy implements the snappy block-based compression format. -// It aims for very high speeds and reasonable compression. -// -// The C++ snappy implementation is at https://github.com/google/snappy -package snappy // import "github.com/klauspost/compress/snappy" - -import ( - "github.com/klauspost/crc32" -) - -/* -Each encoded block begins with the varint-encoded length of the decoded data, -followed by a sequence of chunks. Chunks begin and end on byte boundaries. The -first byte of each chunk is broken into its 2 least and 6 most significant bits -called l and m: l ranges in [0, 4) and m ranges in [0, 64). l is the chunk tag. -Zero means a literal tag. All other values mean a copy tag. - -For literal tags: - - If m < 60, the next 1 + m bytes are literal bytes. - - Otherwise, let n be the little-endian unsigned integer denoted by the next - m - 59 bytes. The next 1 + n bytes after that are literal bytes. - -For copy tags, length bytes are copied from offset bytes ago, in the style of -Lempel-Ziv compression algorithms. In particular: - - For l == 1, the offset ranges in [0, 1<<11) and the length in [4, 12). - The length is 4 + the low 3 bits of m. The high 3 bits of m form bits 8-10 - of the offset. The next byte is bits 0-7 of the offset. - - For l == 2, the offset ranges in [0, 1<<16) and the length in [1, 65). - The length is 1 + m. The offset is the little-endian unsigned integer - denoted by the next 2 bytes. - - For l == 3, this tag is a legacy format that is no longer supported. -*/ -const ( - tagLiteral = 0x00 - tagCopy1 = 0x01 - tagCopy2 = 0x02 - tagCopy4 = 0x03 -) - -const ( - checksumSize = 4 - chunkHeaderSize = 4 - magicChunk = "\xff\x06\x00\x00" + magicBody - magicBody = "sNaPpY" - // https://github.com/google/snappy/blob/master/framing_format.txt says - // that "the uncompressed data in a chunk must be no longer than 65536 bytes". - maxUncompressedChunkLen = 65536 - - // maxEncodedLenOfMaxUncompressedChunkLen equals - // MaxEncodedLen(maxUncompressedChunkLen), but is hard coded to be a const - // instead of a variable, so that obufLen can also be a const. Their - // equivalence is confirmed by TestMaxEncodedLenOfMaxUncompressedChunkLen. - maxEncodedLenOfMaxUncompressedChunkLen = 76490 - - obufHeaderLen = len(magicChunk) + checksumSize + chunkHeaderSize - obufLen = obufHeaderLen + maxEncodedLenOfMaxUncompressedChunkLen -) - -const ( - chunkTypeCompressedData = 0x00 - chunkTypeUncompressedData = 0x01 - chunkTypePadding = 0xfe - chunkTypeStreamIdentifier = 0xff -) - -var crcTable = crc32.MakeTable(crc32.Castagnoli) - -// crc implements the checksum specified in section 3 of -// https://github.com/google/snappy/blob/master/framing_format.txt -func crc(b []byte) uint32 { - c := crc32.Update(0, crcTable, b) - return uint32(c>>15|c<<17) + 0xa282ead8 -} diff --git a/vendor/github.com/klauspost/compress/snappy/testdata/fireworks.jpeg b/vendor/github.com/klauspost/compress/snappy/testdata/fireworks.jpeg deleted file mode 100644 index 078cf1755dc0853e97ad30fc7af4d6af0b67047e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123093 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
ma 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

3ZRBxkF?%H#_f~x|{{V*%h1A?S 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 AYXATM diff --git a/vendor/github.com/klauspost/compress/snappy/testdata/geo.protodata b/vendor/github.com/klauspost/compress/snappy/testdata/geo.protodata deleted file mode 100644 index c4e3e0d8aeb1732a6e773f3382e8a3d0f9c668e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118588 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�SOuj;MOam+jUysqU}ww#FeDAMAE$Ra_8nrV(%C=Er)wQ_8jueqa<9fQ!X?XV|2=BiCcSUq2#+cYap~gN#2lmn7 z?Di}R{`GWoFO^~+pIfDrl`5zTOvt5 z<@ZSaYwh1eVj+6|$)z)T`;x;FM#$fKI>@92)S5bYE~C<=d)LT-nNQVds>J)K`m&z zEDiq8kG_9DQX8&6nC8Ta;kVO8{**!o(bV&WxZQ5 znQ+YY;6GjE?6VghIn70J_=T{`C=OThRyhMpkzx$O9YA3h*MJ0ct-^Gxz`qj1N5^Lynr;l2N8B{CVBZO2!ww0po1O?d! zMdAZ1FQa7BHRso|v5sbbL>2OOj;)FQ+bj5k7fd3^GUBZR`K!HkC*W`6K~bKD`6Cr`Lv zB6;(l!o1M>;eK4q0D0I-gP$6OXkZQw;$wy|u%#yrO`gJgc|5Nw>oWOjfXU>k_x2F|j=l{`!9ne;_F37SNDe*S=8``ru0u)}c+ zhWNHS#}6taGRu~=OAMU#)%R5(^Ymw*efz_FRQF#GvgzduL{AL(ytjilnqo`>!%b3`?b*t?-tXqUKN zA=fat1+qbMY%pW)E0%L@kd6%p!Y*RQ%!`!4E?S+B#PrzJ8&HK@r>PlGFegUs@ci5l zHUh3>)8(=x*hR`}G&Js;%xyk7Y!T3>P)>PyxvbBf@^4w*@^dSI`D zP+eMbW@o4gCDKVvsApr(JNQgI5TD7$?4vy+bBB8Ycnk5FptbGL9~*oo(b1I8 zMEVIfuMwXK`of6M#DmXg;z9UKJPDtPv{))Fk&=fIVr|vdgxX)&ocq(*`K2s5Jy(1D zS4g>NSjP5$qu7RUWpf^HKCqwQRd2;erv(V>q@6CfAAOD>n(Ks2*ZbVRK^2L|FYG^a zb^gU0qAv@hf}N@3yoZ~>rS7s-!gOKB?sc&p!1fejU8$s6r--9;iuksAr--YJdv4%Y zD%Qx{fZ4|dFf2MX*kd18l%v|jcTDSc4lUj@9Z7s$Gc|~WMq2rrZ-xAD(wCUt@A#m6 z$ErMHdc$_mAM-u2?+6F%j3Ju|kbA;+#4lnm^Bt{C+ylPjg-^fd_>MZoi1a?miHXBh z3B-3KXNm7fwuJVK>wykSvZa@eK!?p_iyvJAgxH{zmh$zBznx#f#x9y59TAZE1ftK$ zPW(KoziuWrSfJC7t|?}9-vrc>Z2SRQ_U!18%Qy^c*y+=a8g-a1JVb9aYBXxCGi_P- zgrZu493sT5yAJ^)-0z?iYwNe~R_HD%<`5xOkBet0}Y?}#L#)MTqF zmHN9b?d$|Z413!_$O8pL{QU>PE((bJHYgBwQ9wlX%|j5bL)Lrl^c>i=`dL4*yZuGMm`9BSBCJff=A`GpY`5*87v zG^oPUH6amNjncY2KwY6awmG88e*dn55j8d`Juzf*exfm{07leUQ|6@M#%x`$euPGp zOcO*B8Bt`bmX4^a9@YRj8c}0T&$K(Do_*@`72FX8a|T`Y1Zlm%xJ zQ4&0{5w*U#MDpy25|4?EqHyQheHqCi#Ll6Gon%Bk(h%7>ze$Om0|j?M(x#!DE^@?& zc8Jf1=I&gpYn^MLCw9ygnmZwP6`uz>fTkN{4ll@iEh8>A% z;}EZAr5Douj7P8;!?M314@MDjC3w)9&N2()FarP7irMA zZskQF28WP_CMP%4aioH`E+2?=&w z(T9;8hAwzM2JIpT^!bnw?0}X;qg`uAXM6NsW;4x;yajoY%eRi%nmw2i_i(F_lxd=Bmbp0>uO&nASF^5K+u{*%@Aj@7_Ot{7K)nhx{jKp z#lQ`m2-mGEfS_bVjR5DLymkk$0>zM%S4u>4cqE#E7M&XVYSGLh|K7@4!mMO(vBoiXKba|#KkO`!4N|tN13S>ggr`M9X`rU8LzE}k^1K6DhlQV6iq^#JXpknmz3D6#*)Hpn|T_;j@xfz}nKHENY6EL>#> zQ5lsHDz()JgcYXm_S7qfzvv`&n9HC^V$Tl3U&Pv(X(JPd^-7G-&(IElq)_;Tq$&N? zefoy=$t4LPa>run8y3^EInVIqo1x-+*f?!a);={*$uJTjHZSFCOaNJ`w&&oYU zmznL@N+QX>op65M0@XHj{sY}_mS&=ZZyUe5@y_xO$-pZ1L}SM@fn<_kTh-JLwx{?s zX#CR$AJl6h@g>&6u-T31lbN zi=`@WrZG|gsLf?P5!Mf3Jq=V+iGNH9aWjy2LGI=LdSM5=e2#c|C>40|)B|4LN4%u* zVK!D&^_}Ob3}_{5)Mr>)d|a>8At`ZbsUrr)1=R0j$em~!X9|?crDGd4Xgp)pJM~(4 zbtIpK?m6lc5F~4iZb}?Hct~7YLgL`m0VyN6ch&2=3cbX0Gp=~GSnT7?1bgLYnYv6g zsowRBHE8qYeR6X%vJ9R4WT~0joN@BWxfA5Z+&%5#l!bEZMA z)8^~bbJ1Vq8hm6ze!4bCZq(*ycakS)CmRanL$z61hRO1Hbf~RdKFsh?p+TNE!7MkK z<>p*@MsBWNKB2(SMJ^wKK1zpfE-)D6nYk0?rX2JcrUHCCbwav9jy~UzD^HYXYxRb1 za(SlNoY$>u*NGD+c0mtmMptyv{qY5JvLp6QlGo}n4l%V#LB|elb&(!AS zO~xOYZ^+BdM<1T4#ebm>un5jK=nSSpgI=CnXvmjq(W%@C1=<`vI&GL(fS<->E|42d z`2}YAM1x^mCwV&h784EfiMbQ9^ztlp8~#ovqdd=$o0nyfYx8p_pxg0VnV6f8E-A>= z<|Fy!dl}?ob0_21XnkSm<)XI`L!{x?j@}A>{rPfTZcdItXEx>L6p&YD;61m|pfyjx za&vR&tBR7#6OHnmTyrP#Lb0$6^ws3q=%Mt5CY=Fai(fH%8|0z5?_r|JoN0Y%B#J0P zL0dnWpDbCMKTe*k8#KX$e$yO3S@et3=aVs}LTe&Zy9IhBFy#G_?kX_`}S>=R)XzG2bsklh!2qICh-+P zU3EZvSu=JZrezp%vkm6_$!U4HrW`Z((IkRfDaU1seARIDM1meg@s}Noh@c`5SqYB~oH>AL>utK=wlSNR#h|)Kj6bGrLSUrrOAOu|p+yJ!31=TZx%2Qwr43J2sC42ogvg?4S&^-{| zDPmXLAu10=zz8@YI33h_@{I1mKYIkkRl({vlO%2yv)asJhVxjkco^C)#WB4m&sB3w zPZu6)h|q>9QEX44R;v||qJWqlO++A7w4`qxDs@ajrH*@O2yL6R4tw&erYqMx2Ra?#N}3;5E2JBBGs)@6F?y@I`OS2UQwH?r6$%a!ySmE ztV%@siXzgEiV z*kEB51!3a{T}8o^qc`O6$zc7GxCd1}uuG_5AAht_Q__86di><5-7_z(b{kQ(-G~CM zK#&F6Vh6HpMyiPAQ*R8`t-VYcb=vna9nZd8e(tirV$&~6PI(fTAY0XKj`-a2wL{Cg zIHp&QvYzu+%2jYT**AvS=Cd~$B zL)f{OU)tB06dZudMA@UbGU*6*JV8!m+GVbCQKlF}7JPRXWeV;`-#uengyk*uNM0U$ z@KE=BC%?Ox%)xJWd4;_BQ6C@mS$v?yeN`Y6+ELCq-Ht*z8#gtSNJeZ*EH-^`xRCp+ zgC=2f5=NpO+!l6DxN*DgtbPL;g0uxNywbRRkmB}UK5k!S?rzYI<&HFpTcVha%WHwh zkFHo{;nGg^l}OBn^P_)!(tHBRTh{GN8Nrt)KA5=T3hx9zCt|9XDd3)>*E#L3Sjom(W zG8=ZqVzxOPM$}8KPX4XfRy==m6SQ^<(cI~v0JW~ z{q%Ed=WRgO4eIjyW8~f`7xRzI_~nc*irvBh7=LY=YU7}z&(mCK*{uHma0duIZ)bq8 zNv}!`kh?u8!KtSc$(3$e&rN#i^{Ku3r-x1IqZ~nUrR1!m@j!C1K*y^qS87#5ORf~u IhT`V`0gKK@!2kdN diff --git a/vendor/github.com/klauspost/compress/snappy/testdata/html b/vendor/github.com/klauspost/compress/snappy/testdata/html deleted file mode 100644 index ef768ccde9f..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/testdata/html +++ /dev/null @@ -1 +0,0 @@ - content: @ 1099872000000000: 'HTTP/1.1 200 OK\r\nX-Google-Crawl-Date: Mon, 08 Nov 2004 17:22:09 GMT\r\nContent-Type: text/html\r\nConnection: close\r\nX-Powered-By: PHP/4.3.8\r\nServer: Apache/1.3.31 (Unix) mod_gzip/1.3.19.1a PHP/4.3.8\r\nDate: Mon, 08 Nov 2004 17:19:07 GMT\r\n\r\n \r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\nMicro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004  |  16:45
\r\n \r\n\r\n\r\n\r\n\t\r\n\r\n\t\t\r\n\r\n\t\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t

\r\n\r\n\r\n\r\n


\r\n\r\n\r\n\r\n
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\"\"
Imagerie 
\"\"\n\t\t\t\t\t\t\t\tLG L1720B\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
332.89 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tAcer Veriton 7600G\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
705 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Ordinateurs 
\"\"\n\t\t\t\t\t\t\t\tShuttle SN95G5\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
375 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tAsus A7N8X-E Deluxe\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
91.99 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Composants 
\"\"\n\t\t\t\t\t\t\t\tThermalright SP-94\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t
49 €
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\"\"
1 \">\"PC Look
2 \">\"Atelier Informatique
3 \">\"Zanax Multim\351dia
4 \">\"MISTEROOPS
5 \">\"168 Golden Avenue
6 \">\"microchoix
7 \">\"e-Soph
8 \">\"PC Price Club
9 \">\"PC 77
10 \">\"Web In Informatique
\n\t\t\t\t
\n\t\t\t\t
\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\r\n\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n

\r\n\t\t\t

\r\n\t\t\t

\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\r\n \r\n \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

CD et DVD bient\364t insensibles aux rayures
OpenOffice gagne son service
La messagerie en cinq minutes selon Ipswitch
> toutes les news


\r\n\t\t
\r\n \r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Recevez chaque jour l\'actualit\351 des produits et des promos
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

Entreprise
\r\n\t\t\t\tQuand le billet papier s\'envole vers la d\351mat\351rialisation


Trucs et astuces
\r\n\t\t\t\tD\351pannez Windows XP


Conso
\r\n\t\t\t\tVos photos sur papier imprimante ou labo ?


Produits & Tests
\r\n\t\t\t\t5 programmes d\222encodage vid\351o gratuits


\r\n\t\t
\r\n\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n
\r\n
\r\n\t\t\r\n\t\t

\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\t\t\t\r\n\r\n\r\n\r\n\t\t\t\t\r\n
\r\n
\r\nPortable
\r\nUn nouvel ultra portable r\351alis\351 par Nec
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nLe Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.
\r\n\340 partir de 1663 \200\r\n
\r\n
\r\nPortable
\r\nAsus pr\351sente trois petits nouveaux dans la gamme A3N
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\nCes trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.
\r\n\340 partir de 1346 \200\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t\r\n \t\r\n\t\r\n\t
\r\n\t\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
BON PLAN
\r\n
\r\n
\r\nLes derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.
\r\n

\r\n
\r\n\340 partir de
\r\n
415 \200
\r\n
\r\n
\r\n
publicit\351
\r\n
\r\n\t\r\n\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\tDesktops
\r\n\t\t\t\tPortables
\r\n\t\t\t\tMini-PC
\r\n\t\t\t\tPda / Tablets-PC
\r\n\t\t\t\tApple
\r\n\t\t\t\tGPS
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t


\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\r\n\t\r\n\t\r\n\t\t\t\t\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\tPortable Toshiba consacre deux gammes de machines au multim\351dia
\r\n\tEquipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.

\r\n\tOrdinateur Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme
\r\n\tLa firme \340 la pomme propose une station de travail \351volutive et relativement abordable.

\r\n\tPC Alienware propose deux machines au look \351trange
\r\n\tAurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.

\r\n\tPortable Trois nouveaux iBook G4 chez Apple
\r\n\tChez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.

\r\n\t\t\t\t> toutes les news\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tAsus A3N15-C Pro
\r\n Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1170 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tSoltek EQ3702A Miroir
\r\n Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t559 \200
\r\n
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \tIBM ThinkPad R51
\r\n Voici un portable complet et pourtant relativement l\351ger.
\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t1299 \200
\r\n
\r\n\t\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\t\t\t\t> toutes les promos\r\n\t\t
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n

\r\n
\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n\t\r\n\r\n
\r\n\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t\r\n
\r\n
\r\nLes graveurs de DVD
\r\nQuel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.
\r\n\t\t\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\r\n\r\n \t\r\n
\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t\t\t

\r\n\t\t\t\tChoisir une r\351gion
\r\n\r\n
Un d\351partement
\r\n\r\n
\r\n
Un arrondissement
\r\n\r\n
\r\n
\r\n\t\t\t\tRecherche directe
\r\n\t\t\t\trechercher une ville
et/ou une boutique
\r\n\t\t\t\t

\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
Recherche avanc\351e
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
Bureautique
\r\n\t\t\t\tTraducteur, organiseur...

\r\n\t\t\t\t

Multim\351dia
\r\n\t\t\t\tPhoto, audio, vid\351o...

\r\n\t\t\t\t

Utilitaires
\r\n\t\t\t\tAntivirus, pilotes, gravure...

\r\n\t\t\t\t

Personnaliser son PC
\r\n\t\t\t\tEcrans de veille, th\350mes...

\r\n\t\t\t\t

D\351veloppement
\r\n\t\t\t\tCr\351ation de logiciels, BDD...

\r\n\t\t\t\t

Jeux
\r\n\t\t\t\tAction, simulation...

\r\n\t\t\t\t

Internet
\r\n\t\t\t\tUtilitaires, email, FTP...

\r\n\t\t\t\t

Loisirs
\r\n\t\t\t\tHumour, culture...

\r\n\t\t\t\t
\r\n\t\t
\r\n
\r\n
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t

\r\n\t\t\t\r\n\r\n\r\n\r\n\r\n\r\n

-#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode. -Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode. -Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode. -Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode. -Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode. -Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (blink). Ignored. -Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode. -Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode. -Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag. -Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode. -Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode. -Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode. -Line: 1 Col: 99 Unexpected end tag (select). Ignored. -Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode. -Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag. -Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode. -Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag. -Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode. -Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag. -Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode. -Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag. -Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode. -Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag. -Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode. -Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag. -Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored. -Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode. -Line: 1 Col: 141 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode. -Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode. -Line: 1 Col: 151 This element (img) has no end tag. -Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode. -Line: 1 Col: 159 Unexpected end tag (title). Ignored. -Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 166 Unexpected end tag (span). Ignored. -Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode. -Line: 1 Col: 174 Unexpected end tag (style). Ignored. -Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode. -Line: 1 Col: 183 Unexpected end tag (script). Ignored. -Line: 1 Col: 196 Unexpected end tag (th). Ignored. -Line: 1 Col: 201 Unexpected end tag (td). Ignored. -Line: 1 Col: 206 Unexpected end tag (tr). Ignored. -Line: 1 Col: 214 This element (frame) has no end tag. -Line: 1 Col: 221 This element (area) has no end tag. -Line: 1 Col: 228 Unexpected end tag (link). Ignored. -Line: 1 Col: 236 This element (param) has no end tag. -Line: 1 Col: 241 This element (hr) has no end tag. -Line: 1 Col: 249 This element (input) has no end tag. -Line: 1 Col: 255 Unexpected end tag (col). Ignored. -Line: 1 Col: 262 Unexpected end tag (base). Ignored. -Line: 1 Col: 269 Unexpected end tag (meta). Ignored. -Line: 1 Col: 280 This element (basefont) has no end tag. -Line: 1 Col: 290 This element (bgsound) has no end tag. -Line: 1 Col: 298 This element (embed) has no end tag. -Line: 1 Col: 307 This element (spacer) has no end tag. -Line: 1 Col: 311 Unexpected end tag (p). Ignored. -Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 331 Unexpected end tag (caption). Ignored. -Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 350 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 366 Unexpected end tag (thead). Ignored. -Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 404 Unexpected end tag (dir). Ignored. -Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 471 This element (wbr) has no end tag. -Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 524 Unexpected end tag (html). Ignored. -Line: 1 Col: 524 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 531 Unexpected end tag (head). Ignored. -Line: 1 Col: 540 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 548 This element (image) has no end tag. -Line: 1 Col: 558 This element (isindex) has no end tag. -Line: 1 Col: 568 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 579 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 590 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 610 Unexpected end tag (option). Ignored. -Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 633 Unexpected end tag (textarea). Ignored. -#document -| -| -| -|
-|
\r\n
\r\n
\r\n\r\n\r\n\r\n3 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 diff --git a/vendor/github.com/klauspost/compress/snappy/testdata/paper-100k.pdf b/vendor/github.com/klauspost/compress/snappy/testdata/paper-100k.pdf deleted file mode 100644 index b3325e4a2bb578419d6c7fa412aaa78d493ff274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102400 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 f+ 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

F17)}Id&v^at?J3g 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

dvbe6PYPn17{Uvrj}gX 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

8MN{bp?31ZUB0g6`RQ_zp4I^MZ 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

81$hkZu7jJJ`rZPoSol?lR? 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

JxxE8Nk|8nOCu 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

fEjU5Fp8Kog-~Zfv`#gyF}x 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�-*iAZ>=Ze!goW4v@c{s5^Wse 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 J`N*l2^ii)2Wf1@X diff --git a/vendor/github.com/klauspost/compress/snappy/testdata/urls.10K b/vendor/github.com/klauspost/compress/snappy/testdata/urls.10K deleted file mode 100644 index eaf06337660..00000000000 --- a/vendor/github.com/klauspost/compress/snappy/testdata/urls.10K +++ /dev/null @@ -1,10000 +0,0 @@ -http://ftp.sektornet.dk/tucows/herdwin0904.html -http://209.143.244.16/directory/us/nd/fargo/insurance/automotive.html -http://bellona.itworld.com:8080/cwi/reprint/0,1926,NAV63-128-1357-1367_STO46538,00.html -http://www.legis.state.ia.us/usr/ns-home/docs/GA/76GA/Session.2/SJournal/01600/01644.html -http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/showFolder/100001/1211898 -http://www.burstnet.com/ads/ad7826a-map.cgi/271412263 -http://topcu.tucows.com/winme/adnload/137036_30095.html -http://topcu.tucows.com/winme/adnload/145034_49120.html -http://link.fastpartner.com/do/session/600342/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/bitconomy.php -http://www.retrobytes.org/classiccmp/9911/msg01245.html -http://www.localbusiness.com/Story/Print/0,1197,DFW_196102,00.html -http://bbs.kh.edu.tw/treasure/childhood/M.962620586.A/M.966031025.A/M.966031098.A.html -http://www.hig.se/(accessed,clientname,return)/~jackson/roxen/testform.html -http://www.ipclub.ru:8102/cgi-bin/linkmaker/linklist-view.cgi?owner=elvis&Sector=434 -http://www.dulux.co.uk/UKRETAIL:229853034:DFinity.1QJiP4jMofi7bof -http://www.dominionpost.com/cgi-bin/redirect.exe/85288 -http://br.egroups.com/message/anedotas/3988 -http://www.ing.iac.es/~cfg/group_notes/texinfo/spec/file$_must$_exist_$28appendfile$29.html -http://hurweb01.hurriyetim.com.tr/hur/turk/99/06/22/yasam/14yas.htm -http://www3.plala.or.jp/shinchi/niltuki/mai0416.htm -http://www3.plala.or.jp/shinchi/niltuki/mai0420.htm -http://213.36.119.69/do/session/152968/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www3.travelprice.com/voyages/recherche.phtml -http://www.meristation.es/Trucos/s/starcraft_brood.htm -http://www.meristation.es/Trucos/trainer/train_star_war.htm -http://www.askme.com/cat/ShowCategory_3104_an_9.htm -http://mozilla.org/newlayout/testcases/css/sec542cm.htm -http://ampec.ampec.it/ted/box04/page36.htm -http://ampec.ampec.it/ted/box04/page39.htm -http://ampec.ampec.it/ted/box04/page42.htm -http://ampec.ampec.it/ted/box04/page58.htm -http://ampec.ampec.it/ted/box04/page62.htm -http://www.businesswire.com/webbox/bw.080300/202160192.htm -http://www.businesswire.com/webbox/bw.062700/201790580.htm -http://www.businesswire.com/webbox/bw.040300/200940796.htm -http://retailer.gocollect.com/do/session/1912606/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=1 -http://retailer.gocollect.com/do/session/1912606/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://genforum.genealogy.com/cgi-bin/print.cgi?ivy::116.html -http://www.spiral.at/Katalog/Artikel/6150331/ -http://www.spiral.at/Katalog/Artikel/6150390/ -http://www.spiral.at/Katalog/Artikel/6150411/ -http://bbs.msquare.or.kr/list.bbs/writer/Soohah/8.html -http://www.eskimo.com/~wesn/waflyfishers/msg03537.html -http://denniscares.mp2.homes.com/content/glossary.html?Letter=A -http://library.bangor.ac.uk/search/aChandler,+Peter,+1936-/achandler+peter+1936/-5,-1,0,B/bibandlinks&F=achandler+raymond+1888+1959&5,,6 -http://www.kimkihong.pe.kr/ -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/199/1998/6/0/1323673/ -http://musictz.com/user/fernman.html -http://tucows.concepts.nl/winnt/adnload/1381_28803.html -http://www.mirror.kiev.ua:8083/paper/2000/03/1251/text/03-06-6.htm -http://ring.crl.go.jp/pub/linux/debian/debian-jp/dists/stable/non-free/binary-arm/x11/?N=D -http://news.novgorod.ru/news/2000/4/23/2/9 -http://www.egroups.com/dir/World/Deutsch/Gesellschaft/Bildung/Schule?st=167 -http://www.egroups.com/group/abitur98 -http://genforum.genealogy.com/cgi-genforum/forums/casey.cgi?1477 -http://www.tvstore.com/browse/TV/BOXERSHO/s.UtRroVXF -http://www.tvstore.com/browse/TV/COLLECTI/s.UtRroVXF -http://www.tvstore.com/browse/TV/EARRINGS/s.UtRroVXF -http://polygraph.ircache.net:8181/text/m90/http_-2ewp.aliant.com/attivita.htm -http://rosebay.1000pages.com/ceclgt12.htm -http://www02.u-page.so-net.ne.jp/sb3/mizo/home/sub1/link2/?M=A -http://community.webshots.com/photo/5827455/5827535oqdRLPNiek -http://troy.lib.sfu.ca/search/dbiology+periodicals/dbiology+periodicals/19,-1,0,B/frameset&F=dbiology+religious+aspects&1,1 -http://213.36.119.69/do/session/152973/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/special/alitalia.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/programs/simple/linux/math/computers/tunes.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/programs/simple/linux/math/lit/hasard.html -http://www.elop.de/l0-1011-xx-3006-top.html -http://britanica.com/bcom/eb/article/idxref/0/0,5716,364643,00.html -http://britanica.com/bcom/eb/article/7/0,5716,28557+1+28108,00.html -http://www.geocrawler.com/archives/3/3174/2000/5/50/3724502/ -http://www.geocrawler.com/archives/3/3174/2000/5/50/3699557/ -http://www.geocrawler.com/archives/3/3174/2000/5/50/3689003/ -http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/net/slirp/files/ -http://www.duluxvalentine.com/FRANCE:219793321:DFinity.1QJiP4jmPgUaedp -http://mundo.ole.es/ocio/articulo/html/oci4270.htm -http://www.maasvlakte-cam.nl/webcams/43/etna__italy/1999/08/29/01:28:02.html -http://www.chinabyte.com/staticpages/builder/builder_course_next/HIPR/builder_course_next_219_HIPR.html -http://www.prospects2.csu.ac.uk/servlet/postgrad.TcAssess?pgid=9634 -http://ftp.sunet.se/pub/lang/perl/CPAN/authors/id/SPP/?N=D -http://www.egroups.com/message/WDT/7751 -http://pub8.ezboard.com/fapricotyarn.unsubscribeUnregisteredToTopic?topicID=4.topic -http://support.tandy.com/support_audio/doc9/9679.htm -http://megalink.tucows.com/winme/preview/74862.html -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/199/1996/2/0/2460450/ -http://www.monaco.gouv.mc/dataweb/gouvmc.nsf/(NewsActu)/d28eaee29b3287d4c1256905004e1ef1!OpenDocument&ExpandSection=10.3,10.4,7,9,4,6 -http://www.fao.org/montes/foda/wforcong/PUBLI/V2/T8S/1-3.HTM -http://library.cuhk.edu.hk/search*chi/a蔡淙霖,+1965-/a%7B215572%7D%7B214758%7D%7B215f60%7D+1965/-5,-1,0,B/browse -http://www.nrk.no/finnmark/x31_12_97/nyh6.htm -http://www.dailyrush.dk/stories/129/comments/pages/1 -http://home.wanadoo.nl/pieter.heres/nedbaskteam/nbt/Web%20Album%20nbt%20spelers/page3.htm -http://members.tripod.co.jp/masa_selfish/?M=A -http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/misc/lile/patches/Attic/?sortby=date -http://www.chaos.dk/sexriddle/z/l/x/y/m/ -http://www.chaos.dk/sexriddle/z/l/x/y/p/ -http://users.sexyboards.com/amandaslut/messages/17.html -http://pub11.ezboard.com/fusscroatiastartrekanimators.showAddTopicScreenFromWeb -http://retailer.gocollect.com/do/session/1912610/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp -http://ftp.sunet.se/pub/FreeBSD/ports/ports-current/misc/boxes/pkg-comment -http://www.ce-europe2.philips.com/do/session/80299/vsid/1034/tid/1034/cid/28533/mid/1020/rid/1021/chid/1024/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkZHbjbHrolLmbkKmefLifmLpkZHljlKmoaLl0/url/http://www.eu.microsoft.com/windows/ie_intl/es/ -http://www.peopledaily.co.jp/199904/26/newfiles/col_990426001084_tyxw.html -http://www.peopledaily.co.jp/199904/26/newfiles/col_990426001087_tyxw.html -http://iraustralia.com/listco/hk/swire/profile.htm -http://jefferson.village.virginia.edu/wax/slow/english/3pix/BRight2/1/1a5a15a1.html -http://infoserv2.ita.doc.gov/efm/efm.nsf/Sources!OpenView&Start=35.16&Count=30&Expand=37 -http://www.affiliate.hpstore.hp.co.uk/do/session/380772/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry1.asp -http://www.trax.nilex.co.uk/trax.cgi/A1S/B1U/B1R/A3S/A4R/C2U/ -http://www.trax.nilex.co.uk/trax.cgi/A1S/B1U/B1R/A3S/A4R/C2S/ -http://www.quia.com/email.cgi?7106&fc -http://www.mirror.edu.cn/res/sunsite/pub/academic/agriculture/sustainable_agriculture/news+mail-archives/6/ -http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/Beholder/CVSROOT/config?only_with_tag=MAIN -http://collection.nlc-bnc.ca/100/201/300/info_tabac/html/1998/bull21/poumon.html -http://www.erotism.com/sweetlostcherry/g3.htm -http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/SharewareMusicMachine/MusicSoftware1/96457 -http://members.tripod.com/~tonarcos/paginas/Nancy1.html -http://www.gbnf.com/genealog2/stout/html/d0024/I2144.HTM -http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/deskutils/cbb/ -http://www.hri.org/docs//statedep/95-09-13.std.html -http://ftp.univie.ac.at/packages/tex/macros/latex//contrib/supported/eurofont/adobeuro/readme.txt -http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/showNextUnseen/fol/100001/1513138 -http://tucows.ipv.pt/winnt/adnload/1891_28712.html -http://www.tucsonweekly.com/tw/02-09-95/danehy.htm -http://message/artefactphil/87?expand=1 -http://www.kiarchive.ru:8091/pub/FreeBSD/FreeBSD-current/src/gnu/Makefile/ -http://retailer.gocollect.com/do/session/1912644/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/index.asp -http://retailer.gocollect.com/do/session/1912644/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp -http://park.org:8888/Cdrom/TheNot/Mail/NotPark/msg00070.html -http://citeseer.nj.nec.com/cachedpage/67611/1 -http://citeseer.nj.nec.com/cidcontext/1053642 -http://www.3w-buecher.de/GiacamanGeorge/GiacamanGeorge0745312381.htm -http://au.yahoo.com/Regional/U_S__States/Colorado/Cities/Littleton/Real_Estate/Agencies/ -http://www.power2lead.com/Global/English.nsf/pgWWLocations!OpenPage&ExpandSection=21,28,29,32,22 -http://hem.fyristorg.com/bfo/gagarin/WWW.SAMIRADIO.ORG/svenska/sport-sv.html -http://www.chaos.dk/sexriddle/e/n/q/v/m/ -http://www.hig.se/(formoutput,remove_cookie,sort,sql,sqlquery)/~jackson/roxen/ -http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000117900/ -http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000116400/ -http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000116200/ -http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000113100/ -http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000110800/ -http://koi.www.citycat.ru/funny/fido/2000_10/07.html -http://koi.www.citycat.ru/funny/fido/2000_10/09.html -http://www.hig.se/(countdown,debug,header,if,return)/~jackson/roxen/ -http://www.findtravel.to/search_engine_directory/north_america_usa_canada/united_states/michigan/_travel_guides/ -http://mediate.magicbutton.net/do/session/625534/vsid/3255/tid/3255/cid/87978/mid/2008/rid/2157/chid/2581/url/http://www1.getmapping.com/competition/index.cfm -http://mediate.magicbutton.net/do/session/625534/vsid/3255/tid/3255/cid/87978/mid/2008/rid/2157/chid/2581/url/http://www1.getmapping.com/aboutus/partners2.cfm -http://www.petropages.com/products/p9827.htm -http://www.egroups.com/login.cgi?login_target=%2Fmessage%2Fspynews%2F54 -http://health.sx.zj.cn/Treatment/SuperGuide/2000-3-8/4716.htm -http://www.nease.net/~qin/chardware.htm -http://www.argos.asso.fr/bourges/pratiq/emploi/texte/anpesud.htm -http://ftp.sunet.se/pub/FreeBSD/ports/ports-current/www/p5-Apache-Session/?S=A -http://www.eveclub.com/cgi-bin/eveclub.front/972959425847/Catalog/1000046 -http://retailer.gocollect.com/do/session/1912628/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=1 -http://yp.gates96.com/1/10/21/73.html -http://yp.gates96.com/1/10/21/95.html -http://yp.gates96.com/1/10/22/21.html -http://yp.gates96.com/1/10/22/31.html -http://yp.gates96.com/1/10/22/52.html -http://yp.gates96.com/1/10/22/76.html -http://yp.gates96.com/1/10/22/79.html -http://yp.gates96.com/1/10/23/57.html -http://yp.gates96.com/1/10/23/73.html -http://yp.gates96.com/1/10/25/20.html -http://yp.gates96.com/1/10/25/46.html -http://yp.gates96.com/1/10/25/87.html -http://yp.gates96.com/1/10/26/76.html -http://yp.gates96.com/1/10/26/84.html -http://yp.gates96.com/1/10/27/67.html -http://yp.gates96.com/1/10/28/70.html -http://yp.gates96.com/1/10/28/91.html -http://live.excite.com/lifestyle/politics_and_society/countries/asia/uzbekistan/guides_and_reference/ -http://biblioteca.upv.es/bib/doc/doc_fisbd/367/114176//C/1825519/0////25/S/MLTPAI -http://mai.flora.org/forum/5322 -http://mai.flora.org/forum/5318 -http://www.brickshelf.com/scans/0000/0715/0715-03.html -http://www.brickshelf.com/scans/0000/0715/0715-12.html -http://www.brickshelf.com/scans/0000/0715/0715-21.html -http://www.msb.malmo.se/search*swe/dManikyr/dmanikyr/-5,-1,0,B/frameset&F=dmani&1,1 -http://message/cinematik/2441?expand=1 -http://message/cinematik/2447?expand=1 -http://www.jamba.de/KNet/_KNet-Rco8j1-WDd-137sh/showInfo-special1.de/node.0/cde7f1uou -http://www.jamba.de/KNet/_KNet-Rco8j1-WDd-137ss/showInfo-hilfe.de/node.0/cde7f1uou -http://acmepet.petsmart.com/canine/breeds/labrador/bboard/messages/5245.html -http://acmepet.petsmart.com/canine/breeds/labrador/bboard/messages/5226.html -http://config.tucows.com/winnt/adnload/67680_29009.html -http://config.tucows.com/winnt/adnload/55386_29005.html -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdeutils/knotes/Attic/renamedlg.cpp?r1=1.7&only_with_tag=MAIN -http://www.imagestation.com/member/?name=Twiggy5&c=1 -http://cometweb01.comet.co.uk/do!tid=20&rtid=3&vsid=700&session=131981&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHljbLqleHqjiLlel5jblKqlmLkeq5j1 -http://community.webshots.com/photo/1921549/2334169DWEIWPyCoH -http://www.fogdog.com/cedroID/ssd3040183158605/nav/stores/skateboarding/ -http://www.fogdog.com/cedroID/ssd3040183158605/content/fan/subway_series/ -http://www.fogdog.com/cedroID/ssd3040183158605/boutique/ashworth/ -http://www.fogdog.com/cedroID/ssd3040183158605/customer_service/our_partners.html -http://www.jacksonhewitt.com/ctg/cgi-bin/JacksonHewitt/media_center/AAAksrACwAAACCOAAl -http://www.jacksonhewitt.com/ctg/cgi-bin/JacksonHewitt/talktous/AAAksrACwAAACCOAAl -http://arabia.com/jordan/article/print/1,5130,3048|Life,00.html -http://198.3.99.101/reference/politics_and_govt/humor/games/ -http://www.pocketbible.co.kr/old/Leviticus/Leviticus24/Leviticus24-14.htm -http://www.ozon.ru/detail.cfm/ent=5&id=12&txt=1 -http://www.ozon.ru/detail.cfm/ent=2&id=2141 -http://www.chaos.dk/sexriddle/m/t/i/t/j/ -http://www.outpersonals.com/cgi-bin/w3com/pws/out/5VhIq3rCy0eiHAzs1LOyTswNBIR33Wxc8NtFBCnYVNlrV5p9laRchaQrPWdU7-F739tsfX-p5-IA-j1rTm1YLCRAwn1FAriW9Ps21GP6CvyIL7YFYjLtOcez03i6Q9Xw3LRDtJY2CIzGQuZp-sH_-s_D66j9 -http://www.outpersonals.com/cgi-bin/w3com/pws/out/lKhIoWbn-weE729M1n0JT8Ina4qOfm_FI2ROg8RdrrVu5kq_AK_urPMHafLCMwWCiOLuc8OIIHCFnJaCfz2LSrURBHFjDJP1fBO0X58Y28opSv0qVXWAKYtub7NbCIIWMbE_ldcypBmh -http://www.outpersonals.com/cgi-bin/w3com/pws/out/PbhIoduIKw3faQWbBTWSK5aq7Y-nGqcvK3flLaTRo02t7k7GMY8rPlupJIheD8869wCXUAer4VimzyYa25qUx7ef2l2VdMR9i_p-pJ5gg2S6ZcP-G6RuPfdDS3TEsJNXGVsOTs1rA605 -http://www.linux.com/networking/network/development/web_server/performance/?printable=yes -http://www.linux.com/networking/network/development/web_server/performance/IBM/ -http://sunsite.icm.edu.pl/Linux/Documentation/HOWTO/mini/IP-Subnetworking-3.html -http://dreamcity.gaiax.com/www/dreamcity/m/s/musou/frame.html -http://guardian.co.uk/Widgets/Read_It_Later/TR/1,4694,4043922,00.html -http://www.gpul.org/ftp/os/infinite/?M=A -http://www.gpul.org/ftp/os/infinite/infinite_OS.txt -http://retailer.gocollect.com/do/session/1912666/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/exclusives.asp -http://yp.gates96.com/13/77/10/66.html -http://yp.gates96.com/13/77/10/91.html -http://yp.gates96.com/13/77/11/82.html -http://yp.gates96.com/13/77/12/17.html -http://yp.gates96.com/13/77/13/68.html -http://yp.gates96.com/13/77/13/80.html -http://yp.gates96.com/13/77/16/3.html -http://yp.gates96.com/13/77/16/17.html -http://yp.gates96.com/13/77/16/49.html -http://yp.gates96.com/13/77/17/8.html -http://yp.gates96.com/13/77/18/4.html -http://yp.gates96.com/13/77/18/61.html -http://yp.gates96.com/13/77/18/71.html -http://yp.gates96.com/13/77/19/3.html -http://yp.gates96.com/13/77/19/24.html -http://yp.gates96.com/13/77/19/48.html -http://yp.gates96.com/13/77/19/98.html -http://yp.gates96.com/13/77/19/99.html -http://scsinternet.tucows.com/winnt/mail95.html -http://tolm.terrashare.com/45.htm -http://news.dreamwiz.com/news/08/20001030/kukmin/200010301903081903261.html -http://www.tccomputers.com/cgi-bin/bp/1463655603/services/info/tci.htm -http://www.tccomputers.com/cgi-bin/bp/1463655603/services/csc/csc.htm -http://www.2pl.com/b/pl/to/1/01/04/v2/1010400016-6-2r.htm -http://www.2pl.com/b/pl/to/1/01/04/v2/1010400016-3-2r.htm -http://www.2pl.com/b/pl/to/1/01/04/v2/1010400016-18-2r.htm -http://www.2pl.com/b/pl/to/1/01/04/v2/1010400016-1r.htm -http://www.123bestphonerates.com/q/001p/vn/vR85aEOIaY.htm -http://www.thisislancashire.co.uk/lancashire/archive/1997/07/17/SPORTST5VQ.html -http://www.thisislancashire.co.uk/lancashire/archive/1997/07/17/SPORTST7VQ.html -http://www.thisislancashire.co.uk/lancashire/archive/1997/07/17/SPORTST11VQ.html -http://www.elsur.cl/archivo/marzo2000/13marzo2000/elsur/deportes/ind3.php3 -http://home.no.net/fristart/kvasir816/ -http://www.fun7.de/party/cafe_europa/_vti_cnf/?D=A -http://www.users.yun.co.jp/cgi-bin/moriq/pigeon/pigeon.cgi/%C5%E7%BA%AC%B8%A9.%C2%E7%B8%B6%B7%B4%C2%E7%C5%EC%C4%AE?c=e -http://polygraph.ircache.net:8181/http_-2www.whowhere.com/http_-2www.expired.com/html/service.html -http://home.t-online.de/home/mtc.hannover/head1655833.htm -http://moneycentral.msn.com/investor/invsub/insider/Details.asp?Pval=1&Symbol=MKSI -http://www.sohu.com/Regional/hunan/City_County/Yiyang/Firms/Food_Beverage/ -http://www.kulturkreis-rhein-lahn.de/lauer/fax.htm -http://ustlib.ust.hk/search*chi/aporter+bill+1943/aporter+bill+1943/7,-1,0,B/browse -http://www.brio.de/BRIO.catalog/39fe2f3708fb3c8e2740d472aa7806d5/UserTemplate/2 -http://www.brio.de/BRIO.catalog/39fe2f3708fb3c8e2740d472aa7806d5/UserTemplate/6 -http://rcsl.auto.inha.ac.kr/~treeman/Documents/HOWTO/Keyboard-and-Console-HOWTO-19.html -http://www.etoys.com/cat/toy/category/construction/brio_builder_system/1 -http://www.kxmd.com/now/story/0,1597,194790-295,00.shtml -http://www.ferien-immobilien.de/DominikanischeRep/verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Gemeinsam/versicherungen/gebaeude/IIM-Teil/Startseite/froben.htm -http://hiv.medscape.com/LWW/SMD/1999/v21.n03/smd2103.01.html -http://www.egroups.com/message/dk-jaws/530 -http://no.egroups.com/message/daemon-news-announce/12 -http://ring.toyama-ix.net/archives/text/elisp/jaist/yamaoka/apel/00_THIS_DIRECTORY_WILL_NOT_BE_UPDATED_UNTIL_2000-10-26 -http://pub12.ezboard.com/ftibesataxg1637tibes.subscribeUnregisteredToTopic?topicID=7.topic -http://ustlib.ust.hk/search*chi/ali+huan+1827+1891/ali+huan+1827+1891/-5,-1,0,E/frameset&F=ali+huan&4,,0 -http://ustlib.ust.hk/search*chi/ali+huan+1827+1891/ali+huan+1827+1891/-5,-1,0,E/frameset&F=ali+huang+1895&1,,0 -http://www.digitalcity.com/cincinnati/sports/log.dci?league=NCF&team=NNF -http://ftp.nacamar.de/pub/debian/dists/potato/main/disks-m68k/2.2.16-2000-07-14/mac/images-1.44/?D=A -http://www.academyfloral.com/state/arboo/flowers/thanksabunchbouquet2.html -http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/peacelink-scuola/2015003604/view/8 -http://ring.omp.ad.jp/pub/NetBSD/NetBSD-current/pkgsrc/lang/smalltalk/files/?S=A -http://ring.omp.ad.jp/pub/NetBSD/NetBSD-current/pkgsrc/lang/smalltalk/files/patch-sum -http://carriage.de/Schoner/Sammlungen/literature/collections/literature/modelle/ -http://www.buybuddy.com/sleuth/27/1/11001/1692/ -http://193.120.14.241/pub/languages/perl/CPAN/src/5.0/devel/ -http://lastminutetravel.bedandbreakfast.com/bbc/p208900.asp -http://chat.sportsline.com/u/wire/stories/0,1169,2957692_59,00.html -http://acad.uis.edu/sas/qc/q-index.htm -http://acad.uis.edu/sas/qc/s-index.htm -http://library.cuhk.edu.hk/search*chi/aPan,+Zhuonan./apan+zhuonan/-5,1,1,B/frameset&F=apan+zhichang+1956&1,1, -http://www.linux.com/networking/network/install/tools/updates/new/ -http://www.linux.com/networking/network/install/tools/updates/Standards/ -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=13,31,5,11,26 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=23,31,5,11,26 -http://www.mfa.no/fin/norsk/publ/stprp/006005-991562/index-hov017-b-n-a.html -http://ftp.sunet.se/pub/lang/perl/CPAN/authors/id/DBEAZLEY/?N=D -http://fi.egroups.com/messages/infoespo/6?expand=1 -http://ibc.cn.net/2000/0718/it-1message.html -http://www.shaggysguide.com/conhtml/adnload/51647_1809.html -http://www.shaggysguide.com/conhtml/adnload/51657_5567.html -http://www.shaggysguide.com/conhtml/adnload/74370_17872.html -http://www.shaggysguide.com/conhtml/adnload/78469_19520.html -http://www.shaggysguide.com/conhtml/adnload/78940_19788.html -http://www.backflip.com/members/jhferrara/5171381/page=1/sort=1/linkspp=10 -http://www.amcity.com/philadelphia/stories/1998/08/24/newscolumn3.html?t=printable -http://www.rge.com/pub/tex/biblio/bibtex/ms-dos/demel/?N=D -http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/67841000005885200000309700000064451/Giveaways.wo/257820000054451/2.0.0.6.0/3/Webobjects1 -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www-gds.desy.de:8080/zeitpl/zpl.htm -http://click-to.tell-a-friend.boardhost.com/tell-a-friend-confirm.cgi?chudtvlogic&msg=1596 -http://retailer.gocollect.com/do/session/1912639/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://www.jpc-music.com/5590216.htm -http://huntingfishing.tripod.com/sturgeonmain.htm -http://polygraph.ircache.net:8181/wwwboard/prodev/seminar/fast/http_-2www.centennialcc.org/bps.html -http://www.chaos.dk/sexriddle/s/t/c/x/l/ -http://www.chaos.dk/sexriddle/s/t/c/x/z/ -http://es.egroups.com/messages/plato-meno/1285 -http://tonggu-gch.ed.seoul.kr/home/2grade/2-10/981001/hang.htm -http://sjsulib1.sjsu.edu:81/search/dreligion/-5,-1,0,E/exact&dreligion+libraries&1,3 -http://www.generation-formation.fr/chiffrec.htm---o21zAo0UPwo0Ol9A074fo6Td4ezyr6feZJPAPfVbNyqHSezTHkekydMfeZJPdspt6dsSAtdsNhJdspt6dsrvrdjlhkfbd.htm -http://www.generation-formation.fr/dicoguid/diclogin.htm---o21zAo0UPwo0Ol9A074fo6Td4ezyr6feZJPAPfVbNyqureds5cezwhlezMpDeH7vGebI1yoKkfMd4vmMAxaAooKkfMd4u5xdfb7rmdfbT.htm -http://www.hollywoodonline.com/asplocal/mgvideoad.asp?rushhour-video-holdon-mov -http://www.ifg.uni-kiel.de/doc-clients/kdelibs-doc/html/kdeui/full-list-KRestrictedLine.html -http://www.3w-sciencefiction.de/ShapiroLarry/ShapiroLarry0760306729.htm -http://202.96.140.98/js/wenge/ -http://www.great-cyber-mall.com/SelectCompany.asp?CityID=230&CatID=19 -http://www.great-cyber-mall.com/SelectCompany.asp?CityID=230&CatID=34 -http://www.amazon.com.hk/exec/obidos/tg/stores/browse/-/books/13361/ -http://www.hole.kommune.no/hole/journweb.nsf/weboffjournal!OpenView&Start=99&Count=50&Collapse=116 -http://www.pbase.com/image/35702/small -http://www.infoscape.com.cn:8171/nf/0010/21/nfzy2104.htm -http://dell.excite.com/photo/topic/weather/national/19 -http://www.linux.com/networking/network/network/firewall/microsoft/government/ -http://www.gasex.com/gay.photo/gay.penis.pics.html -http://hausarbeiten.de/cgi-bin/superDBinters.pl/archiv/geschichte/gesch-stedinger.shtml -http://polygraph.ircache.net:8181/http_-2www.microsoft.com/frontpage/http_-2www.exploreuw.com/cards/ssoenews.html -http://www.fogdog.com/cedroID/ssd3040183137325/cgi-bin/MyFogdog -http://www.fogdog.com/cedroID/ssd3040183137325/cgi-bin/CedroCommerce?func=EditBasket -http://www.fogdog.com/cedroID/ssd3040183137325/nav/stores/cycling/ -http://www.fogdog.com/cedroID/ssd3040183137325/nav/stores/snowboarding/ -http://tucows.wanadoo.nl/win2k/organ2k_license.html -http://tucows.wanadoo.nl/win2k/preview/59164.html -http://windows.tucows.com/preview/001-009-005-005C.html -http://anekdotwall.boom.ru/car/html/75.htm -http://tucows.concepts.nl/win2k/clipb2k_size.html -http://tucows.concepts.nl/win2k/adnload/37291_29917.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cricrila&l=pt -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cricrilava&l=pt -http://www.trax.nilex.co.uk/trax.cgi/A1C/1AR/A2S/A3S/A3D/D1S/ -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_ngqyjt_ngqyjt.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_rtnucb_tyciyrg.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_kiektgt_fpwif.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_rjdbc_rjdbc.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_xsygo_xsygo.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_bovqcy_mkaqta.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_lgbrnl_psnjjt.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_lgbrnl_ybvfp.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_vermn_xmxmm.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_keojvu_faoex.html -http://info-china.hypermart.net/enterprise/company/messages/25.html -http://ring.yamanashi.ac.jp/pub/linux/debian/debian-jp/dists/potato/non-US/contrib/binary-m68k/Release -http://www.amigos.com/cgi-bin/w3com/pws/ffe/R7RIRASjZ5ATyRjNyXQBbwzK4LLK-rhgzZEBqJsLaR1cdnaeB7LT1xORWRg6aQmLxO7QWLEpsdjuf2ZqAnUO1IKpfrRctaIMYIzMNy1DSb7dp8_5z39WdF7oxbKUAByA -http://indigotrem1.chemie.uni-mainz.de/~manng001/Filme/S/SexLuegenundVideo.html -http://se.egroups.com/message/hur/387 -http://www.ilmessaggero.it/hermes/19990111/07_MARCHE/MARCHE_REGIONE/DUE.htm -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/quizz/misc/colorart/lit/pushkin.html -http://www.amzn.com/exec/obidos/ts/artist-glance/201040/ref=pm_dp_ln_m_6/ -http://tucows.netpower.no/winme/adnload/138674_29970.html -http://www.chaos.dk/sexriddle/z/d/q/p/c/ -http://www.chaos.dk/sexriddle/z/d/q/p/u/ -http://sv.pachinkovillage.co.jp/catalog/DinoVaderB/3.html -http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/B1,a,1f,6,6,3a,3a,,5,,1f,5, -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=deflazioneranno&l=it -http://polygraph.ircache.net:8181/company/html/http_-2www.io.com/~kinnaman/pchealth/f-agents.html -http://polygraph.ircache.net:8181/company/html/http_-2www.io.com/~kinnaman/pchealth/f-leisureworld.html -http://ftp.univie.ac.at/packages/perl/modules/by-module/Tie/ILYAZ/cperl-mode/rms-emacs-20.2-patch-narrow-buffer+dirfiles -http://www.expressindia.com/ie/daily/19991126/ige26097p.html -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/ELINKEINO-+JA+YRITYSTOIMINTA/yritt%E4jyys/lukio/oppimateriaali/itseopiskelu/ -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=36,23,11,33,18 -http://www.trib.com/scjournal/ARC/1996/MAR/3_24_96/marines.html -http://www.slac.stanford.edu/BFROOT/www/Computing/Programming/QA/QaBetaTools/6.7.5a/SunOS5/?S=D -http://pokemonplant.tripod.com/150yellow.html -http://ftp.debian.org/dists/potato/contrib/binary-all/devel/?N=D -http://sunsite.org.uk/packages/tcl/Collections/ftp.neosoft.com/sorted/packages-8.0/print/frink/1.2p35/ -http://library.bangor.ac.uk/search/m304.6+LIN/m304.6+lin/-5,-1,0,B/frameset&F=m304.6+jos&1,1 -http://members.tripod.lycos.nl/janninksweg145/huis.htm -http://www.uib.no/People/mihtr/PS01/PS01_219.htm -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus141561/eus174865/eus327367/eus327602/eus329879/ -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus141561/eus174865/eus327367/eus327602/eus327608/ -http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|39P02|972959512|Communications|user|0|1,0,0,1 -http://www.bluefreds.f9.co.uk/vote2.html -http://www.hri.org/docs//statedep/1999/99-05-07.std.html -http://polygraph.ircache.net:8181/http_-2www.hblinfo.com/f_snowbuddies.html -http://mediate.magicbutton.net/do/session/625565/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/products.cfm -http://cometweb01.comet.co.uk/do!tid=20&rtid=2&vsid=692&session=131975&mid=1000&rid=1060&cid=37051&chid=1702&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLlci5XqVLkXsLkao4tloHbmlLoq5 -http://digilander.iol.it/net4free/spedia.htm -http://totalsports.aol.com/stats/bbo/mlb/20000425/col.at.mon.prvw.html -http://210.178.135.1/netbbs/Bbs.cgi/nhic32042/qry/pno/0/zka/B2-kB2Zk/qqatt/^ -http://cikkek.lezlisoft.com/kikelet/spiritualitas/spirit3v9.shtml -http://www.wingateinns.com/ctg/cgi-bin/Wingate/aarp/AAAksrACwAAACCPAAl -http://sunsite.berkeley.edu/PhiloBiblon/BITAGAP/BIB/BIB1848.html -http://sunsite.uakom.sk/tucows/adnload/69390_28371.html -http://sunsite.uakom.sk/tucows/preview/77630.html -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(22,0+9,0-~0,3 -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(22,0+9,0-~9,6 -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(22,0+9,0-~21,0 -http://sirac.inrialpes.fr/Infos/Personnes/Christophe.Rippert/ressources/jdk1.2.2/docs/api/java/security/ -http://polygraph.ircache.net:8181/getting_started/http_-2www.microsoft.com/powered/radio/email_pal/email_pal.htm -http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/2.2-stable/ports/net/tund/?M=A -http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/2.2-stable/ports/net/tund/?D=A -http://library.bangor.ac.uk/search/tNursing+times+clinical+monographs+&%2359%3B+no.+51/tnursing+times+clinical+monographs+no+++51/-17,-1,0,B/browse -http://library.bangor.ac.uk/search/tNursing+times+clinical+monographs+&%2359%3B+no.+51/tnursing+times+clinical+monographs+no+++51/-5,-1,0,B/frameset&F=tnursing+times+complementary+therapy&1,1 -http://ftp.chg.ru/pub/FreeBSD/doc/en_US.ISO_8859-1/articles/programming-tools/ -http://polygraph.ircache.net:8181/getting_started/http_-2www.microsoft.com/powered/bomb/bomb.htm -http://linux.tucows.inwind.it/conhtml/adnload/8523_5414.html -http://www.magicvillage.de/magicvillage/KonferenzPlaza/fbs/%2328835852?NextInThread -http://www.shopworks.com/samplers/index.cfm/action/cart/userid/0009CECE-2EE1-19FE-9038010B0A0ADCF2 -http://dailynews.sina.com/newsCenter/taiwan/udn/2000/1021/2051701_b5.html -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdeutils/khexedit/pics/Attic/?hideattic=1&sortby=date -http://moviestore.zap2it.com/browse/MOVIES/BOWL/s.zchC6lsi -http://moviestore.zap2it.com/browse/MOVIES/MUSIC/s.zchC6lsi -http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d13/b12,c,1f,18,18,,13,,1f,13,17,,1f,17, -http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d14/b12,c,1f,18,18,,13,,1f,13,17,,1f,17, -http://209.50.251.176/~bb/ -http://tucows.energy.it/winnt/adnload/59163_30035.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=circundara&l=pt -http://vishvesha.tripod.com/4/068d.htm -http://www.hot.ee/timbsy/kass_files/pildikogu.html -http://www3.newstimes.com/archive99/jan2599/rga.htm -http://pub11.ezboard.com/fmarjoriesdmboardpostyourdmpedigreeshere.showMessage?topicID=21.topic -http://www.geocities.com/Heartland/Plains/4825/bennyn.html -http://citeseer.nj.nec.com/site/115145 -http://www.techsupplies.com/sleuth/17/1/40406/254200/ -http://ccmnet.xj.cei.gov.cn/10/b10/b1007/99-05-02/a5-02.asp -http://206.251.18.85/FEATURES/home_improvement/1999/10/01/fall_lawncare3.html -http://www.dulux.co.uk/UKRETAIL:1355333640:DFinity.1QJiP4jmPgimjKlA -http://cometweb01.comet.co.uk/do!tid=20&rtid=2&vsid=700&session=131985&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLlci5XqVLkXsLkao4tloHbmlLoq5 -http://cometweb01.comet.co.uk/do!tid=20&rtid=1&vsid=700&session=131985&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplGGolLarZLq4fLpmiLXv-KmooLckYLoznGmpq0qsc0mojLbkYLozvGotc0ZdoLckYLozvGsmv0qmc0jXfLkVZLdocLkYoLzcj1XfkLVZXLqkXLjbzKcob5qroLkVrLoizKlZd5fjYHfklKkZlLjjbLoZbLpl51ubZLDXZLollK3ljLbqlKjXfLkkaHotl4obmLloqL -http://www.berliner-morgenpost.de/bm/inhalt/990928/berlin/story14.html -http://gb.toget.com.tw/article/printer_tool/19990825_3210_p1.html -http://sbtr42.sbsusa.com/ncsamples/base1.htm -http://halflife02.opasia.dk/cs3stats/players/_AMNeSIA_.html -http://mediate.magicbutton.net/do/session/625570/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/basket.cfm -http://mediate.magicbutton.net/do/session/625570/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/viewer.cfm -http://www.citythek.de/erfurt/rheinhyp/fsinhalt.htm -http://my.egroups.com/group/mall-komputer -http://www-bd.cricket.org/link_to_database/ARCHIVE/1997-98/PAK_IN_RSA/PAK_IN_RSA_JAN-APR1998_PAK-SQUAD.html -http://www-bd.cricket.org/link_to_database/GROUNDS/RSA/ST-GEORGE_PARK_PT-ELIZ/ -http://www-bd.cricket.org/link_to_database/ARCHIVE/1997-98/PAK_IN_RSA/PAK_RSA_T3_06-10MAR1998_ET_MR.html -http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/unfall/Gemeinsam/erreichenPartner/Gemeinsam/MarketingStrategie/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Top-Darlehens-Konditionen/anforderungsformular.htm -http://www.online.kokusai.co.jp/Qa/V0043459/wrd/G800/qa/ -http://iland.tucows.com/win2k/adnload/59229_29990.html -http://iland.tucows.com/win2k/preview/144411.html -http://iland.tucows.com/win2k/adnload/38173_29963.html -http://www.arm.com/sitearchitek/armtech.ns4/8ab0ea422fba51238025691f00399e13/9cb09cb360a967848025691f004e28b2!OpenDocument&ExpandSection=6,13,12,-1 -http://ftp.uni-mannheim.de/languages/perl/CPAN/modules/by-authors/id/JMURPHY/?N=D -http://proam.golfonline.com/tours/2000/hooters/silversprings/scores2.html -http://ftp.du.se/pub/FreeBSD/branches/4.0-stable/src/games/grdc/ -http://ftp.du.se/pub/FreeBSD/branches/4.0-stable/src/games/pom/ -http://ftp.du.se/pub/FreeBSD/branches/4.0-stable/src/games/Makefile -http://www.artex.firenze.it/_qualitart/articoli/zoom/03651.htm -http://www.chaos.dk/sexriddle/m/k/v/b/p/ -http://www.chaos.dk/sexriddle/m/k/v/b/s/ -http://www.chaos.dk/sexriddle/t/j/d/n/n/ -http://www.daysinn.com/ctg/cgi-bin/DaysInn/media_center/AAAksrACwAAACCQAAM -http://tukela.heha.net/ys/ll/boyuan.htm -http://tukela.heha.net/ys/ll/jinciming.htm -http://genforum.genealogy.com/ai/messages/4299.html -http://genforum.genealogy.com/ai/messages/4221.html -http://genforum.genealogy.com/ai/messages/4225.html -http://www.linkclub.or.jp/~sticky/index1/diary/1999/199906.html -http://ww.egroups.com/subscribe/lexingtonkystrapon -http://chita.fi.upm.es/docs/info/en_US/a_doc_lib/motif/motifsg/About.htm -http://chita.fi.upm.es/docs/info/en_US/a_doc_lib/motif/motifsg/motifsg41.htm -http://chita.fi.upm.es/docs/info/en_US/a_doc_lib/motif/motifsg/motifsg43.htm -http://hakuba-net.gr.jp/guide/rest/spa_each/spa_2.html -http://yp.gates96.com/6/16/40/22.html -http://yp.gates96.com/6/16/40/44.html -http://yp.gates96.com/6/16/40/50.html -http://yp.gates96.com/6/16/40/69.html -http://yp.gates96.com/6/16/40/83.html -http://yp.gates96.com/6/16/41/49.html -http://yp.gates96.com/6/16/41/50.html -http://yp.gates96.com/6/16/41/67.html -http://yp.gates96.com/6/16/42/15.html -http://yp.gates96.com/6/16/42/51.html -http://yp.gates96.com/6/16/42/56.html -http://yp.gates96.com/6/16/43/8.html -http://yp.gates96.com/6/16/43/69.html -http://yp.gates96.com/6/16/43/71.html -http://yp.gates96.com/6/16/44/11.html -http://yp.gates96.com/6/16/44/51.html -http://yp.gates96.com/6/16/45/20.html -http://yp.gates96.com/6/16/45/43.html -http://yp.gates96.com/6/16/46/12.html -http://yp.gates96.com/6/16/46/25.html -http://yp.gates96.com/6/16/46/64.html -http://yp.gates96.com/6/16/47/42.html -http://yp.gates96.com/6/16/47/80.html -http://yp.gates96.com/6/16/48/54.html -http://yp.gates96.com/6/16/48/85.html -http://yp.gates96.com/6/16/49/51.html -http://yp.gates96.com/6/16/49/62.html -http://assgay.com/main.html?fuck.cock.gaysex -http://ring.yamanashi.ac.jp/pub/linux/linuxppc/contrib/software/System_Environment/Libraries/?S=A -http://computalynx.tucows.com/winme/adnload/138681_29976.html -http://computalynx.tucows.com/winme/adnload/138706_29992.html -http://computalynx.tucows.com/winme/adnload/138690_29990.html -http://computalynx.tucows.com/winme/adnload/138694_29981.html -http://iceberg.adhomeworld.com/cgi-win/redirect.exe/851857198 -http://link.fastpartner.com/do/session/600337/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php -http://link.fastpartner.com/do/session/600337/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/nordicliving.php -http://link.fastpartner.com/do/session/600337/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/create/learn.htm -http://www.linux.com/networking/network/applications/hardware/device/development/ -http://www.linux.com/networking/network/applications/hardware/device/Corel/ -http://www.linux.com/networking/network/applications/hardware/device/?kw_offset=50 -http://ftp.gigabell.net/debian/dists/unstable/main/binary-m68k/sound/?M=A -http://no.egroups.com/message/slfxpzur/36 -http://no.egroups.com/message/slfxpzur/38 -http://nuance.dhs.org/lbo-talk/0004/2286.html -http://www.jamba.de/KNet/_KNet-XEk8j1-ADd-136sq/showInfo-datenschutz.de/node.0/cde7f1uou -http://yp.gates96.com/2/37/60/0.html -http://yp.gates96.com/2/37/60/13.html -http://yp.gates96.com/2/37/61/24.html -http://yp.gates96.com/2/37/61/66.html -http://yp.gates96.com/2/37/62/5.html -http://yp.gates96.com/2/37/62/31.html -http://yp.gates96.com/2/37/63/31.html -http://yp.gates96.com/2/37/63/43.html -http://yp.gates96.com/2/37/63/48.html -http://yp.gates96.com/2/37/63/60.html -http://yp.gates96.com/2/37/63/88.html -http://yp.gates96.com/2/37/64/62.html -http://yp.gates96.com/2/37/64/74.html -http://yp.gates96.com/2/37/65/0.html -http://yp.gates96.com/2/37/66/20.html -http://yp.gates96.com/2/37/67/41.html -http://yp.gates96.com/2/37/68/2.html -http://yp.gates96.com/2/37/68/50.html -http://yp.gates96.com/2/37/69/15.html -http://yp.gates96.com/2/37/69/41.html -http://yp.gates96.com/2/37/69/47.html -http://yp.gates96.com/2/37/69/60.html -http://yp.gates96.com/2/37/69/75.html -http://yp.gates96.com/2/37/69/76.html -http://gettosdownloads.subportal.com/sn/Palm_Pilot/Games/12428.html -http://news.novgorod.ru/read/65/2000/10/27/10/49 -http://www.schwan.de/links-biografie.html -http://www.fogdog.com/cedroID/ssd3040183124617/cgi-bin/MyFogdog -http://www.nrk.no/finnmark/x27_6_97/nyh9.htm -http://www.aelita.net/products/news/services/sitemap/~archive/Download_redirect/company/Copyright.htm -http://www.staroriental.net/nav/soeg_c/ihf,aol,n15,149,TVB香港å°å§2000.html -http://members.xoom.com/agent187/politics.htm -http://sunsite.org.uk/public/packages/perl/collections/cis.ufl/comp.lang.perl.announce/1998-03/724 -http://www.thestateofcolorado.com/gcecommercialsales.html -http://ftp.du.se/pub/redhat/rawhide/sparc/RedHat/RPMS/?M=A -http://www.linux.com/networking/network/community/trade_show/magazine/open_source/ -http://www.linux.com/networking/network/community/trade_show/magazine/Slashdot/ -http://www.linux.com/networking/network/community/trade_show/magazine/investors/ -http://scifi.emerchandise.com/browse/TV/PIN/b.TV/s.KkOtzPMn -http://scifi.emerchandise.com/browse/DILBERT/_/b.TV/s.KkOtzPMn -http://scifi.emerchandise.com/browse/DR.KATZ/_/b.TV/s.KkOtzPMn -http://scifi.emerchandise.com/browse/FRIENDS/_/b.TV/s.KkOtzPMn -http://scifi.emerchandise.com/browse/FUTURAMA/_/b.TV/s.KkOtzPMn -http://scifi.emerchandise.com/browse/LOIS-CLARK/_/b.TV/s.KkOtzPMn -http://scifi.emerchandise.com/browse/SPEEDRACER/_/b.TV/s.KkOtzPMn -http://scifi.emerchandise.com/browse/THUNDERCATS/_/b.TV/s.KkOtzPMn -http://scifi.emerchandise.com/browse/WCW/_/b.TV/s.KkOtzPMn -http://www.railion.de/home/db_reise_touristik/region/bremen/db_rt_firmenreisedienst_reisezentrum_hb.shtml -http://pegasus.infor.kanazawa-it.ac.jp/~hara/bsd4.1-release/D/N_GETFLAG_NET.html -http://yp.gates96.com/5/54/20/19.html -http://yp.gates96.com/5/54/21/5.html -http://yp.gates96.com/5/54/21/42.html -http://yp.gates96.com/5/54/21/60.html -http://yp.gates96.com/5/54/21/69.html -http://yp.gates96.com/5/54/21/81.html -http://yp.gates96.com/5/54/21/96.html -http://yp.gates96.com/5/54/22/6.html -http://yp.gates96.com/5/54/22/29.html -http://yp.gates96.com/5/54/22/33.html -http://yp.gates96.com/5/54/22/64.html -http://yp.gates96.com/5/54/22/83.html -http://yp.gates96.com/5/54/22/94.html -http://yp.gates96.com/5/54/22/98.html -http://yp.gates96.com/5/54/23/17.html -http://yp.gates96.com/5/54/23/41.html -http://yp.gates96.com/5/54/24/2.html -http://yp.gates96.com/5/54/24/5.html -http://yp.gates96.com/5/54/24/9.html -http://yp.gates96.com/5/54/24/90.html -http://yp.gates96.com/5/54/25/89.html -http://yp.gates96.com/5/54/26/41.html -http://yp.gates96.com/5/54/27/83.html -http://yp.gates96.com/6/59/21/52.html -http://yp.gates96.com/6/59/22/63.html -http://yp.gates96.com/6/59/23/37.html -http://yp.gates96.com/6/59/23/95.html -http://yp.gates96.com/6/59/24/3.html -http://yp.gates96.com/6/59/24/9.html -http://yp.gates96.com/6/59/25/26.html -http://yp.gates96.com/6/59/25/55.html -http://yp.gates96.com/6/59/25/84.html -http://yp.gates96.com/6/59/25/94.html -http://yp.gates96.com/6/59/26/53.html -http://yp.gates96.com/6/59/26/73.html -http://yp.gates96.com/6/59/27/15.html -http://yp.gates96.com/6/59/27/29.html -http://yp.gates96.com/6/59/27/49.html -http://yp.gates96.com/6/59/27/97.html -http://yp.gates96.com/6/59/28/31.html -http://yp.gates96.com/6/59/28/32.html -http://yp.gates96.com/6/59/28/39.html -http://yp.gates96.com/6/59/28/98.html -http://yp.gates96.com/6/59/29/22.html -http://yp.gates96.com/6/59/29/83.html -http://www.gbnf.com/genealogy/royal92/html/d0016/I1249.HTM -http://www.gbnf.com/genealogy/royal92/html/d0018/I734.HTM -http://hifichoice.co.uk/archive/perl/193_printreview.htm -http://hifichoice.co.uk/archive/perl/313_printreview.htm -http://www.highwired.net/Paper/UniversalNav/Redirect/0,5314,2623-7802,00.html -http://www.mrlinux.notrix.de/ -http://www.ucalgary.ca/UofC/faculties/medicine/CHS/nhrdb/area/anat/fr.htm -http://home.pchome.com.tw/tv/pili0614/xing-sh/capric/capric47.htm -http://home.pchome.com.tw/tv/pili0614/xing-sh/capric/capric21.htm -http://home.pchome.com.tw/tv/pili0614/xing-sh/capric/caf26.htm -http://user.chollian.net/~pleiad7s/josun/3-37.htm -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=233&discrim=81,3,15 -http://mediate.magicbutton.net/do/session/625571/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/aboutus/index.cfm -http://www.telecombrokers.com/q/001p/atn8/2aS9DLAZRXc.htm -http://www.telecomrefunds.com/q/001p/atn8/4SeFiiXvs2A.htm -http://soho.nascom.nasa.gov/solarsoft/soho/lasco/lasco/data_anal/data/9701/?M=A -http://members.xoom.com/mindnare -http://people.freenet.de/TheChamp/nachhilfe.htm -http://people.freenet.de/TheChamp/cheats.htm -http://www.zinezone.com/movies/1,4003,1040-23080,00.html -http://kulichki-win.rambler.ru/moshkow/TURIZM/kutsajo6.txt_with-icons.html -http://www.linux.com/networking/network/release/availability/hardware/?printable=yes -http://www.linux.com/networking/network/release/availability/hardware/applications/ -http://www.shopworks.com/flmp/index.cfm/action/cart/userid/000D1850-2F00-19FE-9038010B0A0ADCF2 -http://shrike.depaul.edu/~afranz/multimedia/?S=A -http://totalsports.net/news/20001014/bbo/mlb/sea/001014.0024.html -http://totalsports.net/news/20001009/bbo/mlb/sea/001009.0039.html -http://totalsports.net/news/20001006/bbo/mlb/sea/001006.0354.html -http://cometweb01.comet.co.uk/do!session=131986&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkkHbqpLZXmLbkZHljlKaltLkilLXalKfkaLbukKeqjLi1 -http://html.tucows.ciaoweb.it/adnload/berglincondlbind.html -http://www.tiscover.com/1Root/Interessante_Region/127151/sportfreizeit/m_sportfreizeit.wm_sport_freibad..1.html -http://f24.parsimony.net/forum54080/messages/97.htm -http://f24.parsimony.net/forum54080/messages/68.htm -http://www.amulation.com/md-l-archive/199702/msg00210.html -http://netpower.tucows.com/winnt/adnload/2821_29573.html -http://kutschen.de/Schoner/Info-d/literature/collections/collections/Geschichte/ -http://webtools.myschoolonline.com/page/0,1871,0-353-38-44534,00.html -http://www.linux.com/networking/network/help/hardware/open_source/GNOME/ -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=12,25,26,17,24 -http://retailer.gocollect.com/do/session/1912664/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/exclusives.asp -http://retailer.gocollect.com/do/session/1912665/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/news/index.asp -http://ring.nihon-u.ac.jp/pub/doc/jpnic/members/WORLDNET/members.txt -http://www.123webagent.com/q/001p/atn8/zImXxARDSm.htm -http://www.tu-chemnitz.de/~jflo/DOSDemos/cost_b.txt -http://yp.gates96.com/5/54/27/97.html -http://yp.gates96.com/5/54/28/23.html -http://yp.gates96.com/5/54/29/33.html -http://yp.gates96.com/5/54/29/64.html -http://rex.skyline.net/html/Medical_Equipment.html?224,software,equipment,agriculture,science -http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd434602591 -http://www.dispatch.co.za/1998/05/29/business/BA.HTM -http://www.dispatch.co.za/1998/05/29/business/JSE.HTM -http://retailer.gocollect.com/do/session/1912663/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp -http://retailer.gocollect.com/do/session/1912663/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp -http://retailer.gocollect.com/do/session/1912663/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/contact.asp -http://www.hblb.org.uk/hblbweb.nsf/$Pages/NewsArchive1!OpenDocument&ExpandSection=8,9,3,6,1,11,13 -http://retailer.gocollect.com/do/session/1912620/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/gifts/gift_floor.asp -http://genforum.genealogy.com/ga/messages/4583.html -http://genforum.genealogy.com/ga/messages/4582.html -http://genforum.genealogy.com/ga/messages/4570.html -http://genforum.genealogy.com/ga/messages/4561.html -http://genforum.genealogy.com/ga/messages/5575.html -http://ftp.gnu.org/software/sather/ICSI_Sather/whoswho.html -http://dk.egroups.com/group/GHSBasketball -http://dk.egroups.com/group/lovebasket -http://biblioteca.upv.es/bib/doc/doc_fisbd/10/131276//V/1820145/0////25/S/MLTPAID -http://www.qth.net/archive/packfr/200009/20000921.html -http://213.36.119.69/do/session/152975/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/preparer/sante.htm -http://ftp.lip6.fr/pub8/FreeBSD/FreeBSD-current/ports/emulators/mtools/ -http://ftp.lip6.fr/pub8/FreeBSD/FreeBSD-current/ports/emulators/sim6811/ -http://fyi.cnn.com/ASIANOW/asiaweek/97/0328/aa7.html -http://pub21.ezboard.com/fbeauxbatonfrm32.showMessage?topicID=6.topic -http://www.tente.de/us/produkte/produkteigenschaften/aa000001609.htm -http://www.tente.de/us/produkte/produkteigenschaften/aa000001630.htm -http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/net/rboot/?N=D -http://www.geocities.co.jp/Technopolis-Mars/3952/link.html -http://saleonall.com/cat/software/reference/5112/969434/advanced-search.html -http://www.jazzbude.de/EddieLockjawDavis/B000026F24.htm -http://www6.freeweb.ne.jp/art/iftaka/art/ -http://www.canit.se/(ftp,irc,k15,www)/support/kontakt.html -http://www.mirror.edu.cn/res/sunsite/pub/academic/chemistry/iupac/Download/publications/pac/special/0199/ -http://cinemabilia.de/details/katnr/234764/ -http://polygraph.ircache.net:8181/services/design/http_-2www.infolane.com/dallas.htm -http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/games/crafty-open-medium/pkg-comment -http://uk.dir.yahoo.com/Education/Primary_and_Secondary/Schools/Middle_Schools/By_Region/U_S__States/Virginia/Complete_List/ -http://yp.gates96.com/6/2/10/13.html -http://yp.gates96.com/6/2/10/41.html -http://yp.gates96.com/6/2/10/83.html -http://yp.gates96.com/6/2/11/51.html -http://yp.gates96.com/6/2/11/89.html -http://yp.gates96.com/6/2/12/22.html -http://yp.gates96.com/6/2/12/58.html -http://yp.gates96.com/6/2/12/62.html -http://yp.gates96.com/6/2/12/79.html -http://yp.gates96.com/6/2/13/19.html -http://yp.gates96.com/6/2/13/51.html -http://yp.gates96.com/6/2/13/64.html -http://yp.gates96.com/6/2/14/75.html -http://yp.gates96.com/6/2/15/91.html -http://yp.gates96.com/6/2/16/83.html -http://yp.gates96.com/6/2/18/15.html -http://yp.gates96.com/6/2/18/54.html -http://yp.gates96.com/6/2/19/35.html -http://yp.gates96.com/6/2/19/68.html -http://yp.gates96.com/6/2/19/75.html -http://yp.gates96.com/6/2/19/82.html -http://yp.gates96.com/6/2/19/87.html -http://www.chaos.dk/sexriddle/z/w/c/b/v/ -http://itcareers.careercast.com/texis/it/itjs/+bwwBmeg5986wwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhTwdGpdGwBna5dhBiwGnawppcoqwBodD5amnVncdpMnDBaiw5roDtBdDamwBwaoDqc1moDtamn5otDanLpnGonDqnawDwcO5o5aMFqhTfR20Dzme8hwwwpBmeMWD86etmwww5rmeHdwwwBrmeZpwww/jobpage.html -http://itcareers.careercast.com/texis/it/itjs/+3wwBmeV6D86euhwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhTwdGpdGwBna5dhBiwGnawppcoqwBodD5amnVncdpMnDBaiw5roDtBdDamwBwaoDqc1moDtamn5otDanLpnGonDqnawDwcO5o5aMFqhTfR20Dzme8hwwwpBmeMWD86etmwww5rmeidwwwBrmeZpwww/jobpage.html -http://itcareers.careercast.com/texis/it/itjs/+iwwBmeiWD86zwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhTwdGpdGwBna5dhBiwGnawppcoqwBodD5amnVncdpMnDBaiw5roDtBdDamwBwaoDqc1moDtamn5otDanLpnGonDqnawDwcO5o5aMFqhTfR20Dzme8hwwwpBmeMWD86etmwww5rme3dwwwBrmeZpwww/jobpage.html -http://sanming.ebigchina.com/ -http://www.bestinfo.net.cn/bsti_kjxn/gn/guoneifagui/17hebei3.htm -http://www.detroitfreepress.com/photos/umgallery/g8/g8.1.htm -http://www.detroitfreepress.com/photos/umgallery/g8/g8.3.htm -http://xgll.soyou.edu.cn/item/2000-04-07/43733.html43733.html -http://se.egroups.com/message/bunyan/903 -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/KIRJASTO-+JA+TIETOPALVELUT/p%E4ij%E4t-h%E4meen+koulutuskonserni/tietokannat/kirjastot/viitetietokannat/ -http://channel.nytimes.com/2000/05/19/technology/ -http://www.ycwb.com.cn/gb/2000/04/15/jrzk/jrms/5.html -http://no.egroups.com/message/healthdigest/97 -http://no.egroups.com/message/healthdigest/119 -http://www.securitiestimes.com.cn/199909/10/ssgs_19990910007_xw.html -http://javatest.a-net.nl/servlet/pedit.Main/http://www.dohistory.org/interests/i_teaching.html -http://www.buybuddy.com/sleuth/27/1/11009/518452/ -http://www.buybuddy.com/sleuth/27/1/11001/518452/ -http://www.buybuddy.com/sleuth/27/1/11004/518452/ -http://ring.omp.ad.jp/archives/text/CTAN/fonts/metrics/tools/?D=A -http://www.jamba.de/KNet/_KNet-CIq8j1-hEd-138qo/showInfo-special1.de/node.0/cde7f1uou -http://cafe4.daum.net/Cafe-bin/Bbs.cgi/sdfamilypds/qry/zka/B2-kBI7p/qqatt/^ -http://www.insurequotes.com/oh3/1AB2.html -http://www.egroups.com/login.cgi?login_target=%2Fmessage%2FWHKPNews%2F190 -http://www.linux.com/networking/network/performance/reliability/linux/?printable=yes -http://preview.egroups.com/message/tattoos88/32 -http://ring.shibaura-it.ac.jp/archives/NetBSD/packages/1.5/cobalt/math/ -http://ring.shibaura-it.ac.jp/archives/NetBSD/packages/1.5/cobalt/sysutils/ -http://in.us.biz.yahoo.com/z/a/p/prgx/prgx_f0149933.html -http://www.backflip.org/members/robeeena/6484057 -http://www.accesslasvegas.com/shared/health/adam/ency/article/003481res.html -http://library.cuhk.edu.hk/search*chi/dAir+--+Pollution+--+China+--+Hong+Kong./dair+pollution+china+hong+kong/-17,1,1,B/frameset&F=dair+pilots+united+states+biography&7,,7 -http://innopac.lib.tsinghua.edu.cn:2082/search*chi/cTM-62+C288/ctm-62+c288/-5,-1,,B/browse -http://www.nd.edu/~rarebook/coins/bnl-mg/BNL-index-B/BNL-index-BU/BNL-index-bursley.html -http://home.kimo.com.tw/lcl566/布告欄.htm -http://www.northampton.ac.uk/cgi-bin/liberation/betsie/betsie.pl/1005/www.northampton.ac.uk/stu/commdev/chap.htm -http://www.peopledaily.co.jp/199905/11/newfiles/col_990511001040_zyxw.html -http://missuniverse.studiostore.com/browse/PAGEANTS/CAP/s.pJicQfVY -http://ftp.up.pt/Linux/Linus/kernel/v2.1/patch-html/patch-2.2.0-pre6/linux_drivers_misc_parport_procfs.c.html -http://ftp.up.pt/Linux/Linus/kernel/v2.1/patch-html/patch-2.2.0-pre6/linux_drivers_sound_es1370.c.html -http://ftp.up.pt/Linux/Linus/kernel/v2.1/patch-html/patch-2.2.0-pre6/linux_include_asm-arm_arch-vnc_system.h.html -http://ftp.up.pt/Linux/Linus/kernel/v2.1/patch-html/patch-2.2.0-pre6/linux_include_asm-arm_dec21285.h.html -http://www.gbnf.com/genealog2/dezarn/html/d0004/I1071.HTM -http://dogbert.wu-wien.ac.at/UniverCD/cc/td/doc/product/access/acs_mod/cis4000/4000/c4000him/22693/ -http://www.uralweb.ru:8081/stats/who -http://www.rrz.uni-hamburg.de/biologie/b_online/kegg/kegg/db/ligand/cpdhtm/C04881.html -http://www.la.digitalcity.com/fortwaynein/health/conditions.dci?condition=badbreath -http://ibelong.digitalcity.com/uticaarea/guygirlmidwest/main.dci?page=guyssept2000 -http://moviestore.zap2it.com/browse/MOVIES/JACKET/s.jNIqMaLO -http://www.doc.ic.ac.uk/~ace97/whoknows/whoknows.cgi?topic=applescript -http://www.doc.ic.ac.uk/~ace97/whoknows/whoknows.cgi?topic=prolog -http://www.doc.ic.ac.uk/~ace97/whoknows/whoknows.cgi?topic=samba -http://209.52.189.2/discussions.cfm/3031/1757-1776 -http://209.52.189.2/discussions.cfm/3031/757-776 -http://209.52.189.2/discussions.cfm/3031/57-76 -http://itcareers.careercast.com/texis/it/itjs/+DwwBmeOWD86OwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewVtqDhdGMwBodDanDtoDnnGaoDBntGwBodDaMwDwtnMnDBanDBnGpGo5na5nGVnG5anLpnGonDqnaDnBidGAa5O5BnMawppcoqwBodDaMFqhTfR20DzmeitwwwpBme2WD86e1xwww5rmenDwwwBrmeZpwww/morelike.html -http://volunteersolutions.org/austin/volunteer/opp/one_100634_printer_detailed.html -http://www.changeyourhome.net/PropertiesToLet/WithamLet/LOO606/pages/DCP_0421_JPG.htm -http://www.users.qwest.net/~eagletac/ -http://www.motorradversand.de/cgi-bin/bekleidung/integralhelm/NG94G933/beurteilung.htm -http://stol.list.ru/catalog/25440.html -http://stol.list.ru/catalog/25301.html -http://www.eveclub.com/cgi-bin/eveclub.front/972959436300/Club/start/1000000 -http://www.gohamptonroads.com/sportsticker/events/06-12/0447.CWS.FSUTEXCURRENT.html -http://genforum.genealogy.com/merriman/messages/228.html -http://genforum.genealogy.com/merriman/messages/223.html -http://genforum.genealogy.com/merriman/messages/163.html -http://genforum.genealogy.com/merriman/messages/495.html -http://genforum.genealogy.com/merriman/messages/232.html -http://genforum.genealogy.com/merriman/messages/351.html -http://genforum.genealogy.com/merriman/messages/324.html -http://genforum.genealogy.com/merriman/messages/510.html -http://genforum.genealogy.com/merriman/messages/57.html -http://genforum.genealogy.com/merriman/messages/12.html -http://genforum.genealogy.com/merriman/messages/263.html -http://genforum.genealogy.com/merriman/messages/15.html -http://retailer.gocollect.com/do/session/1912656/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53832/eus53833/eus328722/eus129553/eus129564/ -http://cma.arabia.com:8008/jordan/article/print/arabic/0,5195,3750,00.html -http://webhome.ai-lab.fh-furtwangen.de/for_local_use_only/CD-TMFUMV/daten/mathema/01121m/?N=D -http://store1.europe.yahoo.com/brink2/2000000141305.html -http://www.contractorresource.com/Vermont/Westford/Architects.shtml -http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/3d-service/Top-Darlehens-Konditionen/Startseite/Gemeinsam/versicherungen/gebaeude/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Top-Darlehens-Konditionen/anforderungsformular.htm -http://free.polbox.pl/p/pphromar/OFERTA.htm -http://www.burstnet.com/ads/ad5788a-map.cgi/tr00010005_12 -http://www.private-immobilien-boerse.de/ungarn/verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Immolink/3d-service/IIM-Teil/Startseite/froben.htm -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/KIRJASTO-+JA+TIETOPALVELUT/ammattikorkeakoulukirjastot/lahti/toisen+asteen+koulutus/ammattikorkeakoulut/ -http://www.geomag.com/pirates/html/4books.html -http://www.lithoquoter.com/Scripts/WebObjects.exe/Printers.woa/559420000049560000009753100000548302/main.wo/7016200000448302/0/-/prime -http://www.adventurecentre.com/Framesets/intrside/csh.htm -http://mitglied.tripod.de/vox0/negrostodos/de_sexo_dobles.html -http://www.sasinstitute.com/offices/asiapacific/taiwan/whatsnew/art1999/art091601.html -http://oss.sgi.com/cgi-bin/cvsweb.cgi/gdb/sim/ppc/Attic/ppc-opcode-complex?only_with_tag=HEAD -http://www.yorosiku.net:8080/-_-http://www.suntory.co.jp/eco/what.html -http://www.yorosiku.net:8080/-_-http://www.suntory.co.jp/culture/birds/welcome.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/linux/music/misc/unitest/lit/pushkin.html -http://sunsite.uakom.sk/tucows/adnload/69291_28346.html -http://members.tripod.com/yamabito2/gardening_000416_0502_n22.htm -http://www.affiliate.hpstore.hp.co.uk/do/session/380775/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp -http://www.onsemi.com.cn/pub/prod/0,1193,products1_Disty_order=MC100H642FNR2,00.html -http://perso.wanadoo.fr/michel.brunel/Infographie/content/contacts.htm -http://mindit.netmind.com/proxy/http://www.film.com/RGI/FC.(/watch/broadband.jhtml).def...RGI//reviews/features/mow/blairwitch2.jhtml -http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1997-98/jmc1/labs/Ex09/gv197/?N=D -http://www-d0.fnal.gov/d0dist/dist/releases/test/l3fmuo_unpack/rcp/?N=D -http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/44dc495cc7534894862566fe00127751!OpenDocument&ExpandSection=7,10,4,9 -http://www.zdnet.com/gamespot/filters/printerfriendly/0,10855,2531809-95,00.html -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/el%25C3%2583%25C2%25A4kelaitokset/vakuutuslaitokset/rahoitus/el%E4kerahastot/ -http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/fthteavfo2-96.html -http://polygraph.ircache.net:8181/http_-2ESPN.SportsZone.com/nfl/mall/http_-2www.excite.com/http_-2www.exploreuw.com/cards/ -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cosido&l=pt -http://fazmali.bigsmart.com/mall/allinone/comparison_chart_new.html -http://sunsite.ualberta.ca/pub/Mirror/gnu/etc/ORDERS -http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00347.html -http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00363.html -http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00482.html -http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00483.html -http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00499.html -http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00508.html -http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00518.html -http://it.sports.yahoo.com/000911/90/of8m.html -http://ftp.support.compaq.com/public/dunix/v3.2g/TruCluster_V1.0/?M=A -http://ftp.support.compaq.com/public/dunix/v3.2g/TruCluster_V1.0/ReleaseNotes.pdf -http://www.quzhou.gov.cn/flfg.nsf/0a043ae26eb50247002564640039f21d/e3cb86464a9f805a002564ac0039422d!OpenDocument&ExpandSection=5,1,9 -http://www.quzhou.gov.cn/flfg.nsf/0a043ae26eb50247002564640039f21d/e3cb86464a9f805a002564ac0039422d!OpenDocument&ExpandSection=6,1,9 -http://polygraph.ircache.net:8181/Keyboards/http_-2www.sky.net/~robertf/http_-2domino.findyn.com/fdi.nsf/http_-2home.netscape.com/ -http://www.nv.cc.va.us/home/jakim -http://itcareers.careercast.com/texis/it/itjs/+nwwBmJe0B-deVmwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewXhmoBGnaqdGpdGwBodDaDnBidGAoDta5O5BnM5amo5BGox1BnmanDtoDnnGaMw55wqr15nBB5a51ppdGBamnVncdpaBn5BaMFqhTfR20DzmeQtwwwpBme-WD86eyxwww5rmesdwwwBrmeZpwww/morelike.html -http://itcareers.careercast.com/texis/it/itjs/+MwwBme7WD86JwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewXhmoBGnaqdGpdGwBodDaDnBidGAoDta5O5BnM5amo5BGox1BnmanDtoDnnGaMw55wqr15nBB5a51ppdGBamnVncdpaBn5BaMFqhTfR20DzmeQtwwwpBme-WD86eyxwww5rme4dwwwBrmeZpwww/jobpage.html -http://my.dreamwiz.com/hideyu/couple/couplemain.htm -http://www.noras.bizland.com/top_pages/top_gen_1.htm -http://www.nomade.fr/catm6/entreprises_economi/electricite_electro/electricite/composants_fournitu/index5.shtml -http://www.staroriental.net/nav/soeg_c/ihf,aeb,s0,363,黎明.html -http://online.excite.de/lifestyle/katalog/27990 -http://www.linux.com/networking/network/performance/install/news/Linux/ -http://www.linux.com/networking/network/performance/install/news/kernel/ -http://tw.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Shandong/Cities_and_Towns/He_Zhe/Government/ -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/ReadAdverData/2000-10-29/12/972792271154.txt -http://independent-sun-01.whoc.theplanet.co.uk/news/Sport/Football/Bradford/ipswich221000.shtml -http://www.emis.de/journals/EJDE/Monographs/Volumes/Monographs/1996/05-Hetzer/Hetzer-tex -http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/arch/arm/def-configs/assabet?only_with_tag=LINUX-2_4_0-test1 -http://www.nrk.no/finnmark/x22_8_96/arkivet/ -http://pelit.saunalahti.fi/.9/telenation/valveworld/games/Half-Life/?S=A -http://pelit.saunalahti.fi/.9/telenation/valveworld/games/Half-Life/_Dedicated.txt -http://pelit.saunalahti.fi/.9/telenation/valveworld/games/Half-Life/_Mods.txt -http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/games/bugsx/?N=D -http://ring.yamanashi.ac.jp/archives/NetBSD/packages/1.4.1/sparc/databases/ -http://citeseer.nj.nec.com/cidcontext/260967 -http://members.tripod.co.jp/jojo6251/sasamineHP.htm -http://www.segodnya.ru/w3s.nsf/Archive/2000_96_life_vrez_noname2.html -http://www.citybrasil.com.br/rs/ivora/cidadefala.htm -http://web62.com/engl/fashion/pompoes/nav.htm -http://www.jufo.com/netcenter/house/item/bglz/477_lmt.html -http://gatekeeper.dec.com/pub/BSD/FreeBSD/FreeBSD-current/src/gnu/libexec/uucp/uupick/ -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/lelandsystems.stanford.edu/announce/pubsw/ -http://www.schleuse.de/maschine/World/Deutsch/Kultur/Literatur/Autoren_und_Autorinnen/D/Dominik,_Hans/ -http://www.elsur.cl/archivo/mayo2000/8mayo2000/elsur/espectaculos/ind2.php3 -http://www.jpc-neuheiten.de/2881737.htm -http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,creaccess,gaestebuch,hilfe,hilfeallgemein,individualverkehr,kultur,onlineservice,schnellübersicht,sense,veranstaltungen,verkehr,von)/_fort/html/themen/computer/soft/links/softquad.htm -http://bbs.syu.ac.kr/NetBBS/Bbs.dll/groupbbs031/rcm/zka/B2-kB23m/qqo/004A/qqatt/^ -http://www.city-map.de/city/print/nl/Niedersachsen/Osterholz/actueel_&_nieuw/onroerendgoed_&_woningen/k012700681.html -http://members.tripod.com/sultana_2/thiskindalife.htm -http://members.tripod.com/sultana_2/thisthing.htm -http://members.tripod.com/sultana_2/believeinthis.html -http://tulips.ntu.edu.tw/search*chi/m586.47+4412/m586.47+4412/-5,-1,0,B/frameset&F=m586.48+0146&1,1 -http://btp1da.phy.uni-bayreuth.de/ftp/pub/FreeBSD/ports/www/linbot/?S=A -http://pub6.ezboard.com/fbiblediscussionandsharingparableorversesharing.subscribeUnregisteredToTopic?topicID=113.topic -http://www.cs.rit.edu/usr/local/pub/atk/course_descr/481.dir/?M=A -http://neptune.guestworld.com/gear/gateway.cfm?action=manage&owner=Nickdays -http://retailer.gocollect.com/do/session/1912673/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/shipping_policy.asp -http://tucows.minorisa.es/adnload/001-006-009-001.html -http://www.cwi.nl/~jack/spunk/texts/pubs/sekhmet/8/sp001225.txt -http://homepage.yesky.com/33554432/36700160/103524.htm -http://cvs.php.net/viewcvs.cgi/php3/functions/gd.c?annotate=1.65&sortby=log -http://www.genexchange.com/deathreg.cfm?state=nc&county=pasquotank -http://www.genexchange.com/schoolreg.cfm?state=nc&county=pasquotank -http://www.tagnet.org/uva/Eventos/Emergencia99/Fotos/FotosOccidente01.htm -http://itcareers.careercast.com/texis/it/itjs/+CwwBmue0B-dswwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6nmoBGnaqdGpdGwBodDa5oBnaoDqc1mnanLqnca15naGn31oGnma5Aocc5awqqd1DBoDtamn5oGwxcnaMFqhTfR20Dzme9twwwpBme+6D865www5rmesDwwwBrmeRdwww/jobpage.html -http://retailer.gocollect.com/do/session/1912638/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://kulichki-win.rambler.ru/inkwell/bio/zitinsk.htm -http://www.thestateofcolorado.com/e1tatpiercing.html -http://www.pc-schulmusik.purespace.de/seminar/START.HTM -http://www.feeler.nl/rubrieken/index.xml/818004059 -http://ftp.dartmouth.edu/~mcb/faculty/fiering.html -http://ustlib.ust.hk/search*chi/cHD30.28+.C56+1995/chd+++30.28+c56+1995/-17,-1,0,E/2browse -http://herndon1.sdrdc.com/cgi-bin/com_detail/C00325258/ -http://www.linux.com/networking/network/industry/press_release/linuxworld/Linux/ -http://mindit.netmind.com/proxy/http://www.abc.net.au/children/bananas/dreamtime/page1.htm -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959860700/Catalog/1000188 -http://207.87.5.36/pc/news/saa7108/ -http://musicalproducts.asiaep.com/muspro5a.htm -http://www.trax.nilex.co.uk/trax.cgi/A1S/A1U/1AL/A1S/A2S/C1L/ -http://www.cjga.com/JamMoviesCanadianO/obsessed.html -http://www.symantec.se/region/jp/support/mac/utiliti/num352/num352up.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=catapultaras&l=pt -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=catapultai&l=pt -http://no.egroups.com/group/Chenzhou-families -http://www.teenplatinum.com/barelylegal/anal-sexass/young-adultbest-friends/hardaction/slutsnude/red-toenail-polishfoot-fetish/toenail-polish.html -http://beatles.sonicnet.com/allmusic/ai_links.jhtml?ai_id=1000 -http://www.luecos.de/wow/art/fu_satir_30142.html -http://nw1.newsweek.com/nw-srv/inetguide/iguide_4505343.html -http://www.si.uniovi.es/mirror/squid/mail-archive/squid-users/200002/0637.html -http://sunsite.compapp.dcu.ie/pub/perl/modules/by-category/08_User_Interfaces/Tk/NI-S/Tk402.004.readme -http://www.amzn.com/exec/obidos/tg/feature/-/44435/ -http://www.amzn.com/exec/obidos/tg/feature/-/2869/ -http://www.hanter21.co.kr/NetBBS/Bbs.dll/dhliter02/lst/qqeq/1/zka/B2-kBINo/qqo/PRMY -http://www.linux.com/networking/network/help/email/web/security/ -http://www.linux.com/networking/network/help/email/web/Slackware/ -http://www.linux.com/networking/network/help/email/web/e-commerce/ -http://www.linux.com/networking/network/help/email/web/release/ -http://debian.tod.net/debian/dists/stable/contrib/binary-all/web/?S=A -http://ftp.sunet.se/pub/FreeBSD/ports/ports-current/devel/fastcrc/pkg-descr -http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/B1S/B3S/B1S/C1U/ -http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/B1S/B3S/B1S/C1D/ -http://rex.skyline.net/html/Metalurgy.html?266,supplies,hobbies,painting,arts -http://infoseek.wunderground.com/geo/BigtempBannerPromo/US/CO/Cortez.html -http://www.kaernten.at/1Root/Kontinent/6/Staat/7/Bundesland/17/Ort/820/Pension/304806/Homepage/h_homepage...1.html -http://dellnet.excite.de/nachrichten/katalog/6663 -http://www.users.skynet.be/eloymarc/infomobil2/sobeen13.htm -http://www.outpersonals.com/cgi-bin/w3com/pws/out/hXRIA9gT9KNJakAdbkyW2SaEFRyXAJCa2tpUDiYF1BHxbpYG0_go-roWL4XPWFopknXRvCQG4gmCQLNceomD4GJpJ4hvR4eYeQbgN2CFeSPhxakPczINPvttFOQK3IDjjmYz66jR -http://www.outpersonals.com/cgi-bin/w3com/pws/out/_cRIZWRepq55uG8fC8ijlWOJrkBzrY7AXdlxz7fhosBeDRNPqhpYFY3uMBgWodvLAPXL2sPRQ7GqKF66xzHYxHZISDRz4dfZjEKnEShXdRFhDxBcOPx4ufr7uXHA0sNvRvMq6Z1j -http://polygraph.ircache.net:8181/health/http_-2cyril.com/http_-2www.americanexpress.com/corp/consumerinfo/privacy/privacystatement.shtml -http://polygraph.ircache.net:8181/health/http_-2cyril.com/arch.html -http://www.villager.com/ctg/cgi-bin/Villager/home/AAAksrACwAAACCOAAI -http://www.medoc-ias.u-psud.fr:81/synoptic/gif/950829/?D=A -http://members.tripod.lycos.nl/unlimited_pagez/pld2.html -http://www.thisislancashire.co.uk/lancashire/archive/1996/01/25/FEATURES0VQ.html -http://members.tripod.com/rebelstrange/buxoms.html -http://fi.egroups.com/message/TEZKo/3 -http://www.yamato.jp.ibm.com/servers/eserver/xseries/about/availa.html -http://polygraph.ircache.net:8181/NetworkInfo/http_-2www.thepetsupply.com/3d/web.html -http://polygraph.ircache.net:8181/NetworkInfo/http_-2www.thepetsupply.com/3d/http_-2www.sccsi.com/welcome.html -http://www.luf.org/wiki/edit/GIG/GenericCodingTerm -http://208.178.109.85/msgshow.cfm/msgboard=822531545582878&msg=50215618980084&page=1&idDispSub=-1 -http://mercury.spaceports.com/~xenical/diet-food.html -http://de.news.yahoo.com/991202/3/echc.html -http://web.tiscalinet.it/ipsiang/uviafede/tertulli.html -http://www.brio.de/BRIO.catalog/39fdb8820423a4d82740d472aa780733/Customer/Register -http://rainforest.parentsplace.com/dialog/thread.pl/bradley2/16/2.html?dir=prevResponse -http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/folderFrame/100012/0/def/1208103 -http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Inserieren/Gemeinsam/MarketingStrategie/Gemeinsam/erreichenPartner/Gemeinsam/versicherungen/unfall/Top-Darlehens-Konditionen/anforderungsformular.htm -http://www.planetit.com/techcenters/docs/internet_&_intranet/news/PIT20000630S0024/threads?comment_status=on -http://ftp.eq.uc.pt/software/unix/Linux/redhat/redhat-6.2/doc/HOWTOS/localization/Hellenic-HOWTO-html/Hellenic-HOWTO-8.html -http://help.sap.com/saphelp_45b/helpdata/de/20/7be8341545ab06e10000009b38f83b/applet.htm -http://www.imagestation.com/member/?name=RonnyClas6&c=1 -http://www.egroups.com/messages/cmass-syd-talk/1170 -http://bellsouth-cl.tucows.com/winnt/xwinservernt_size.html -http://ftp.surfnet.nl/os/FreeBSD/cdrom/development/FreeBSD-CVS/ports/mail/youbin/patches/home.html -http://chat.bigchurch.com/cgi-bin/w3com/pws/bc/PDhIf1s64yA1us4SS1FzmCsroIgpwrmcmdaKEhvT295b5JjMxs9ttaP_gpBzDbn5VR9hkgTaiz3efTGjRK64ORbhJMs0Q8ONiYshBhnFHdkQjl3uSSwZim5B5Layd_SDwYDTVgHM659c -http://www.starshop.co.uk/Masson-Andre/Masson-Andre-Soleil-3200802.html -http://www.21hk.com/book/wx1/wx/zpj/h/huanzhulouzhu/shushan/4/ -http://www.dietrich-computer.de/creativegrafik.htm -http://forum.kf.kommorg.no/forum/agenda21/dispatch.cgi/disk_1/showFolder/100005/9206559 -http://mindit.netmind.com/proxy/http://abc.net.au/rn/schedule/wed.htm -http://www.fogdog.com/cedroID/ssd3040183156802/nav/stores/adventure_travel/ -http://www.fogdog.com/cedroID/ssd3040183156802/nav/stores/tennis/ -http://link.fastpartner.com/do/session/600349/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/nordicliving.php -http://members2.clubphoto.com/luisf216501/TAMARINDO/icons.phtml -http://www.affiliate.hpstore.hp.co.uk/do/session/380795/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/brocdesign.asp -http://www.hblb.org.uk/hblbweb.nsf/$Pages/NewsArchive1!OpenDocument&ExpandSection=3,7,14,5,13,4,12 -http://www.chaos.dk/sexriddle/d/l/t/i/a/ -http://www.crutchfield.com/S-s7BJxKzNmKr/shop/ -http://www.crutchfield.com/cgi-bin/S-s7BJxKzNmKr/email.asp?sid=S-s7BJxKzNmKr -http://tucows.interbaun.com/winme/adnload/137104_47064.html -http://iland.tucows.com/win2k/adnload/73990_29810.html -http://ftp.uk.debian.org/debian/dists/woody/contrib/binary-alpha/text/?M=A -http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|10P02|972959526|Warm===and===Dry|user|0|1,0,0,1 -http://pub14.ezboard.com/fjavagateforum69255multibasicboard -http://www.xrefer.com/entry/317621 -http://library.cuhk.edu.hk/search*chi/aChen,+Jih-peng./achen+jih+peng/-5,-1,0,B/frameset&F=achen+jie+qi&1,1 -http://library.cuhk.edu.hk/search*chi/aChen,+Jih-peng./achen+jih+peng/-5,-1,0,B/exact&F=achen+jih+hsin&1,2 -http://yp.gates96.com/5/50/60/53.html -http://yp.gates96.com/5/50/60/98.html -http://yp.gates96.com/5/50/61/14.html -http://yp.gates96.com/5/50/61/60.html -http://yp.gates96.com/5/50/62/0.html -http://yp.gates96.com/5/50/63/12.html -http://yp.gates96.com/5/50/63/14.html -http://yp.gates96.com/5/50/63/51.html -http://yp.gates96.com/5/50/63/52.html -http://yp.gates96.com/5/50/64/2.html -http://yp.gates96.com/5/50/64/31.html -http://yp.gates96.com/5/50/65/36.html -http://yp.gates96.com/5/50/65/44.html -http://yp.gates96.com/5/50/65/58.html -http://yp.gates96.com/5/50/65/78.html -http://yp.gates96.com/5/50/66/33.html -http://yp.gates96.com/5/50/66/38.html -http://yp.gates96.com/5/50/67/3.html -http://yp.gates96.com/5/50/67/83.html -http://yp.gates96.com/5/50/68/40.html -http://yp.gates96.com/5/50/69/2.html -http://yp.gates96.com/5/50/69/36.html -http://yp.gates96.com/5/50/69/49.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cochichastes&l=pt -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cochicharam&l=pt -http://www.affiliate.hpstore.hp.co.uk/do/session/380791/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp.com/cposupport/fr/?CTRYcod=FR -http://www.affiliate.hpstore.hp.co.uk/do/session/380791/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp -http://pub22.ezboard.com/fworldofmugenfrm2.showMessage?topicID=131.topic&index=1 -http://pub23.ezboard.com/fmugenshowdownfrm8.showMessage?topicID=36.topic&index=1 -http://www.questlink.com/QL/CDA/Research/ProductBrief/1,1768,0_11203_135680_85724,00.html -http://www.jamba.de/KNet/_KNet-KBq8j1-gEd-138pd/showInfo-special1.de/node.0/cde7f1uou -http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_050/rcw_41_50_650.txt -http://www.tiscover.ch/1Root/Kontinent/6/Staat/30/Bundesland/31/Ort/234/Ferienpaket/20120/Homepage/buchen...1.html -http://family.go.com/Categories/Features/family_2000_02/kidv/kidv0200resourceiii/ -http://www.online.kokusai.co.jp/Service/V0043469/wrd/G200/service/service.html -http://www.linux.com/networking/network/help/hardware/website/ISP/ -http://store1.europe.yahoo.com/I/freemans_1592_58696403 -http://202.99.23.195/BIG5/channel5/745/20000427/51173.html -http://www-usa10.cricket.org/link_to_database/GROUNDS/WI/ALBION/ALBION_SPORTS_COMPLEX_00772/ -http://www16.freeweb.ne.jp/computer/taka34/ -http://books.hyperlink.co.uk/bookinfo/Caught_in_a_Tornado/Ross/James_R./155553192X -http://ftp.uni-stuttgart.de/pub/security/unix/SSLapps/doc/?S=A -http://www.moviestarpages.com/rebecca_romijn-stamos/picture05.htm -http://html.tucows.ciaoweb.it/adnload/001-009-008-022.html -http://html.tucows.ciaoweb.it/adnload/001-009-008-019.html -http://www.brio.de/BRIO.catalog/39fe2f4306cb75f4273fd472aa780708/UserTemplate/2 -http://www.hole.kommune.no/hole/journweb.nsf/weboffjournal!OpenView&Start=92&Count=50&Expand=170 -http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2home.netscape.com/home/http_-2www.bildhome.com/plantationhomes/bale1500.htm -http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2home.netscape.com/home/http_-2www.bildhome.com/plantationhomes/bale8000.htm -http://writer.heha.net/poetics/90_poetics.htm -http://yp.gates96.com/5/55/20/98.html -http://yp.gates96.com/5/55/21/17.html -http://yp.gates96.com/5/55/21/75.html -http://yp.gates96.com/5/55/22/2.html -http://yp.gates96.com/5/55/22/22.html -http://yp.gates96.com/5/55/22/92.html -http://yp.gates96.com/5/55/23/11.html -http://yp.gates96.com/5/55/23/46.html -http://yp.gates96.com/5/55/23/66.html -http://yp.gates96.com/5/55/23/90.html -http://yp.gates96.com/5/55/24/2.html -http://yp.gates96.com/5/55/24/83.html -http://yp.gates96.com/5/55/24/85.html -http://yp.gates96.com/5/55/25/62.html -http://yp.gates96.com/5/55/26/38.html -http://yp.gates96.com/5/55/26/48.html -http://yp.gates96.com/5/55/28/5.html -http://yp.gates96.com/5/55/28/77.html -http://yp.gates96.com/5/55/29/14.html -http://yp.gates96.com/6/50/40/47.html -http://yp.gates96.com/6/50/40/60.html -http://yp.gates96.com/6/50/40/62.html -http://yp.gates96.com/6/50/41/81.html -http://yp.gates96.com/6/50/41/83.html -http://yp.gates96.com/6/50/42/58.html -http://yp.gates96.com/6/50/42/90.html -http://yp.gates96.com/6/50/42/93.html -http://yp.gates96.com/6/50/43/29.html -http://yp.gates96.com/6/50/43/79.html -http://yp.gates96.com/6/50/43/85.html -http://yp.gates96.com/6/50/44/40.html -http://yp.gates96.com/6/50/44/76.html -http://yp.gates96.com/6/50/44/81.html -http://yp.gates96.com/6/50/45/15.html -http://yp.gates96.com/6/50/45/52.html -http://yp.gates96.com/6/50/46/15.html -http://yp.gates96.com/6/50/46/19.html -http://yp.gates96.com/6/50/46/92.html -http://yp.gates96.com/6/50/47/2.html -http://yp.gates96.com/6/50/47/7.html -http://yp.gates96.com/6/50/47/33.html -http://yp.gates96.com/6/50/49/29.html -http://yp.gates96.com/6/50/49/36.html -http://www.outpersonals.com/cgi-bin/w3com/pws/out/wRtIx3JBCL5wVzA1pIKradbm9z4Oo2BbPRx_FVh-j4UyLzjojbipsV0nsuM2iF9RxJ1jG2C4LUy3YP5pJl7qDqPdnqV765l2x5hJ0fIUUJuWLaccxO0svbclJ4-alyBQj6Y5dO8YdURyhf9q05q8mJ25FlvF62sm -http://213.36.119.69/do/session/152980/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www3.travelprice.com/voyages/recherche.phtml -http://yp.gates96.com/6/2/20/11.html -http://yp.gates96.com/6/2/21/12.html -http://yp.gates96.com/6/2/21/51.html -http://yp.gates96.com/6/2/21/56.html -http://yp.gates96.com/6/2/22/8.html -http://yp.gates96.com/6/2/22/38.html -http://yp.gates96.com/6/2/22/65.html -http://yp.gates96.com/6/2/23/14.html -http://yp.gates96.com/6/2/23/50.html -http://yp.gates96.com/6/2/23/57.html -http://yp.gates96.com/6/2/23/75.html -http://yp.gates96.com/6/2/24/15.html -http://yp.gates96.com/6/2/24/31.html -http://yp.gates96.com/6/2/24/43.html -http://yp.gates96.com/6/2/24/70.html -http://yp.gates96.com/6/2/24/87.html -http://yp.gates96.com/6/2/25/22.html -http://yp.gates96.com/6/2/25/53.html -http://yp.gates96.com/6/2/25/90.html -http://yp.gates96.com/6/2/26/25.html -http://yp.gates96.com/6/2/26/26.html -http://yp.gates96.com/6/2/26/45.html -http://yp.gates96.com/6/2/26/76.html -http://yp.gates96.com/6/2/27/34.html -http://yp.gates96.com/6/2/28/1.html -http://yp.gates96.com/6/2/28/25.html -http://yp.gates96.com/6/2/29/2.html -http://yp.gates96.com/6/2/29/31.html -http://yp.gates96.com/6/2/29/57.html -http://yp.gates96.com/6/2/29/74.html -http://archive.bitcon.no/tucows//winme/preview/136862.html -http://archive.bitcon.no/tucows//winme/preview/138371.html -http://archive.bitcon.no/tucows//winme/preview/137011.html -http://archive.bitcon.no/tucows//winme/preview/137897.html -http://archive.bitcon.no/tucows//winme/preview/138157.html -http://www.ngmag.com/books/reference/0792275667.html -http://socrates.berkeley.edu:4231/pth.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/music/midi/lit/quizz/lit/multiple.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/music/midi/lit/quizz/lit/god.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/music/midi/lit/quizz/misc/colorart/ -http://retailer.gocollect.com/do/session/1912687/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp -http://www.affiliate.hpstore.hp.co.uk/do/session/380807/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/creative/entry.asp -http://home.swipnet.se/~w-29806/Tab/Guitar/Svenska/h/Jakob%20Hellman/VACKERT_.TXT -http://jupiter.u-3mrs.fr/~msc41www/releves/16860204.HTM -http://citeseer.nj.nec.com/cidcontext/1003669 -http://citeseer.nj.nec.com/cidcontext/1003675 -http://citeseer.nj.nec.com/cidcontext/1003676 -http://www.escribe.com/religion/nondualitysalon/m10801.html -http://www.escribe.com/religion/nondualitysalon/m10824.html -http://www.tvstore.com/browse/TV/PATCH/s.bCooTxTe -http://digilander.iol.it/lorciao/computer.htm -http://yosemite.epa.gov/r9/sfund/overview.nsf/ef81e03b0f6bcdb28825650f005dc4c1/1d8f2e36da9dc1de8825660b007ee696?OpenDocument&ExpandSection=-1,-8,-4 -http://cn.egroups.com/post/ukr_liga?act=reply&messageNum=40 -http://www.lithoquoter.com/Scripts/WebObjects.exe/Printers.woa/048720000079262000002260000000798302/Session_Expired_Page.wo/6144200000698302/0/-/prime -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=coadjuvaram&l=pt -http://www.craft-supplies.co.uk/cgi-bin/psProdDet.cgi/LW132|972959517|Liming_&_Patinating|user|0|0,0,1,1 -http://www.angelfire.com/va/boogiescamp -http://www.kyotei.or.jp/JLC/VS/19/991209/0212.htm -http://www.affiliate.hpstore.hp.co.uk/do/session/380800/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp -http://www.city-map.nl/city/map/en/Niedersachsen/Landkreis_Cuxhaven/customers/Dr.rer.nat._Büro_für_Erdwiss.Untersuchungen_Udo_Lade/contact.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=consternais&l=pt -http://muenchen.bda.de/freizeitparks/gastbuch/gaestebuch003.html -http://www.linux.com/networking/network/industry/growth/editing/SAP/ -http://www.linux.com/networking/network/industry/growth/editing/mobile/ -http://lists.omnipotent.net/qmail/199909/msg00892.html -http://lists.omnipotent.net/qmail/199909/msg00952.html -http://lists.omnipotent.net/qmail/199909/msg00964.html -http://ftp.cc.chuo-u.ac.jp/home/pub/lang/perl/CPAN/ports/msdos/old/?N=D -http://www3.buch-per-sms.de/faq.jsp$ID=To7697mC5277111659640048At0.5320036065114109 -http://www3.buch-per-sms.de/wir_ueber_uns.jsp$ID=To7697mC5277111659640048At0.5337056452821441 -http://tradersdirectory.com/channel/jobs/insurance/insurance_policy_clerk/b.2166.g.2360.html -http://www.mapion.co.jp/custom/nikkei/admi/13/13119/takashimadaira/7chome/27/ -http://www.dispatch.co.za/1998/02/19/easterncape/MARCHANC.HTM -http://www.techsupplies.com/sleuth/33/1/10703/523434/ -http://fi.egroups.com/message/911dispatchers/171 -http://polygraph.ircache.net:8181/services/define/toast/congress2000/http_-2www.sportfish.net/fish.htm -http://polygraph.ircache.net:8181/services/define/toast/congress2000/MS.htm -http://polygraph.ircache.net:8181/services/define/toast/congress2000/http_-2leader.linkexchange.com/1/X171400/clicklogo -http://polygraph.ircache.net:8181/services/define/toast/congress2000/cfiref.htm -http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,daham,hilfe,individualverkehr,kultur,literatur,veranstaltungen,verkehr)/_fort/html/themen/aktuell/events/events.htm#regional -http://dellnet.excite.de/computer/katalog/7054 -http://read.cnread.net/cnread1/ztxs/b/baitian/lmss/006.htm -http://www-d0.fnal.gov/d0dist/dist/releases/psim01.02.00/l2utils/GNUmakefile -http://www.allgemeine-immobilien-boerse.de/Frankreich/Verkauf/Private-IB/Startseite/Gemeinsam/erreichenPartner/Gemeinsam/Inserieren/Allgemeine-IB/ -http://wish.themes.tucows.com/adnload/14495.html -http://wish.themes.tucows.com/preview/14494.html -http://wish.themes.tucows.com/preview/78220.html -http://www.uwm.edu/IMT/Computing/sasdoc8/sashtml/af/z0230835.htm -http://www.bdnet.com/Taiga/H/Fulu/fiche_serie.htm -http://se.egroups.com/message/clippingts/14?source=1 -http://adelaida.net/music/texts/trex_s1.html -http://archive.bitcon.no/pub/cica/handheld/desktop/ -http://www.jacksonhewitt.com/ctg/cgi-bin/JacksonHewitt/disclaimers/AAAksrACwAAACCMAAC -http://ftp.cc.chuo-u.ac.jp/home/pub/TeX/CTAN/language/ethiopia/ethtex/lj_fonts/?N=D -http://sirac.inrialpes.fr/Infos/Personnes/Christophe.Rippert/ressources/jdk1.3/docs/guide/jdbc/spec/jdbc-spec.frame16.html -http://www.linux.com/networking/network/release/press_release/competition/web/ -http://www.linux.com/networking/network/release/press_release/competition/internet/ -http://www.linux.com/networking/network/release/press_release/competition/HTTP/ -http://hughes.tucows.com/win2k/share2k_size.html -http://icq.planetout.com/popcornq/movienews/98/10/23/money/careers -http://go3.163.com/_NTES/~cntop07/files/k20808/zengby-k201/zengby-k201-09.html -http://uunetnl.pda.tucows.com/palm/pqa_news_license.html -http://uunetnl.pda.tucows.com/palm/preview/54359.html -http://uunetnl.pda.tucows.com/palm/preview/58637.html -http://uunetnl.pda.tucows.com/palm/adnload/72726_21807.html -http://uunetnl.pda.tucows.com/palm/adnload/62079_21796.html -http://uunetnl.pda.tucows.com/palm/preview/33674.html -http://uunetnl.pda.tucows.com/palm/preview/33501.html -http://uunetnl.pda.tucows.com/palm/adnload/52518_21780.html -http://ftp.dei.uc.pt/pub/net/ip/trace/traffic/?N=D -http://dreamgallery.simplenet.com/lobby/yrestless/sets/26/yrz19.htm -http://sanqin.net/wenyuan/gudian/fengshen/a/fengshen24.html -http://windows.tucows.com/preview/001-010-005-007C.html -http://windows.tucows.com/preview/001-010-005-004C.html -http://proshikanet.tucows.com/win2k/preview/37883.html -http://www5.cplaza.ne.jp/auth/kingdom/bbs/rescue/no70/182.html -http://www5.cplaza.ne.jp/auth/kingdom/bbs/rescue/no70/84.html -http://www5.cplaza.ne.jp/auth/kingdom/bbs/rescue/no70/82.html -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=7,19,34,20,29 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=36,19,34,20,29 -http://www.ne.jp/asahi/kume-kume/kume/photogellery/zoo/nihon_saru/html/nihon_saru04.html -http://www.ne.jp/asahi/kume-kume/kume/photogellery/zoo/nihon_saru/html/nihon_saru05.html -http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/showNextUnseen/fol/100001/2443194 -http://www.chaos.dk/sexriddle/t/r/p/c/p/ -http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/16sol007.htm -http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/16sol024.htm -http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/16sol025.htm -http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/16sol030.htm -http://debian.linux.org.tw/debian/dists/Debian2.1r4/non-free/binary-alpha/oldlibs/?N=D -http://www.tamil.net/list/2000-04/nav00304.html -http://www.2pl.com/b/se/to/1/01/05/v2/1010500263-7.htm -http://www.2pl.com/b/se/to/1/01/05/v2/1010500263-8.htm -http://www.mirror.ac.uk/sites/ftp.microsoft.com/deskapps/powerpt/KB/Q129/5/ -http://www.gbnf.com/genealogy/royal92/html/d0028/I307.HTM -http://www-linux.gsi.de/linux-doc/libqt2/examples/qfd/?M=A -http://www.arm.com/sitearchitek/support.ns4/html/sdt_debug!OpenDocument&ExpandSection=24,6,37,7 -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdeutils/kab/kab_kab1importer.h?sortby=log&only_with_tag=KDE_2_0_RELEASE -http://www.allgemeine-immobilien-boerse.de/nordrhein-Westfalen/bielefeld/Verkauf/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/Private-IB/Gemeinsam/erreichenPartner/email3d.htm -http://www.allgemeine-immobilien-boerse.de/nordrhein-Westfalen/bielefeld/Verkauf/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/Private-IB/3d-service/info.htm -http://satlink.tucows.com/winme/htmleditme_rating.html -http://satlink.tucows.com/winme/adnload/137630_29066.html -http://satlink.tucows.com/winme/adnload/137653_29087.html -http://yp.gates96.com/5/55/40/63.html -http://yp.gates96.com/5/55/40/93.html -http://yp.gates96.com/5/55/41/8.html -http://yp.gates96.com/5/55/41/27.html -http://yp.gates96.com/5/55/41/93.html -http://yp.gates96.com/5/55/42/1.html -http://yp.gates96.com/5/55/42/65.html -http://yp.gates96.com/5/55/43/15.html -http://yp.gates96.com/5/55/43/26.html -http://yp.gates96.com/5/55/43/94.html -http://yp.gates96.com/5/55/44/70.html -http://yp.gates96.com/5/55/44/83.html -http://yp.gates96.com/5/55/45/17.html -http://yp.gates96.com/5/55/46/3.html -http://yp.gates96.com/5/55/46/39.html -http://yp.gates96.com/5/55/46/43.html -http://yp.gates96.com/5/55/47/18.html -http://yp.gates96.com/5/55/48/23.html -http://yp.gates96.com/5/55/48/40.html -http://yp.gates96.com/5/55/48/72.html -http://yp.gates96.com/5/55/48/93.html -http://yp.gates96.com/5/55/49/7.html -http://yp.gates96.com/5/55/49/8.html -http://yp.gates96.com/5/55/49/20.html -http://yp.gates96.com/5/55/49/37.html -http://yp.gates96.com/5/55/49/49.html -http://yp.gates96.com/5/55/49/60.html -http://yp.gates96.com/5/55/49/69.html -http://www.ramtron.com/pages/visiters.htm -http://genforum.genealogy.com/cgi-genforum/forums/oh/wayne.cgi?56 -http://freebsd.ntu.edu.tw/perl/modules/by-module/DB_File/STAS/?N=D -http://sunsite.org.uk/public/usenet/news-faqs/alt.answers/us-visa-faq/?D=A -http://circumstance.co.kr/www.globalvillage.com/support/software.html -http://mediate.magicbutton.net/do/session/625589/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html -http://itcareers.careercast.com/texis/it/itjs/+9wwBmev6D86wwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGPndhBiwGna5O5BnManDtoDnnGamnVncdpoDtaBn5Baw1BdMwBodDaGn31oGnma5Aocc5anLpnGonDqnaGnwcaMFqhTfR20DzmeTtwwwpBm3eP0-dmwww5rmehDwwwBrmeZpwww/morelike.html -http://library.bangor.ac.uk/search/dProtestant+churches+--+New+York+(State)+--+History+--+19th+century/dprotestant+churches+new+york+state+history+++19th+century/-17,-1,0,B/frameset&F=dprotestant+churches+england+history+++16th+century&2,,3 -http://augustachronicle.com/stories/021299/fea_223-4914.000.shtml -http://dreamcity.gaiax.com/www/dreamcity/k/n/kint/menu.html -http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceMallCategories-BBC709D6_97E3_3D628A3FC67830F4FB7BD0E0AC833504 -http://www.mirror.kiev.ua:8082/paper/2000/07/1251/text/07-09-1.htm -http://www.burstnet.com/ads/ad7826a-map.cgi/1025131450 -http://link.fastpartner.com/do/session/600341/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/se/ -http://topcu.tucows.com/winme/adnload/137966_29370.html -http://topcu.tucows.com/winme/adnload/137990_29378.html -http://itcareers.careercast.com/texis/it/itjs/+9wwBmeS+D86swwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6hwAwMwoaBnqrDoqwcaqdD51cBoDta5wcn5aqdD51cBwDB5aBnqrDdcdton5apGd5pnqBoVnaq15BdMnG5apGdm1qBaBnwMaMFqtwAwMwoDzmehxwwwpBmeV+D86eqxwww5rmedDwwwBrmeZpwww/jobpage.html -http://itcareers.careercast.com/texis/it/itjs/+DwwBmeoWD86eDqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6hwAwMwoaBnqrDoqwcaqdD51cBoDta5wcn5aqdD51cBwDB5aBnqrDdcdton5apGd5pnqBoVnaq15BdMnG5apGdm1qBaBnwMaMFqtwAwMwoDzmehxwwwpBmeV+D86eqxwww5rmeqDwwwBrmeZpwww/morelike.html -http://itcareers.careercast.com/texis/it/itjs/+QwwBme4+D86qxwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6hwAwMwoaBnqrDoqwcaqdD51cBoDta5wcn5aqdD51cBwDB5aBnqrDdcdton5apGd5pnqBoVnaq15BdMnG5apGdm1qBaBnwMaMFqtwAwMwoDzmehxwwwpBmeV+D86eqxwww5rm+mwwBrmeZpwww/jobpage.html -http://wwwbackup.trinler.net/anleitungen/manual/mod/mod_dll.html -http://wwwbackup.trinler.net/anleitungen/manual/mod/mod_log_agent.html -http://as400bks.rochester.ibm.com/pubs/html/as400/v4r5/ic2962/info/RZAIENETDOTDATA.HTM -http://www.gov.ie/educ/000928.htm -http://www.gov.ie/educ/speech/000928.htm -http://pub3.ezboard.com/utaela.showPublicProfile?language=EN -http://genforum.genealogy.com/cody/messages/700.html -http://genforum.genealogy.com/cody/messages/525.html -http://genforum.genealogy.com/cody/messages/494.html -http://genforum.genealogy.com/cody/messages/447.html -http://ftp.surfnet.nl/os/FreeBSD/cdrom/development/FreeBSD-CVS/ports/editors/psgml-emacs/files/home.html -http://www.mic.hr/PGBURZA:135556 -http://pub8.ezboard.com/fthecompanionswebboardfrm19 -http://pub8.ezboard.com/fthecompanionswebboardarchive -http://gallery2.simplenet.com/lobby/main/videocaps/ghoffman/precious/ghsp36.htm -http://www.symantec.ru/avcenter/venc/data/unashamed.html -http://www.symantec.ru/avcenter/cgi-bin/virauto.cgi?vid=7000 -http://www.symantec.ru/avcenter/cgi-bin/virauto.cgi?vid=1685 -http://www.symantec.ru/avcenter/cgi-bin/virauto.cgi?vid=5358 -http://rex.skyline.net/navigate.cgi?reading,retail,hobbies,painting,arts -http://rex.skyline.net/navigate.cgi?forsale,retail,hobbies,painting,arts -http://pds.nchu.edu.tw/cpatch/ftp/cuteftp/?S=A -http://www.tel.de/s/M/MCFIT.htm -http://zeus.uni-trier.de/~ley/db/indices/a-tree/s/Stevenson:Allan.html -http://www.alsapresse.com/jdj/00/07/14/SA/article_16.html -http://link.fastpartner.com/do/session/600359/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/jobpilot.php -http://link.fastpartner.com/do/session/600359/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/index.php -http://news.dreamwiz.com/news_lg/04/20001025/joins/200010251653041653193.html -http://news.dreamwiz.com/news_lg/04/20001025/joins/200010250820040820583.html -http://windows.tucows.com/winnt/adnload/71593_30161.html -http://213.36.119.69/do/session/152979/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/encheres/ -http://213.36.119.69/do/session/152979/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/IT_IT/ -http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/showNextUnseen/fol/100012/1220541 -http://bigpanda.net/46/alphabetical.html -http://bigpanda.net/46/io.html -http://fi.egroups.com/message/puzzles/547 -http://theaceshow.com/drawinglinda.html -http://theaceshow.com/drawingsketch.html -http://ftp.jp.debian.org/debian/dists/woody/main/binary-all/news/?D=A -http://www.trax.nilex.co.uk/trax.cgi/A1S/A2L/1AS/B3U/B4L/C2S/ -http://www.trax.nilex.co.uk/trax.cgi/A1S/A2L/1AS/B3U/B4L/C4D/ -http://in.egroups.com/message/islaam/3 -http://in.egroups.com/message/islaam/29 -http://ustlib.ust.hk/search*chi/a%7B233e68%7D%7B215976%7D%7B213e2e%7D/a%7B233e68%7D%7B215976%7D%7B213e2e%7D/-5,-1,0,B/browse -http://yp.gates96.com/13/8/20/68.html -http://yp.gates96.com/13/8/21/25.html -http://yp.gates96.com/13/8/21/32.html -http://yp.gates96.com/13/8/21/49.html -http://yp.gates96.com/13/8/21/63.html -http://yp.gates96.com/13/8/21/88.html -http://yp.gates96.com/13/8/22/2.html -http://yp.gates96.com/13/8/22/10.html -http://yp.gates96.com/13/8/22/67.html -http://yp.gates96.com/13/8/22/79.html -http://yp.gates96.com/13/8/23/19.html -http://yp.gates96.com/13/8/23/31.html -http://yp.gates96.com/13/8/25/64.html -http://yp.gates96.com/13/8/25/68.html -http://yp.gates96.com/13/8/25/73.html -http://yp.gates96.com/13/8/26/6.html -http://yp.gates96.com/13/8/26/11.html -http://yp.gates96.com/13/8/26/12.html -http://yp.gates96.com/13/8/26/39.html -http://yp.gates96.com/13/8/26/54.html -http://yp.gates96.com/13/8/26/55.html -http://yp.gates96.com/13/8/26/82.html -http://yp.gates96.com/13/8/27/89.html -http://yp.gates96.com/13/8/28/22.html -http://yp.gates96.com/13/8/28/61.html -http://yp.gates96.com/13/8/29/13.html -http://yp.gates96.com/13/8/29/33.html -http://yp.gates96.com/13/8/29/83.html -http://www.private-immobilien-boerse.de/baden-wuertemberg/ostalb-kreis/Verkauf/Versteigerungen-IB/Startseite/Gemeinsam/erreichenPartner/IIM-Teil/Startseite/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/indexbeginn.htm -http://www2.so-net.ne.jp/mc/columns/nakama/1112/ -http://ring.shibaura-it.ac.jp/archives/pack/x68/personal/tokei/00_index.txt -http://yp.gates96.com/5/32/0/0.html -http://yp.gates96.com/5/32/0/99.html -http://yp.gates96.com/5/32/1/92.html -http://yp.gates96.com/5/32/1/93.html -http://yp.gates96.com/5/32/3/68.html -http://yp.gates96.com/5/32/4/21.html -http://yp.gates96.com/5/32/4/72.html -http://yp.gates96.com/5/32/5/87.html -http://yp.gates96.com/5/32/6/64.html -http://yp.gates96.com/5/32/7/25.html -http://yp.gates96.com/5/32/7/32.html -http://yp.gates96.com/5/32/7/44.html -http://yp.gates96.com/5/32/7/68.html -http://yp.gates96.com/5/32/7/78.html -http://yp.gates96.com/5/32/8/40.html -http://yp.gates96.com/5/32/8/59.html -http://yp.gates96.com/5/32/8/90.html -http://yp.gates96.com/5/32/8/95.html -http://yp.gates96.com/5/32/9/3.html -http://yp.gates96.com/5/32/9/54.html -http://yp.gates96.com/5/32/9/62.html -http://yp.gates96.com/5/32/9/77.html -http://tucows.soneraplaza.nl/winme/preview/138260.html -http://www.cnnews.com/maya/finance/cjsy/gncj/item/2000_07/206341.shtml -http://212.31.0.37/hur/turk/98/09/23/dunya/02dun.htm -http://212.31.0.37/hur/turk/98/09/12/dunya/01dun.htm -http://ftp.cwi.nl/ftp/mdr/LOCKED/ -http://ftp.cwi.nl/ftp/mdr/PICH/ -http://www.ncte.org/lists/ncte-talk/jan2000/msg02008.html -http://www.russ.ru/forums/prav-dir/conf2/695_r.htm -http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1997-98/jmc1/labs/Ex05/mjp97/?D=A -http://www.affiliate.hpstore.hp.co.uk/do/session/380786/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/search.asp -http://www.flapjack.de/main/2ndHP/jangl43637.htm -http://195.166.55.201/vfg-uk/HTML/P145232.HTM -http://www.greenleaves.com/bookcat/gb_0689826788.html -http://webraft.its.unimelb.edu.au/730452/students/sgm/pub/ -http://ring.omp.ad.jp/pub/NetBSD/packages/pkgsrc/print/teTeX-share/files/ -http://ww.egroups.com/subscribe/wtcjk_purnawirawan -http://167.8.29.14/life/travel/ski/skinj.htm -http://www.nrk.no/finnmark/x26_5_97/fastesid/abonn.htm -http://www.brio.de/BRIO.catalog/39fe2f41050aa9b82741d472aa7806dd/UserTemplate/6 -http://207.25.71.143/golf/news/2000/04/18/heintz/ -http://weekends.worldres.com/script/gen_review.asp?hotel_id=4291&n=1231 -http://www.netitor.com/photos/schools/bc/sport/m-footbl/auto_pdf/weekly-release-082800.pdf -http://www.3w-sciencefiction.de/SmytheRH/SmytheRH0785808744.htm -http://www.zdnet.com/gamespot/stories/screens/0,10865,2617426-32,00.html -http://ftp.lip6.fr/pub2/sgml-tools/website/HOWTO/Root-RAID-HOWTO/t1450.html -http://webusers.siba.fi/doc/texmf/latex/ms/?M=A -http://www.trax.nilex.co.uk/trax.cgi/A1S/1AL/A3L/A1U/A3S/1AS/ -http://www.trax.nilex.co.uk/trax.cgi/A1S/1AL/A3L/A1U/A3S/D1U/ -http://www.trax.nilex.co.uk/trax.cgi/A1S/1AL/A3L/A1U/A3S/D3S/ -http://thaigate.rd.nacsis.ac.jp/ftp/thaisoft/nectec/linux.tle/6.01/Mandrake/?S=D -http://www-ind5.cricket.org/link_to_database/ARCHIVE/2000-01/AUS_LOCAL/GRADE/NSW/SCA/WOMEN/SCA-WOMEN_2000-01_FIXTURES.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=abbratend&l=de -http://www.webvillage.org/mBEDJPsite/html/downloadplugins.html -http://www.gov.karelia.ru:8081/gov/Karelia/658/8.html -http://www.private-immobilien-boerse.de/bayern/ingolstadt/Verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Inserieren/Gemeinsam/erreichenPartner/Ferien-IB/Startseite/ -http://pillsonline.00go.com/lowfatdiet/lifetime_fitness.htm -http://tecfa2.unige.ch/guides/java/examples/JavaClassLibExamples/io/FileReader/Main.class -http://www.burstnet.com/ads/ad7826a-map.cgi/1933336291 -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/Hong%2520Kong/aasia/talous/pika-+ja+perustilastoja/ -http://home.tiscalinet.be/oaseidstad/vonk/optop2000.html -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=19,36,22,32,23 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=29,36,22,32,23 -http://cn.egroups.com/messages/virtualaccess/194 -http://jerken.grida.no/nor/soeno97/ozone/frames/pressure.htm -http://online.excite.de/erotik/katalog/6213 -http://online.excite.de/erotik/katalog/6187 -http://online.excite.de/erotik/katalog/6221 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=28,7,35,25,13 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=31,7,35,25,13 -http://genforum.genealogy.com/cgi-genforum/forums/loughlin.cgi?11 -http://freesoftware.missouri.edu/pub/CPAN/authors/id/J/JS/JSWARTZ/?D=A -http://link.fastpartner.com/do/session/600360/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/fastpartner.php -http://www.jobvillage.com/channel/jobs/sciences/life_sciences/soil_plant_scientist/b.1041.g.251.html -http://ftp.debian.org/dists/Debian2.2r0/non-free/binary-sparc/mail/?D=A -http://generalstore.everdream.com/kore/catalog/Office_Supplies/General_Office_Supplies/Tape_Flags/Arrow/GRP-US6663/product.html -http://www.hig.se/(date,if,set,tablify,user)/~jackson/roxen/ -http://www.hig.se/(date,if,language,set,tablify)/~jackson/roxen/ -http://www.cyber-pages.com/0prog/classifieds_display.cgi?oakland=WEMP=0 -http://202.84.17.6/csnews/articles/141_18691.htm -http://202.84.17.6/csnews/articles/142_18526.htm -http://ftp.dti.ad.jp/pub/FreeBSD/FreeBSD-current/www/es/releases/1.1.5/ -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=9&discrim=247,207,129 -http://ftp.up.pt/Linux/debian/dists/unstable/main/disks-i386/?M=A -http://www.unterhaltungs-cd.de/HillJonny/B000025087.htm -http://filebox.vt.edu/users/aneal/excess/_fpclass/ -http://www.jamba.de/KNet/_KNet-JOt8j1-OEd-139q0/showInfo-presse.de/node.0/cde7f1uou -http://www.tercera.cl/diario/1997/12/05/win.html -http://yp.gates96.com/14/88/20/8.html -http://yp.gates96.com/14/88/20/13.html -http://yp.gates96.com/14/88/22/30.html -http://yp.gates96.com/14/88/25/28.html -http://yp.gates96.com/14/88/25/65.html -http://yp.gates96.com/14/88/26/3.html -http://bsdweb.pasta.cs.uit.no/bsdweb.cgi/~checkout~/pkgsrc/math/grace/pkg/ -http://ftp.tokyonet.ad.jp/pub/Linux/debian-jp/dists/unstable-jp/contrib/binary-m68k/math/?S=A -http://my.dreamwiz.com/piramos/lan.htm -http://pub8.ezboard.com/fselfreliantlivingfrm16.showMessage?topicID=11.topic -http://pub8.ezboard.com/fselfreliantlivingfrm16.showMessage?topicID=4.topic -http://www.affiliate.hpstore.hp.co.uk/do/session/380798/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/vacationcards.asp -http://systemlogic.neoseeker.com/Companies/productportfolios/NEC_Interchannel/?sortby=sections -http://www.houses-apartment-rentals.com/Virginia/city_search_criteria.asp?state=VA&City=DALHART -http://www.wcbcourses.com/wcb2/schools/MERCED/merced/dhauser/2/forums/forum2/messages/17.html -http://www.wcbcourses.com/wcb2/schools/MERCED/merced/dhauser/2/forums/forum2/messages/10.html -http://beautifulsavers.subportal.com/sn/Shell_and_Desktop/Quick_Shutdown_Tools/2702.html -http://polygraph.ircache.net:8181/getting_started/http_-2www.lucent.com/micro/K56flex/http_-2home.netscape.com/comprod/mirror/http_-2www.wtcsf.org/mall/http_-2www.cdnow.com/http_-2www.microsoft.com/msoffice/publicaffairs.html -http://polygraph.ircache.net:8181/getting_started/http_-2www.lucent.com/micro/K56flex/http_-2home.netscape.com/comprod/mirror/http_-2www.wtcsf.org/mall/http_-2www.cdnow.com/http_-2www.microsoft.com/msoffice/videobroadcast/ -http://www.yagoo.co.kr/stats/pitching.asp?Mlbmanid=JESPEN7599 -http://www.4hotfantasy.com/acommon/guests/python4.html -http://boerseninfos.ksk-tut.de/dynamic/ak/adhoc/news/519000-20000316-150811.html -http://boerseninfos.ksk-tut.de/dynamic/ak/adhoc/news/519000-19991025-082814.html -http://cn.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Zhejiang/Cities_and_Towns/Li_Hsua/Business/Companies/Books/ -http://www.affiliate.hpstore.hp.co.uk/do/session/380810/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp -http://kuyper.calvin.edu/fathers2/NPNF1-01/npnf1-01-12.htm -http://library.bangor.ac.uk/search/dModernism+(Literature)/dmodernism+literature/-5,-1,0,E/2browse -http://aleph.tau.ac.il:4500/ALEPH/ENG/ATA/AAS/AAS/SHORT/410519/1/ -http://pub1.ezboard.com/fflashboard1flashjunkiestalk.showAddReplyScreenFromWeb?topicID=190.topic&index=2 -http://www.inforiese.de/db_cargo/typ_b_files/db_cargo_cargo_ansprechpartner.shtml -http://www.gbnf.com/genealogy/dehart/html/d0005/I985.HTM -http://btclickfam.excite.co.uk/directory/categories/670199 -http://www.worldmedicus.com/servlet/Controller/$7008040516620000.sj_viewc/ -http://www.worldmedicus.com/servlet/Controller/$7008040528250000.sj/ -http://207.25.71.143/features/galleries/then_and_now/belinsky/belinsky01_lg_01.html -http://wiem.onet.pl/wiem/002c66.html -http://www.peopledaily.com.cn/GB/paper40/544/58242.html -http://www.uihealthcare.com////PatientsVisitors/MedMuseum/CenturyOfCaring/UniversityHospitals/05Quarantine.html -http://se.egroups.com/login.cgi?login_target=%2Fmessages%2Fwotccglist%2F333 -http://se.egroups.com/message/wotccglist/334 -http://se.egroups.com/message/wotccglist/350 -http://se.egroups.com/message/wotccglist/358 -http://www.msn.expedia.co.uk/wg/North_America/United_States/P30131.asp -http://www.uol.com.br/cinemaonline/starwars -http://www.perotech.ch/d/securedb/html/listtopic.php?7396 -http://moviestore.zap2it.com/browse/X-FILES/POSTCARD/s.goFzN1Lb -http://zeus.uni-trier.de/~ley/db/indices/a-tree/m/Morgoev:Vladimir_K=.html -http://www.3w-buecher.de/GilliesRobertJ/GilliesRobertJ0122839803.htm -http://www.buybuddy.com/sleuth/27/1/11002/6637/ -http://ftp.uk.debian.org/debian/dists/unstable/contrib/binary-powerpc/oldlibs/?D=A -http://no.egroups.com/login.cgi?login_target=%2Fgroup%2Fwww.members.xoom.com%2FLibertyFlame -http://www.aelita.net/products/support/sitemap/Reg/QuoteRegister/news/company/Copyright.htm -http://www.aelita.net/products/support/sitemap/Reg/QuoteRegister/news/services/default.htm -http://www.amateurplatinum.com/spankingfantasy/fertiletrophy-wife/hot-hardcore-fuckinglongest/red-toenail-polishfeet-fucking-/vietnamesewomen/chinesechi/womenpetite.html -http://www.amateurplatinum.com/spankingfantasy/fertiletrophy-wife/hot-hardcore-fuckinglongest/red-toenail-polishfeet-fucking-/vietnamesewomen/fuckinghard/actionsmacking.html -http://genforum.genealogy.com/cgi-bin/print.cgi?fikes::26.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/programs/unlambda/lit/quizz/music/midi/ -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/programs/unlambda/lit/quizz/computers/callcc.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/programs/unlambda/lit/quizz/misc/colorart/ -http://www.musiciansfriend.com/ex/ds/live/001030182726064208037002434823 -http://www.musiciansfriend.com/ex/ds/home/funzone/001030182726064208037002434823?doc=doc,postcard.html -http://www.musiciansfriend.com/ex/ds/home/platinum/001030182726064208037002434823?g,home.platinum.html -http://www.musiciansfriend.com/ex/ds/home/articles/001030182726064208037002434823?dbase=gw,gwmain.html -http://www.musiciansfriend.com/ex/ds/home/articles/001030182726064208037002434823?dbase=info,privacy.html -http://preview.egroups.com/dir/Business/Training_and_Schools/Management_Training/Consultants?st=4 -http://hammer.prohosting.com/~nieting/html1216/lmtf015.htm -http://planetfreebies.subportal.com/sn/Information_Management/Misc__Information_Databases/12835.html -http://dada.linuxberg.com/kdehtml/adnload/61589_33448.html -http://www.wlu.ca/~wwwregi/95-96/cal/ucourses/GM/GM151.html -http://walkabout.tucows.com/win2k/adnload/61015_28629.html -http://www.1001e.net/02/qbt/09.htm -http://se.egroups.com/post/webfaaa?act=reply&messageNum=3 -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/keats.admin.virginia.edu/asbestos/home.html -http://www.hotelboulevard.com/fr/riviera/standard/htmlf752567459c6d803842381c50e94fd9f/sessionLang/ANG/gettingstarted.html -http://ring.omp.ad.jp/pub/NetBSD/packages/pkgsrc/print/transfig/?N=D -http://citeseer.nj.nec.com/cidcontext/2339336 -http://www.uk.multimap.com/p/browse.cgi?pc=LS287DR -http://topcu.linux.tucows.com/x11html/adnload/46019_3809.html -http://www.mon.de/nr/stuemges -http://www.tamil.net/list/1998-10/msg00212.html -http://retailer.gocollect.com/do/session/1912682/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/terms_and_conditions.asp -http://pl.php.net/manual/nl/function.pfpro-version.php -http://members.tripod.co.jp/millenium/top.html -http://community.webshots.com/photo/4331085/4331572GooaFzYUAJ -http://community.webshots.com/photo/4331085/4331589oKrBmsJbga -http://community.webshots.com/photo/4331085/4331620zgfyMLoSjs -http://www.utdallas.edu/~chansen/text/qabbala9.html -http://www.jobvillage.com/channel/jobs/installation_repair/safety_equipment/fire_alarm/b.2283.g.3516.html -http://www.geocities.com/Area51/Chamber/8750/DoesKitEverTalkAboutTheSubjectOnHand.html -http://www.geocities.com/Area51/Chamber/8750/TheMotherofAllMissleBoats.html -http://www.geocities.com/Area51/Chamber/8750/Tomahawk2.html -http://www.thecitizennews.com/main/archive-000628/thecitizennews/citizen.html -http://links2go.publiweb.com/expert/topic/Mp3_Hardware -http://webhelp.promovacances.net/S02/BL/BEGYP/SAI00512024/cal.htm?d=1013 -http://205.161.150.96/cgi-bin/c2k/title_talent.html&id=143786&title_star=DOMINICK -http://dennou-q.geo.kyushu-u.ac.jp/library/Linux/debian-jp/dists/stable/non-free-jp/binary-all/net/?S=A -http://wow-online.vhm.de/Wirtschaft/Unternehmen/Versicherungen/Versicherungsgesellschaften/Signal_Versicherung.html -http://www.linux.com/networking/network/firewall/web/communications/?kw_offset=50 -http://www.leg.wa.gov/pub/rcw%20-%20text/title_28b/chapter_056/rcw_28b_56_090.txt -http://pub12.ezboard.com/flalaland96545listeningbooth.showMessage?topicID=74.topic -http://www.fogdog.com/cedroID/ssd3040183156032/crs/pw__/wld/fogdog_sports/lee_sport/fan_memorabilia/apparel/new_york_yanke_2000_ameri_leagu_champ_tee_shi.html -http://www.fogdog.com/cedroID/ssd3040183156032/nav/stores/adventure_travel/ -http://www.hoovers.com/travel/cityguide/detailed/0,3368,46_119158,00.html -http://user.chollian.net/~mlsc/ -http://www.158china.com/data/stock/fundowner/default.asp?stck_cd=0548 -http://www.affiliate.hpstore.hp.co.uk/do/session/380803/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/createbroch.asp -http://rcsl.auto.inha.ac.kr/~treeman/Documents/HOWTO/Consultants-HOWTO-3.html -http://www.diogenes.ch/4DACTION/web_rd_aut_prview/a_id=7056427&area=&ID=483330 -http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/http_-2www.netscape.com/download/http_-2www.microsoft.com/ie/http_-2207.91.150.20/links.html -http://www.multicosm.com/facade/www.adobe.com/support/techguides/printpublishing/scanning/psscanning01b.html -http://yp.gates96.com/0/50/10/62.html -http://yp.gates96.com/0/50/10/95.html -http://yp.gates96.com/0/50/11/1.html -http://yp.gates96.com/0/50/11/18.html -http://yp.gates96.com/0/50/11/49.html -http://yp.gates96.com/0/50/12/55.html -http://yp.gates96.com/0/50/13/48.html -http://yp.gates96.com/0/50/13/96.html -http://yp.gates96.com/0/50/14/15.html -http://yp.gates96.com/0/50/14/73.html -http://yp.gates96.com/0/50/15/50.html -http://yp.gates96.com/0/50/15/80.html -http://yp.gates96.com/0/50/16/1.html -http://yp.gates96.com/0/50/16/8.html -http://yp.gates96.com/0/50/17/50.html -http://yp.gates96.com/0/50/17/71.html -http://yp.gates96.com/0/50/18/25.html -http://yp.gates96.com/0/50/18/73.html -http://yp.gates96.com/0/50/18/82.html -http://yp.gates96.com/0/50/18/84.html -http://yp.gates96.com/0/50/18/90.html -http://cisne.sim.ucm.es/search*spi/dBallets+--+Gran+Bretaña+--+Discos+compactos/dballets+gran+bretan~aa+discos+compactos/-29,-1,0,B/browse -http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20005025/-17,-1,0,B/browse -http://www.trax.nilex.co.uk/trax.cgi/A1S/1AL/A3L/A4R/B1D/A3S/ -http://php.nic.fi/manual/html/function.cpdf-open.html -http://php.nic.fi/manual/html/function.cpdf-fill.html -http://php.nic.fi/manual/html/function.cpdf-setrgbcolor-fill.html -http://www.classiccmp.org/mail-archive/classiccmp/1998-04/1426.html -http://text.csn.ul.ie/~danny/tabs/p/proclaimers/?N=D -http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/3.0-stable/ports/japanese/zangband/?N=D -http://augustachronicle.com/stories/100197/spo_fishing.html -http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=10,8,9,5 -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/linux/music/quizz/pics.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/linux/music/quizz/lit/ldvelh.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/linux/music/quizz/misc/unitest/ -http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/3.0-stable/ports/japanese/ptex-pkfonts360/?N=D -http://www.2pl.com/b/ru/fi/1/24/06/b1/1240601249-11023.htm -http://galaxy.einet.net/galaxy/Community/United-States/States/Minnesota/Cities-and-Regions/Winona/Education/K--12/Middle/Public.html -http://www.hotelboulevard.com/fr/paris/standard/htmlc866e5cecf73322551f00b0108eb84bc/sessionLang/ANG/prov/browse/cp/75001/resultatSearch.html -http://btp1da.phy.uni-bayreuth.de/ftp/pub/FreeBSD/ports/japanese/dvipsk-vflib/pkg-descr -http://32548news.subportal.com/sn/Utilities/Misc__Encryption_Utilities/ -http://www.hongen.com/proedu/hext/zxks/dxyw/html/dxy62804.htm -http://www.users.globalnet.co.uk/~roy/InternetTree/WC01/WC01_226.htm -http://www2.msstate.edu/~eaddy/famtread/html/nti07339.htm -http://www.trackinfo.com/trakdocs/hound/ca/RESULTS/ARCHIVE/1996/0996/GRCA19S.HTM -http://www.idg.net/crd_essential_110984.html -http://www.zdnet.de//news/artikel/2000/09/06015-wc.html -http://www.secinfo.com/d114Cu.52.htm -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus141561/eus174865/eus327367/eus327527/eus331435/ -http://enjoy100.com.cn/200005/23/ -http://link.fastpartner.com/do/session/600348/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mediatransfer.php -http://www.chaos.dk/sexriddle/t/z/p/b/b/ -http://www.brio.de/BRIO.catalog/39fe2f4106ca8ce0273fd472aa7806ff/UserTemplate/6 -http://link.fastpartner.com/do/session/600352/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/robinhus.php -http://link.fastpartner.com/do/session/600352/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/create/index.php -http://www.underground-online.com/companyfinder/filters/products/0,9996,1793-101,00.html -http://mediate.magicbutton.net/do/session/625588/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/viewer.cfm -http://aol.digitalcity.com/houston/recreation/event.dci?eid=6452 -http://www.linux.com.hk/mirror/ldp/LDP/LG/issue10/lg_bytes10.html -http://www.linux.com.hk/mirror/ldp/LDP/LG/issue10/issue10.txt -http://www.beauty.net.cn/main/japanese/mie.htm -http://www.allgemeine-immobilien-boerse.de/kanada/verkauf/Gemeinsam/Inserieren/Allgemeine-IB/Ferien-IB/Startseite/Private-IB/Startseite/Default.htm -http://www.kodak.co.uk/US/en/corp/store/catalog/Product.jhtml?PRODID=2113&CATID=2234 -http://opac.lib.ntnu.edu.tw/search*chi/f373+017/f373+017/-5,-1,,B/browse -http://ftp.du.se/disk3/mandrake/7.1/Mandrake/mdkinst/etc/pcmcia/?M=A -http://www.teenplatinum.com/barelylegal/anal-sexass/taismall/almond-skinned/{gaylink} -http://194.128.65.4/pa/cm199697/cmhansrd/vo970318/debtext/70318-11.htm -http://netlondon.hotelbook.com/live/photos/19368 -http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/folderFrame/100205/0/author/1243894 -http://www.teacherformation.org/html/od/facilitators.cfm/task1,login/discussion_id,2/xid,5474/yid,3022999 -http://polygraph.ircache.net:8181/environment_energy/heritage/http_-2www.apache.org/ -http://plat.debian.or.jp/debian/dists/unstable/main/binary-alpha/math/?D=A -http://home.hiwaay.net/~bjacobs/genealogy/laster/html/d0054/g0000038.html -http://www.northampton.ac.uk/cgi-bin/liberation/betsie/betsie.pl/1005/www.northampton.ac.uk/cgi-bin/liberation/betsie/betsie.pl/1037/www.northampton.ac.uk/lrs/Information/refword.html -http://ustlib.ust.hk/search*chi/cPL1275+.F426+1991/cpl+1275+f426+1991/-5,1,1,E/frameset&F=cpl+1273+y36+1982&1,1, -http://stormix.com/en/resources/packages/tex/devel/debmake -http://stormix.com/en/resources/packages/tex/devel/doc++ -http://stormix.com/en/resources/packages/tex/devel/ftnchek -http://stormix.com/en/resources/packages/tex/devel/libnet0-dev -http://stormix.com/en/resources/packages/tex/devel/libobgtk-dev -http://stormix.com/en/resources/packages/tex/devel/netatalk-dev -http://stormix.com/en/resources/packages/tex/devel/pact-base -http://stormix.com/en/resources/packages/tex/devel/scalapack1-mpich -http://members.tripod.co.jp/sugisaka/?M=A -http://www.szinfo.com/book/wai/no/fa/h/hongyuhei/011.htm -http://www.szinfo.com/book/wai/no/fa/h/hongyuhei/054.htm -http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/listUnseen/fol/100205/20,0/1230074 -http://www.crutchfield.com/cgi-bin/S-p5rPnwuC0SA/Auto.asp -http://www.abb.co.uk/global/seapr/SEAPR035.NSF/viewUNID/f79b6db19a951ce0c125697300319a41!OpenDocument&ExpandSection=6,4,8,5 -http://freebsd.ntu.edu.tw/perl/authors/id/A/AO/AOCINAR/?S=A -http://www.gaymencam.com/elke.html -http://www.linux.com/networking/network/industry/new/web_server/website/ -http://www.tccomputers.com/cgi-bin/bp/1899758621/products/removeabledrives/removeabledrives.htm -http://www.tccomputers.com/cgi-bin/bp/1899758621/store/showcart.html -http://www.highwired.net/Guidance/Section/0,1860,1779-27626,00.html -http://gd.cnread.net/cnread1/net/zpj/r/repinsky/005.htm -http://www.amateurplatinum.com/tubal-ligationmilk/pregnanttubal-ligation/off-the-ragnipples/jizz-dribbling-cumshotscumming/{amateurlink} -http://home.dqt.com.cn/~why/wenzhang/ckpajq/.htm -http://ftp.fi.debian.org/debian/dists/woody/non-free/binary-all/doc/?D=A -http://www.linux.com/networking/network/website/hardware/howto/Linuxcare/ -http://www.linux.com/networking/network/website/hardware/howto/sales/ -http://shn.webmd.com/printing/asset/adam_imagepage_8626 -http://www.geocities.co.jp/Outdoors/2127/bangai_makuyama.html -http://www2.to/souhey -http://www.hotelboulevard.com/fr/paris/standard/html73b90b9d262d517e98c9d779b3b09b7a/sessionLang/ANG/prov/browse/cp/75017/resultatSearch.html -http://perso.wanadoo.fr/olivier.leieber/page22.html -http://www.computer-networking.de/studenten/dv_labor/onlinebuecher/apache/sections.html -http://saejong.pufs.ac.kr/~cilim/homepage/link.html -http://cafe3.daum.net/Cafe-bin/Bbs.cgi/hopepds/qry/zka/B2-kCYFp/qqatt/^ -http://www3.newstimes.com/archive99/jun1899/lch.htm -http://www.7thlevel.com/python/cwot/demo/ -http://www.paidmania.com/getpaid/signup/100/4632 -http://yp.gates96.com/12/14/0/31.html -http://yp.gates96.com/12/14/0/43.html -http://yp.gates96.com/12/14/0/60.html -http://yp.gates96.com/12/14/1/18.html -http://yp.gates96.com/12/14/1/44.html -http://yp.gates96.com/12/14/1/64.html -http://yp.gates96.com/12/14/1/82.html -http://yp.gates96.com/12/14/2/84.html -http://yp.gates96.com/12/14/3/61.html -http://yp.gates96.com/12/14/4/65.html -http://yp.gates96.com/12/14/5/24.html -http://yp.gates96.com/12/14/5/49.html -http://yp.gates96.com/12/14/5/60.html -http://yp.gates96.com/12/14/5/62.html -http://yp.gates96.com/12/14/6/20.html -http://yp.gates96.com/12/14/6/51.html -http://yp.gates96.com/12/14/7/28.html -http://yp.gates96.com/12/14/7/85.html -http://yp.gates96.com/12/14/7/93.html -http://planet.gaiax.com/home/kito/main -http://www.svt.se/falun/packat/program/603/images/1rep/?D=A -http://volunteersolutions.org/swt/volunteer/opp/one_151124_printer_detailed.html -http://fyi.cnn.com/ASIANOW/asiaweek/97/1003/nat1.html -http://www.farhi.org/ps09/ps09_233.htm -http://yp.gates96.com/6/8/30/27.html -http://biz.yahoo.com/apf/000929/tire_death_7.html -http://www.studentadvantage.gamers.com/game/135583 -http://www.studentadvantage.gamers.com/game/45759 -http://yp.gates96.com/6/8/30/44.html -http://yp.gates96.com/6/8/30/50.html -http://yp.gates96.com/6/8/30/72.html -http://yp.gates96.com/6/8/30/86.html -http://yp.gates96.com/6/8/30/89.html -http://yp.gates96.com/6/8/31/78.html -http://yp.gates96.com/6/8/31/88.html -http://yp.gates96.com/6/8/32/3.html -http://yp.gates96.com/6/8/32/24.html -http://yp.gates96.com/6/8/32/34.html -http://yp.gates96.com/6/8/33/14.html -http://yp.gates96.com/6/8/33/42.html -http://yp.gates96.com/6/8/33/75.html -http://yp.gates96.com/6/8/34/32.html -http://yp.gates96.com/6/8/34/97.html -http://yp.gates96.com/6/8/35/53.html -http://yp.gates96.com/6/8/35/98.html -http://yp.gates96.com/6/8/36/74.html -http://yp.gates96.com/6/8/36/99.html -http://yp.gates96.com/6/8/38/92.html -http://yp.gates96.com/6/8/38/97.html -http://yp.gates96.com/6/8/39/45.html -http://yp.gates96.com/6/8/39/69.html -http://tour.stanford.edu/tour/29.0/gMlPb -http://idl.tucows.com/winme/adnload/138396_30343.html -http://idl.tucows.com/winme/adnload/138395_29743.html -http://web.singnet.com.sg/~tay7012i/family.htm -http://www.chaos.dk/sexriddle/p/f/g/j/o/ -http://lcweb2.loc.gov/ll/llnt/070/?S=A -http://lcweb2.loc.gov/ll/llnt/070/0100/ -http://www.crosswinds.net/~lucifern/ -http://pub14.ezboard.com/fblazinofdablazinestdabattledome.subscribeUnregisteredToTopic?topicID=190.topic -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/computers/lit/quizz/programs/unlambda/misc/peanuts.html -http://members.se.tripod.de/svdata/inglis/sida2.htm -http://www.fogdog.com/cedroID/ssd3040183217284/crs/hp/nav/stores/golf/ -http://198.103.152.100/search*frc/tOperations+guide+to+ZIM/toperations+guide+to+zim/-17,-1,0,E/2browse -http://herndon1.sdrdc.com/cgi-bin/com_detail/C00186353 -http://www.j2ee.com/products/javamail/javadocs/javax/mail/Flags.html -http://www.j2ee.com/products/javamail/javadocs/javax/mail/Header.html -http://www.intellicast.com/Sail/World/UnitedStates/FourCorners/Arizona/LakeMeadCanyon/LocalWinds/d1_18/ -http://genforum.genealogy.com/cgi-bin/print.cgi?guill::871.html -http://in.egroups.com/message/ucc-medicine/9 -http://in.egroups.com/message/ucc-medicine/14 -http://www-uk3.cricket.org/link_to_database/PLAYERS/WOMEN/AUS/WILSON_B_02011221/index.NSW-WOMEN.html -http://ftp.du.se/disk4/FreeBSD/FreeBSD-current/www/ja/releases/?M=A -http://www.citythek.de/koeln/eduscho/fsinhalt.htm -http://198.103.152.100/search*frc/cCA1+MPY30+97C31/cca1+mpy30+97c31/-5,-1,,E/browse -http://ftp.nsysu.edu.tw/Linux/RedHat/doc/en/HOWTOS/localization/Serbian/?N=D -http://mk158.tripod.co.jp/old/praga1/do/bio.html -http://oneplace.adbureau.net/accipiter/adclick/site=ONEPLACE/area=INDEX/POSITION=FOOTER/AAMSZ=468x60/ACC_RANDOM=449975866078 -http://members.tripod.co.jp/Primrose/honeydcolumn3.html -http://911codes.com/games/platform/n64/sect/div/cont/list_cheat/spray/y/id/0000009564/gid/0000003291/_cheats/_walkthroughs/_codes/_pc/_n64/_psx/_gameboy/_playstation/ -http://iqseek.shop.goto.com/compperiph/monfol/mon/search/detail.jhtml?MANUF=ViewSonic&MODEL=E790 -http://iqseek.shop.goto.com/compperiph/monfol/mon/search/detail.jhtml?MANUF=ViewSonic&MODEL=GA655 -http://plat.debian.or.jp/debian/dists/stable/main/binary-powerpc/shells/?M=A -http://retailer.gocollect.com/do/session/1912686/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/shipping_policy.asp -http://vvv.geocities.co.jp/Playtown-Yoyo/5287/ -http://vvv.geocities.co.jp/Playtown-Yoyo/5714/ -http://vvv.geocities.co.jp/Playtown-Yoyo/5750/ -http://genforum.genealogy.com/cgi-genforum/forums/charpia.cgi?3 -http://www.amateurplatinum.com/tubal-ligationmilk/plus-sizecoushin-for-the-pushin/best-friendsjail-bait/vietnamese/ac/dclubrication/bisexualelbow-grease.html -http://library.bangor.ac.uk/search/tContemporary+psychology+series/tcontemporary+psychology+series/-17,-1,0,B/2exact&F=tcontemporary+problems+in+geography&1,4 -http://www-d0.fnal.gov/cgi-bin/cvsweb.cgi/calreco/VERSION?only_with_tag=p05-br -http://www.158china.com/news/2000/08/21/52747.htm -http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx031009.txt -http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx031106.txt -http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx031208.txt -http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx031507.txt -http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx032406.txt -http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx032902.txt -http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx041501.txt -http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx041611.txt -http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx1.txt -http://wuarchive.wustl.edu/edu/math/software/multi-platform/SLATEC/G/G2/G2H/G2H2/sbols/ -http://www.loststars.net/story4/ab200-2.html -http://www.indian-express.com/ie/daily/19981219/35350564.html -http://www.indian-express.com/ie/daily/19981219/35351234.html -http://www.homestead.com/jennyb/pets.html -http://www.allgemeine-immobilien-boerse.de/kanada/verkauf/Gemeinsam/Inserieren/Allgemeine-IB/Versteigerungen-IB/Startseite/Gemeinsam/suche.htm -http://www.sankei.co.jp/databox/paper/9808/06/paper/today/sports/soccer/06soc002.htm -http://rex.skyline.net/navigate.cgi?history,collectibles,recreation,sculpture,arts -http://tjohoo.se/sport/snowboard/2.php3 -http://www.du-et.net/prof/n/nkaworu.html -http://www.iwon.com/home/movies/movies_summary_page/0,13160,383543,00.html -http://www.iwon.com/home/movies/movies_summary_page/0,13160,481885,00.html -http://www.iwon.com/home/movies/movies_summary_page/0,13160,372508,00.html -http://pub13.ezboard.com/fvisualbasicexplorergettingstarted.emailToFriend?topicID=861.topic -http://www.fogdog.com/cedroID/ssd3040183158417/customer_service/ -http://www.fogdog.com/cedroID/ssd3040183158417/cgi-bin/CedroCommerce?func=EditBasket -http://www.fogdog.com/cedroID/ssd3040183158417/nav/products/cycling/1y/software/ -http://www.niwl.se/wais/new/28/28189.htm -http://retailer.gocollect.com/do/session/1912674/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://www.trax.nilex.co.uk/trax.cgi/A1C/A2R/A2U/B3R/A1U/Resign/ -http://www.sofitware.com/books/sci05/0471969664.html -http://www.genome.wustl.edu:8021/gsc1/est/zebrafish_reports/old_rank_reports/zebrafish.rank.990322 -http://www.genome.wustl.edu:8021/gsc1/est/zebrafish_reports/old_rank_reports/zebrafish.rank.991004 -http://www.farhi.org/ps01/ps01_015.htm -http://www-usa10.cricket.org/link_to_database/ARCHIVE/WORLD_CUPS/WC99/STATS/BY_TEAM/SL/WC99_BOWL_BEST_INNS_SR_SL.html -http://www.online.kokusai.co.jp/Stock_corner/V0043480/wrd/G500/stock_corner/stock_corner.html -http://www.online.kokusai.co.jp/Mmf_corner/V0043480/mmf_corner/mmf_corner/url -http://mediate.magicbutton.net/do/session/625604/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-cust.html -http://www.malaysia.net/lists/sangkancil/1999-05/frm00449.html -http://www.bigstar.com/contest/index.cfm/4ae093fg371d8ddg3?fa=contest -http://www.bigstar.com/tv/index.cfm/4ae093fg371d8ddg3 -http://linux.tucows.dia.dk/gnomehtml/adnload/49933_5879.html -http://dc.web.aol.com/roanoke/health/directories.dci?type=professionals -http://dc.web.aol.com/roanoke/health/categories.dci?category=fitnessdiet -http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux/drivers/isdn/icn/Makefile?only_with_tag=davem-cvs-merge -http://dennou-h.gfd-dennou.org/arch/cc-env.old/db/?M=A -http://www.envy.nu/wildcats/gare.html -http://www.envy.nu/wildcats/horst.html -http://www.linux.com/networking/network/release/performance/updates/Netscape/ -http://ftpsearch.belnet.be/pub/os/linux/Linux-sunsite.unc/distributions/ultra/Users-Guide/?S=A -http://www.chaos.dk/sexriddle/n/f/p/g/a/ -http://pub24.ezboard.com/fphilosophersstonefrm7.showAddTopicScreenFromWeb -http://pub24.ezboard.com/fphilosophersstonefrm7.showMessage?topicID=10.topic -http://www.yorosiku.net:8080/-_-http://www2.biglobe.ne.jp/~animenet/jan222/note/bbs2.html -http://www.web-chart.com/Detail.htm?s=2568&c=229 -http://www.brio.de/BRIO.catalog/39fe2f5009021d362740d472aa780645/UserTemplate/8 -http://www.service911.com/egghead/step/0,2743,10+55+157+24348+17295_2,00.html -http://home.pchome.com.tw/computer/judy7777/fast-7.htm -http://big5.peopledaily.com.cn/zdxw/11/20000126/200001261111.html -http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31792/lst/qqo/012D -http://sunsite.org.uk/public/usenet/news-faqs/alt.answers/paranormal/faq -http://newsone.net/nnr/listl/alt.bbs.elebbs/1 -http://ourworld.compuserve.com/homepages/hallg/mg_vor.htm -http://www.world001.com/forum/yue/1573.html -http://www.greenleaves.com/bookcat/gb_1567112730.html -http://quotidiano.monrif.net/chan/motori:1119539:/2000/10/30: -http://quotidiano.monrif.net/chan/motori:926303:/2000/10/30: -http://quotidiano.monrif.net/chan/motori:944719:/2000/10/30: -http://home.online.tj.cn/~madgoe/subtitle/nt/nt363.htm -http://home.online.tj.cn/~madgoe/subtitle/nt/nt352.htm -http://home.online.tj.cn/~madgoe/subtitle/nt/nt343.htm -http://home.online.tj.cn/~madgoe/subtitle/nt/nt327.htm -http://home.online.tj.cn/~madgoe/subtitle/nt/nt320.htm -http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=Vincze -http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=ving -http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=Vinrye -http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=Vinzy -http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=violinist -http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=Violin -http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=vione -http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=viper0669 -http://www.missouri.edu/HyperNews/get/writery/poetry/1.html?embed=-1 -http://www.missouri.edu/HyperNews/get/writery/poetry/6.html?outline=1&embed=1 -http://www.missouri.edu/HyperNews/get/writery/poetry/9.html?outline=-1&embed=1 -http://www.missouri.edu/HyperNews/get/writery/poetry/20.html?outline=3&embed=1 -http://www.missouri.edu/HyperNews/get/writery/poetry/21.html?outline=-1&embed=1 -http://www.missouri.edu/HyperNews/get/writery/poetry/23.html?outline=1&embed=1 -http://www.missouri.edu/HyperNews/get/writery/poetry/38.html?outline=1&embed=1 -http://fi.egroups.com/messages/Avon3DayBoston/5 -http://www.online.kokusai.co.jp/Demo/V0043481/wrd/G400/demo/ -http://www.jamba.de/KNet/_KNet-TQt8j1-PEd-139qr/showInfo-werbung.de/node.0/cde7f1uou -http://computalynx.tucows.com/winnt/adnload/73435_29524.html -http://www.intellicast.com/Golf/World/UnitedStates/Northwest/Oregon/OregonDunes/THUNDERcast/d2_06/ -http://202.105.55.146/h0/news/200009/20/jty7.htm -http://pda.tucows.edisontel.com/newton/newtsfiction_size.html -http://pda.tucows.edisontel.com/newton/adnload/33238_19961.html -http://hem.fyristorg.com/lottaleman/LLfar/1_2942.htm -http://www.norrblom.com/..\hund\1996\s2665496.htm -http://www.ferien-immobilien.de/niedersachsen/weserbergland/Verkauf/Gemeinsam/MarketingStrategie/Allgemeine-IB/Gemeinsam/Super-Zins-Konditionen/Private-IB/Startseite/Default.htm -http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=14,18,11,9,15,8 -http://dennou-h.gfd-dennou.org/arch/cc-env.old/xtop/TEBIKI.top.rs590 -http://www.amzn.com/exec/obidos/search-handle-url/index=vhs&field-director=Jim%20Stenstrum/ -http://www.amzn.com/exec/obidos/tg/browse/-/169237/ -http://www.flora.org/flora.oclug/old-6088 -http://www.msn.expedia.co.uk/wg/Images/P24601.htm -http://www.asahi-net.or.jp/~ei2h-kdu/photos/rail/sanin/amarube3.html -http://au.yahoo.com/Business_and_Economy/Shopping_and_Services/Health/Providers/By_Region/U_S__States/Montana/Complete_List/ -http://www.staroriental.net/nav/soeg/ihf,aai,n2,118,Electric+Wave+Girl+1998.html -http://www.hig.se/(accessed,formoutput,referrer,smallcaps,sqlquery)/~jackson/roxen/ -http://carefinder.digitalcity.com/fargond/sports/team.dci?league=NF2&team=VAC -http://carefinder.digitalcity.com/fargond/sports/team.dci?league=NF2&team=GAA -http://carefinder.digitalcity.com/fargond/sports/team.dci?league=NF2&team=AAB -http://carefinder.digitalcity.com/fargond/sports/team.dci?league=NF2&team=AAF -http://newnova.tucows.com/preview/60922.html -http://www-d0.fnal.gov/d0dist/dist/releases/test/l3fsmtcluster/rcp/?S=A -http://www.cs.rit.edu/~ats/inferno/man/html/proto8.htm -http://dandini.cranfield.ac.uk/vl=-39835473/cl=140/nw=1/rpsv/cw/web/nw1/browse.htm -http://homepage.mac.com/nanameneko/job/architecture-oriented/OHP/Why/why_05.html -http://ftp.sunet.se/pub/FreeBSD/FreeBSD-current/ports/games/CaribbeanStud/?M=A -http://ftp.sunet.se/pub/FreeBSD/FreeBSD-current/ports/games/CaribbeanStud/distinfo -http://ads3.zdnet.com/c/g=r734&c=a53975&idx=2000.10.30.21.30.24/www.zdnet.com/downloads/stories/info/0,,000FDG,.html -http://yp.gates96.com/6/57/80/89.html -http://yp.gates96.com/6/57/81/42.html -http://yp.gates96.com/6/57/81/66.html -http://yp.gates96.com/6/57/82/16.html -http://yp.gates96.com/6/57/82/61.html -http://yp.gates96.com/6/57/83/37.html -http://yp.gates96.com/6/57/83/54.html -http://yp.gates96.com/6/57/84/14.html -http://yp.gates96.com/6/57/85/7.html -http://yp.gates96.com/6/57/85/24.html -http://yp.gates96.com/6/57/85/35.html -http://yp.gates96.com/6/57/85/64.html -http://yp.gates96.com/6/57/86/80.html -http://yp.gates96.com/6/57/86/96.html -http://yp.gates96.com/6/57/87/15.html -http://yp.gates96.com/6/57/89/2.html -http://yp.gates96.com/6/57/89/95.html -http://www.oncology.com/v2_MainFrame/1,1614,_12|00332|00_21|002|00_04|0039|00_38|00188,00.html -http://library.bangor.ac.uk/search/aEllis,+Gail/aellis+gail/-5,-1,0,B/exact&F=aellis+griffith+1844+1913&1,9 -http://www.rezel.enst.fr/ftp/linux/distributions/debian/CD-2/debian/dists/unstable/contrib/source/mail/?S=A -http://itcareers.careercast.com/texis/it/itjs/+SwwBmeYKD86e8hwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhPndhBiwGna5O5BnManDtoDnnGamn5otDamnVncdpaGnwcaBoMnaoDhdGMwBodDaDnBidGAanLpnGonDqnaMFqhTfR20Dzme4twwwpBmex_D86ejxwww5rme6dwwwBrmeZpwww/morelike.html -http://esatnet.tucows.com/winnt/adnload/31316_29136.html -http://home.c2i.net/w-225961/steinare/brosjyre.htm -http://aleph.tau.ac.il:4500/ALEPH/ENG/ATA/AAS/AAS/FIND-ACC/0860271 -http://www.chaos.dk/sexriddle/v/c/w/d/r/ -http://www9.hmv.co.uk:5555/do/session/1347760/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d135_sd0_pt0.html -http://tagesanzeiger.ch/archiv/99november/991122/79295.HTM -http://www.pacifictech.com.cn/pcsoftware/sj/jq/00803.htm -http://www.pacifictech.com.cn/pcsoftware/sj/jq/00430b.htm -http://www.pacifictech.com.cn/pcsoftware/zl/syjq/dmtgj/old/tuxing/3d/20000131.html -http://www.building.com/communities/texis/db/go/+DexVFdeKmYnwrmwxerJOwrmwx3exmww/profile.html -http://my.egroups.com/message/mathies/43?source=1 -http://www.brio.de/BRIO.catalog/39fe2f5706df064c273fd472aa78067c/UserTemplate/6 -http://www.brio.de/BRIO.catalog/39fe2f5706df064c273fd472aa78067c/UserTemplate/9 -http://www.egroups.com/messages/GollyBeenz/44 -http://www.buybuddy.com/sleuth/15/1/1020507/495848/ -http://www.brio.de/BRIO.catalog/39fe2f41010c308a2742d472aa7806a7/UserTemplate/5 -http://www.ferien-immobilien.de/hessen/bad-hersfeld/Verkauf/IIM-Teil/Startseite/Private-IB/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm -http://www.ferien-immobilien.de/hessen/bad-hersfeld/Verkauf/IIM-Teil/Startseite/Private-IB/Allgemeine-IB/Gemeinsam/impressum.htm -http://beetle.marion.ohio-state.edu/Bratt2000/D0029/I10769.html -http://members.tripod.lycos.co.kr/RAINBOR/?D=A -http://www.eos.ncsu.edu/eos/info/bae/bae324_info/ -http://www.chez.com/mousis/vg/aqui/pages/0006.htm -http://search.chollian.net/cgi-bin/filter.cgi?cid=2052&p=1 -http://channel.nytimes.com/1998/03/15/technology/cybertimes/eurobytes/ -http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=13,4,2,7,11 -http://uk.dir.yahoo.com/Regional/Countries/Mexico/States/Baja_California/Cities/Ensenada/Travel_and_Transportation/Accommodation/Caravan_Parks_and_Campgrounds/ -http://ring.toyama-ix.net/archives/mac/info-mac/inet/_Mail/_Eudora/ -http://sport.voila.fr/it/calcio/euro2000/teams/por/squad/nunogomes.html -http://idefix-41.cs.kuleuven.ac.be/~henk/DPS/ -http://library.bangor.ac.uk/search/dLaw+--+Study+and+teaching+--+Great+Britain/dlaw+study+and+teaching+great+britain/-5,-1,0,B/buttonframe&F=dlaw+study+and+teaching+great+britain&7,,7 -http://www.eveclub.com/cgi-bin/eveclub.front/972959440822/Catalog/1000002 -http://www.eveclub.com/cgi-bin/eveclub.front/972959440822/Catalog/1000062 -http://ring.shibaura-it.ac.jp/archives/FreeBSD-PC98/dists/4.0-RELEASE/XF86336/PC98-Servers/?N=D -http://www.uq.edu.au/site-index/index.phtml?site_tree_data=1,91,95,203,338,344,2,6,182,148 -http://www.uq.edu.au/site-index/index.phtml?site_tree_data=1,91,95,203,338,344,2,6,182,163 -http://www.xmission.com/(apocalypse,art,caffiene,geek,misc,music,music,caffiene,art,toys,dots,edge,misc,shopping,ftp,places,privacy,geek,cuseeme,apocalypse,people,stuffiuse,people,places,shopping,stuffiuse,toys)/~bill/links.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=confinarias&l=pt -http://www.xmission.com/(apocalypse,art,caffiene,cuseeme,geek,misc,music,music,caffiene,art,toys,dots,edge,misc,shopping,ftp,places,privacy,geek,cuseeme,apocalypse,people,stuffiuse,places,privacy,stuffiuse,toys)/~bill/links.html -http://www.gigclub.co.jp/tanigawa/tanigawa/980915/menu.html -http://www.3w-sciencefiction.de/SmithWilliamK/SmithWilliamK0126528756.htm -http://w3c1.inria.fr/Mobile/posdep/Presentations/Mogid/sld014.htm -http://members.tripod.co.jp/view_i/p.html -http://202.99.23.245/zdxw/11/20000317/200003171117.html -http://www.jpc-music.com/7334085.htm -http://library.bangor.ac.uk/search/aLibrary+Association/alibrary+association/-5,-1,0,B/buttonframe&F=alibrary+association&2,,64 -http://www.sf.digitalcity.com/puntagordafl/sports/team.dci?league=FSL&team=CHA -http://www.sf.digitalcity.com/puntagordafl/sports/team.dci?league=FSL&team=LAK -http://brain.brent.gov.uk/__802564ff0045d739.nsf/vWebAllPagesByLocsSrvd!OpenView&Start=33&Count=60&Collapse=45 -http://www.nypost.com/news/933.htm -http://www.nypost.com/business/979.htm -http://www.nypost.com/living/951.htm -http://www.computer-networking.de/studenten/cn_intern/bauer/jobst/k07-graphik-gui/controls/swing/ -http://194.55.30.33/albanian/tema_gjermane/67823.html -http://194.55.30.33/albanian/tema_gjermane/65962.html -http://yp.gates96.com/14/85/10/12.html -http://yp.gates96.com/14/85/11/98.html -http://yp.gates96.com/14/85/12/24.html -http://yp.gates96.com/14/85/13/57.html -http://yp.gates96.com/14/85/14/92.html -http://yp.gates96.com/14/85/16/37.html -http://yp.gates96.com/14/85/16/51.html -http://yp.gates96.com/14/85/16/78.html -http://yp.gates96.com/14/85/17/38.html -http://yp.gates96.com/14/85/17/48.html -http://yp.gates96.com/14/85/17/91.html -http://yp.gates96.com/14/85/19/35.html -http://yp.gates96.com/14/85/19/88.html -http://genforum.genealogy.com/cgi-genforum/forums/deppen.cgi?3 -http://www.ferien-immobilien.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/Private-IB/Startseite/Gemeinsam/Inserieren/Versteigerungen-IB/Startseite/Ferien-IB/Startseite/ -http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/51800 -http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/53510 -http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/52600 -http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/50510 -http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/50400 -http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/http_-2www.netscape.com/download/http_-2www.microsoft.com/ie/http_-2207.91.150.20/http_-2www.updowntowner.org/julyjamm/headliners.html -http://www.ccurrents.com/magazine/national/1702/nets31702.html -http://adept.subportal.com/sn/Themes/Vehicle_Themes/5090.html -http://www.fogdog.com/cedroID/ssd3040183211390/nav/products/outlet/1a/fishing/ -http://www.linux.com/networking/network/communications/article/unix/sales/ -http://fyi.cnn.com/content/US/9902/25/germans.death.penalty.ap/ -http://fyi.cnn.com/US/9902/09/monk.execute.ap.02/ -http://fyi.cnn.com/WORLD/asiapcf/9902/06/PM-Philippines-DeathPena.ap/ -http://pub11.ezboard.com/ucivik.showPublicProfile -http://playboy.software.net/PKIN005896/prod.htm -http://www.linux.com/networking/network/help/free/performance/install/ -http://www.linux.com/networking/network/help/free/performance/X/ -http://se.egroups.com/message/ghost_tales/1490 -http://niteowl.userfriendly.net/linux/RPM/rawhide/1.0/i386/usr_src_linux-2.4.0_include_Tree.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=coexistissem&l=pt -http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/21_HADM.HTM -http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/25_HADM.HTM -http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/86_HADM.HTM -http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/88_HADM.HTM -http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/90_HADM.HTM -http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/HADM6.HTM -http://www.estrelladigital.es/000814/articulos/economia/correos.htm -http://itcareers.careercast.com/texis/it/itjs/+awwBme4CD86LxwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewPPnBwpcnaqdGpdGwBnaoDhdGMwBodDahoDma5BdGnaq15BdMnGa5nGVoqnaqdDBwqBamo5BGox1BodDaMwDwtnMnDBaMFqrIRE7P0IDzme_xwwwpBmHe0B-deaqwww5rmsmwwBrme7Dwww/morelike.html -http://yp.gates96.com/3/79/50/30.html -http://yp.gates96.com/3/79/50/54.html -http://yp.gates96.com/3/79/51/1.html -http://yp.gates96.com/3/79/51/11.html -http://yp.gates96.com/3/79/51/80.html -http://yp.gates96.com/3/79/52/27.html -http://yp.gates96.com/3/79/52/81.html -http://yp.gates96.com/3/79/53/81.html -http://yp.gates96.com/3/79/54/0.html -http://yp.gates96.com/3/79/54/31.html -http://yp.gates96.com/3/79/55/74.html -http://yp.gates96.com/3/79/55/78.html -http://yp.gates96.com/3/79/56/72.html -http://yp.gates96.com/3/79/57/0.html -http://yp.gates96.com/3/79/58/27.html -http://yp.gates96.com/3/79/58/31.html -http://yp.gates96.com/3/79/58/48.html -http://yp.gates96.com/3/79/58/76.html -http://yp.gates96.com/3/79/58/99.html -http://yp.gates96.com/3/79/59/27.html -http://yp.gates96.com/3/79/59/32.html -http://yp.gates96.com/3/79/59/49.html -http://yp.gates96.com/3/79/59/81.html -http://yp.gates96.com/3/79/59/83.html -http://startribune.atevo.com/misc/print_article/0,3869,4504302,00.html -http://browse.carnaby.com/home/showcase/6/381/2078/A0638120780000EA01.html -http://www.checkout.com/music/earmail/form/1,7650,325272-1761567,00.html -http://ring.shibaura-it.ac.jp/archives/doc/jpnic/minutes/committee/200007/shiryou-4-1.txt -http://www.secinfo.com/d1ZMQs.51h.htm -http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/AtlantisPBEM/CVSROOT/modules?only_with_tag=MAIN -http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/AtlantisPBEM/CVSROOT/modules?only_with_tag=HEAD -http://ftp.bitcon.no/tucows/adnload/4961_28325.html -http://yp.gates96.com/3/37/0/21.html -http://yp.gates96.com/3/37/0/29.html -http://yp.gates96.com/3/37/0/80.html -http://yp.gates96.com/3/37/0/87.html -http://yp.gates96.com/3/37/1/9.html -http://yp.gates96.com/3/37/2/83.html -http://yp.gates96.com/3/37/2/92.html -http://yp.gates96.com/3/37/3/26.html -http://yp.gates96.com/3/37/4/9.html -http://yp.gates96.com/3/37/4/29.html -http://yp.gates96.com/3/37/5/31.html -http://yp.gates96.com/3/37/5/49.html -http://yp.gates96.com/3/37/5/51.html -http://yp.gates96.com/3/37/5/63.html -http://yp.gates96.com/3/37/5/95.html -http://yp.gates96.com/3/37/6/0.html -http://yp.gates96.com/3/37/6/4.html -http://yp.gates96.com/3/37/7/22.html -http://yp.gates96.com/3/37/8/10.html -http://yp.gates96.com/3/37/8/50.html -http://yp.gates96.com/3/37/8/92.html -http://yp.gates96.com/3/37/9/46.html -http://ftp.digex.net/debian/dists/woody/contrib/binary-sh/libs/?N=D -http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=4,15,12,16 -http://in.egroups.com/group/bbw-uk -http://home.swipnet.se/~w-20817/ -http://shop.puretec.de/kunden/19867293/detailansicht_Aku1025B.html -http://www.rezeptkoch.de/Rezepte/Heimisches_/Gemuse/Sommerliche_Gemusegerichte/sommerliche_gemusegerichte_2.html -http://www.rezeptkoch.de/Rezepte/Heimisches_/Gemuse/Kohl/kohl_4.html -http://www.rezeptkoch.de/Rezepte/Heimisches_/Gemuse/Kohl/kohl_11.html -http://www.chinainvest.com.cn/C/Showdetail/20359.html -http://tucows.sp-plus.nl/winme/preview/141310.html -http://www.al-hujjat.grid9.net/gnomehtml/ent_enhance_rating.html -http://www.warmbloods.net/breeding/_vti_bin/shtml.dll/disc123_post.htm?1260 -http://ftp.sunet.se/pub/FreeBSD/FreeBSD-current/ports/net/ruby-snmp/Makefile -http://basil.cs.uwp.edu/Documentation/java/jdk/docs/guide/sound/prog_guide/chapter3.fm.html -http://tucows.1web.it/winme/preview/75525.html -http://uk-wire.ukinvest.com/articles/200009180701200586R.html -http://www.ozon.ru/detail.cfm/ent=33&id=953&add2navigator=1&txt=1 -http://cometweb01.comet.co.uk/do!session=131984&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkkHbqpLZXmLbkZHljlKaltLkilLXalKfkaLbukKeqjLi1 -http://community.webshots.com/photo/3922869/3923445TSuTSQIWpD -http://www.eveclub.com/cgi-bin/eveclub.front/972959447434/Catalog/1000040 -http://www.tvstore.com/browse/TV/NIGHTSHI/s.nXZNPRgQ -http://www.tvstore.com/browse/TV/COMIC/s.nXZNPRgQ -http://www.xmwb.sh.cn/xmwb/19981016/GB/13389^8101623.htm -http://helios.nlib.ee/search*est/tThe+threshold+series/tthreshold+series/-5,-1,0,B/frameset&F=tthrillers&1,1 -http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=23,9,7,18 -http://ftp.bitcon.no/pub/windowsce/epoc/desktop5.htm -http://ftp.lip6.fr/pub2/sgml-tools/website/HOWTO/Multicast-HOWTO/t1595.html -http://ftp.rge.com/pub/X/XFree86/3.3.3.1/untarred/xc/programs/Xserver/ -http://ftp.rge.com/pub/X/XFree86/3.3.3.1/untarred/xc/programs/xwud/ -http://syix.tucows.com/win2k/adnload/73370_29328.html -http://yp.gates96.com/0/54/80/40.html -http://yp.gates96.com/0/54/80/56.html -http://yp.gates96.com/0/54/80/61.html -http://yp.gates96.com/0/54/80/79.html -http://yp.gates96.com/0/54/81/11.html -http://yp.gates96.com/0/54/81/25.html -http://yp.gates96.com/0/54/81/58.html -http://yp.gates96.com/0/54/82/48.html -http://yp.gates96.com/0/54/82/75.html -http://yp.gates96.com/0/54/83/0.html -http://yp.gates96.com/0/54/84/12.html -http://yp.gates96.com/0/54/84/67.html -http://yp.gates96.com/0/54/85/47.html -http://yp.gates96.com/0/54/85/59.html -http://yp.gates96.com/0/54/86/52.html -http://yp.gates96.com/0/54/86/55.html -http://yp.gates96.com/0/54/86/79.html -http://yp.gates96.com/0/54/86/87.html -http://yp.gates96.com/0/54/87/12.html -http://yp.gates96.com/0/54/87/81.html -http://yp.gates96.com/0/54/88/97.html -http://yp.gates96.com/0/54/89/90.html -http://www.yorosiku.net:8080/-_-http://liinwww.ira.uka.de/bibliography/Distributed/SIGCOMM.94.html -http://news.pchome.com.tw/ftv/health/20000915/ -http://www.emis.de/journals/EJDE/Volumes/Volumes/Monographs/1998/05/?N=D -http://travelocity-dest.excite.com/DestGuides/0,1840,TRAVELOCITY|5706|3|1|159040|photo_id|4022,00.html -http://travelocity-dest.excite.com/DestGuides/0,1840,TRAVELOCITY|5706|3|1|159040|photo_id|4020,00.html -http://lhcbsoft.web.cern.ch/LHCbSoft/simmuon/v1/mgr/CVS/Root -http://tucows.soneraplaza.nl/winme/adnload/137454_28942.html -http://www.borland.nl/techpubs/jbuilder/jbuilder3/ui/wclass.html -http://fi.egroups.com/links/dssf -http://www.homestead.com/jcv2000/MBoard.html -http://careershop.resumeshotgun.com/directory/italy/sardegna/o.10.p.4408.html -http://www.hantsnet.co.uk/istcclr/cch32751.html -http://www.hantsnet.co.uk/istcclr/cch16729.html -http://www.hantsnet.co.uk/istcclr/cch03788.html -http://www.hantsnet.co.uk/istcclr/cch05491.html -http://www.hantsnet.co.uk/istcclr/cchr0418.html -http://www.hantsnet.co.uk/istcclr/cchh2289.html -http://www.hantsnet.co.uk/istcclr/cchh2074.html -http://www.hantsnet.co.uk/istcclr/cch30426.html -http://www.hantsnet.co.uk/istcclr/cch11726.html -http://www.hantsnet.co.uk/istcclr/cch03858.html -http://www.hantsnet.co.uk/istcclr/cche0920.html -http://www.hantsnet.co.uk/istcclr/cch34768.html -http://www.hantsnet.co.uk/istcclr/cchc2067.html -http://www.hantsnet.co.uk/istcclr/cche1085.html -http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/53771000000443000000339400000065451/v2tvindex.wo/614720000055451/1.14/3/Webobjects1 -http://www.sternonline.de/magazin/fotogalerie/hinz/index5.html -http://www.envy.nu/Sing.html -http://employment.subportal.com/sn/Themes/ -http://www.diogenes.ch/4DACTION/web_rd_aut_prview/a_id=7002120&area=&ID=483332 -http://wlink.tucows.com/winme/adnload/137847_29260.html -http://tucows.computalynx.net/winnt/adnload/71633_28766.html -http://ftp.up.pt/Linux/debian/dists/stable/main/disks-m68k/?M=A -http://lcweb2.loc.gov/ll/llnt/009/0000/ -http://www.magma.ca/~denisd/africa/day02.html -http://www.magma.ca/~denisd/africa/day16.html -http://content.health.msn.com/message_board_author/802072 -http://ep.com/js/about/c0/189455 -http://ep.com/js/about/c0/154005 -http://www.realbig.com/miata/miata/1999-12/2340.html -http://www.multimap.com/wi/33738.htm -http://www.multimap.com/wi/148724.htm -http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/3d-service/Gemeinsam/versicherungen/lebensversicherung/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/MarketingStrategie/Strategie.htm -http://link.fastpartner.com/do/session/600347/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/create/learn.htm -http://pub16.ezboard.com/fisnforumsfrm16.subscribeUnregisteredToTopic?topicID=731.topic -http://freesoftware.subportal.com/sn/Business/Application_Add-ins/726.html -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/deskutils/genius/files/?sortby=date -http://www.madein.nnov.ru/stat/index.phtml?cid=418&t=3 -http://citeseer.nj.nec.com/correct/294145 -http://www.phillips.semiconductors.com/pip/PCF5001H -http://www.tvstore.com/browse/TV/BANK/s.Vaphccqs -http://www.tvstore.com/browse/TV/SCRIPT/s.Vaphccqs -http://www.tvstore.com/aboutus/s.Vaphccqs -http://www.fogdog.com/cedroID/ssd3040183205929/nav/products/featured_brands/3b/arm_warmers/ -http://orders.mkn.co.uk/bear/steiff/classic/order/now.en$NOK?what-e=1 -http://www.crutchfield.com/S-jtpRS1P7vRY/help/ -http://www06.u-page.so-net.ne.jp/tb3/y-miyu/azure/kodatour.htm -http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/japanese/escpf/distinfo -http://no.egroups.com/subscribe/Theater_plays -http://www.equipe.fr/Football/FootballFicheJoueur8954_0.html -http://www.equipe.fr/Football/FootballFicheJoueur6039_0.html -http://www.pmdc.org.uk/dogsdb/p00/P00133.HTM -http://ip.tosp.co.jp/i.asp?i=nononatti3 -http://tucows.wlink.com.np/adnload/144221_48889.html -http://store.yahoo.co.jp/I/naturum_1590_147867488 -http://providenet.office.tucows.com/adnload/77414_41755.html -http://providenet.office.tucows.com/adnload/73011_41097.html -http://www.goldersgreen.londonengland.co.uk/medicalequipmentrentalandleasing.htm -http://www.online.kokusai.co.jp/Mmf_corner/V0043462/mmf_corner/mmf_corner/url -http://www.qth.net/archive/packrats/200008/20000804.html -http://www.expage.com/buffykat11nelly -http://dk.egroups.com/login.cgi?login_target=%2Fmessages%2Fbbs_people -http://dk.egroups.com/message/bbs_people/23 -http://www.linux.com/networking/network/technology/free/development/learning/ -http://www.chaos.dk/sexriddle/r/x/z/t/l/ -http://www.opensecrets.org/lobbyists/98profiles/5918.htm -http://www.cbs.sportsline.com/u/football/nfl/kids/players/3418.htm -http://www.cbs.sportsline.com/u/football/nfl/kids/players/3868.htm -http://www.cbs.sportsline.com/u/football/nfl/kids/players/133268.htm -http://www.hig.se/(apre,clientname,countdown,language,set_cookie)/~jackson/roxen/ -http://www.platogmbh.de/plato/home.nsf/c81870434660ba41c125652a0029a47a/fb7566ed772f8580c12566f00036ac59!OpenDocument&ExpandSection=4,8,11,12 -http://www.fogdog.com/cedroID/ssd3040183211315/nav/products/featured_brands/2m/kick_sprint_boards/ -http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/folderFrame/100001/0/alpha/2458960 -http://www.jamba.de/KNet/_KNet-ONt8j1-NEd-139p9/showInfo-jobs.de/node.0/cde7f1uou -http://www.jamba.de/KNet/_KNet-ONt8j1-NEd-139pf/browse.de/node.0/cdzqggtyb -http://iland.tucows.com/win2k/adnload/38318_29882.html -http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~020060~04880',00.html -http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~020060~35840',00.html -http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~020060~90237',00.html -http://sunsite.org.uk/public/usenet/news.answers/alt.answers/self-impr-faq/part1 -http://ftp.bitcon.no/pub/simtelnet/win95/fileutl/?S=A -http://totalsports.aol.com/stats/bbo/mlb/20000517/bal.at.ana.game.html -http://au.yahoo.com/Regional/U_S__States/Virginia/Counties_and_Regions/Henrico_County/Business_and_Shopping/Shopping_and_Services/Travel/ -http://ftp.up.pt/Linux/debian/dists/unstable/main/binary-all/math/ -http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=10,17,13,14 -http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/japanese/vfghostscript/Makefile -http://polygraph.ircache.net:8181/yp/User_Contribs/http_-2home.netscape.com/comprod/mirror/ -http://www.emis.de/journals/EJDE/Volumes/Monographs/Volumes/1998/26/?S=A -http://www.smartshop.com/cgi-bin/main.cgi?c=314&a=contactus -http://213.36.119.69/do/session/152986/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/BE_NL/ -http://www.outdoorwire.com/lists/dirt/200009/msg01273.html -http://chicagocow.com/top/1,1419,M-Metromix-Home-Carryout!InputReview-9757--0,00.html -http://www.lithoquoter.com/Scripts/WebObjects.exe/Printers.woa/659920000022582000008720100000129302/main.wo/9193100000029302/4/-/prime -http://groups.haas.berkeley.edu/hcs/Docs/SASv8/sasdoc/sashtml/proc/z0292493.htm -http://groups.haas.berkeley.edu/hcs/Docs/SASv8/sasdoc/sashtml/proc/z0292495.htm -http://groups.haas.berkeley.edu/hcs/Docs/SASv8/sasdoc/sashtml/proc/z0292496.htm -http://www.outpersonals.com/cgi-bin/w3com/pws/out/jlhIVflnBPgWmpC4eFAjXlk3QXcFhcK-b9D_cbZyHLtTP5aigpMrgot7TKiIhNzg8y23_mmQAn7GVTQsvALIGIvJI8RFNXRZDuyGCzJ8JFs6ysbZfjgM3ik0nyIt5yhT_ujQhRI-42lzAOeb666j -http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/admission/972959588-- -http://www.intellicast.com/Golf/World/UnitedStates/MidAtlantic/Virginia/RoyalNewKentGC/LocalWinds/d1_12/ -http://gbchinese.yahoo.com/headlines/001028/sports/ycwb/ycba28c003txttyxw00102800.html -http://gbchinese.yahoo.com/headlines/001028/sports/ycwb/ycba28c004txttyxw00102800.html -http://mx.php.net/manual/hu/language.references.unset.php -http://www.cbtravelguide.com/north_america/united_states/info_2.htm?sortby=city -http://www.intellicast.com/Sail/World/UnitedStates/Northwest/Idaho/Targhee/LocalWinds/d1_03/ -http://ftp.sunet.se/pub/FreeBSD/ports/ports-current/devel/libgii/distinfo -http://biblioteca.upv.es/bib/doc/doc_fisbd/816/149599//C/1826373/0////25/S/MLTPAI -http://willsmith.sonicnet.com/events/jay_z/index_sonicnet.jhtml -http://tucows.soneraplaza.nl/winme/tucowsme_license.html -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/src/usr.sbin/fdcontrol/Makefile?only_with_tag=MAIN -http://www.kurit.com/ip/a5iu/dungeon/showsw1.html -http://www.mapion.co.jp/custom/AOL/admi/13/13118/minamisenju/3chome/index-30.html -http://yp.gates96.com/3/2/10/4.html -http://yp.gates96.com/3/2/10/19.html -http://yp.gates96.com/3/2/10/48.html -http://yp.gates96.com/3/2/10/52.html -http://yp.gates96.com/3/2/10/82.html -http://yp.gates96.com/3/2/11/10.html -http://yp.gates96.com/3/2/11/13.html -http://yp.gates96.com/3/2/13/31.html -http://yp.gates96.com/3/2/13/41.html -http://yp.gates96.com/3/2/13/43.html -http://yp.gates96.com/3/2/14/3.html -http://yp.gates96.com/3/2/14/19.html -http://yp.gates96.com/3/2/15/54.html -http://yp.gates96.com/3/2/15/72.html -http://yp.gates96.com/3/2/16/84.html -http://yp.gates96.com/3/2/17/22.html -http://yp.gates96.com/3/2/17/61.html -http://yp.gates96.com/3/2/18/1.html -http://yp.gates96.com/3/2/18/41.html -http://yp.gates96.com/3/2/18/58.html -http://yp.gates96.com/3/2/19/56.html -http://yp.gates96.com/3/2/19/79.html -http://www.stas.net/lonlywtrsoul/minesweeper/ms.html -http://ksu.freeyellow.com/ -http://www.genome.wustl.edu:8021/gsc10/est/yt/yt69/ -http://www.genome.wustl.edu:8021/gsc10/est/yt/yt82/ -http://www.winsite.com/info/pc/win95/miscutil/cutty10.exe/downltop.html -http://habenix.uni-muenster.de/Rektorat/Forschungsberichte-1997-1998/fo05bbe03.htm -http://www.jobvillage.com/channel/jobs/installation_repair/bicycle/g.3370.html -http://www.mordkommission.de/ratgeber/praxis/service/broschueren/40504/ -http://www.aelita.net/products/news/solutions/sitemap/company/library/default.htm -http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=acejet -http://cgi1.washingtonpost.com/wp-dyn/metro/va/alexandria/ -http://www.linux.com/networking/network/applications/interface/linux/distro/ -http://www2.brent.gov.uk/bv1nsf.nsf/031d5c68638196618025664000760871/963fe55ca97ccaa5802568f900503269!OpenDocument&Start=57.3&Count=60&Expand=69 -http://www2.brent.gov.uk/bv1nsf.nsf/031d5c68638196618025664000760871/963fe55ca97ccaa5802568f900503269!OpenDocument&Start=57.3&Count=60&Expand=72 -http://www2.brent.gov.uk/bv1nsf.nsf/031d5c68638196618025664000760871/963fe55ca97ccaa5802568f900503269!OpenDocument&Start=57.3&Count=60&Expand=87 -http://genforum.genealogy.com/cgi-genforum/forums/youngs.cgi?26 -http://www.tvstore.com/browse/TV/CAP/s.IRspZRIy -http://210.178.135.1/netbbs/Bbs.cgi/nhic30592/qry/zka/B2-kB2-p/pno/0/qqo/012A/qqatt/^ -http://home.sol.no/~leskjerv/aner/12063.htm -http://pub6.ezboard.com/fwatckkeepersgeneralwatchkeeperdiscussion?page=5 -http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/folderFrame/100217/0/def/1210456 -http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/games/xosmulti/?S=A -http://opac.lib.rpi.edu/search/ddata+processing+english+language+style/7,-1,0,B/browse -http://yp.gates96.com/7/40/0/5.html -http://yp.gates96.com/7/40/0/33.html -http://yp.gates96.com/7/40/1/27.html -http://yp.gates96.com/7/40/3/25.html -http://yp.gates96.com/7/40/3/36.html -http://yp.gates96.com/7/40/4/67.html -http://yp.gates96.com/7/40/4/77.html -http://yp.gates96.com/7/40/6/28.html -http://yp.gates96.com/7/40/6/49.html -http://yp.gates96.com/7/40/6/89.html -http://yp.gates96.com/7/40/7/21.html -http://yp.gates96.com/7/40/9/24.html -http://indonesian.wunderground.com/geo/GizmoTempBigPromo/global/stations/07434.html -http://www.teenplatinum.com/barelylegal/anal-sexass/legsred-toenail-polish/swallowspit/submissiondiscipline/maledomspanking/hardcorebondage.html -http://cgi.cnnsi.com/basketball/college/women/scoreboards/aeast/2000/10/18/ -http://cgi.cnnsi.com/basketball/college/women/scoreboards/aeast/2000/10/16/ -http://bellona.itworld.com:8080/cwi/Printer_Friendly_Version/frame/0,1212,NAV63-128-1357-1367_STO48482-,00.html -http://cdrwww.who.int/fsf/ehec.pdf -http://tw.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Jiangxi/Cities_and_Towns/Nanchang/Real_Estate/ -http://tw.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Jiangxi/Cities_and_Towns/Nanchang/Society_and_Culture/ -http://www.camden-industrial.com/supply/webSession/shopper/CI972959657-31048/store/dept-8 -http://www.msb.malmo.se/search*swe/mQdfm/mqdfm/-5,-1,0,E/2browse -http://tagesanzeiger.ch/archiv/96september/960903/213235.htm -http://yp.gates96.com/3/7/20/3.html -http://yp.gates96.com/3/7/20/28.html -http://yp.gates96.com/3/7/20/42.html -http://yp.gates96.com/3/7/21/5.html -http://yp.gates96.com/3/7/21/61.html -http://yp.gates96.com/3/7/22/18.html -http://yp.gates96.com/3/7/22/20.html -http://yp.gates96.com/3/7/22/24.html -http://yp.gates96.com/3/7/23/33.html -http://yp.gates96.com/3/7/23/49.html -http://yp.gates96.com/3/7/23/57.html -http://yp.gates96.com/3/7/24/22.html -http://yp.gates96.com/3/7/24/23.html -http://yp.gates96.com/3/7/24/27.html -http://yp.gates96.com/3/7/24/36.html -http://yp.gates96.com/3/7/24/45.html -http://yp.gates96.com/3/7/25/98.html -http://yp.gates96.com/3/7/26/56.html -http://yp.gates96.com/3/7/26/77.html -http://yp.gates96.com/3/7/26/94.html -http://yp.gates96.com/3/7/27/10.html -http://yp.gates96.com/3/7/27/17.html -http://yp.gates96.com/3/7/27/61.html -http://yp.gates96.com/3/7/27/73.html -http://yp.gates96.com/3/7/27/81.html -http://yp.gates96.com/3/7/27/82.html -http://yp.gates96.com/3/7/27/87.html -http://yp.gates96.com/3/7/28/48.html -http://yp.gates96.com/3/7/29/1.html -http://yp.gates96.com/3/7/29/8.html -http://yp.gates96.com/3/7/29/32.html -http://www.crit.org/http://www-mel.nrlmry.navy.mil/%ff:words:(MEL-is-a-sponsored-distributed-environmental-data-access-system-which-allows-users-to-search-for-browse-and-retrieve-environmental-data-from-distributed-sources) -http://www.crit.org/http://crit.org/pub/radiks.net/jwoods/%ff:words:jwoods-radiks-net-(A-More-Graceful-Transition)-An-expanded-definition -http://shn.webmd.com/roundtable_reply/802056 -http://shn.webmd.com/roundtable_author/802056 -http://bbs.bianca.com/mforums/e/expounder/posts/2000_Jan_09/3067/3073.html -http://www.spaindustry.com/ita/geosearch/navarra/navarra/ESLAVA.html -http://www.backflip.org/members/rj2nagle/4643211 -http://www.backflip.org/members/rj2nagle/7211888 -http://www.backflip.org/members/rj2nagle/5066953 -http://www.backflip.org/members/rj2nagle/5346740 -http://www.backflip.org/members/rj2nagle/5382951 -http://www.linux.com/networking/network/performance/help/va_linux_systems/server/ -http://www.secinfo.com/d178s.ad.htm -http://www.secinfo.com/d178s.9d.htm -http://www.secinfo.com/d178s.8b.htm -http://www.secinfo.com/d178s.8y.htm -http://iceberg.adhomeworld.com/cgi-win/redirect.exe/1153874888 -http://tmxy.363.net/refer-e.htm -http://www.narodnaobroda.sk/20000210/10_007.html -http://retailer.gocollect.com/do/session/1912712/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/index.asp -http://retailer.gocollect.com/do/session/1912712/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/halloween/halloween.asp -http://www.larevista.elmundo.es/documentos/secciones/ciencia.html -http://ftpsearch.belnet.be/mirrors/ftp.isc.org/pub/usenet/control/brightnet/?M=A -http://www.5a8.com/book/zt/zpj/k/kelisidi/wanshenjie/006.htm -http://www.5a8.com/book/zt/zpj/k/kelisidi/wanshenjie/019.htm -http://www.northwoods.bigsmart.com/mall/cat_automotive.cfm?drop_menu=yes -http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_004/rcw_41_04_220.txt -http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_004/rcw_41_04_364.txt -http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_004/rcw_41_04_400.txt -http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_004/rcw_41_04_630.txt -http://bsd.tucows.mol.com/x11html/adnload/69206_8129.html -http://ldp.teihal.gr/LDP/LG/issue22/notes-mode.html -http://ldp.teihal.gr/LDP/LG/issue22/haters.html -http://members.nbci.com/design_res/software_ftp.htm -http://www.nativeamerican-jewelry.com/necklace53.htm -http://members.theglobe.com/pamile/Pamela0004.html -http://webtools.familyeducation.com/whatworks/item/front/0,2551,22-9696-7350-1099-49655,00.html -http://wwws.br-online.de/geld/boerse/970909/072001.html -http://212.31.0.37/fix98/75yil/1938.htm -http://212.31.0.37/fix98/75yil/1950.htm -http://212.31.0.37/fix98/75yil/26ekl.htm -http://212.31.0.37/fix98/75yil/28ekl.htm -http://212.31.0.37/fix98/75yil/38ekl.htm -http://212.31.0.37/fix98/75yil/67ekl.htm -http://212.31.0.37/fix98/75yil/92ekl.htm -http://212.31.0.37/fix98/75yil/15ekl.htm -http://www.insurequotes.com/wa2/71J2.html -http://cn.egroups.com/message/csreye/112 -http://ring.crl.go.jp/archives/lang/perl/CPAN/authors/id/J/JA/JARIAALTO/?D=A -http://ds.dial.pipex.com/town/drive/kch36/select/s31/ch027.html -http://ds.dial.pipex.com/town/drive/kch36/select/s31/ch056.html -http://ds.dial.pipex.com/town/drive/kch36/select/s31/ch043.html -http://202.99.23.245/huadong/199905/25/no_4.html -http://www.linux.com/networking/network/industry/training/services/business/ -http://www.writtenbyme.com/articles/849308468.shtml -http://members.tripod.com/TroupeLynx/index_m.htm -http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/https_-2www.truste.org/validate/http_-2www.ziplink.net/~ralphb/newsroom/http_-2www.travelsc.com/industry/home.html -http://ftp.bitcon.no/pub/tucows/preview/1095.html -http://ftp.bitcon.no/pub/tucows/preview/870.html -http://ftp.bitcon.no/pub/tucows/preview/144675.html -http://ftp.bitcon.no/pub/tucows/preview/144869.html -http://ftp.bitcon.no/pub/tucows/preview/31162.html -http://ftp.bitcon.no/pub/tucows/preview/7724.html -http://ftp.bitcon.no/pub/tucows/preview/2691.html -http://ftp.bitcon.no/pub/tucows/preview/72841.html -http://ftp.bitcon.no/pub/tucows/preview/72185.html -http://www.jacksonhewitt.com/ctg/cgi-bin/JacksonHewitt/company_profile/AAAksrACwAAABtvAAX -http://search.excaliburfilms.com/moviepgs/goodbadanddirty.htm?currency=NOK&stock=8377V1 -http://search.excaliburfilms.com/moviepgs/goodbadanddirty.htm?currency=FRF&stock=8377V1 -http://genforum.genealogy.com/cgi-bin/print.cgi?torian::44.html -http://retailer.gocollect.com/do/session/1912702/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/newintros.asp -http://www.retrobytes.org/classiccmp/9911/msg00941.html -http://ftp.support.compaq.com/public/dunix/v3.2d-1/dce/?S=A -http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=CoyoteChief -http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=cpatch -http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=cpegasus -http://www.quzhou.gov.cn/flfg.nsf/0a043ae26eb50247002564640039f21d/483ed12afec2b31d002564ac0039427a!OpenDocument&ExpandSection=7,6,5 -http://www.luecos.de/wow/art/mu_newsc_12080.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/quizz/misc/lit/programs/simple/pages_new.html -http://library.cuhk.edu.hk/search*chi/aChen,+Hui-fen./achen+hui+fen/31,-1,0,E/frameset&F=achen+hung&4,,0 -http://www.vedomosti.spb.ru/2000/arts/spbved-82-art-2.html -http://www.vedomosti.spb.ru/2000/arts/spbved-82-art-21.html -http://www.vedomosti.spb.ru/2000/arts/spbved-82-art-45.html -http://caller-times.com/1999/june/26/today/national/2447.html -http://cafe5.daum.net/Cafe-bin/Bbs.cgi/vision20pds/lst/qqeq/1/zka/B2-kB2Np -http://www.crutchfield.com/S-q8jdM6hvouc/sales.html -http://www.crutchfield.com/S-q8jdM6hvouc/cgi-bin/Catalog.asp?sid=S-q8jdM6hvouc -http://www.crutchfield.com/S-q8jdM6hvouc/copyright.html -http://deliveryc.aftonbladet.se/puls/stockholmsguiden/presentation/0,1714,2000023149,00.html -http://deliveryc.aftonbladet.se/puls/stockholmsguiden/presentation/0,1714,2000023162,00.html -http://deliveryc.aftonbladet.se/puls/stockholmsguiden/presentation/0,1714,2000023220,00.html -http://www.tnonline.com/archives/news/2000weeklies/09.20/pocono/pocono/police.html -http://retailer.gocollect.com/do/session/1912688/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/sports/index.asp -http://ftp.fas.org/irp/world/iraq/hadi/ -http://rusf.ru/kb/stories/kogda_chapaev_ne_utonul/text.htm -http://ring.yamanashi.ac.jp/pub/FreeBSD-PC98/dists/4.1-RELEASE/packages/chinese/?M=A -http://www3.buch-per-sms.de/anmeldung0.jsp$ID=To7737mC4935289641883087At0.9095524774481786 -http://www3.buch-per-sms.de/impressum.jsp$ID=To7737mC4935289641883087At0.9104482951702283 -http://ftp.uni-bremen.de/pub/linux/dist/suse/6.4/i386.de/suse/contents/ -http://ftp.uni-bremen.de/pub/linux/dist/suse/6.4/i386.de/suse/pay3/ -http://ftp.uni-bremen.de/pub/linux/dist/suse/6.4/i386.de/suse/xdev2/ -http://www.mlbworldseries.com/u/baseball/mlb/players/moreplayer_7649.htm -http://www.rismedia.com/consumer/27/5192/ -http://www.rismedia.com/consumer/27/18760/ -http://library.cuhk.edu.hk/search*chi/aZhang,+Wei-Yuan./azhang+wei+yuan/-5,-1,0,B/browse -http://itcareers.careercast.com/texis/it/itjs/+XwwBmeSFy86xwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew8awn5otDanDtoDnnGaxdo5na5BwBnazdxanLpnGonDqnamnVncdpaBnwMahoGMiwGna31wcohoqwBodDaMFqpl0bP0RRe2PftgQE2yDzmesxwwwpBmeAFy86Kwww5rmepdwwwBrmeZpwww/morelike.html -http://itcareers.careercast.com/texis/it/itjs/+zwwBmerEy86e+xwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew8awn5otDanDtoDnnGaxdo5na5BwBnazdxanLpnGonDqnamnVncdpaBnwMahoGMiwGna31wcohoqwBodDaMFqpl0bP0RRe2PftgQE2yDzmesxwwwpBmeAFy86Kwww5rmeADwwwBrmeZpwww/jobpage.html -http://itcareers.careercast.com/texis/it/itjs/++wwBmex8286xwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew8awn5otDanDtoDnnGaxdo5na5BwBnazdxanLpnGonDqnamnVncdpaBnwMahoGMiwGna31wcohoqwBodDaMFqpl0bP0RRe2PftgQE2yDzmesxwwwpBmeAFy86Kwww5rm6mwwBrmeZpwww/jobpage.html -http://archive.soccerage.com/s/de/09/b2445.html -http://archive.soccerage.com/s/de/09/b2408.html -http://archive.soccerage.com/s/de/09/b2272.html -http://archive.soccerage.com/s/de/09/b2256.html -http://archive.soccerage.com/s/de/09/b2249.html -http://archive.soccerage.com/s/de/09/b2245.html -http://archive.soccerage.com/s/de/09/b2246.html -http://archive.soccerage.com/s/de/09/b2237.html -http://archive.soccerage.com/s/de/09/b2207.html -http://genforum.genealogy.com/cgi-genforum/forums/wickham.cgi?296 -http://ftpsearch.belnet.be/packages/CPAN/authors/id/N/NE/NEDKONZ/?S=A -http://www.cheatscape.com/amiga/a/game53cindex_1.htm -http://www.best.com/~radko/lounge/messages/3572.html -http://www.best.com/~radko/lounge/messages/3542.html -http://www.best.com/~radko/lounge/messages/3563.html -http://www.best.com/~radko/lounge/messages/3502.html -http://www.best.com/~radko/lounge/messages/3431.html -http://user.tninet.se/~lrg243i/leo2.htm -http://www.pocketbible.co.kr/new/hebrews/hebrews07/hebrews7-5.htm -http://www.pocketbible.co.kr/new/hebrews/hebrews07/hebrews7-10.htm -http://members.tripod.co.jp/sugart/?D=A -http://www.linux.com/networking/network/industry/growth/new/server/ -http://kdecvs.stud.fh-heilbronn.de/cvsweb/kdegames/kspaceduel/sprites/?hideattic=0&sortby=log -http://karate.list.ru/catalog/10621.html -http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,hilfe,individualverkehr,kultur,mix,nuernberg,sense,software,verkehr)/_fort/html/themen/aktuell/verkehr.htm -http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,hilfe,individualverkehr,kultur,mix,nuernberg,sense,software,verkehr)/_fort/html/themen/aktuell/fahrzeug/fahrzeug.htm -http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,creaccess,hilfe,individualverkehr,kultur,mix,nuernberg,schnellübersicht,sense,software,verkehr,von)/_fort/html/themen/hilfe/getall.htm -http://polygraph.ircache.net:8181/http_-2www.infolane.com/http_-2www.neosoft.com/~nitemoon/technical/http_-2www2.davidweekleyhomes.com/advancedproj.html -http://wow-online.vhm.de/Regional/Sri_Lanka/Nachrichten.html -http://www.bell.bellnet.com/suchen/sport/rodeo.html -http://netway.pda.tucows.com/palm/adnload/67796_21902.html -http://netway.pda.tucows.com/palm/preview/48544.html -http://netway.pda.tucows.com/palm/adnload/139037_47478.html -http://netway.pda.tucows.com/palm/adnload/73256_21914.html -http://netway.pda.tucows.com/palm/adnload/71930_21910.html -http://netway.pda.tucows.com/palm/adnload/136499_47294.html -http://netway.pda.tucows.com/palm/adnload/77938_21926.html -http://wap.jamba.de/KNet/_KNet-g_v8j1-4Fd-13aaq/browse.de/node.0/cde7f2elw -http://www.oreilly.com/medical/autism/news/research.html -http://www.geocities.co.jp/HeartLand-Namiki/5523/kopen.html -http://br-online.de/wissenschaft/wimfs/tm/tm9611/tt9611ol.htm -http://retailer.gocollect.com/do/session/1912709/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/preorder.asp -http://rac.co.kr/www.avm.de/ -http://rac.co.kr/www.aztech.com.sg/ -http://rac.co.kr/www.simple.com.au/drivers.htm -http://www.egroups.com/messages/Wrestlings2ndComing/263 -http://mediate.magicbutton.net/do/session/625584/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/index.cfm -http://ben.aspads.net/ex/c/643/874990125 -http://www.hri.org/docs//statedep/1998/98-05-26.std.html -http://member1.shangdu.net/home2/longing/byzs/036.htm -http://web.tiscalinet.it/informacitta/n2Maggio2000/n2Maggio2000/Pagine/P16.htm -http://www.eveclub.com/cgi-bin/eveclub.front/972959455723/Catalog/11000155 -http://www.eveclub.com/cgi-bin/eveclub.front/972959455723/Basket/View/1000038 -http://student.monterey.edu/sz/troxellphillipju/campus/ -http://readers.thevines.com/leaf/AA0000401329/45///&act=24-1-11&bref=1601 -http://caller-times.com/1999/september/30/today/business/750.html -http://www.online.kokusai.co.jp/Mmf_corner/V0043482/mmf_corner/mmf_corner/url -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=27,33,21,19,32 -http://jupiter.u-3mrs.fr/~msc41www/GRATXT/PD6483.HTM -http://webtools.familyeducation.com/whatworks/item/front/0,2551,1-9696-7765-539-51377,00.html -http://parallel.fh-bielefeld.de/ti/vorlesung/sp/jdk_doc/java/text/class-use/FieldPosition.html -http://cinemabilia.de/details/katnr/239509/ -http://ftp.sunet.se/pub/FreeBSD/FreeBSD-current/ports/games/xgolgo/pkg-comment -http://yp.gates96.com/13/2/50/12.html -http://yp.gates96.com/13/2/50/68.html -http://yp.gates96.com/13/2/52/56.html -http://yp.gates96.com/13/2/53/71.html -http://yp.gates96.com/13/2/54/13.html -http://yp.gates96.com/13/2/54/21.html -http://yp.gates96.com/13/2/54/43.html -http://yp.gates96.com/13/2/54/52.html -http://yp.gates96.com/13/2/54/94.html -http://yp.gates96.com/13/2/55/25.html -http://yp.gates96.com/13/2/55/57.html -http://yp.gates96.com/13/2/56/95.html -http://yp.gates96.com/13/2/57/24.html -http://yp.gates96.com/13/2/57/34.html -http://yp.gates96.com/13/2/57/35.html -http://yp.gates96.com/13/2/57/64.html -http://yp.gates96.com/13/2/58/92.html -http://yp.gates96.com/13/2/59/2.html -http://yp.gates96.com/13/2/59/31.html -http://www.outpersonals.com/cgi-bin/w3com/pws/out/RLhI7rcI1D4JxQFT7-3mEP5SJK8AVzq_FCHTmPD4oB4tzM54LVISOGr6gaW80TieiLj3vEEhfqMBuYuDKIQXk3pROAhdckz6dDnbPsi72aC9ZSsK2o3j3J8YlLpw-uOtcBIEsA4ZZATUNj1D6atp66I4 -http://www.dulux.co.uk/UKRETAIL:1938649915:DFinity.1QJiP4jRabmkmb -http://www.dulux.co.uk/UKRETAIL:1938649915:DFinity.1QJiP4jMomdoclfieh -http://www.egroups.com/messages/raite-dvd/1442 -http://www3.newstimes.com/archive2000/jun28/bzd.htm -http://yp.gates96.com/2/75/20/35.html -http://yp.gates96.com/2/75/20/42.html -http://yp.gates96.com/2/75/20/48.html -http://yp.gates96.com/2/75/21/28.html -http://yp.gates96.com/2/75/21/88.html -http://yp.gates96.com/2/75/21/91.html -http://yp.gates96.com/2/75/21/93.html -http://yp.gates96.com/2/75/21/96.html -http://yp.gates96.com/2/75/22/23.html -http://yp.gates96.com/2/75/23/50.html -http://yp.gates96.com/2/75/24/13.html -http://yp.gates96.com/2/75/24/47.html -http://yp.gates96.com/2/75/24/90.html -http://yp.gates96.com/2/75/25/33.html -http://yp.gates96.com/2/75/25/46.html -http://yp.gates96.com/2/75/25/84.html -http://yp.gates96.com/2/75/26/37.html -http://yp.gates96.com/2/75/26/40.html -http://yp.gates96.com/2/75/27/30.html -http://yp.gates96.com/2/75/27/66.html -http://yp.gates96.com/2/75/27/81.html -http://yp.gates96.com/2/75/28/34.html -http://yp.gates96.com/2/75/28/55.html -http://yp.gates96.com/2/75/29/12.html -http://yp.gates96.com/2/75/29/19.html -http://yp.gates96.com/2/75/29/45.html -http://yp.gates96.com/2/75/29/56.html -http://yp.gates96.com/2/75/29/86.html -http://yp.gates96.com/2/75/29/99.html -http://cn.egroups.com/message/agribusiness1/31 -http://biblio.cesga.es:81/search*gag/jLugo+(Provincia).+Mapas+topográficos.+[1890%3F]/jlugo+provincia+mapas+topograficos+1890/31,-1,0,B/browse -http://bbs.lineone.net/news/uknews/msg01030.html -http://bbs.lineone.net/news/uknews/msg01047.html -http://bbs.lineone.net/news/uknews/msg01026.html -http://bbs.lineone.net/news/uknews/msg00976.html -http://bbs.lineone.net/news/uknews/msg00960.html -http://bbs.lineone.net/news/uknews/msg00952.html -http://idl.tucows.com/winnt/adnload/1380_28802.html -http://retailer.gocollect.com/do/session/1912681/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/christmas/holiday_shoppe.asp -http://www1.zdnet.co.uk/software/fstore/A/9/000BA9.html -http://polygraph.ircache.net:8181/home/http_-2www.tauchbali.com/SERV.HTM -http://channel.nytimes.com/1998/05/01/technology/cybertimes/artsatlarge/ -http://ftp.sunet.se/pub/FreeBSD/ports/ports/japanese/linux-netscape47-communicator/?D=A -http://www9.hmv.co.uk:5555/do/session/1347757/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/hiddenframe.html -http://www9.hmv.co.uk:5555/do/session/1347757/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/logoframe.html -http://www-usa9.cricket.org/link_to_database/ARCHIVE/1999-2000/WI_IN_NZ/ARTICLES/ -http://www-usa9.cricket.org/link_to_database/ARCHIVE/1999-2000/WI_IN_NZ/SCORECARDS/ -http://a228.g.akamai.net/7/228/289/55d96730f1ea56/news.indiainfo.com/2000/08/13/floods.html -http://caller-times.com/1999/august/08/today/texas_me/4241.html -http://ftp.uni-bremen.de/pub/doc/news.answers/movies/winona-ryder-faq/part3 -http://www.globalsources.com/gsol/owa/website.gold/GP3/8801728414/HOME.HTM -http://eds.kse.or.kr/jaemoo/jipyo_e/k_grp/E01683.htm -http://eds.kse.or.kr/jaemoo/jipyo_e/i_grp/E01116.htm -http://eds.kse.or.kr/jaemoo/jipyo_e/i_grp/E01126.htm -http://eds.kse.or.kr/jaemoo/jipyo_e/d_grp/E00366.htm -http://eds.kse.or.kr/jaemoo/jipyo_e/h_grp/E00929.htm -http://www.jobvillage.com/channel/jobs/cleaning/pruner/g.1276.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380817/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp -http://gamingplace.zeelandnet.nl/poker_rating.html -http://no.egroups.com/message/DVD-Info/111 -http://www.relax.ch/static/it/lazurigo/mercatodellavoro/oben.html -http://internet.exit.de/mees-online/left_geld.html -http://www.redrocksports.com/sports/webSession/shopper/RR972959658-31049/store/dept-5/department/dept-5/item/footwear -http://www.redrocksports.com/sports/webSession/shopper/RR972959658-31049/store/dept-5/department/dept-5/item/52550 -http://www11.cplaza.ne.jp/babyweb/bbs/bdnmp01/no16/61N.html -http://www.daimi.au.dk/dIntProg/java/jdk1.2.2/docs/api/javax/swing/plaf/basic/BasicScrollBarUI.ArrowButtonListener.html -http://www.daimi.au.dk/dIntProg/java/jdk1.2.2/docs/api/javax/swing/plaf/basic/BasicScrollBarUI.ModelListener.html -http://www.angelfire.com/nc/Percosolation/POSDerisions.html -http://yp.gates96.com/3/4/40/80.html -http://yp.gates96.com/3/4/41/23.html -http://yp.gates96.com/3/4/41/24.html -http://yp.gates96.com/3/4/41/37.html -http://yp.gates96.com/3/4/41/90.html -http://yp.gates96.com/3/4/42/26.html -http://yp.gates96.com/3/4/42/71.html -http://yp.gates96.com/3/4/42/90.html -http://yp.gates96.com/3/4/44/44.html -http://yp.gates96.com/3/4/45/52.html -http://yp.gates96.com/3/4/45/75.html -http://yp.gates96.com/3/4/45/77.html -http://yp.gates96.com/3/4/46/0.html -http://yp.gates96.com/3/4/46/85.html -http://yp.gates96.com/3/4/47/19.html -http://yp.gates96.com/3/4/47/20.html -http://yp.gates96.com/3/4/47/23.html -http://yp.gates96.com/3/4/47/72.html -http://yp.gates96.com/3/4/48/4.html -http://yp.gates96.com/3/4/48/16.html -http://yp.gates96.com/3/4/48/45.html -http://yp.gates96.com/3/4/48/51.html -http://yp.gates96.com/3/4/49/16.html -http://ftpsearch.belnet.be/pub/mirror/sunsite.cnlab-switch.ch/mirror/harvest/contrib/Example-Customizations/?S=A -http://pub9.ezboard.com/fgaprforeignrelationdepartment.showAddTopicScreenFromWeb -http://pub9.ezboard.com/fgaprforeignrelationdepartment.showMessage?topicID=4.topic -http://www.asstr.org/nifty/gay/authoritarian/adonis-brotherhood/adonis-brotherhood-3 -http://www.brio.de/BRIO.catalog/39fe2f4c06d41844273fd472aa7806a9/UserTemplate/8 -http://itcareers.careercast.com/texis/it/itjs/+HwwBmeH_D86aqwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6nxqdDdMoqax15oDn55a5BwhhawDwcO5o5aqd5Ban5BoMwBoDtaGo5Aa5nGVoqnaADdicnmtnaBddc5aMFqhTfR20DzmenxwwwpBmeWWD86exhwww5rmeWcwwwBrmeZpwww/jobpage.html -http://polygraph.ircache.net:8181/http_-2www.whowhere.com/http_-2www.updowntowner.org/julyjamm/frmain.htm -http://213.36.119.69/do/session/152987/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/spectacles/ -http://www.jobvillage.com/channel/jobs/health_care/physician/anesthesiologist/b.9467.g.1575.html -http://www.private-immobilien-boerse.de/friesland/verkauf/IIM-Teil/Startseite/Gemeinsam/Super-Zins-Konditionen/Gemeinsam/Inserieren/Gemeinsam/MarketingStrategie/inhalt.htm -http://se.egroups.com/message/yemdiscussion/38 -http://se.egroups.com/message/yemdiscussion/45 -http://home.bip.net/kerstin.hjelm/Stamtavla%20Z-kullen.html -http://mediate.magicbutton.net/do/session/625616/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-abou.html -http://members.tripod.lycos.co.kr/KWEN3607/?S=A -http://cpan.clix.pt/authors/id/B/BP/BPOWERS/String-StringLib-1.02.readme -http://www.gbnf.com/genealogy/bookout/html/d0001/I3283.HTM -http://m4.findmail.com/group/Opera2Developers -http://m4.findmail.com/group/acctworks -http://retailer.gocollect.com/do/session/1912690/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=1 -http://retailer.gocollect.com/do/session/1912690/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp -http://platsbanken.amv.se/kap/text/47/001023,170030,140912,11,1276051947.shtml -http://www.gamespot.com/features/dunesg/dune6a.html -http://tucows.iquest.net/winme/preview/138053.html -http://tucows.iquest.net/winme/preview/137529.html -http://tucows.iquest.net/winme/preview/138641.html -http://archive.soccerage.com/s/pt/09/03721.html -http://archive.soccerage.com/s/pt/09/07102.html -http://www10.nytimes.com/library/national/science/health/021500hth-women-diabetes.html -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.phy.bnl.gov/e949/e949_update.txt -http://www.mapion.co.jp/custom/AOL/admi/13/13105/otsuka/3chome/index-7.html -http://go18.163.com/_NTES/~starseeker/gin/saga/gin01/gin0100.htm -http://village.infoweb.ne.jp/~fvgg8450/t91.html -http://clickahouse.mp2.homes.com/content/articles/locks.html -http://findmail.com/messages/studentdoctor/354 -http://ldp.mirror.nettuno.it/Linux/LDP/LDP/lkmpg/node3.html -http://ldp.mirror.nettuno.it/Linux/LDP/LDP/lkmpg/node13.html -http://fi.egroups.com/group/sandycove -http://www.fogdog.com/cedroID/ssd3040183219992/boutique/nike/ -http://www.fogdog.com/cedroID/ssd3040183219992/boutique/harbinger/ -http://www.fogdog.com/cedroID/ssd3040183219992/customer_service/employment.html -http://www.genoma.de/shop/736a8b4b4c331e80f780899842a4b0b4/99/b -http://sjsulib1.sjsu.edu:81/search/tbraille+transcription+project+of+santa+clara+county+inc/-5,-1,1,B/frameset&tbook+reviews+in+the+humanities&1,1, -http://students.washington.edu/emgall/eng481/final/ -http://www.vc-graz.ac.at/ilct/ffe_349_99.htm -http://www.vc-graz.ac.at/ilct/ffe_372_00.htm -http://www.vc-graz.ac.at/ilct/ffe_375_00.htm -http://www.escribe.com/computing/virtcom/m452.html -http://members.tripod.com/~TreasureIsland/welcom/e.htm -http://augustachronicle.com/stories/022699/obi_038-5494.001.shtml -http://augustachronicle.com/stories/022699/obi_038-5477.001.shtml -http://ring.edogawa-u.ac.jp/archives/X/opengroup/R6.5.1/xc/lib/Imakefile -http://www.elop.de/d0-1015-2044-3001-top.html -http://www.ibiblio.org/pub/languages/java/blackdown.org/JDK-1.1.7/i386/glibc/v1a/?S=D -http://www.linux.com/networking/network/enterprise/integration/management/Linux/ -http://www.mapion.co.jp/custom/AOL/admi/13/13221/matsuyama/2chome/index-7.html -http://www.mapion.co.jp/custom/AOL/admi/13/13221/matsuyama/2chome/index-12.html -http://ftp.sunet.se/pub/FreeBSD/ports/ports/japanese/tcl76/Makefile -http://ftp.lip6.fr/pub2/sgml-tools/website/HOWTO/Consultants-HOWTO/t19977.html -http://www.irishnews.com/archive2000/06072000/sportuk1.html -http://allmacintosh.ii.net/adnload/71893.html -http://allmacintosh.ii.net/adnload/70339.html -http://www.museumshops.co.uk/Bonnefoit-Alain/Bonnefoit-Alain-Die-Schoene-mit-dem-Pelz-3000062.html -http://www.timesoc.com/editions/orange/20001030/t000103758.html -http://www.musiciansfriend.com/ex/ds/bv/001030182803064208037039434033 -http://www.beneteau-owners.com/library.nsf/Library+By+System!OpenView&Start=41.4&Count=45&Expand=49 -http://www.musiciansfriend.com/ex/search/guitar/001030182759064208037059215342?FIND=BABX&q=c -http://www.musiciansfriend.com/ex/search/guitar/001030182759064208037059215342?FIND=ASAX&q=c -http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/showNextUnseen/fol/100001/2467632 -http://tucows.wish.net/winme/adnload/137243_28721.html -http://yp.gates96.com/3/71/10/71.html -http://yp.gates96.com/3/71/11/12.html -http://yp.gates96.com/3/71/11/27.html -http://yp.gates96.com/3/71/11/34.html -http://yp.gates96.com/3/71/11/40.html -http://yp.gates96.com/3/71/11/62.html -http://yp.gates96.com/3/71/11/78.html -http://yp.gates96.com/3/71/12/70.html -http://yp.gates96.com/3/71/13/34.html -http://yp.gates96.com/3/71/13/38.html -http://yp.gates96.com/3/71/13/82.html -http://yp.gates96.com/3/71/14/94.html -http://yp.gates96.com/3/71/15/0.html -http://yp.gates96.com/3/71/15/88.html -http://yp.gates96.com/3/71/17/28.html -http://yp.gates96.com/3/71/17/85.html -http://yp.gates96.com/3/71/18/37.html -http://yp.gates96.com/3/71/18/69.html -http://yp.gates96.com/3/71/19/55.html -http://www.kodak.ca/US/en/corp/jobs/samplingMechanicalProds.shtml -http://ring.crl.go.jp/archives/lang/perl/CPAN/authors/id/G/GR/GRICHTER/HTML-Embperl-1.3b4.readme -http://www7.freeweb.ne.jp/photo/lystra/a/n_aikawa.html -http://www.imagesofengland.org.uk/31/73/317339.htm -http://webraft.its.unimelb.edu.au/110080/students/ojb/pub/?D=A -http://pub.chinaccm.com/13/news/200010/31/155751.asp -http://pub.chinaccm.com/13/news/200010/21/162140.asp -http://go18.163.com/_NTES/~chen0580/y25.htm -http://pub17.ezboard.com/fcometalkfreetalk.showMessage?topicID=15.topic -http://pub17.ezboard.com/fcometalkfreetalk.showMessage?topicID=6.topic -http://mediate.magicbutton.net/do/session/625593/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-tips.html -http://213.36.119.69/do/session/152982/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/wap/lancement.html -http://wap.jamba.de/KNet/_KNet-Drs8j1-yEd-1395x/showInfo-presse.de/node.0/cde7f1uou -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=choramingar&l=pt -http://www.amcity.com/philadelphia/stories/1998/11/09/story5.html?t=email_story -http://www.mic.hr/PGMARKET:553666 -http://cn.egroups.com/messages/KristinChenoweth/2280 -http://quest7.proteome.com/databases/YPD/PombePD/SPAC343.03.html -http://www.engines.org.uk/white/fld19/ -http://www.engines.org.uk/white/fld27/ -http://se.egroups.com/subscribe/plusgothswap -http://www.headlight.com/invoice_process/1,1074,adpa-4049-2423-69-718,00.html -http://www.findarticles.com/cf_0/m4PRN/1999_Nov_3/57153314/p1/article.jhtml -http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/folderFrame/100001/0/alpha/2480022 -http://archive.soccerage.com/s/it/06/10903.html -http://innopac.lib.tsinghua.edu.cn/search*chi/dProduction+engineering/dproduction+engineering/-5,-1,0,B/browse -http://www.consource.com/communities/profile_categories/1759/1510 -http://column.daum.net/Column-bin/Bbs.cgi/thinkaboutrbs/new/zka/B2-kB2Np -http://wwws.br-online.de/geld/boerse/960301/0730.html -http://www.2pl.com/asp/tools/fili1.asp?sp=ro&fi=pppp0003zi -http://www.proviser.co.uk/regional/towns/alford/property_prices/compare_current_prices/terraced.html -http://cometweb01.comet.co.uk/do!session=131998&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG3XqLbdlLov4LfpmLiXvL-Zd5jbkLYozKvot0cZd5ockLYozKvsm0utt0cZX5qkXLjbzKMfaLblpLbom0bos0bom04M4Lbom0miXLvboLp1 -http://cometweb01.comet.co.uk/do!session=131998&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG3XqLbdlLov4LfpmLiXvL-Zd5jbkLYozKvot0cZd5ockLYozKvsm0uqo0cZX5qkXLjbzKG3pLibo0miX5mqlLmpbKomb0osb0oml1odXLkfpLbopL -http://www.geocities.co.jp/Milano/8578/profile.html -http://ftp.dti.ad.jp/pub/XFree86/3.3.3/binaries/NetBSD-1.2/Servers/?N=D -http://ftp.dti.ad.jp/pub/XFree86/3.3.3/binaries/NetBSD-1.2/Servers/?D=A -http://www.best.com/~radko/lounge/messages/3742.html -http://www.best.com/~radko/lounge/messages/3711.html -http://www.best.com/~radko/lounge/messages/3619.html -http://www.linux.com/networking/network/help/email/business/RuleSpace/ -http://www.financialexpress.com/fe/daily/20000918/fco17026.html -http://209.67.27.70/comics/dilbert/scott/dawn/pg19.html -http://209.67.27.70/comics/dilbert/scott/dawn/pg22.html -http://flamingo.promote.ru/href.pl?fct_051 -http://pda.saa.net/palm/adnload/34404_22152.html -http://www.outpersonals.com/cgi-bin/w3com/pws/out/q6tIzhLNlKeaaMXYVAPJiOq7V33Ul08VcQoPAomjWMQzOxA0cR6_kRLx42D4nA_uumPVc2DRZtv6CVpWQCyNUgVZQ2P9F7bqqvcf_5WqCdUM7UIRKBdjb9lTbrCrrl5_jZ6cQsstJDqry3XrFI0toILqSCSm66j2 -http://www.home.ch/~spaw9012/ps11/ps11_003.htm -http://help.sap.com/saphelp_45b/helpdata/de/1c/e464b20437d1118b3f0060b03ca329/frameset.htm -http://abc.ru/cgi-bin/get_firminfo.pl?firm=comsys -http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1749-art-28.html -http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1749-art-32.html -http://admin.afiliando.com/do/session/189435/vsid/1507/tid/1507/cid/23455/mid/1025/rid/1168/chid/1205/parser/yes/imref/eqqLmwlGltt5tkpHrYjLXofLklkKZljLkju5lZa5l0/url/http://www.submarino.com.mx/pesquisa/jutherC.asp?id_categoria=57&id_tipo=C -http://admin.afiliando.com/do/session/189435/vsid/1507/tid/1507/cid/23455/mid/1025/rid/1168/chid/1205/parser/yes/imref/eqqLmwlGltt5tkpHrYjLXofLklkKZljLkju5lZa5l0/url/http://www.submarino.com.mx/extra/talk_to_sub.asp -http://cometweb01.comet.co.uk/do!session=131998&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG3XqLbdlLov4LfpmLiXvL-Zd5jbkLYozKvot0cZd5ockLYozKvsn0mvm0cZX5qkXLjbzKGelLkbpL -http://yp.gates96.com/3/39/30/1.html -http://yp.gates96.com/3/39/30/53.html -http://yp.gates96.com/3/39/31/22.html -http://yp.gates96.com/3/39/32/0.html -http://yp.gates96.com/3/39/32/39.html -http://yp.gates96.com/3/39/32/41.html -http://yp.gates96.com/3/39/32/45.html -http://yp.gates96.com/3/39/32/97.html -http://yp.gates96.com/3/39/34/39.html -http://yp.gates96.com/3/39/34/50.html -http://yp.gates96.com/3/39/34/68.html -http://yp.gates96.com/3/39/34/72.html -http://yp.gates96.com/3/39/35/14.html -http://yp.gates96.com/3/39/35/84.html -http://yp.gates96.com/3/39/36/3.html -http://yp.gates96.com/3/39/36/19.html -http://yp.gates96.com/3/39/36/20.html -http://yp.gates96.com/3/39/36/84.html -http://yp.gates96.com/3/39/36/88.html -http://yp.gates96.com/3/39/37/37.html -http://yp.gates96.com/3/39/38/60.html -http://yp.gates96.com/3/39/38/63.html -http://yp.gates96.com/3/39/39/52.html -http://yp.gates96.com/3/39/39/56.html -http://yp.gates96.com/3/39/39/58.html -http://yp.gates96.com/3/39/39/63.html -http://yp.gates96.com/13/9/80/14.html -http://yp.gates96.com/13/9/80/92.html -http://yp.gates96.com/13/9/81/23.html -http://yp.gates96.com/13/9/81/47.html -http://yp.gates96.com/13/9/82/45.html -http://yp.gates96.com/13/9/82/59.html -http://yp.gates96.com/13/9/82/65.html -http://yp.gates96.com/13/9/82/71.html -http://yp.gates96.com/13/9/82/77.html -http://yp.gates96.com/13/9/83/86.html -http://yp.gates96.com/13/9/83/88.html -http://yp.gates96.com/13/9/84/4.html -http://yp.gates96.com/13/9/84/28.html -http://yp.gates96.com/13/9/84/77.html -http://yp.gates96.com/13/9/85/34.html -http://yp.gates96.com/13/9/85/59.html -http://yp.gates96.com/13/9/86/22.html -http://yp.gates96.com/13/9/86/28.html -http://yp.gates96.com/13/9/86/30.html -http://yp.gates96.com/13/9/86/37.html -http://yp.gates96.com/13/9/86/85.html -http://yp.gates96.com/13/9/87/1.html -http://yp.gates96.com/13/9/87/2.html -http://yp.gates96.com/13/9/88/58.html -http://yp.gates96.com/13/9/89/17.html -http://yp.gates96.com/13/9/89/49.html -http://yp.gates96.com/13/9/89/51.html -http://yp.gates96.com/13/9/89/64.html -http://yp.gates96.com/13/9/89/69.html -http://yp.gates96.com/13/9/89/79.html -http://www.diogenes.ch/4DACTION/web_rd_aut_frlist_az/ID=483337&chr=D -http://ngi.tucows.com/win2k/adnload/37473_28857.html -http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=1,4,21,7,17 -http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=2,4,21,7,17 -http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=15,4,21,7,17 -http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=16,4,21,7,17 -http://www.susi.de/cgi-bin/order/segelzentrum-kagerer/c134-5021905270003,de -http://www.egroups.com/messages/iraq-l/9973 -http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=29,24,30,11 -http://www.etoys.com/prod/book/51604361 -http://link.fastpartner.com/do/session/600358/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/itjobbank.php -http://link.fastpartner.com/do/session/600358/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/shopnett.php -http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/2.2-stable/ports/devel/mips64orion-rtems-objc/?S=A -http://www-uk5.cricket.org/link_to_database/NATIONAL/ENG/FC_TEAMS/SOMERSET/STATS/CAREER/SOMERSET_CAREER_J.html -http://www.linux.com/networking/network/performance/install/distro/industry/ -http://www.linux.com/networking/network/performance/install/distro/tools/ -http://www.linux.com/networking/network/performance/install/distro/enterprise/ -http://mx.php.net/manual/de/language.basic-syntax.php -http://mx.php.net/manual/fr/language.basic-syntax.php -http://moviestore.zap2it.com/browse/MOVIES/SCRIPT/s.UxBwM3db -http://www.armouries.org.uk/bjarni/introduction.htm -http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/authors/id/C/CT/CTWETEN/?D=A -http://atlanta.webmd.com/related_results/1/25/article/1738.50204 -http://www.ccnet.com/tzimmer/?M=A -http://go2.163.com/~xinhua/ -http://www.ualberta.ca/FTP/OpenBSD/src/regress/lib/libc/_setjmp/CVS/Root -http://www.dqt.com.cn/wymb/military/jinyong/金庸全集.htm -http://www.hole.kommune.no/hole/journweb.nsf/7e180336094ef23a412568cd004a5093/2fd09f96f20814cac12568e300443d50!Navigate&To=Next -http://classifieds.alberta.com/js/mi/c16000/b16000/n15/858640.html -http://classifieds.alberta.com/js/mi/c16000/b16000/n15/861013.html -http://homepages.go.com/homepages/b/n/g/bngholo/ -http://www.aelita.net/products/news/library/support/Reg/Subscribe/library/default.htm -http://www.chaos.dk/sexriddle/j/a/b/s/e/ -http://www.chaos.dk/sexriddle/j/a/b/s/t/ -http://213.36.119.69/do/session/152985/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/contact/info-publicite.html -http://www.indian-express.com/fe/daily/19990807/corporate.html -http://web.cln.com/archives/atlanta/newsstand/atl100795/1316.htm -http://web.cln.com/archives/atlanta/newsstand/atl100795/1317.htm -http://plaza.gaiax.com/www/plaza/k/n/kenta/friends.html -http://polygraph.ircache.net:8181/docs/eudora/http_-2www.kentuckylake.com/rates/http_-2www.hubbell-wiring.com/NEMA/admin/additional.html -http://gd.cnread.net/cnread1/wxxs/d/dongfangying/pljc/015.htm -http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/versicherungen/unfall/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/versicherungen/gebaeude/anforderungsformular.htm -http://www.linux.com/networking/network/help/free/red_hat/competition/ -http://www.linux.com/networking/network/help/free/red_hat/development/ -http://www.linux.com/networking/network/help/free/red_hat/SuSE/ -http://search.chollian.net/d/%b1%e2%be%f7,%c8%b8%bb%e7/%b0%e1%c8%a5/%c5%e4%c5%bb%bf%fe%b5%f9%bc%ad%ba%f1%bd%ba/16.html -http://no.egroups.com/message/plowshares/840 -http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1872-art-13.html -http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/erreichenPartner/Startseite/Gemeinsam/versicherungen/lebensversicherung/Top-Darlehens-Konditionen/Gemeinsam/versicherungen/unfall/anforderungsformular.htm -http://www.affiliate.hpstore.hp.co.uk/do/session/380819/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/main/respect/ -http://www-rn.informatik.uni-bremen.de/home/ftp/pub/linux/redhat/updates/6.2EE/i586/ -http://archive.soccerage.com/s/es/09/12718.html -http://www.intel.es/kr/hangul/pressroom/archive/releases/dp990218.htm -http://www.intel.es/kr/hangul/pressroom/archive/releases/dp990105.htm -http://sunsite.informatik.rwth-aachen.de/cgi-bin/ftp/ftpshow/pub/Linux/sunsite.unc.edu/distributions/caldera/eServer/updates/2.3/021/RPMS/ -http://library.bangor.ac.uk/search/aMatis,+James+H/amatis+james+h/-5,-1,0,B/browse -http://polygraph.ircache.net:8181/http_-2www.microsoft.com/frontpage/html/http_-2www.sharkyextreme.com/hardware/hercules_tnt/ -http://ring.nihon-u.ac.jp/archives/pack/win95/net/fee/?N=D -http://dbc.copystar.com.tw/bcbchat/199804/msg03730.htm -http://dbc.copystar.com.tw/bcbchat/199804/msg03761.htm -http://dbc.copystar.com.tw/bcbchat/199804/msg03787.htm -http://www.private-immobilien-boerse.de/nordrhein-Westfalen/grevenbroich/Verkauf/Gemeinsam/Super-Zins-Konditionen/Exklusiv-IB/Startseite/IIM-Teil/Startseite/Gemeinsam/IIMMitglieder.htm -http://www.private-immobilien-boerse.de/nordrhein-Westfalen/grevenbroich/Verkauf/Gemeinsam/Super-Zins-Konditionen/Exklusiv-IB/Startseite/IIM-Teil/Startseite/Gemeinsam/vertriebspartner.htm -http://pd.shiseido.co.jp/s9604tub/html_00/win00051.htm -http://solaris.license.virginia.edu/os_product_patches/patches/5.7/107094-04/SUNWdtbas/pkgmap -http://www.eveclub.com/cgi-bin/eveclub.front/972959470432/Catalog/11000034 -http://www.sportinggreen.com/news/20001007/fbo/fbc/aar/001007.0607.html -http://www-x500-1.uni-giessen.de:8890/Lcn%3dBelloch%20Belloch%5c,%20Juana%20Maria,ou%3dFacultad%20de%20Medicina%20y%20Odontologia,o%3dUniversidad%20de%20Valencia,c%3dES -http://retailer.gocollect.com/do/session/1912723/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/limited_editions.asp -http://www.jufo.com/netcenter/chemistry/item/000904/16888.htm -http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d29/b14,8,1f,1d,1d,,19,,1f,19, -http://www.2pl.com/b/ru/to/1/24/16/v2/1241600107-8.htm -http://ring.htcn.ne.jp/pub/text/CTAN/fonts/metrics/polish/plpsfont/?D=A -http://config.tucows.com/winme/adnload/26398_28890.html -http://ocean.ntou.edu.tw/search*chi/aRadojcic,+Riko,+jt.+auth./aradojcic+riko/-5,-1,0,B/frameset&F=aradomsky+nellie+a&1,1 -http://www.intellicast.com/Sail/World/UnitedStates/Northwest/Montana/Beaverhead/LocalWinds/d1_09/ -http://www.bild.de/service/archiv/2000/mar/31/sport/coulthard/coulthard.html -http://ustlib.ust.hk/search*chi/a%7B215a36%7D%7B213246%7D%7B215e42%7D+1926/a{215a36}{213246}{215e42}+1926/-5,-1,0,B/frameset&F=a{215a36}{213230}{214e70}&1,1 -http://mediate.magicbutton.net/do/session/625620/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html -http://mediate.magicbutton.net/do/session/625620/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-corp.html -http://www.amateurplatinum.com/mouthlicking/eunuchhershey-highway/bad-girlsubmission/petitebeauties/actionno-boundaries/fellatiogoing-down-on/give-headcock-suckers.html -http://www.brd.net/brd-cgi/brd_dkameras/filmscanner_fotodrucker/FZ00F0EF/beurteilung/ci=972751646.htm -http://www.niwl.se/WAIS/31607/31607073.htm -http://www.magicvillage.de/Login/magicvillage/magiclife/Lucullus/%2328706045/Reply -http://polygraph.ircache.net:8181/consumer/rel_meet_main.html -http://sunsite.informatik.rwth-aachen.de/cgi-bin/ftp/ftpshow/pub/Linux/sunsite.unc.edu/distributions/debian/dists/potato/non-free/binary-i386/x11/ -http://www.great-cyber-mall.com/SelectCompany.asp?CityID=67&CatID=5 -http://www.great-cyber-mall.com/SelectCompany.asp?CityID=67&CatID=50 -http://rainforest.parentsplace.com/dialog/get/bradley2/39/1/1.html?embed=2 -http://www.users.yun.co.jp/cgi-bin/moriq/pigeon/pigeon.cgi/DataSet.after_post?c=e -http://www.chaos.dk/sexriddle/n/f/p/x/x/ -http://www.amcity.com/dayton/stories/2000/03/20/smallb1.html?t=email_story -http://www.linux.com/networking/network/industry/web_server/windows_nt/Red_Hat/ -http://www.du-et.net/cgi/mail.cgi?NickName=naiki -http://gameboyz.com/g/demos_p1_c41_lV_w2.html -http://intelinfo.subportal.com/sn/Games/Strategy_Games/9289.html -http://home.kimo.com.tw/maso-kid/index2.html -http://citeseer.nj.nec.com/nrelated/1377121/289677 -http://citeseer.nj.nec.com/nrelated/0/289677 -http://ccar.ust.hk/~dataop/rs_ocean_cd/WVS/wvsplus/wvs003m/bat/q/h/lf/ -http://home.baoding.cn.net/~tjhlove/dzrwy/l11.htm -http://home.baoding.cn.net/~tjhlove/dzrwy/l23.htm -http://208.178.109.85/msgshow.cfm/msgboard=129014524422386&msg=3558983275052&page=1&idDispSub=-1 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=4,9,33,27,35 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=29,9,33,27,35 -http://config.tucows.com/win2k/adnload/76944_30007.html -http://www1.zdnet.com/zdnn/stories/news/0,4586,1021147,00.html -http://www.fogdog.com/cedroID/ssd3040183236187/nav/stores/snowboarding/ -http://www.fogdog.com/cedroID/ssd3040183236187/nav/stores/institutional/ -http://debian.linux.org.tw/debian/dists/sid/main/disks-powerpc/current/source/?M=A -http://satftp.soest.hawaii.edu/dlr/slides/ql21176.html -http://www.linux.com/networking/network/industry/new/help/internet/ -http://www.linux.com/networking/network/industry/new/help/growth/ -http://flint.freethemes.com/skins/winamp/preview/46994.html -http://flint.freethemes.com/skins/winamp/preview/24628.html -http://flint.freethemes.com/skins/winamp/preview/25113.html -http://flint.freethemes.com/skins/winamp/preview/24645.html -http://flint.freethemes.com/skins/winamp/preview/25319.html -http://flint.freethemes.com/skins/winamp/preview/25017.html -http://flint.freethemes.com/skins/winamp/preview/26154.html -http://flint.freethemes.com/skins/winamp/preview/24669.html -http://flint.freethemes.com/skins/winamp/preview/24674.html -http://flint.freethemes.com/skins/winamp/preview/69522.html -http://flint.freethemes.com/skins/winamp/preview/58805.html -http://flint.freethemes.com/skins/winamp/preview/71909.html -http://flint.freethemes.com/skins/winamp/preview/24389.html -http://flint.freethemes.com/skins/winamp/preview/25052.html -http://flint.freethemes.com/skins/winamp/preview/77185.html -http://flint.freethemes.com/skins/winamp/preview/56733.html -http://flint.freethemes.com/skins/winamp/preview/24736.html -http://flint.freethemes.com/skins/winamp/preview/24408.html -http://flint.freethemes.com/skins/winamp/preview/24744.html -http://flint.freethemes.com/skins/winamp/preview/24424.html -http://flint.freethemes.com/skins/winamp/preview/25075.html -http://flint.freethemes.com/skins/winamp/preview/71807.html -http://nomade.fr/cat/informatique_tele/informatique/progiciels_logiciel/utilitaires/communication -http://pub9.ezboard.com/umetalman5566.showPublicProfile?language=EN -http://archiv.leo.org/pub/comp/usenet/comp.binaries.atari.st/texinfo31/texif31b.zoo/ -http://www.maas.ccr.it/cgi-win/hiweb.exe/a18/d13/b261,4,d,,be,d, -http://citeseer.nj.nec.com/cidcontext/608466 -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/strategia/kansainv%E4listyminen/ulkomaankauppa/kansainv%E4linen+kauppa/ -http://cms.letsmusic.com/directory/search/albuminfo/1,1125,af0127818000000,00.asp -http://www.musiciansfriend.com/ex/ds/other/001030182805064208037054818832 -http://www.musiciansfriend.com/ex/search/other/001030182805064208037054818832?FIND=IBAX&q=c -http://www.mapion.co.jp/custom/tv/admi/13/13106/kuramae/3chome/19/ -http://dblab.comeng.chungnam.ac.kr/~dolphin//db/journals/ac/ac11.html -http://archive.soccerage.com/s/de/09/c4816.html -http://archive.soccerage.com/s/de/09/c4698.html -http://archive.soccerage.com/s/de/09/c4664.html -http://archive.soccerage.com/s/de/09/c4463.html -http://archive.soccerage.com/s/de/09/c4423.html -http://archive.soccerage.com/s/de/09/c4422.html -http://workingfamilies.digitalcity.com/tampabay/penpals/browse.dci?cat=teens&sort=f -http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/Inserieren/Startseite/Gemeinsam/immolink/Top-Darlehens-Konditionen/Gemeinsam/versicherungen/unfall/anforderungsformular.htm -http://www.samba.org/cgi-bin/cvsweb/gnokii/xgnokii/docs/help/en_US/windows/main/?sortby=log -http://www.accesslasvegas.com/shared/health/adam/ency/article/002669sym.html -http://www.egroups.com/message/gaywrestle/33 -http://lfs.cyf-kr.edu.pl:8888/3Lcn%3dDirectory%20Manager,%20o%3dSPRITEL,%20c%3dES -http://www.acfas.ca/congres/congres66/S10.htm -http://hansard.www.act.gov.au/2000/week02/423.htm -http://207.25.71.142/cycling/2000/tour_de_france/stages/4/ -http://207.25.71.142/cycling/2000/tour_de_france/news/2000/07/20/pantani_reflects -http://207.25.71.142/cycling/2000/tour_de_france/news/2000/07/19/driver_charged/ -http://207.25.71.142/POLL/results/1142011.html -http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=6,14,27,22 -http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=29,14,27,22 -http://www.affiliate.hpstore.hp.co.uk/do/session/380816/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/ -http://www.affiliate.hpstore.hp.co.uk/do/session/380816/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/products/entry.asp -http://ads.carltononline.com/accipiter/adclick/site=purejamba/area=jamba.home_page/AAMSZ=POPUP/ACC_RANDOM=972959547609 -http://retailer.gocollect.com/do/session/1912714/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/contact.asp -http://208.178.101.41/news/1998/12/10newsd.html -http://208.178.101.41/news/1998/03/05news.html -http://208.178.101.41/news/1998/03/03news.html -http://208.178.101.41/news/1998/01/09news.html -http://hff.shunde.net/mobile/radio2000.163.net/radio2000.163.html -http://hff.shunde.net/mobile/www.tohome.net/www.tohome.html -http://www.egroups.com/login.cgi?login_target=%2Fmessages%2FShayrs%2F31 -http://moviestore.zap2it.com/browse/MOVIES/BANK/s.bsk4qCBs -http://moviestore.zap2it.com/browse/MOVIES/STATION/s.bsk4qCBs -http://moviestore.zap2it.com/browse/MOVIES/VIDEO/s.bsk4qCBs -http://ftp.fi.debian.org/debian/dists/unstable/contrib/source/x11/?N=D -http://link.fastpartner.com/do/session/600364/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/jobs.htm -http://pub16.ezboard.com/uprieni.showPublicProfile -http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/x11-servers/XFree86-4-FontServer/ -http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/x11-servers/XttXF98srv-NKVNEC/ -http://www.generation-formation.fr/services/adrutils/GUIDES/CCI.HTM---o21zAo0UaWo0Ol9A074fo65iyfmKlze8SUeecTAseLvI5ehw7se7NeCfeZJPAPfVbNyqgBecVktePbBxehwwlezc9fAb0vyApuRtAhGqGdisSLdspt6dsSAtdsNhJdspt6dsrvrdjlhkfbu.htm -http://www.generation-formation.fr/services/adrutils/GUIDES/DRIRE.HTM---o21zAo0UaWo0Ol9A074fo65iyfmKlze8SUeecTAseLvI5ehw7se7NeCfeZJPAPfVbNyqgBecVktePbBxehwwlezc9fAb0vyApuRudNnJpo1XCjdRsR3djaPfdNjfcdRsR3djakUApvGdhcmdfbv.htm -http://198.103.152.100/search*frc/aMayer,+Anita/amayer+anita/-5,-1,0,B/frameset&F=amaybank+j+e&1,1 -http://198.103.152.100/search*frc/aMayer,+Anita/amayer+anita/-5,-1,0,B/2exact&F=amaycunich+ann&1,3 -http://kobenhavn.icepage.se/hilfe/XFree86/3.9.18/DECtga2.html -http://itcareers.careercast.com/texis/it/itjs/+YwwBmeJf5C6wwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyhw1Bdmn5AanLnq1BoVnawmMoDo5BGwBoVnazdxamnpwGBMnDBaGnpdGB5a5BdGnaqddGmoDwBnanMwoca5Aocc5aMFqoEuRZy0IQDzmeJqwwwpBmeBFZ86mwww5rmehpwwwBrmeZpwww/morelike.html -http://itcareers.careercast.com/texis/it/itjs/+cwwBmetKD86eMmwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyhw1Bdmn5AanLnq1BoVnawmMoDo5BGwBoVnazdxamnpwGBMnDBaGnpdGB5a5BdGnaqddGmoDwBnanMwoca5Aocc5aMFqoEuRZy0IQDzmeJqwwwpBmeBFZ86mwww5rmeODwwwBrmeZpwww/morelike.html -http://bbs.syu.ac.kr/NetBBS/Bbs.dll/scbbs008/rcm/zka/B2-kB27p/qqo/005A/qqatt/^ -http://musicmabey.subportal.com/sn/Themes/Misc__Themes/ -http://www.intel.it/eBusiness/pdf/prod/ia64/SAS_IA-64_Paper.pdf -http://elflife.bigpanda.net/2866/io.html -http://www.excelsior.com.mx/9609/960911/nac11.html -http://www.allgemeine-immobilien-boerse.de/ungarn/verkauf/Private-IB/Ferien-IB/Startseite/Allgemeine-IB/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/indexbeginn.htm -http://www.allgemeine-immobilien-boerse.de/ungarn/verkauf/Private-IB/Ferien-IB/Startseite/Allgemeine-IB/Gemeinsam/geschaeftsbedingungen.htm -http://www.wingateinns.com/ctg/cgi-bin/Wingate/look_over/AAAksrACwAAACCPAAT -http://my.netian.com/~rakyun/?N=D -http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/versicherungen/gebaeude/Gemeinsam/immolink/Top-Darlehens-Konditionen/Gemeinsam/Inserieren/Gemeinsam/suche.htm -http://www.mirror.kiev.ua:8083/paper/2000/04/1251/text/04-07-5.htm -http://ring.toyama-u.ac.jp/archives/NetBSD/packages/1.4.2/sun3/?N=D -http://ring.toyama-u.ac.jp/archives/NetBSD/packages/1.4.2/sun3/lang/ -http://www.vstore.com/vstorecomputers/8store/ -http://indiadirectory.indiatimes.com/webdirectory/1514pg1.htm -http://indiadirectory.indiatimes.com/webdirectory/1513pg1.htm -http://www.online.kokusai.co.jp/Map/V0002508/wrd/G400/demo/ -http://www.gamespot.com.au/features/everquest_gg/creatures1.html -http://www.jxi.gov.cn/yw-ty001.nsf/view!OpenView&Start=38.11&Count=30&Expand=40 -http://www.jxi.gov.cn/yw-ty001.nsf/view!OpenView&Start=38.11&Count=30&Expand=42 -http://yp.gates96.com/6/0/40/22.html -http://yp.gates96.com/6/0/40/85.html -http://yp.gates96.com/6/0/41/26.html -http://yp.gates96.com/6/0/41/94.html -http://yp.gates96.com/6/0/42/50.html -http://yp.gates96.com/6/0/43/30.html -http://yp.gates96.com/6/0/43/76.html -http://yp.gates96.com/6/0/44/43.html -http://yp.gates96.com/6/0/44/61.html -http://yp.gates96.com/6/0/44/99.html -http://yp.gates96.com/6/0/45/37.html -http://yp.gates96.com/6/0/45/84.html -http://yp.gates96.com/6/0/47/33.html -http://yp.gates96.com/6/0/47/43.html -http://yp.gates96.com/6/0/47/54.html -http://yp.gates96.com/6/0/48/30.html -http://yp.gates96.com/6/0/48/47.html -http://yp.gates96.com/6/0/49/5.html -http://hammer.prohosting.com/~kobeweb/cgi-bin/nagaya/nagaya.cgi?room=036&action=mente -http://www.petropages.com/kproduct/k4267p.htm -http://webraft.its.unimelb.edu.au/536029/students/plam/pub/?M=A -http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/Fawd001.htm -http://www.caijing.yesky.com/33554432/36700160/122010.htm -http://yp.gates96.com/14/85/0/7.html -http://yp.gates96.com/14/85/2/86.html -http://yp.gates96.com/14/85/3/90.html -http://yp.gates96.com/14/85/6/37.html -http://yp.gates96.com/14/85/8/82.html -http://yp.gates96.com/14/85/8/88.html -http://cn.egroups.com/messages/Toledo_Storm/228 -http://mediate.magicbutton.net/do/session/625598/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-cart.html -http://rainforest.parentsplace.com/dialog/thread.pl/bradley2/10/2.html?dir=prevResponse -http://tvstore.zap2it.com/browse/TV/JACKET/s.CmMildAx -http://tvstore.zap2it.com/browse/TV/CLOCK/s.CmMildAx -http://findmail.com/post/studentdoctor?act=forward&messageNum=2315 -http://www.chaos.dk/sexriddle/d/j/l/a/y/ -http://gandalf.neark.org/pub/distributions/OpenBSD/src/gnu/egcs/libstdc++/testsuite/libstdc++.tests/?D=A -http://gd.cnread.net/cnread1/net/zpj/s/shenfang/004.htm -http://www.imagesignworks.com/vinylmasksforacidetching/index.nhtml -http://209.249.170.32/stores/dir/bycat/Holiday_and_Seasonal/Christmas.shtml -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959867726/Catalog/1000107 -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959867726/Catalog/1000108 -http://www.linux.com/networking/network/applications/interface/microsoft/IBM/ -http://www.linux.com/networking/network/applications/interface/microsoft/Corel/ -http://www.linux.com/networking/network/applications/interface/microsoft/?kw_offset=50 -http://www.tiefbau-suhl.de/Leistung/Stuetzmauern/stuetzmauern2.htm -http://providenet.tucows.com/win2k/adnload/38394_29124.html -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/index.opentext.net/weather/detail.cgi?us-dc -http://iceberg.adhomeworld.com/cgi-win/redirect.exe/2133549064 -http://www.dc.digitalcity.com/charlestonwvarea/announce/main.dci?page=letusknow -http://members.tripod.co.jp/yoshihiro_2/yotete.html -http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/immolink/Startseite/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/ -http://ftp.debian.org/dists/Debian2.2r0/non-free/binary-arm/web/?N=D -http://www.complete-skier.co.uk/resorts/survey/submit.asp?ResortID=1755 -http://members.tripod.com/~BHS_CC/boys_times_1997.html -http://fi.egroups.com/post/mens-health?act=forward&messageNum=11 -http://nomade.fr/cat/famille_sante/sante/medecine_pratique/medecine_generale/ -http://home.att.net/~mlbvault/mac8.htm -http://mirror.nucba.ac.jp/mirror/Perl/authors/id/ROSCH/String-ShellQuote-1.00.readme -http://www.nrk.no/finnmark/x12_9_96/nyh6.htm -http://ftp.debian.org/dists/Debian2.2r0/non-free/binary-m68k/editors/?N=D -http://134.84.160.1/infoserv/lists/nih-image/archives/nih-image-9702/0141.html -http://www.philly.digitalcity.com/saintjosephmo/penpals/browse.dci?cat=seniors&sort=m -http://www.idg.net/crd_percent_19960.html -http://204.202.130.51/playerfile/profile/mark_karcher.html -http://www.redrocksports.com/sports/webSession/shopper/RR972959692-31077/store/dept-5/department/dept-5/item/52800 -http://www.redrocksports.com/sports/webSession/shopper/RR972959692-31077/store/dept-5/department/dept-5/item/52900 -http://www.online.kokusai.co.jp/Service/V0043510/wrd/G200/service/service.html -http://www.service911.com/mvu/step/0,2632,1+13+139+23899+17191_4,00.html -http://216.34.146.180/141000afp/14worl21.htm -http://www.chaos.dk/sexriddle/t/p/v/r/i/ -http://www.chaos.dk/sexriddle/t/p/v/r/x/ -http://www.ualberta.ca/FTP/Mirror/debian/dists/potato-proposed-updates/eruby_0.0.9-1potato1_arm.changes -http://www.hbdaily.com.cn/scznb/20000622/BIG5/scznb^1104^16^Zn16014.htm -http://www.linux.com/networking/network/administrator/internet/ftp/install/ -http://bsdweb.pasta.cs.uit.no/bsdweb.cgi/xsrc/xc/lib/Xt/PassivGrab.c?sortby=author -http://bsdweb.pasta.cs.uit.no/bsdweb.cgi/xsrc/xc/lib/Xt/ConstrainP.h?sortby=author -http://www.jamba.de/KNet/_KNet-EAA8j1-vFd-13b95/browse.de/node.0/cdel3j591 -http://vvv.geocities.co.jp/SiliconValley-SanJose/5688/sn-3.html -http://vvv.geocities.co.jp/SiliconValley-SanJose/5688/n.html -http://www.amel.net/english/computer/games/b/X0006_Backstab__.html -http://www.amel.net/english/computer/games/b/X0059_Bumper_Ships_1.1.html -http://retailer.gocollect.com/do/session/1912693/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/sports/index.asp -http://www.hig.se/(apre,formoutput,modified,set,set_cookie)/~jackson/roxen/ -http://yp.gates96.com/3/73/80/18.html -http://yp.gates96.com/3/73/81/27.html -http://yp.gates96.com/3/73/81/48.html -http://yp.gates96.com/3/73/81/58.html -http://yp.gates96.com/3/73/82/38.html -http://yp.gates96.com/3/73/83/30.html -http://yp.gates96.com/3/73/83/43.html -http://yp.gates96.com/3/73/83/49.html -http://yp.gates96.com/3/73/83/52.html -http://yp.gates96.com/3/73/84/33.html -http://yp.gates96.com/3/73/84/75.html -http://yp.gates96.com/3/73/85/2.html -http://yp.gates96.com/3/73/85/44.html -http://yp.gates96.com/3/73/85/70.html -http://yp.gates96.com/3/73/86/37.html -http://yp.gates96.com/3/73/86/59.html -http://yp.gates96.com/3/73/87/97.html -http://yp.gates96.com/3/73/87/99.html -http://yp.gates96.com/3/73/88/58.html -http://yp.gates96.com/3/73/88/63.html -http://yp.gates96.com/3/73/88/97.html -http://yp.gates96.com/3/73/89/31.html -http://yp.gates96.com/3/73/89/40.html -http://deseretbook.com/products/4108132/stock-38.html -http://workingfamilies.digitalcity.com/madison/search/ -http://debian.linux.org.tw/debian/dists/Debian2.2r0/main/disks-sparc/current/?D=A -http://debian.linux.org.tw/debian/dists/Debian2.2r0/main/disks-sparc/current/base-contents.txt -http://www.wizardsoftheweb.com/news/183.shtml -http://mathematics.fiz-karlsruhe.de/stn/whyonline/why_0367.html -http://www.nrk.no/finnmark/x27_11_98/nyh3.htm -http://rex.skyline.net/navigate.cgi?computers,agriculture,nature,agriculture,computers -http://www.secinfo.com/d1ZG7r.78.htm -http://www.secinfo.com/d1ZG7r.74.htm -http://www.freesoftware.com.cn/python.org.cn/doc/essays/ppt/hp-training/tsld051.htm -http://www.nrk.no/finnmark/x28_5_96/nyh1.htm -http://www.areteoutdoors.com/channel/snow/downhilling/b.354.g.2944.html -http://www.areteoutdoors.com/channel/snow/downhilling/b.357.g.2944.html -http://www.mywebmd.net/roundtable_message/662348 -http://lovers-lane.porncity.net/216/ -http://myhome.thrunet.com/~estefe/seng/sen18.htm -http://myhome.thrunet.com/~estefe/seng/sen42.htm -http://myhome.thrunet.com/~estefe/seng/sen52.htm -http://myhome.thrunet.com/~estefe/seng/sen73.htm -http://no.egroups.com/login.cgi?login_target=%2Fmessages%2Fenglish-zone -http://www.uzp.gov.pl/biulety/1998/100/100_1327.html -http://www.uzp.gov.pl/biulety/1998/100/100_1341.html -http://www.uzp.gov.pl/biulety/1998/100/100_1372.html -http://www.uzp.gov.pl/biulety/1998/100/100_1377.html -http://www.uzp.gov.pl/biulety/1998/100/100_1428.html -http://www.hotelboulevard.com/fr/riviera/standard/html40f8403856d2fa84c9080a860b7608ba/sessionLang/ANG/prov/browse/lstLieu[0]/Saint-Tropez/resultatSearch.html -http://polygraph.ircache.net:8181/http_-2www.microsoft.com/frontpage/speeches/Pages/funds/portfolio.html -http://www9.hmv.co.uk:5555/do/session/1347778/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d40_sd0_pt0.html -http://edc.uni-augsburg.de/doc/susehilf/pak/paket_doinst_insure.html -http://www.schlagerplatten.de/NewmanJimmyC/B000009PXU.htm -http://cn.egroups.com/message/pro92/604 -http://wwws.br-online.de/geld/boerse/980107/190001.html -http://faqs.bilkent.edu.tr/faqs/sgi/faq/performer/section-3.html -http://faqs.bilkent.edu.tr/faqs/sgi/faq/performer/section-46.html -http://faqs.bilkent.edu.tr/faqs/sgi/faq/performer/section-105.html -http://faqs.bilkent.edu.tr/faqs/sgi/faq/performer/section-111.html -http://newsone.net/nnr/prep/maus.soziales.recht -http://www.mapion.co.jp/custom/tv/admi/14/14131/yako/3chome/1/ -http://info.verwaltung.uni-freiburg.de/doc/packages/qt/html/qpicture-members.html -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959870915/ContentView/1000091/1/1200207 -http://tour.stanford.edu/cgi/locate2.prl/135.5/jltA -http://mapquest.digitalcity.com/daytonarea/salaries/main.dci?page=admin -http://linuxberg.zeelandnet.nl/x11html/adnload/9146_6809.html -http://medwebplus.com/subject/Alternative%20and%20Complementary%20Medicine/Population/Lists%20of%20Internet%20Resources?^ftc=240&^cc=ftc -http://ftp.du.se/disk0/slackware/slackware-current/contrib/ham/login/package_descriptions -http://yp.gates96.com/12/56/70/0.html -http://yp.gates96.com/12/56/70/14.html -http://yp.gates96.com/12/56/70/62.html -http://yp.gates96.com/12/56/71/19.html -http://yp.gates96.com/12/56/71/38.html -http://yp.gates96.com/12/56/71/46.html -http://yp.gates96.com/12/56/72/49.html -http://yp.gates96.com/12/56/72/78.html -http://yp.gates96.com/12/56/72/91.html -http://yp.gates96.com/12/56/73/18.html -http://yp.gates96.com/12/56/73/52.html -http://yp.gates96.com/12/56/74/15.html -http://yp.gates96.com/12/56/74/54.html -http://yp.gates96.com/12/56/74/79.html -http://yp.gates96.com/12/56/75/28.html -http://yp.gates96.com/12/56/75/68.html -http://yp.gates96.com/12/56/75/71.html -http://yp.gates96.com/12/56/75/76.html -http://yp.gates96.com/12/56/75/88.html -http://yp.gates96.com/12/56/75/94.html -http://yp.gates96.com/12/56/76/27.html -http://yp.gates96.com/12/56/76/57.html -http://yp.gates96.com/12/56/76/73.html -http://yp.gates96.com/12/56/77/60.html -http://yp.gates96.com/12/56/78/3.html -http://yp.gates96.com/12/56/78/45.html -http://yp.gates96.com/12/56/78/64.html -http://yp.gates96.com/12/56/78/86.html -http://yp.gates96.com/12/56/78/91.html -http://yp.gates96.com/12/56/78/95.html -http://yp.gates96.com/12/56/79/39.html -http://yp.gates96.com/12/56/79/75.html -http://www.alldata.com/TSB/19/831915CS.html -http://polygraph.ircache.net:8181/iisadmin/libraries/http_-2www.travelsc.com/welcome_v3/form1.html -http://majordomo.cgu.edu/cgi-bin/lwgate/NEMAI/archives/nemai.archive.0003/Date/article-9.html -http://home.tiscalinet.be/fysinet/studententips/tipsVanStudentenNicolas/sld007.htm -http://www4.netease.com/~abac/writting/zpnr/xw.htm -http://64.209.212.162/learnlots/step/0,2891,47+75+26299+10981_5,00.html -http://www.adcentral.com/cgi-bin/w3com/pws/adsites/KLhIZjY9X9xD5moK2JGI9yyxCV4tsONpzxjYyzP1Uq5ZFTlQAg3Wd-d9dlZbdFK8g3p8_O5GT8q_tKPHmrHXekF-PEpGmxPO69EhQYYR0fwhi_k2GqJa7eAy8n4PQUv0fLw2IIBwNP_qQkQpWEvx666v -http://www.nrc.nl/W2/Nieuws/1998/08/01/ -http://online.excite.de/unterhaltung/katalog/38320 -http://202.167.121.158/ebooks/jetro/tra1-1-1.html -http://ftp.uni-paderborn.de/aminet/aminet/demo/tp94/Blur.readme -http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=11,14,12,26 -http://www.intellicast.com/Ski/World/UnitedStates/Northeast/NewYork/WingedFootGCWest/WindChill/d1_12/ -http://yp.gates96.com/10/17/80/25.html -http://yp.gates96.com/10/17/80/66.html -http://yp.gates96.com/10/17/80/92.html -http://yp.gates96.com/10/17/82/56.html -http://yp.gates96.com/10/17/82/80.html -http://yp.gates96.com/10/17/83/48.html -http://yp.gates96.com/10/17/83/71.html -http://yp.gates96.com/10/17/83/85.html -http://yp.gates96.com/10/17/84/9.html -http://yp.gates96.com/10/17/84/20.html -http://yp.gates96.com/10/17/84/56.html -http://yp.gates96.com/10/17/84/63.html -http://yp.gates96.com/10/17/85/88.html -http://yp.gates96.com/10/17/86/4.html -http://yp.gates96.com/10/17/86/43.html -http://yp.gates96.com/10/17/86/45.html -http://yp.gates96.com/10/17/86/89.html -http://yp.gates96.com/10/17/86/97.html -http://yp.gates96.com/10/17/87/2.html -http://yp.gates96.com/10/17/87/46.html -http://yp.gates96.com/10/17/88/0.html -http://yp.gates96.com/10/17/89/21.html -http://yp.gates96.com/10/17/89/83.html -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.w3.org/International/O-URL-and-ident -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(9,6)+21,0+3,0 -http://polygraph.ircache.net:8181/http_-2www.hystuff.com/nrc.htm -http://jproxy.uol.es/jproxy/http://www.ocregister.com/beaches/capistrano -http://www1.zdnet.com/companyfinder/filters/products/0,9996,38071-58,00.html -http://www.ftp.uni-erlangen.de/pub/mirrors/_other/afterstep.foo.net/AfterStep/binaries/?M=A -http://www.genome.wustl.edu:8021/gsc10/mouse/up/?D=A -http://www.genome.wustl.edu:8021/gsc10/mouse/up/up24/ -http://rotten-tomatoes.com/movies/browse/1074473/reviews.php?view=reviews.source -http://www.virtual-impact-mktg.com/fx110001.htm -http://genforum.genealogy.com/hagen/messages/164.html -http://genforum.genealogy.com/hagen/messages/111.html -http://genforum.genealogy.com/hagen/messages/7.html -http://genforum.genealogy.com/hagen/messages/271.html -http://genforum.genealogy.com/hagen/messages/40.html -http://nt.mortgage101.com/partner-scripts/1024.asp?p=cashsolutions -http://nt.mortgage101.com/partner-scripts/1026.asp?p=cashsolutions -http://library.cuhk.edu.hk/search*chi/té¾æƒ…三地+%26%2359%3B+[3]/t%7B21632b%7D%7B213e5b%7D%7B213024%7D%7B213779%7D++++3/-5,-1,0,B/browse -http://ftp.net.uni-c.dk/pub/linux/redhat/redhat-6.2/sparc/misc/src/anaconda/isys/?S=A -http://ftp.net.uni-c.dk/pub/linux/redhat/redhat-6.2/sparc/misc/src/anaconda/isys/modutils/ -http://cobrand.altrec.com/shop/detail/8273/30 -http://pegasus.infor.kanazawa-it.ac.jp/~hatlab/kaga/docs/jdk1.3-beta_api/jdk1.3/docs/api/java/lang/class-use/ClassFormatError.html -http://bci.tucows.com/winnt/adnload/58788_28761.html -http://www.buybuddy.com/sleuth/33/1/1020503/300/ -http://203.116.23.91/computer/pages2/it120800e.html -http://203.116.23.91/special/newspapers/2000/pages4/computer030700.html -http://203.116.23.91/computer/pages1/software131197.html -http://dic.empas.com/show.tsp/?q=anarchically&f=B -http://noodle.tigris.org/source/browse/subversion/subversion/libsvn_vcdiff/tests/target0.txt -http://www.dbservicestore.de/home/db_reise_touristik/angebote/db_rt_gat_muenster.shtml -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=2&discrim=16,237,275 -http://www.narodnaobroda.sk/20000926/06_006.html -http://mandijin.chinamarket.com.cn/C/Showdetail_company/22591.html -http://202.167.121.158/ebooks/jetro/t6.html -http://a228.g.akamai.net/7/228/289/dd50406be5fc91/news.indiainfo.com/2000/08/17/world-index.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=disaminerei&l=it -http://polygraph.ircache.net:8181/http_-2www.eastnebr.net/html/conversions.htm -http://www.secinfo.com/d2wVq.7ar.htm -http://www.secinfo.com/d2wVq.7B5.htm -http://www.secinfo.com/d2wVq.6cd.htm -http://www.secinfo.com/d2wVq.59x.htm -http://www.jamba.de/KNet/_KNet-xdz8j1-mFd-13b2b/browse.de/node.0/cenv0b09a -http://213.36.119.69/do/session/152991/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/jeux/jeux_himalaya.html -http://www.dailyexcelsior.com/99sep30/edit.htm -http://www.dailyexcelsior.com/99sep30/sports.htm -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/misc/misc/music/lit/quizz/computers/netwars.html -http://cometweb01.comet.co.uk/do!session=132020&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkjHfZoLlplLcqkKZljLlfb5lal5tkiLlXaLl0 -http://www.affiliate.hpstore.hp.co.uk/do/session/380832/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/search.asp -http://208.216.182.15/exec/obidos/ASIN/0516206443/qid=972959559/sr=1-22/ -http://fi.egroups.com/messages/alau/2350 -http://ads.puntopartenza.com/cgi-bin/redirect.cgi/31033631 -http://pds.nchu.edu.tw/cpatch/ftp/ftpctrl/?N=D -http://www.brio.de/BRIO.catalog/39fe2f5606def942273fd472aa7806e2/UserTemplate/5 -http://ep.com/js/mi/c7246/b0/832275.html -http://ep.com/js/mi/c7246/b0/837505.html -http://ep.com/js/mi/c7246/b0/764046.html -http://www.fogdog.com/cedroID/ssd3040183223072/nav/products/nhl/pittsburgh_penguins/fan/gender/autographed_pucks/ -http://netway.pda.tucows.com/palm/preview/33567.html -http://netway.pda.tucows.com/palm/preview/34007.html -http://cometweb01.comet.co.uk/do!session=132006&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkjHfZoLlplLcqkKZljLlfb5lal5tkiLlXaLl0 -http://www.udn.com.tw/ARCHIVE/2000/08/04/DOMESTIC/YUNLIN/587058.htm -http://www.linux.com/networking/network/support/web/news/services/ -http://www.linux.com/networking/network/support/web/news/website/ -http://www.linux.com/networking/network/support/web/news/business/ -http://ads.carltononline.com/accipiter/adclick/site=purejamba/area=jamba.home_page/AAMSZ=IAB_FULL_BANNER//ACC_RANDOM=972959548213 -http://www-x500-1.uni-giessen.de:8890/Lcn%3dConsuelo%20Alvarez,ou%3dDpto.%20Fisiologia%20y%20Biologia%20Animal,o%3dUniversidad%20de%20Sevilla,c%3dES -http://www.chaos.dk/sexriddle/b/q/v/y/n/ -http://www.cs.kuleuven.ac.be/~java/docs/tutorial/uiswing/converting/example-1dot1/ListDemo.html -http://golfonline.comfluent.net/cgi.pan$player&lpga82&Debbie_Raso&lpga?golfstats -http://acetoys.com/cgi-bin/exec/modify_cart_button=1&cart_id=1999923.7130.303&page=/tystore/htmlfiles/eden/dw.html -http://www.bigchurch.com/cgi-bin/w3com/pws/bc/y1hIyNzn0Bl2XX5GzG9wVnUEhWD8GTd-XbpDm6aNI4ZMGTnV_YsP2OjB0RrwLpDbJub1pKlzEMrInSQi9hRM-Rz4WNq8C1vKJ9STiU9leUD_a3PBVh-7OMZDzJtyEBAXTehiRqme6jBR -http://www.bigchurch.com/cgi-bin/w3com/pws/bc/mChIR_iy1798J8x9InaTkzOfisuwH2hv2KUj0e64IQ9CeS327muTnTo70bT5YC4YznUddEOY5WdX70keIPRlsQibJtG6uzZtaaPmL58O5zJ0z_2PkJNxmBS5dj5-gWoeBgE0zaSvCbi66Grq -http://wap.jamba.de/KNet/_KNet-8qB8j1-FFd-13blo/browse.de/node.0/cde7f2elw -http://collection.nlc-bnc.ca/100/201/300/info_tabac/html/1997/bull7/fdacarol.html -http://pub17.ezboard.com/fzhaostempleofenlightenmentzhaosforum.showMessage?topicID=116.topic -http://www.home.ch/~spaw4360/HOWTO_fr/Ethernet-HOWTO-5.html -http://www.chaos.dk/sexriddle/s/g/n/y/j/ -http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/https_-2www.truste.org/validate/page3.html -http://marketbiz.subportal.com/sn/Themes/Sports_Themes/288.html -http://www.chinaccm.com/04/news/200004/20/120305.asp -http://www.american.webtourist.net/travel/northamerica/usa/lagunabeach/bwlagunareefinn.htm -http://elib.zib.de/pub/visual/avs/mirror/imperial/new/?S=A -http://www.burstnet.com/ads/ad7826a-map.cgi/969206790 -http://yp.gates96.com/14/82/10/81.html -http://yp.gates96.com/14/82/12/82.html -http://yp.gates96.com/14/82/13/55.html -http://yp.gates96.com/14/82/14/27.html -http://yp.gates96.com/14/82/14/31.html -http://yp.gates96.com/14/82/15/52.html -http://yp.gates96.com/14/82/17/16.html -http://yp.gates96.com/14/82/17/93.html -http://www.outpersonals.com/cgi-bin/w3com/pws/out/P2hI5ODQEZ1-vIl-agOzeOeNg4wShDlZrsCbdT5YZ3TrprEU4rb4NnnDXiGmf5cX3dh8ltMer04TMDd3q-cE5Mne85eH57ltxsi4ZQfER6vkktoaaYlS9JFTzylmCJZ2_PAT9uu2oWvIjgMzt9toyeuV -http://www.mirror.ac.uk/sites/ftp.microsoft.com/deskapps/powerpt/KB/Q226/7/ -http://mirror.nucba.ac.jp/mirror/Perl/authors/id/MIKEKING/?M=A -http://lists.insecure.org/linux-kernel/2000/Jun/4357.html -http://www.nlc-bnc.ca/indexmus-bin/resultsum/m=0/e=0/h=25/p=1/f=AU/t=Siroir,+Maryse+Angrignon -http://genforum.genealogy.com/cgi-bin/print.cgi?leavy::19.html -http://www.egroups.com/message/malaysiakini/219 -http://wuarchive.wustl.edu/graphics/mirrors/ftp.povray.org/.3/netlib/ode/rksuite/?S=A -http://www.earthsystems.org/list/greenyes/jan2000/1999-2/0858.html -http://pp3.shef.ac.uk:4040/search=browse/dn=countryName%3DGB%40organizationName%3DUniversity+of+Sheffield%40organizationalUnitName%3DAutomatic+Control+and+Systems+Engineering%40commonName%3DI+D+Durkacz -http://cobrand.altrec.com/shop/detail/6133/15/sizing -http://cobrand.altrec.com/shop/detail/5624/17/write -http://members.theglobe.com/inwardpath/history.htm -http://findmail.com/post/studentdoctor?act=reply&messageNum=5168 -http://www.service911.com/everythingtele/step/0,2675,3+26057+24201+16394_0,00.html -http://www.linux.com/networking/network/free/release/development/mysql/ -http://www.nbip.com.cn/books/xdwx/Hongyan/hongyan14.html -http://ftp.jp.debian.org/debian-non-US/dists/sid/non-US/non-free/binary-hurd-i386/?N=D -http://homepage.swissonline.ch/chico_logo/www.Link008 -http://homepage.swissonline.ch/chico_logo/www.Link009 -http://citeseer.nj.nec.com/cidcontext/3719857 -http://itcareers.careercast.com/texis/it/itjs/+CwwBme3AT+6e-xwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewXnmoBGnamwBwxw5naBnqrDdcdtOaOnwGaMdDBramwOaqmwBwamn5otDamnVncdpoDtanDtoDnnGoDtaMFqhTfR20DzmebmwwwpBme3AT+6ekxwww5rmeXdwwwBrmeZpwww/jobpage.html -http://www.amazon.com.hk/exec/obidos/tg/stores/detail/-/pro-tools/B0000224UB/customer-reviews/ref=th_hp_rs_2_6/ -http://www.ard-buffet.de/buffet/teledoktor/1998/02/16/ -http://pub19.ezboard.com/fmissionimplausiblewhatpeoplearesaying.emailToFriend?topicID=41.topic -http://no.egroups.com/message/NikonCoolPix/211 -http://www.gasex.com/free.gay.sex/gay.men.dick.dicks.html -http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/showFolder/100001/1255931 -http://www.uni-duesseldorf.de/ftp/ftp/pf/s/yagirc-0.65.6/?N=D -http://www.outpersonals.com/cgi-bin/w3com/pws/out/uIhI1DhpdvAdxVFONIJuaNcvtSTejSMmZIBgOwsZamHFS4JpS3i6VWNOSb8LsLcmqmG0gp2hs1YjuScHwXmociV5L_3_fCYngafHC4CIYDuKoI-rOZldw1RU5K3jOfh5d3PxatRmmHqB662F -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/elax176954/eus53832/eus155852/eus53907/eus62316/ -http://www.magictraders.com/cgi-bin/ubb/ubbmisc.cgi?action=getbio&UserName=Ammo187 -http://fi.egroups.com/login.cgi?login_target=%2Fgroup%2Fweirdchicks -http://www.accesslasvegas.com/shared/health/adam/ency/article/000589.images.html -http://pp3.shef.ac.uk:4040/search=browse/dn=countryName%3DGB%40organizationName%3DAberdeen+University%40organizationalUnitName%3DGeneral+Practice%40commonName%3DMorrison+S -http://worldres.lycos.com/script/gen_amen.asp?hotel_id=2252&n=2089 -http://tulips.ntu.edu.tw/search*chi/dSymbolism+in+fairy+tales/dsymbolism+in+fairy+tales/-5,-1,0,B/browse -http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/x11-clocks/pclock/ -http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/x11-clocks/xtimer/ -http://polygraph.ircache.net:8181/cgi-win/lincoln/$cgi4wpro.exe/http_-2www.k56.com/http_-2www.webexplorer.net/c/SHLFFREZ.HTM -http://www.ecs.soton.ac.uk/~seg7/private/contact.html -http://wiem.onet.pl/wiem/00de68-s.html -http://lcweb2.loc.gov/ll/llnt/008/?M=A -http://www.alladvantage.com/pressroom.asp?refid=CBI-463 -http://herndon1.sdrdc.com/cgi-bin/ind_detail/FERRELL|PORTER|FORT+WORTH|TX|76107|SINGLE+SERVER+COMMUNICATIONS/ -http://herndon1.sdrdc.com/cgi-bin/ind_detail/HARRIS|WILLIAM|FAIRFAX|VA|22031|HARRIS+AND+ASSOCIATES/ -http://herndon1.sdrdc.com/cgi-bin/ind_detail/HUTCHER|LARRY|NEW+YORK|NY|10023|DAVIDOFF+AND+MALITO/ -http://herndon1.sdrdc.com/cgi-bin/ind_detail/ISIKOFF|NATHAN+R|WASHINGTON|DC|20007|CAREY-WINSTON+CO/ -http://www.linux.com/networking/network/communications/security/wireless/protocol/ -http://www.linux.com/networking/network/communications/security/wireless/technology/ -http://retailer.gocollect.com/do/session/1912719/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp -http://retailer.gocollect.com/do/session/1912719/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/limited_editions.asp -http://retailer.gocollect.com/do/session/1912719/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://www9.hmv.co.uk:5555/do/session/1347779/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/hiddenframe.html -http://pub9.ezboard.com/fwestlifedublinmessageboardwestlifemessageboard.showMessage?topicID=8.topic -http://no.egroups.com/subscribe/hardzero -http://link.fastpartner.com/do/session/600378/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/index.php -http://link.fastpartner.com/do/session/600378/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/gosafe.php -http://link.fastpartner.com/do/session/600378/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/bitconomy.php -http://www.hello.co.jp/~daichi2/ -http://bbs.nsysu.edu.tw/txtVersion/treasure/ChiaYi/M.937783175.A/M.959916136.M.html -http://chat.hani.co.kr/NetBBS/Bbs.dll/chosun21/lst/qqeq/1/zka/B2-kB2Bp/qqo/PRMY -http://www.gartenfachmarkt.de/haus/schleifen/so.htm -http://links2go.publiweb.com/topic/US_Department_of_Agriculture -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=14,15,6,36,22 -http://www.linux.com/networking/network/new/hardware/open_source/operating_system/ -http://www.linux.com/networking/network/new/hardware/open_source/availability/ -http://tokyo.cool.ne.jp/pure0101/Oblivion_dust.html -http://www.digitaldrucke.de/(aktuell,computer,gaestebuch,hilfe,hilfeallgemein,individualverkehr,kultur,onlineservice,peripherie,sense,veranstaltungen,verkehr)/_fort/html/themen/computer/hard/links/mitsu.htm -http://www.gbnf.com/genealogy/jenkins/html/d0097/I4129.HTM -http://www.geocities.co.jp/Outdoors-River/1625/hakuba0502.htm -http://ftp.fi.debian.org/OpenBSD/src/regress/share/man/ -http://www3.buch-per-sms.de/angemeldet.jsp$ID=To7767mC050667397857644736At0.8818825373175998 -http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=15,25,16,27 -http://debian.tod.net/debian/dists/sid/main/binary-sparc/electronics/?D=A -http://hs1.takeoff.ne.jp/~hatuse/ -http://polygraph.ircache.net:8181/Keyboards/http_-2www.sky.net/~robertf/handson/engine.html -http://www.gbnf.com/genealogy/jenkins/html/d0005/I3818.HTM -http://sepwww.stanford.edu/oldreports/sep67/old_src/jon/extend/junk.listing -http://www.kol.net/~calldj/cyberstar/map/dw25a.htm -http://citeseer.nj.nec.com/cidcontext/1297195 -http://citeseer.nj.nec.com/cidcontext/1297207 -http://books.hyperlink.co.uk/xt2/Peace_Verses_War/Cole/Derek/0722329539 -http://www.spousehouse.com/ -http://futures.homeway.com.cn/lbi-html/news/special/zhzt/jdht/twparty/zhengfu94652.shtml -http://www.yorosiku.net:8080/-_-http://www.zdnet.co.jp/zdii/interviews/interviews.html -http://library.cwu.edu/search/aIdaho+State+University/aidaho+state+university/-5,-1,0,E/frameset&F=aidaho+state+university&2,,0 -http://pelit.saunalahti.fi/.1/tucows/preview/68721.html -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=34,20,30,36,32 -http://pike-community.org/(base=/forums/show.html,forum=7,show=146,t=972959487953431)/forums/show.html -http://pike-community.org/(base=/forums/show.html,forum=7,show=185,t=972959487953431)/forums/show.html -http://pike-community.org/(base=/forums/show.html,explode=763,forum=7,t=972959487953431)/forums/show.html -http://pike-community.org/(base=/forums/show.html,forum=7,show=870,t=972959487953431)/forums/show.html -http://pike-community.org/(base=/forums/show.html,forum=7,show=890,t=972959487953431)/forums/show.html -http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d3/b34,8,1,,1f,1,65,,1f,65, -http://www.telematik.informatik.uni-karlsruhe.de/osf/sw/v4.0x/lp2/bst320/kit/ -http://cafe3.daum.net/Cafe-bin/Bbs.cgi/harukypds/rnw/zka/B2-kB2Zq -http://www.digitaldrucke.de/(computer,hilfe)/_fort/html/themen/computer/hard/links/escom.htm -http://www2.ipc.pku.edu.cn/scop/pdb.cgi?sid=d6stdb_ -http://www2.ipc.pku.edu.cn/scop/pdb.cgi?sid=d4stdc_ -http://www.shopworks.com/index.cfm/action/specials/userid/00029735-2E1C-19FE-AF65010C0A0A8CF2 -http://www.shopworks.com/index.cfm/action/search/userid/00029735-2E1C-19FE-AF65010C0A0A8CF2 -http://www.helpnow.net.cn/helpnow/hardware/bbs/cpu/?D=A -http://books.hyperlink.co.uk/xt1/Light_My_Fire/Manzarek/Ray/0099280655 -http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/src/crypto/heimdal/appl/ftp/ftp/?sortby=author -http://tucows.interbaun.com/winme/adnload/5147_28523.html -http://tucows.interbaun.com/winme/adnload/137019_28530.html -http://moviestore.zap2it.com/browse/MOVIES/COLLECTI/s.NedNjpDf -http://moviestore.zap2it.com/browse/MOVIES/STRAW/s.NedNjpDf -http://www.online.kokusai.co.jp/Words/V0043505/wrd/G700/words/kana_main.html -http://www.mirror.edu.cn/res/sunsite/pub/X11/contrib/window_managers/gwm/patches/gwm_patch_1.8a_001 -http://www.musicblvd.com/cgi-bin/tw/270242907922133_20_hip -http://www.cowo.de/archiv/1991/21/9121c045.html -http://www.russ.ru:8080/netcult/nevod/19990827-pr.html -http://usol.linux.tucows.com/x11html/preview/26680.html -http://usol.linux.tucows.com/x11html/preview/10385.html -http://yp.gates96.com/7/22/20/54.html -http://yp.gates96.com/7/22/20/67.html -http://yp.gates96.com/7/22/20/71.html -http://yp.gates96.com/7/22/22/26.html -http://yp.gates96.com/7/22/22/55.html -http://yp.gates96.com/7/22/22/74.html -http://yp.gates96.com/7/22/22/94.html -http://yp.gates96.com/7/22/23/38.html -http://yp.gates96.com/7/22/23/59.html -http://yp.gates96.com/7/22/24/43.html -http://yp.gates96.com/7/22/24/60.html -http://yp.gates96.com/7/22/24/64.html -http://yp.gates96.com/7/22/24/66.html -http://yp.gates96.com/7/22/24/72.html -http://yp.gates96.com/7/22/24/85.html -http://yp.gates96.com/7/22/26/11.html -http://yp.gates96.com/7/22/26/69.html -http://yp.gates96.com/7/22/27/3.html -http://yp.gates96.com/7/22/27/11.html -http://yp.gates96.com/7/22/27/22.html -http://yp.gates96.com/7/22/27/48.html -http://yp.gates96.com/7/22/27/69.html -http://yp.gates96.com/7/22/28/13.html -http://yp.gates96.com/7/22/28/30.html -http://yp.gates96.com/7/22/29/39.html -http://yp.gates96.com/7/22/29/58.html -http://www.allgemeine-immobilien-boerse.de/frankfurt/verkauf/Gemeinsam/Super-Zins-Konditionen/Private-IB/Startseite/IIM-Teil/Startseite/Gemeinsam/Super-Zins-Konditionen/anforderungsformular.htm -http://cobrand.altrec.com/shop/detail/8470/9/description -http://oa-nett.no/0/73/90/2.html -http://www.nordi.no/~steinsk/ -http://www02.geocities.co.jp/Stylish/6692/ -http://no.egroups.com/login.cgi?login_target=%2Fmessages%2Fsan-diego-tango -http://no.egroups.com/message/san-diego-tango/390 -http://www.jamba.de/KNet/_KNet-m_C8j1-PFd-13bt7/showInfo-special1.de/node.0/cenv0b09a -http://www.bemi-immobilien.de/Ferien-IB/Startseite/Gemeinsam/immolink/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Startseite/Gemeinsam/versicherungen/gebaeude/Startseite/froben.htm -http://it.egroups.com/post/pimnews-homeworker?act=reply&messageNum=661 -http://members.es.tripod.de/remoto/t2/p3b.htm -http://no.egroups.com/post/Translat2000?act=reply&messageNum=530 -http://www.opengroup.com/pabooks/081/0816631352.shtml -http://www6.freeweb.ne.jp/feminine/ki18/portrait10/p21.htm -http://genforum.genealogy.com/cgi-genforum/forums/cantrell.cgi?2117 -http://www9.hmv.co.uk:5555/do/session/1347769/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d30_sd0_pt0.html -http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2www.perrypip.com/http_-2www.scruz.net/~dvb/cam.html -http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2www.perrypip.com/~logan/ -http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2www.perrypip.com/http_-2hits.omino.com/ -http://javatest.a-net.nl/servlet/pedit.Main/http://epidem13.plantsci.cam.ac.uk/~js/glossary/course-glossary.html -http://www.hellefors.se/ulf/akno/alla/p0349c5e1e.html -http://home.no.net/islamnor/had.sira.html -http://www.gutenberg2000.de/immerman/muenchim/muen1171.htm -http://www.gutenberg2000.de/immerman/muenchim/muen3091.htm -http://www.gutenberg2000.de/immerman/muenchim/muen7011.htm -http://www.sikhnet.com/sikhnet/music.nsf/by%20Shabad!OpenView&Start=30&Count=20&Expand=2 -http://www.proteome.com/databases/PombePD/reports/SPCC613.01.html -http://www.midwestvanlines.com/oh/indexC.html -http://ring.tains.tohoku.ac.jp/pub/linux/debian/debian-jp/dists/stable/contrib/binary-arm/electronics/?S=A -http://members.tripod.com/~infolog/Genhouses/Chap12.htm -http://www.4positiveimages.com/4positiveimages/1998693855/UserTemplate/2 -http://www.greenleaves.com/bookcat/gb_096855900X.html -http://www-rn.informatik.uni-bremen.de/home/X11R6/xc/doc/hardcopy/test/?M=A -http://rex.skyline.net/html/Shipping_of_Goods.html?48,airplanes,transportation,collectibles,transportation -http://rex.skyline.net/html/Automobile_Classified_Listings.html?59,airplanes,transportation,collectibles,transportation -http://www.admin.co.martin.fl.us/GOVT/depts/cas/corresp/2000/cas00l.133.html -http://www.admin.co.martin.fl.us/GOVT/depts/cas/corresp/2000/cas00l.126.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380834/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hpstore.hewlett-packard.fr/gp -http://link.fastpartner.com/do/session/600367/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/no/ -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www-library.lbl.gov/photo/gallery/ -http://dogbert.wu-wien.ac.at/UniverCD/cc/td/doc/product/core/cis12012/bfrcfig/4334acps/?M=A -http://ftp.uni-stuttgart.de/pub/tex/nonfree/support/latexdraw/doc/ltdmanual.html.g/node10.html -http://se.egroups.com/message/911dispatchers/718 -http://ftp.eecs.umich.edu/.1/people/jfr/Pinata_Book/?D=A -http://community.bigchalk.com/servlet/schools_ProcServ/DBPAGE=cge&GID=66001000660906746080215398&PG=66001000660906746080492039 -http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=16,27,29,4 -http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=22,27,29,4 -http://pds.nchu.edu.tw/cpatch/ftp/dap/cdap_4002.txt -http://pds.nchu.edu.tw/cpatch/ftp/dap/source/ -http://kuyper.calvin.edu/fathers2/ANF-03/anf03-22.htm -http://kuyper.calvin.edu/fathers2/ANF-03/anf03-27.htm -http://blisty.internet.cz/1250/9908/19990813a.html -http://ring.shibaura-it.ac.jp/archives/doc/jpnic/minutes/committee/200008/shiryou-2-8-2.txt -http://194.128.65.4/pa/cm199697/cmhansrd/vo970306/text/70306w14.htm -http://www.mortgagemag.com/guide/c096/c096573.htm -http://link.fastpartner.com/do/session/600369/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php -http://link.fastpartner.com/do/session/600369/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/gosafe.php -http://cometweb01.comet.co.uk/do!session=132008&vsid=692&tid=20&cid=37051&mid=1000&rid=1060&chid=1702&url=eqqLmwlGltt5tkjHfZoLlplLcqkKZljLlfb5lal5tkiLlXaLl0 -http://www.vh.org///////Patients/IHB/FamilyPractice/AFP/November1994/HormoneReplacement.html -http://ftp.sunet.se/pub/unix/OpenBSD/distfiles/md5/74892a6ae002937d011d3e1102269b7f/?M=A -http://www.pcdads.com/pressroom/archive/releases/cn112999.htm -http://www.pcdads.com/pressroom/archive/releases/Fe90199a.htm -http://www.pcdads.com/pressroom/archive/releases/Cn042199.htm -http://www.cheap-cds.com/surf/order/017172 -http://www.hani.co.kr/ECONOMY/data/9909/day09/print/p00909060.html -http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/MarketingStrategie/Startseite/Gemeinsam/Inserieren/Gemeinsam/Gemeinsam/versicherungen/unfall/anforderungsformular.htm -http://www.sj-rmall.com/Mall/Catalog/Product/ASP/product-id/57419/store-id/1000400121.html -http://www.travelodge.com/ctg/cgi-bin/Travelodge/home/AAAksrACwAAABvTAAd -http://ctc.org.cn/ctc2/news/internet/develop/news0322-6.htm -http://www.schlagertempel.de/FallbachTrio/B000025MBP.htm -http://www.fogdog.com/cedroID/ssd3040183238127/nav/products/nike/1b/all/10.html -http://www.fogdog.com/cedroID/ssd3040183238127/customer_service/security_policy.html -http://in.egroups.com/login.cgi?login_target=%2Fgroup%2Fradiotutorium -http://yp.gates96.com/7/87/70/43.html -http://yp.gates96.com/7/87/70/61.html -http://yp.gates96.com/7/87/71/85.html -http://yp.gates96.com/7/87/72/75.html -http://yp.gates96.com/7/87/73/1.html -http://yp.gates96.com/7/87/73/5.html -http://yp.gates96.com/7/87/73/60.html -http://yp.gates96.com/7/87/74/34.html -http://yp.gates96.com/7/87/75/9.html -http://yp.gates96.com/7/87/75/50.html -http://yp.gates96.com/7/87/75/92.html -http://yp.gates96.com/7/87/76/2.html -http://yp.gates96.com/7/87/76/59.html -http://yp.gates96.com/7/87/76/92.html -http://yp.gates96.com/7/87/78/30.html -http://yp.gates96.com/7/87/78/32.html -http://yp.gates96.com/7/87/78/75.html -http://yp.gates96.com/7/87/78/85.html -http://yp.gates96.com/7/87/78/93.html -http://yp.gates96.com/7/87/79/30.html -http://yp.gates96.com/7/87/79/50.html -http://yp.gates96.com/7/87/79/71.html -http://yp.gates96.com/7/87/79/85.html -http://interhotel.com/luxembourg/es/hoteles/45691.html -http://interhotel.com/luxembourg/es/hoteles/73094.html -http://bart.kullen.rwth-aachen.de/~quake3/Html_log/471_chat.html -http://search.yam.com.tw/en/search/rec/travel/domest/resorts/miaolir/ -http://www.narodnaobroda.sk/19991009/23_006.html -http://news.china.com/zh_cn/social/1007/20001027/7624.html -http://www.fila.com.br/ -http://www.jobvillage.com/channel/jobs/health_care/female_health/b.3122.g.2360.html -http://online.excite.de/bildung/katalog/35461 -http://deportes.ole.com/ocio/articulo/articulo.cfm?ID=OCI8055 -http://yp.gates96.com/3/36/90/2.html -http://yp.gates96.com/3/36/90/37.html -http://yp.gates96.com/3/36/90/55.html -http://yp.gates96.com/3/36/90/79.html -http://yp.gates96.com/3/36/91/7.html -http://yp.gates96.com/3/36/92/59.html -http://yp.gates96.com/3/36/92/95.html -http://yp.gates96.com/3/36/93/76.html -http://yp.gates96.com/3/36/93/88.html -http://yp.gates96.com/3/36/94/41.html -http://yp.gates96.com/3/36/94/64.html -http://yp.gates96.com/3/36/95/16.html -http://yp.gates96.com/3/36/95/33.html -http://yp.gates96.com/3/36/95/39.html -http://yp.gates96.com/3/36/96/36.html -http://yp.gates96.com/3/36/96/53.html -http://yp.gates96.com/3/36/99/30.html -http://yp.gates96.com/3/36/99/73.html -http://download.sourceforge.net/mirrors/turbolinux/turbolinux-cn/pub/turbolinux/updates/TLC3.0.2/?S=D -http://www.jobvillage.com/channel/jobs/administrative/mrd/courier/b.4728.g.3366.html -http://www.jobvillage.com/channel/jobs/administrative/mrd/shipping_clerk/b.4713.g.3366.html -http://quote.fool.com/simple.asp?symbols=NS -http://itcareers.careercast.com/texis/it/itjs/+NwwBmeIXD86dxwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewXhmoBGnaqdGpdGwBodDaqdMp1BnGadpnGwBodD5aMw55wqr15nBB5aqdGpdGwBnahoDwDqowcaMwocaBn5BoDtapGdxcnMaMFqhTfR20DzmetmwwwpBme_9D86eYmwww5rme1DwwwBrmeZpwww/jobpage.html -http://www.shopworks.com/index.cfm/action/info/userid/00066256-1160-19FE-A703010D0A0A8CF2 -http://isbn.nu/0716723212/fatbrain -http://isbn.nu/0716723212/amazon.ceo.html -http://ftp.nacamar.de/pub/NetBSD/NetBSD-current/pkgsrc/www/p5-URI/?N=D -http://213.36.119.69/do/session/152993/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/preparer/sante.htm -http://213.36.119.69/do/session/152993/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/jeux/jeux_himalaya.html -http://213.36.119.69/do/session/152993/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/DE_DE/ -http://www.linux.com/networking/network/support/open_source/investors/consulting/ -http://www.linux.com/networking/network/support/open_source/investors/research/ -http://sunsite.uakom.sk/doc/FAQ/alt-sex/fetish-fashion/?S=A -http://sunsite.uakom.sk/doc/FAQ/alt-sex/fetish-fashion/?D=A -http://phnet.tucows.com/winme/preview/75994.html -http://www.fivedoves.com/letters/june99/trish67.htm -http://www.teacherformation.org/html/od/facilitators.cfm/task1,about/discussion_id,2/xid,8571/yid,4064381 -http://pub24.ezboard.com/fnightmagicfrm1.showMessage?topicID=3.topic -http://infoserv2.ita.doc.gov/efm/efm.nsf/Sources!OpenView&Start=53.28&Count=30&Expand=54 -http://www.linux.com/networking/network/communications/management/windows_nt/website/ -http://www.linux.com/networking/network/communications/management/windows_nt/?kw_offset=50 -http://www.epinions.com/cmd-review-593A-C9BAC2B-3987B6DC-prod1 -http://www.bande-dessinee.org/bd/bd02.nsf/InterDescenaristes!OpenView&Start=1&Count=50&Collapse=51 -http://www.business-partner.ch/static/fr/pourlesfirmes/lesgrandesentreprises/whateveryouwant/solutionsspecifiquesalabranche/transport/main.html -http://ads.carltononline.com/accipiter/adclick/site=purejamba/area=JAMBA.HOME_PAGE/AAMSZ=KSJAMBA//ACC_RANDOM=972959547161 -http://expert.cc.purdue.edu/~yoko/simpsons/front.html -http://dailynews.sina.com.cn/society/2000-06-14/97332.html -http://ftp.dti.ad.jp/pub/Linux/debian-jp/dists/potato/main/binary-all/editors/?M=A -http://www.babyheirlooms.com/catalog/htmlos.cat/041124.1.5608817466 -http://www9.hmv.co.uk:5555/do/session/1347791/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d100_sd0_pt0.html -http://www.jobvillage.com/channel/jobs/health_care/pharmaceutical/pharmacist/b.3231.g.1267.html -http://yp.gates96.com/11/24/80/12.html -http://yp.gates96.com/11/24/80/18.html -http://yp.gates96.com/11/24/80/84.html -http://yp.gates96.com/11/24/80/90.html -http://yp.gates96.com/11/24/81/6.html -http://yp.gates96.com/11/24/81/9.html -http://yp.gates96.com/11/24/81/54.html -http://yp.gates96.com/11/24/81/74.html -http://yp.gates96.com/11/24/81/98.html -http://yp.gates96.com/11/24/82/17.html -http://yp.gates96.com/11/24/82/96.html -http://yp.gates96.com/11/24/83/54.html -http://yp.gates96.com/11/24/83/58.html -http://yp.gates96.com/11/24/84/44.html -http://yp.gates96.com/11/24/84/52.html -http://yp.gates96.com/11/24/84/63.html -http://yp.gates96.com/11/24/85/35.html -http://yp.gates96.com/11/24/85/77.html -http://yp.gates96.com/11/24/85/78.html -http://yp.gates96.com/11/24/87/15.html -http://yp.gates96.com/11/24/87/77.html -http://yp.gates96.com/11/24/88/0.html -http://yp.gates96.com/11/24/88/63.html -http://yp.gates96.com/11/24/89/93.html -http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/listUnseen/fol/100001/20,0/2498053 -http://www.zeenzone.com/movies/1,4003,1040-21565,00.html -http://www.zeenzone.com/movies/1,4003,1040-99354,00.html -http://www.zeenzone.com/movies/1,4003,1040-109493,00.html -http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/author/627181 -http://moshkow.rsl.ru/alt/MORUA/letters.txt -http://members.tripod.co.jp/muttley2000/?M=A -http://www.shopworks.com/index.cfm/action/specials/userid/000A8C31-2EFD-19FE-9038010B0A0ADCF2 -http://www.bookhome.net/xiandangdai/other1/chunjiang/006.html -http://www.bookhome.net/xiandangdai/other1/chunjiang/013.html -http://www.dailyrush.dk/clans/145 -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/auto/0210/ -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/brandenburg/0011/ -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0077/ -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0009/ -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0111/ -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0117/ -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0014/ -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/sport/0018/ -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/sport/0158/ -http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/tv/0209/ -http://www.multicosm.com/facade/www.contigo.com/ -http://www.boston.digitalcity.com/cincinnati/health/conditions.dci?condition=sids -http://www.onlineathens.com/1998/041498/0414.a2zbriefs.html -http://ist.linux.tucows.com/conhtml/adnload/52224_1782.html -http://www.outpersonals.com/cgi-bin/w3com/pws/out/-2hIv4VApV7948YHO6tPdd62dgSdHSwg0xTrLhYidK4__IjhefvQTQrwpTMkkPdR5C5XRGbdA57_pJIxtMRvHJmrtjKdnzn_di6Er9p9vwIk1rLYwssqdvQbgeNAvSgd2M1a7O5NWleCth4ETxMfqPQS -http://www.outpersonals.com/cgi-bin/w3com/pws/out/VwhIXbmwUfG9PK362Tf07_xy8BQY7YBwNspFlCmPD_syQhuUcYEAU2eNoW3Liccn5fOj3JHbx2nCG9Tkl-PZwI9bR0uW5_3bO8O3kRwFm2Sp0E8MBNqJ9FvuLKt4pS_X3qzA8sbHcygn7lFrBe9ZZqi565Rs -http://www.crutchfield.com/cgi-bin/S-5ILchLS19Z9/auto.asp -http://www.quzhou.gov.cn/flfg.nsf/0a043ae26eb50247002564640039f21d/7cdda9dbc7e2b2bb002564ac00393b48!OpenDocument&ExpandSection=1,7,6 -http://opac.lib.ntnu.edu.tw/search*chi/m92+R627/m92+r627/-5,-1,0,B/buttonframe&F=m92+r449m&1,1 -http://www03.u-page.so-net.ne.jp/fc4/kazumasa/tdl/side2/side2.html -http://launchbase.com/Home/Personal_Organization/communication/information/Bank_Rates_&_Info.htm -http://launchbase.com/Home/Personal_Organization/communication/entertainment/Sports.htm -http://launchbase.com/Home/Personal_Organization/communication/shopping/Flowers.htm -http://launchbase.com/Home/Personal_Organization/communication/shopping/Pro-Audio.htm -http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/admission/972959587-- -http://channel.nytimes.com/1998/10/15/technology/ -http://www.la.gunma-u.ac.jp/S97/thtml/m/kiso/41808.html -http://www1.ocn.ne.jp/~yaiba/_private/kobanasi/tyouhen/haraguroido/noroi.htm -http://www.duluxvalentine.com/FRANCE:1161209847:DFinity.1QJiP4jmPgipihoa -http://fi.egroups.com/messages/mediamalle-letter/6 -http://personal.wol.com.cn/lxz20a/gp13.htm -http://eclat.gaiax.com/www/eclat/y/k/yoko_mama/main.html -http://eclat.gaiax.com/www/eclat/y/k/yoko_mama/bbs.html -http://findmail.com/login.cgi?login_target=%2Fgroup%2Fohsama-iroiro -http://www.fogdog.com/cedroID/ssd3040183248487/crs/po__/wld/fogdog_sports/superfeet/outdoor/footwear/green_hi-profile.html -http://www.fogdog.com/cedroID/ssd3040183248487/nav/stores/baseball/ -http://www.fogdog.com/cedroID/ssd3040183248487/nav/stores/winter_sports/ -http://www.consource.com/members/signup/signup_temp_user.html?tAccountID=561 -http://213.36.119.69/do/session/152994/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/voit.htm -http://213.36.119.69/do/session/152994/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/BE_NL/ -http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdevelop/Attic/configure.in?r1=1.62&sortby=rev -http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdevelop/Attic/configure.in?annotate=1.53&sortby=rev -http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdevelop/Attic/configure.in?r1=1.46&sortby=rev -http://www.aelita.net/products/solutions/sitemap/Reg/QuoteRegister/solutions/products/default.htm -http://sunsite.org.uk/public/public/packages/pine/docs/?S=A -http://sunsite.org.uk/public/public/packages/pine/docs/QandA.txt -http://www.sfc.keio.ac.jp/~s98008na/miniproject/0.html -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959867760/Catalog/1000023 -http://www.msn.expedia.co.uk/wg/Africa/Mauritius/P39048.asp -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/rakennesuunnittelu/talonrakennus/rakennukset/ohjeet/ -http://www.ericsson.cl/education/centers/dtmexic.shtml -http://ftp.gigabell.net/debian/dists/Debian2.2r0/main/binary-powerpc/web/?S=A -http://dirs.educationamerica.net/Colorado/Localities/C/Colorado_Springs/News_and_Media/Television/ -http://polygraph.ircache.net:8181/services/define/jeff/http_-2web01.hq.cyberserv.com/ryanhomes/http_-2www.travelsc.com/cgi-bin/news/NewsList.cfm?ID=1 -http://salinas2000.com/index.cfm/r/960/a/95.htm -http://213.36.119.69/do/session/152988/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www3.travelprice.com/voyages/recherche.phtml -http://213.36.119.69/do/session/152988/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/connaitre/questions-reponses.htm -http://ftp.cpan.org/src/5.0/sperl-2000-08-05/?D=A -http://virtualpubliclibrary.com/hallofanima/moresports/JOELOUIS.ORG//hallofanima/music/ -http://x500.rz.uni-karlsruhe.de:8000/Lcn%3dMonika%20Vogel,%20ou%3dPersonalabteilung,%20ou%3dUniversitaetsleitung%20und%20-verwaltung,%20o%3dUniversitaet%20Konstanz,%20c%3dDE -http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/korean/pine/files/patch-ai?only_with_tag=RELEASE_2_2_2 -http://ftp.ring.gr.jp/archives/XFree86/4.0.1/binaries/Linux-ix86-glibc21/RELNOTES -http://homepage1.nifty.com/SAKURAISANS/itoshi.html -http://www.expage.com/savetucker -http://ring.edogawa-u.ac.jp/archives/pack/os2/prog/rexx/?N=D -http://www.saarreisen.de/rueckel-reisen/fluege-buchen/barbados/reise-ibiza.htm -http://debian.linux.org.tw/debian/dists/sid/contrib/binary-powerpc/interpreters/?S=A -http://ricoh.co.jp/rtoss/School/other/other/lotus_syo/pg7.html -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus52213/eus52841/eus236353/eus591199/eus937052/ -http://www.mapion.co.jp/custom/AOL/admi/23/23101/higashiyamatori/4chome/index-17.html -http://stocks.tradingcharts.com/stocks/charts/swti-bb/w/javachart -http://ftp.univ-lyon1.fr/gnu/Manuals/diffutils-2.7/html_chapter/diff_15.html -http://www.elfoco.com/EL_Foco/CDA/PrintPage/1,2171,2_53_28444,00.html -http://www.debian.org.cn/Bugs/db/61/61000.html -http://www.debian.org.cn/Bugs/db/66/66591.html -http://www.debian.org.cn/Bugs/db/57/57112.html -http://www.gxrb.com.cn/26/tbzl.htm -http://opac.lib.rpi.edu/search/dyosemite+national+park+water+resources+development+research+california/-5,-1,0,E/2browse -http://ring.omp.ad.jp/pub/NetBSD/NetBSD-current/src/usr.sbin/dhcp/client/scripts/openbsd -http://attach1.egroups.com/attach/1087162/28/gs-108=71=1087162/10-1-10-160/application=octet-stream/IntOrganist.htm -http://www.brainerddispatch.com/stories/071299/obi_0712990015.shtml -http://webusers.siba.fi/doc/HOWTO/en-html/Multi-Disk-HOWTO-27.html -http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1667-art-30.html -http://www4.ocn.ne.jp/~l-tommy/C1024.html -http://pub13.ezboard.com/fsequelossavannasoftwaredevelopment.showMessage?topicID=74.topic -http://pub13.ezboard.com/fsequelossavannasoftwaredevelopment.showMessage?topicID=109.topic -http://www.z-plus.de/freizeit/kino/galerie/unhold/kritikdpa.html -http://www.tiscover.com/1Root/Kontinent/6/Staat/7/Bundesland/16/Ort/515/Privatvermieter/326225/Homepage/m_homepage...2.html -http://wap.jamba.de/KNet/_KNet-NKE8j1-2Gd-13c6l/showInfo-wir.de/node.0/cde7f1uou -http://www.refdag.nl/kl/990706kl02.html -http://www.ferien-immobilien.de/nordrhein-Westfalen/soest/Verkauf/Versteigerungen-IB/Startseite/Gemeinsam/versicherungen/gebaeude/Versteigerungen-IB/Startseite/Gemeinsam/Super-Zins-Konditionen/anforderungsformular.htm -http://caller-times.com/1999/september/18/today/local_sp/78.html -http://link.fastpartner.com/do/session/600350/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php -http://providenet.tukids.tucows.com/mac/9-12/adnload/11899_25711.html -http://providenet.tukids.tucows.com/mac/9-12/adnload/51475_24795.html -http://fivestar.subportal.com/sn/Network_and_Internet/Dial-up_Networking_Dialers/11735.html -http://www.kenley.londonengland.co.uk/newspaperandmagazinepublishers.htm -http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~C~013800~07790',00.html -http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~C~013800~54357',00.html -http://ftp1.support.compaq.com/public/vms/vax/v6.0/sls/2.6/?M=A -http://cpan.clix.pt/authors/id/I/IL/ILYAM/Mail-CheckUser-0.15.readme -http://www.maasvlakte-cam.nl/webcams/23/stavanger__norway/2000/10/12/?D=A -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/music/midi/computers/quizz/lit/arnheim.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/music/midi/computers/quizz/misc/colorart/ -http://www.taftp.com/A555D3/WebDir.nsf/MBC!OpenView&Start=89.2&Count=30&Expand=106 -http://jundavid.subportal.com/sn/Shell_and_Desktop/Animal_Cursors/11879.html -http://www.netitor.com/photos/schools/ucla/sports/m-wpolo/98-99action/?M=A -http://cpan.nitco.com/modules/by-module/Devel/MSCHWERN/Class-DBI-0.03.readme -http://cpan.nitco.com/modules/by-module/Devel/MSCHWERN/Text-Metaphone-0.02.readme -http://www.digitaldrucke.de/(aktuell,computer,gaestebuch,kino,literatur,nuernberg,rundfunk,sense,veranstaltungen,zeitschriften)/_fort/html/themen/kultur/literat/links/bin.htm -http://194.128.65.4/pa/cm199899/cmhansrd/vo990727/text/90727w01.htm -http://194.128.65.4/pa/cm199899/cmhansrd/vo990727/text/90727w15.htm -http://213.36.119.69/do/session/152989/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/jeux/jeux_himalaya.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/misc/quizz/lit/misc/cv.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/misc/quizz/lit/misc/lit/larme.html -http://www.hblb.org.uk/hblbweb.nsf/$Pages/NewsArchive1!OpenDocument&ExpandSection=6,7,3,5,1,8,11 -http://www.identer.co.kr/삶ì˜ì—¬ìœ /ë°ì´íŠ¸ì •ë³´/ë°ì´íŠ¸ì •ë³´/ -http://allmacintosh.arrakis.es/adnload/54801.html -http://link.fastpartner.com/do/session/600380/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/brleksaker.php -http://link.fastpartner.com/do/session/600380/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php -http://icm.html.tucows.com/adnload/001-009-003-014.html -http://www.rakuten.co.jp/coffee/forum/forum-w.cgi?p=131&url=coffee -http://jxi.gov.cn/yw-cj001.nsf/6770fc9e7685796c482568c70008a30a!OpenView&Start=69&Count=30&Expand=70 -http://jxi.gov.cn/yw-cj001.nsf/6770fc9e7685796c482568c70008a30a!OpenView&Start=69&Count=30&Expand=72 -http://freehomepage.taconet.com.tw/This/is/taconet/top_hosts//tsyang/test9g.htm -http://www11.cplaza.ne.jp/babyweb/bbs/bdnm01/no33/130N.html -http://library.cuhk.edu.hk/search*chi/a憪���/a{213972}{213230}/-5,-1,0,B/frameset&F=a{213972}{213233}{215b34}&1,1 -http://library.cuhk.edu.hk/search*chi/a憪���/a{213972}{213230}/-5,-1,0,B/frameset&F=a{213972}{21323e}{213165}+1947&1,1 -http://library.cuhk.edu.hk/search*chi/a撱嗅ˊ,+904-975./a{213d32}{213877}++904++975/-5,-1,0,B/frameset&F=a{213d32}{213a67}{213779}{213455}+china+{215f7a}{213579}{213966}{21363e}{21435a}+{214241}{213c37}&1,1 -http://www.online.kokusai.co.jp/Service/V0043539/wrd/G200/service/service.html -http://quote.morningstar.com/Quote.html?ticker=GASFX -http://uoi.linux.tucows.com/x11html/adnload/9826_7194.html -http://dk.egroups.com/post/batoco?act=forward&messageNum=2017 -http://www.chaos.dk/sexriddle/b/h/l/o/h/ -http://www.picktips.com/category-1031-1174_1171_1170-4_3_2 -http://www.schmunzelecke.de/pic18.htm -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chhand20.html -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chhand25.html -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chhand30.html -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chimag16.html -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chimag26.html -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chlight3.html -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chspec34.html -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chspec35.html -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chview15.html -http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chvolvi5.html -http://www.t-onlien.de/dtag/mail/kontaktseite/1,3606,160,00.html -http://yumemi.ne.jp/bbs/hiroba/ky/view/h/hiroba3/8_wdsmcn_wdsmcn.html -http://yumemi.ne.jp/bbs/hiroba/ky/view/h/hiroba3/8_mrlinl_tcincn.html -http://yumemi.ne.jp/bbs/hiroba/ky/view/h/hiroba3/8_caouny_hixlcy.html -http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=20,9,13,16 -http://www.crn.com/sections/BreakingNews/breakingnews.asp?ArticleID=5760 -http://dennou-h.ees.hokudai.ac.jp/library/Linux/debian-jp/dists/hamm/main-jp/binary-all/tex/?M=A -http://www.cmyk21.com/photo1-3.htm -http://www.cs.ruu.nl/mirror/CPAN/modules/by-category/14_Security_and_Encryption/User/ILYAZ/images/?N=D -http://www.egroups.com/login.cgi?login_target=%2Fmessage%2FFloodsystems%2F45 -http://www.mirnet.org/ccsi/nisorgs/ukraine/kyiv/renaisnc.htm -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=231&discrim=2,125,10 -http://ring.omp.ad.jp/archives/lang/perl/CPAN/authors/id/BRADAPP/PodParser-1.17.readme -http://www.amzn.com.ref.digital-price.com/redir/amzn.com/prods/0553373730 -http://library.cwu.edu/search/dGermany+--+Politics+and+government+--+1918-1933/dgermany+politics+and+government+1918+1933/-5,-1,0,B/marc&F=dgermany+politics+and+government+1918+1933+bibliography&1,1, -http://www.multicosm.com/facade/www.unisys.com/partners/default.asp?cn=su -http://enjoy100.com.cn/200006/08/sssh/sssh_ssjp.html -http://enjoy100.com.cn/200006/08/yskj/b_s_big3_f.jpg.html -http://www.hoops.ne.jp/~zuikaku/photo2000/0811/rie11.html -http://pub23.ezboard.com/fiolaniy2kmessageboardfrm1.showMessage?topicID=66.topic -http://ring.htcn.ne.jp/archives/lang/perl/CPAN/modules/by-module/CGI/ULPFR/Wais-2.301.readme -http://www3.newstimes.com/archive99/mar1199/spg.htm -http://ftp1.support.compaq.com/public/vms/axp/v6.2-1h2/dsnlink/2.2/dsnlinkd022.CVRLET_TXT -http://ftp.nacamar.de/pub/redhat/cpan/6.2/CPAN-archive/doc/manual/html/pod/perldsc.html -http://ftp.nacamar.de/pub/redhat/cpan/6.2/CPAN-archive/doc/manual/html/pod/perlfaq5.html -http://info.cs.unitn.it/sdb/de/html/keylist.SOFTWARE.html -http://www.online.kokusai.co.jp/Mmf_corner/V0043545/mmf_corner/mmf_corner/url -http://www.office.com/global/0,2724,66-15915,FF.html -http://polygraph.ircache.net:8181/home/ISO9001.htm -http://www.allgemeine-immobilien-boerse.de/niedersachsen/emsland/Verkauf/Versteigerungen-IB/Startseite/Allgemeine-IB/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/hilfe.htm -http://launchbase.com/Health/Home_Health/communication/information/Science.htm -http://library.cwu.edu/search/aLockyer,+Norman,+Sir,+1836-1920/alockyer+norman+sir+1836+1920/-17,-1,0,B/frameset&F=alockwood+victoria+s+1953&1,1 -http://bbs.kcm.co.kr/NetBBS/Bbs.dll/chbod05/lst/qqa/r/qqo/004D/zka/B2-kCYFl -http://www.egroups.com/post/bhagavad_gita?act=forward&messageNum=101 -http://carriage.de/Schoner/Literatur/info-e/Geschichte/modelle/ -http://carriage.de/Schoner/Literatur/info-e/Geschichte/history/ -http://carriage.de/Schoner/Literatur/info-e/Geschichte/literature/ -http://wwwftp.ciril.fr/pub/linux/kernel///people/andrea/kernels -http://www.inctechnology.com/guide/item/0,7462,AGD6_GDE79,00.html -http://live.sportsline.com/u/basketball/college/teams/injuries/VATECH.htm -http://www-1.cisco.com/univercd/cc/td/doc/product/lan/28201900/1928v67x/28icg67x/28icpref.pdf -http://www.hitlist.com/music/presult/003948.php3 -http://ip.tosp.co.jp/Eki/TosiE000.asp?I=Jerryfish -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(20,0)-16,0-9,2 -http://www.bigchurch.com/cgi-bin/w3com/pws/bc/RLhIotYxW-B0bt7seq4d876RzKIuJDYbydJP1qooxhzSKDVca77BUHQv6tsO2JdNpkx837SBl7FHRIEy00rmcLBk9Y1kQEmni0_YSk5mrym8WALtovIPQU_vlEtiMcNswNyh9z6CjU-2oS2uurrk666t -http://www.secinfo.com/d2wVq.7hv.htm -http://www.secinfo.com/d2wVq.6yd.htm -http://www.secinfo.com/d2wVq.6Y5.htm -http://www.secinfo.com/d2wVq.5gf.htm -http://www.secinfo.com/d2wVq.5hp.htm -http://www.secinfo.com/d2wVq.5y4.htm -http://ring.htcn.ne.jp/pub/text/CTAN/graphics/psfig/unsupported/macdemo/macfigs/?N=D -http://ring.htcn.ne.jp/pub/text/CTAN/graphics/psfig/unsupported/macdemo/macfigs/?M=A -http://books.hyperlink.co.uk/xt2/Drakelow_Unearthed/Stokes/Paul/0904015408 -http://www.homestead.com/rebeccah/files/ -http://sunsite.compapp.dcu.ie/pub/linux/redhat/redhat-6.1/alpha/usr/share/locale/ga_IE/LC_TIME -http://www.gbnf.com/genealogy/rockwel4/html/d0037/I2684.HTM -http://www.yorosiku.net:8080/-_-http://www.dd.iij4u.or.jp/~oni9/skebe/aindex18.html -http://www.yorosiku.net:8080/-_-http://www.dd.iij4u.or.jp/~oni9/skebe/aindex12.html -http://www.yorosiku.net:8080/-_-http://www.dd.iij4u.or.jp/~oni9/skebe/atg05.html -http://shn.webmd.net/content/article/1700.50808 -http://home.clara.net/cornell/woodcraft/spring2000/contents.htm -http://dic.empas.com/show.tsp/EDACITY -http://www.sanxia.net/beauty/Eriimai/417.htm -http://www.judds-resort.com/judds/Lake-Winni-pike-lodge/97menu/fallphoto/playground/boat/photo/12.html -http://www.judds-resort.com/judds/Lake-Winni-pike-lodge/97menu/fallphoto/playground/boat/fallphoto/2.html -http://imageserver2.tibetart.com:8087/fif=fpxbuddhistreverse/56.fpx&init=0.0,0.0,1.0,1.0&rect=0.0,0.25,0.5,0.75&wid=1443&hei=400&lng=en_US&enablePastMaxZoom=OFF&page=image.html&obj=uv,1.0&cmd=W -http://www.jamba.nl/KNet/_KNet-krE8j1-KC4-pv5y/showInfo-hilfe.nl/node.0/ce6u2jadf -http://www.babyheirlooms.com/catalog/htmlos.cat/011639.1.3372173854 -http://community.webshots.com/photo/441160/441363 -http://www.kaos.dk/sexriddle/x/n/d/x/b/ -http://isbn.nu/088730866X/chapters -http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1992-93/AUS_LOCAL/MMC/WA_NSW_MMC_11OCT1992.html -http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1991-92/AUS_LOCAL/FAI/WA_TAS_FAI_11OCT1991.html -http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1991-92/AUS_LOCAL/FAI/WA_QLD_FAI-SEMI_19OCT1991.html -http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1980S/1987-88/AUS_LOCAL/MDC/WA_SOA_MDC_06MAR1988.html -http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1980S/1981-82/AUS_LOCAL/MDC/QLD_WA_MDC_08NOV1981.html -http://www.chaos.dk/sexriddle/x/k/l/y/h/ -http://tucows.teihal.gr/winnt/preview/6004.html -http://tucows.teihal.gr/winnt/preview/5986.html -http://tucows.teihal.gr/winnt/preview/71328.html -http://tucows.teihal.gr/winnt/preview/2757.html -http://www.medoc-ias.u-psud.fr:81/synoptic/gif/950724/?N=D -http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=18,7,21,20,4 -http://members.xoom.fr/logart/Anciens/Liste25/Selection_Navlist25.html -http://polygraph.ircache.net:8181/http_-2www.arthritis.org/http_-2pathfinder.com/si/swimsuit/swim97/terms2.html -http://polygraph.ircache.net:8181/http_-2www.arthritis.org/http_-2pathfinder.com/si/swimsuit/swim97/products2.html -http://debian.linux.org.tw/debian/dists/Debian2.2r0/main/disks-m68k/current/doc/ -http://findmail.com/dir/Arts/Writing/Fan_Fiction?st=1943 -http://www.telecombroker.com/q/001p/tgcb/4izQYz7mc.htm -http://www.free-phone.com/q/001p/tgcb/ItMd2D3jdEM.htm -http://www.123bestlongdistance.com/q/001p/tgcb/msN54jfl4mE.htm -http://www.netitor.com/photos/schools/nw/sport/w-baskbl/97action/?S=A -http://excite.de/katalog/katalog/33823 -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/programs/simple/music/midi/lit/misc/unitest/programs/ -http://yp.gates96.com/14/43/40/9.html -http://yp.gates96.com/14/43/40/43.html -http://yp.gates96.com/14/43/40/82.html -http://yp.gates96.com/14/43/40/85.html -http://yp.gates96.com/14/43/41/6.html -http://yp.gates96.com/14/43/41/18.html -http://yp.gates96.com/14/43/41/44.html -http://yp.gates96.com/14/43/41/96.html -http://yp.gates96.com/14/43/42/12.html -http://yp.gates96.com/14/43/46/38.html -http://yp.gates96.com/14/43/46/66.html -http://yp.gates96.com/14/43/46/68.html -http://yp.gates96.com/14/43/47/4.html -http://yp.gates96.com/14/43/47/37.html -http://yp.gates96.com/14/43/47/64.html -http://yp.gates96.com/14/43/47/68.html -http://yp.gates96.com/14/43/47/70.html -http://yp.gates96.com/14/43/48/68.html -http://yp.gates96.com/14/43/48/69.html -http://yp.gates96.com/14/43/49/7.html -http://yp.gates96.com/14/43/49/36.html -http://yp.gates96.com/14/43/49/37.html -http://yp.gates96.com/14/43/49/52.html -http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/5P005|972959562|Accessories|user|0|1,0,0,1 -http://school.educities.org/card/judy180.html -http://207.138.41.133/message/the-voice1/123 -http://207.138.41.133/message/the-voice1/124 -http://www-d0.fnal.gov/d0dist/dist/releases/p05.00.00/muo_analyze/?S=A -http://sjsulib1.sjsu.edu:81/search/cernest+haberkern+director/-5,-1,0,B/frameset&cgeorge+miller+director&1,1 -http://ring.nii.ac.jp/pub/pack/x68/net/00_index.txt -http://pub24.ezboard.com/fdoyoustillneedtoventfrm43.showMessage?topicID=19.topic -http://pub24.ezboard.com/fdoyoustillneedtoventfrm43.showMessage?topicID=15.topic -http://ukinvest.ukwire.com/articles/200007200700261473O.html -http://www.brd.net/brd-cgi/brd_multimedia/lautsprecher/LZ7460LK/ci=972822952.htm -http://my.netian.com/~haeng14/tatler_july6.htm -http://genforum.genealogy.com/cgi-genforum/forums/anderton.cgi?122 -http://www.excelsior.com.mx/0001/000125/for03.html -http://www.jobvillage.com/channel/jobs/sciences/b.9070.g.1675.html -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/www/contact.html?annotate=1.19&sortby=author -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/www/contact.html?r1=1.12&sortby=author -http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1998-99/jmc1/labs/Ex06/skw98/?N=D -http://www.jamba.de/KNet/_KNet-fNw8j1-6Fd-13acp/browse.de/node.0/cde7f1uou -http://www.jamba.de/KNet/_KNet-fNw8j1-6Fd-13act/browse.de/node.0/cdel3j591 -http://www.nedstat.nl/cgi-bin/viewstat?name=mrbertmat -http://no.egroups.com/message/acessibilidade/1092 -http://no.egroups.com/message/acessibilidade/1099 -http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|38P08A|972959552|Communications|user|0|1,0,0,1 -http://213.36.119.69/do/session/152990/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/spectacles/ -http://213.36.119.69/do/session/152990/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/CA_EN/ -http://wiki2.parsimony.net/wiki2954/ -http://www.f2.parsimony.net/forum2954/messages/214.htm -http://www.f2.parsimony.net/forum2954/messages/181.htm -http://www.f2.parsimony.net/forum2954/messages/292.htm -http://www.f2.parsimony.net/forum2954/messages/115.htm -http://www.f2.parsimony.net/forum2954/messages/290.htm -http://www.f2.parsimony.net/forum2954/messages/54.htm -http://home.pchome.com.tw/cool/162203/wunew15.htm -http://hem.fyristorg.com/lottaleman/LLfar/1_6721.htm -http://www.babyheirlooms.com/catalog/htmlos.cat/011628.1.4596216338 -http://www.affiliate.hpstore.hp.co.uk/do/session/380833/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/search.asp -http://www.outdoorwire.com/content/lists/dirt/200007/msg00127.html?{LoadingFrameset} -http://adept.subportal.com/sn/Programming/ActiveX/11674.html -http://www.staroriental.net/nav/soeg/ihf,aog,s0,10,Lam+Hei-Lui.html -http://www-d0.fnal.gov/d0dist/dist/releases/p05.00.01/man/?N=D -http://members.tripod.com/bluti/PSX/V/VACUUM.HTM -http://connexus.tucows.com/winme/adnload/138384_29728.html -http://wwwtios.cs.utwente.nl/archive/wilyfans/msg00265.html -http://custom.clubnet.zeelandnet.nl/eckhardt/myself.htm -http://ftp.tokyonet.ad.jp/pub/Linux/debian/dists/potato/contrib/binary-arm/otherosfs/?D=A -http://www.amcity.com/charlotte/stories/1997/07/07/daily4.html?t=email_story -http://www.generation-formation.fr/chiffrec.htm---o21zAo0UbDo0Ol9A074fo6Td4ezyr6feZJPAPfVbNyqHSezTHkekydMfeZJPdspt6dsSAtdsNhJdspt6dsrvrdjlhkfbi.htm -http://tv.thevines.com/leaf/AA0000369140/2 -http://kuyper.calvin.edu/fathers2/NPNF2-02/Npnf2-02-06.htm -http://www.intellicast.com/Ski/World/UnitedStates/Southeast/Florida/FortWaltonBeach/TEMPcast/d0_12/ -http://stevebarnes.studiostore.com/aboutus/b.EMERCH/s.P01EBK2I -http://student.monterey.edu/Students_N-R/richterheidil/private/ -http://ds.dial.pipex.com/town/drive/kch36/select/s30/ch052.html -http://ds.dial.pipex.com/town/drive/kch36/select/s30/ch027.html -http://ds.dial.pipex.com/town/drive/kch36/select/s30/ch077.html -http://ds.dial.pipex.com/town/drive/kch36/select/s30/ch092.html -http://soneraplaza.tucows.com/winme/adnload/137026_28536.html -http://www.egroups.com/post/realtyindia -http://www.kita.or.kr/untpdc/incubator/zwe/tphar/ZIMB0037.htm -http://citeseer.nj.nec.com/nrelated/126165/187254 -http://citeseer.nj.nec.com/cachedpage/187254/1 -http://citeseer.nj.nec.com/cidcontext/2417551 -http://yp.gates96.com/13/6/1/36.html -http://yp.gates96.com/13/6/1/61.html -http://yp.gates96.com/13/6/1/83.html -http://yp.gates96.com/13/6/1/91.html -http://yp.gates96.com/13/6/3/39.html -http://yp.gates96.com/13/6/3/45.html -http://yp.gates96.com/13/6/3/65.html -http://yp.gates96.com/13/6/4/46.html -http://yp.gates96.com/13/6/4/57.html -http://yp.gates96.com/13/6/5/44.html -http://yp.gates96.com/13/6/6/21.html -http://yp.gates96.com/13/6/6/42.html -http://yp.gates96.com/13/6/7/0.html -http://yp.gates96.com/13/6/7/30.html -http://yp.gates96.com/13/6/7/69.html -http://yp.gates96.com/13/6/7/82.html -http://yp.gates96.com/13/6/8/5.html -http://yp.gates96.com/13/6/8/98.html -http://yp.gates96.com/13/6/9/45.html -http://home.wanadoo.nl/hockeyclub.nieuwegein/Teams/Dames/Dames_IV/body_dames_iv.html -http://pub3.ezboard.com/fthe4thdimensiongeneralinsanity.subscribeUnregisteredToTopic?topicID=38.topic -http://pub3.ezboard.com/fthe4thdimensiongeneralinsanity.unsubscribeUnregisteredToTopic?topicID=38.topic -http://moviestore.zap2it.com/help_shipping/s.hXCLyc56 -http://www.geocities.co.jp/Outdoors/2363/typoon1.html -http://ua.php.net/manual/it/function.pg-numrows.php -http://kidneyfailure.shn.net/roundtable_reply/727640 -http://itcareers.careercast.com/texis/it/itjs/+HwwBmje0B-deZqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyPxGwproqamn5otDnGaoDm15BGowcamn5otDapGdm1qBamnVncdpa5dhBiwGna5BGwBnton5ah1DqBodDanD51GnaMFqnFZI0DzmzwwwpBmje0B-deZqwww5rmeZpwwwBrmeZpwww/morelike.html -http://itcareers.careercast.com/texis/it/itjs/+lwwBmex6D86egqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyPxGwproqamn5otDnGaoDm15BGowcamn5otDapGdm1qBamnVncdpa5dhBiwGna5BGwBnton5ah1DqBodDanD51GnaMFqnFZI0DzmzwwwpBmje0B-deZqwww5rmeacwwwBrmeZpwww/morelike.html -http://pub23.ezboard.com/fhardoverclockfrm1.showAddReplyScreenFromWeb?topicID=43.topic&index=3 -http://www.adquest3d.com/content.cfm?BRD=1578&PAG=63 -http://pelit.saunalahti.fi/.1/tucows/adnload/51_28438.html -http://pelit.saunalahti.fi/.1/tucows/preview/70307.html -http://www.maillist.com.tw/maillist/publicboard_newform.pl?maillist_id=softuse -http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/woody/non-free-jp/binary-alpha/news/?M=A -http://ustlib.ust.hk/search*chi/amarcot+bruce+g/amarcot+bruce+g/-5,-1,0,B/frameset&F=amarcotty+michael+1931&1,1 -http://wine.cc.chuo-u.ac.jp/home/pub/TeX/CTAN/support/rtf2tex/?M=A -http://netchief.tucows.com/winme/preview/75911.html -http://yp.gates96.com/4/57/60/83.html -http://yp.gates96.com/4/57/60/99.html -http://yp.gates96.com/4/57/62/17.html -http://yp.gates96.com/4/57/62/88.html -http://yp.gates96.com/4/57/63/9.html -http://yp.gates96.com/4/57/63/39.html -http://yp.gates96.com/4/57/63/64.html -http://yp.gates96.com/4/57/64/33.html -http://yp.gates96.com/4/57/65/41.html -http://yp.gates96.com/4/57/65/70.html -http://yp.gates96.com/4/57/66/18.html -http://yp.gates96.com/4/57/66/56.html -http://yp.gates96.com/4/57/66/61.html -http://yp.gates96.com/4/57/66/94.html -http://yp.gates96.com/4/57/67/0.html -http://yp.gates96.com/4/57/67/63.html -http://yp.gates96.com/4/57/67/85.html -http://yp.gates96.com/4/57/69/1.html -http://yp.gates96.com/4/57/69/56.html -http://citeseer.nj.nec.com/cs?q=dbnum%3D1,DID%3D9262,qtype%3Dsamesite: -http://citeseer.nj.nec.com/cidcontext/163444 -http://www.amazon.com.au/exec/obidos/change-style/tg/stores/detail/-/books/0873995562/e-mail-friend/ -http://www.sdinfonet.com.cn/411/24/411249999.htm -http://pub14.ezboard.com/fallpodsgotoroswellsayhello.threadControl?topicID=17.topic -http://in.egroups.com/message/sexualidades-noticias/14 -http://in.egroups.com/message/sexualidades-noticias/37 -http://library.cuhk.edu.hk/search*chi/dChinese+literature+--+20th+century+--+Periodicals/dchinese+literature+++20th+century+periodicals/-5,-1,0,B/frameset&F=dchinese+literature+++20th+century+periodicals&26,,188 -http://www.3w-zeitschriften.de/EyreLinda/EyreLinda1582380570.htm -http://cometweb01.comet.co.uk/do!session=132027&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkjHfZoLlplLcqkKZljLlfb5lal5tkiLlXaLl0 -http://retailer.gocollect.com/do/session/1912774/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/contact.asp -http://providenet.games.tucows.com/adnload/71993_40744.html -http://www.geocities.co.jp/playtown-Toys/6366/bbsp.html -http://www.hnby.com.cn/docroot/jzrb/200001/19/km01/19031711.htm -http://213.36.119.69/do/session/152997/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/IT_IT/ -http://www.jamba.de/KNet/_KNet-p7t8j1-FEd-139gj/showInfo-datenschutz.de/node.0/cde7f1uou -http://www.jamba.de/KNet/_KNet-p7t8j1-FEd-139gn/browse.de/node.0/cdzqggtyb -http://www.paidmania.com/getpaid/signup/42/2518 -http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1679-art-13.html -http://jproxy.uol.es/jproxy/http://jama.ama-assn.org/issues/current/related/joc00479.html -http://www.mirror.kiev.ua:8082/paper/2000/11/1251/text/11-08-2.htm -http://my.netian.com/~eco71/wzmain.html -http://www.craft-supplies.co.uk/cgi-bin/psProdDet.cgi/HT206|972959540|Deluxe_Dividers|user|0|0,0,1,1 -http://www.trax.nilex.co.uk/trax.cgi/A1S/1AR/A3R/B3D/A4R/A4S/ -http://www.linux.com/networking/network/network/development/project/growth/ -http://www.linux.com/networking/network/development/project/growth/sales/ -http://www.icopyright.com/1.1653.134616 -http://retailer.gocollect.com/do/session/1912718/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp -http://www.dw-tv.de/indonesia/sari_pers/19793.html -http://freethemes.netc.pt/skins/icq/preview/44470.html -http://freethemes.netc.pt/skins/icq/adnload/26145.html -http://freethemes.netc.pt/skins/icq/preview/52524.html -http://freethemes.netc.pt/skins/icq/adnload/52040.html -http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=7,18,9,16 -http://golfonline.comfluent.net/cgi.pan$player&pga93&John_Morse&pga?golfstats -http://wai.camera.it/_presidenti/003.htm -http://www.pcmagazine.de/produkte/artikel/komp/200003/mainboards01_00-wc.html -http://www.pcmagazine.de/produkte/artikel/komp/199908/asus_00-wc.html -http://se.sslug.dk/emailarkiv/locale/2000_09/msg00053.html -http://se.sslug.dk/emailarkiv/locale/2000_09/msg00057.html -http://se.sslug.dk/emailarkiv/locale/2000_09/msg00115.html -http://www.brio.de/BRIO.catalog/39fe2f7406fad828273fd472aa7806ff/UserTemplate/8 -http://link.fastpartner.com/do/session/600389/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/jobpilot.php -http://www.shopworks.com/grizzlygulch/index.cfm/action/search/userid/000B40E3-1177-19FE-A703010D0A0A8CF2 -http://www.shopworks.com/grizzlygulch/index.cfm/action/product/prodid/0001AF94-3FC3-19E7-A703010D0A0A8CF2/userid/000B40E3-1177-19FE-A703010D0A0A8CF2 -http://spiritwolf52.subportal.com/sn/Web_Authoring/Misc__Programming_Tools/2670.html -http://www.chaos.dk/sexriddle/o/g/j/h/t/ -http://link.fastpartner.com/do/session/600394/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/learn/ -http://opac.lib.rpi.edu/search/dpolitical+corruption+united+states/-5,-1,0,B/frameset&dpolitical+corruption+united+states&7,,22 -http://cnnsi.com/baseball/mlb/news/2000/01/28/ -http://amrr.com/agents/contact.html?Agents_id=3707 -http://www.dulux.co.uk/UKRETAIL:1489107816:DFinity.1QJiP4jMomdkbEc -http://www.geocities.com/SiliconValley/Screen/9059/ -http://www.nrk.no/finnmark/x17_4_96/nyh4.htm -http://in.egroups.com/message/islaam/288 -http://www.incestpornstories.com/knocked-upepisiotomy/fertileoff-the-rag/one-night-standlubrication/japaneseslanted-eyes/{storieslink} -http://kuyper.calvin.edu/fathers2/ANF-04/anf04-30.htm -http://wuarchive.wustl.edu/systems/unix/NetBSD/NetBSD-release/src/sys/arch/sun3/stand/bootxx/ -http://polygraph.ircache.net:8181/services/define/noframes/http_-2www.microsoft.com/ie/download/http_-2www.microsoft.com/infoserv/about.html -http://pub23.ezboard.com/fferion80369frm4.showMessage?topicID=192.topic -http://pub23.ezboard.com/fferion80369frm4.showMessage?topicID=182.topic -http://www.cs.ruu.nl/mirror/CPAN/authors/id/N/NO/?S=A -http://yp.gates96.com/1/40/30/16.html -http://yp.gates96.com/1/40/30/72.html -http://yp.gates96.com/1/40/30/99.html -http://yp.gates96.com/1/40/31/25.html -http://yp.gates96.com/1/40/31/42.html -http://yp.gates96.com/1/40/31/54.html -http://yp.gates96.com/1/40/31/61.html -http://yp.gates96.com/1/40/31/95.html -http://yp.gates96.com/1/40/32/39.html -http://yp.gates96.com/1/40/32/88.html -http://yp.gates96.com/1/40/32/92.html -http://yp.gates96.com/1/40/33/33.html -http://yp.gates96.com/1/40/34/24.html -http://yp.gates96.com/1/40/34/51.html -http://yp.gates96.com/1/40/34/62.html -http://yp.gates96.com/1/40/34/72.html -http://yp.gates96.com/1/40/35/38.html -http://yp.gates96.com/1/40/36/80.html -http://yp.gates96.com/1/40/36/98.html -http://yp.gates96.com/1/40/37/35.html -http://yp.gates96.com/1/40/37/89.html -http://yp.gates96.com/1/40/38/13.html -http://yp.gates96.com/1/40/38/67.html -http://yp.gates96.com/1/40/39/8.html -http://yp.gates96.com/1/40/39/11.html -http://yp.gates96.com/1/40/39/42.html -http://netway.pda.tucows.com/palm/preview/33466.html -http://netway.pda.tucows.com/palm/preview/70276.html -http://netway.pda.tucows.com/palm/adnload/76963_22012.html -http://netway.pda.tucows.com/palm/preview/33676.html -http://www.private-immobilien-boerse.de/berlin-immobilien/verkauf/Private-IB/Startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Immolink/Gemeinsam/Super-Zins-Konditionen/anforderungsformular.htm -http://www.ne.jp/asahi/matinami/gallery/mati/hokkaido/hakodate/ph_l011.html -http://www.findarticles.com/cf_0/m0EKF/14_46/61415465/p1/article.jhtml -http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/B1S/B1L/B4S/A1S/ -http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=1,21,16,5 -http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=18,21,16,5 -http://ddb.libnet.kulib.kyoto-u.ac.jp/exhibit/fl3/image/fl3lhf/fl3lh0344.html -http://www.trnonline.com/archives/2000archives/04072000/sports/26732.shtml -http://www.linux.com/networking/network/new/press_release/management/editor/ -http://www.linux.com/networking/network/new/press_release/management/experiences/ -http://jundavid.subportal.com/sn/Business/Misc__Phone_Tools/index3.html -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=27,9,23,14,19 -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/music/midi/mirroring.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/music/midi/legendes/ -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/music/midi/lit/laurent.txt -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/music/midi/misc/colorart/ -http://www.lz.gs.cninfo.net/news/shenghuo/messages/361.html -http://www.egroups.com/messages/skarmflyg/683 -http://www.egroups.com/message/skarmflyg/675 -http://www.egroups.com/message/skarmflyg/681 -http://www.genoma.de/shop/0d79e8c12cc42ea8242eafc8a0c5586a/99/b -http://travelocity-dest.excite.com/Vacations/Reviews/Cruise/Submit/1,2586,0_228__,00.html -http://www02.geocities.co.jp/HeartLand-Sakura/1068/history.html -http://www.streetprices.com/Electronics/Computer_Software_PC/Programming/MAKE+DIGITAL/sortproductbyhighprice/SP275945.html -http://www.streetprices.com/Electronics/Computer_Software_PC/Programming/MAKE+DIGITAL/sortproductbyhighprice/SP246217.html -http://www.emerchandise.com/help_privacy/b.TV%20SATNIGHTLIVE/s.BOkfj8Vk -http://ftp.ccu.edu.tw/pub/documents/faq/mail/setup/?S=A -http://iceberg.adhomeworld.com/cgi-win/redirect.exe/304063772 -http://pdacentral.zeelandnet.nl/rim/email_license.htm -http://pdacentral.zeelandnet.nl/rim/adnload/139471_47673.html -http://www.loisirs.ch/tfhglx/17/ltxeld.html -http://au.yahoo.com/Business_and_Economy/Shopping_and_Services/Health/Providers/By_Region/U_S__States/Mississippi/Cities/ -http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/15P02A|972959527|Helmet|user|0|1,0,0,0 -http://news.dreamwiz.com/news_lg/04/20001030/yonhap/200010301014041007292.html -http://news.dreamwiz.com/news_lg/04/20001028/yonhap/ -http://pds.nchu.edu.tw/cpatch/ftp/ftpnav/?D=A -http://members.tripod.lycos.co.kr/BONGBAE/?N=D -http://www9.hmv.co.uk:5555/do/session/1347758/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d50_sd0_pt0.html -http://itcareers.careercast.com/texis/it/itjs/+xwwBmeHWD86YwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewDhmoBGnaqdGpdGwBodDarGo5awDwcO5Baiw5roDtBdDaGn31n5BaGn31oGnmamnVncdpar1MwDaGn5d1Gqn5aMFqhTfR20DzmehrwwwpBmefWD86mwww5rmeddwwwBrmeZpwww/morelike.html -http://www.3w-buecher.de/GibbonsRob/GibbonsRob1572152214.htm -http://sennka.hoops.livedoor.com/%91%90%8a%a0%93%fa%98a%81%f4.htm -http://www.uni-duesseldorf.de/ftp/ftp/pf/s/netscape-v451/?S=A -http://www.outpersonals.com/cgi-bin/w3com/pws/out/0nhIQeA1Kelaujy0pUaBOo2AAoNruJ7MPpvxwl5qu-YeCeEn6SDc5vURHb5rk8dZP84c_4bSWkIDaPe8dCV5mfxj4LA69UDbXc_J2Z-eZg7dURZLZinceqCXYFUYC4pqT29R1BQKpdPvHP0APgIYRhQG -http://208.178.109.85/msgshow.cfm/msgboard=4779506785434&msg=80064825094809&page=1&idDispSub=-1 -http://interbox.tucows.com/preview/61367.html -http://www.crutchfield.com/cgi-bin/S-CI62JsDkHYX/viewcart.asp -http://www.hig.se/(aconf,formoutput,if,modified,set_cookie)/~jackson/roxen/ -http://www.trax.nilex.co.uk/trax.cgi/A1C/1AS/B1D/A3L/A1S/1AR/ -http://www.trax.nilex.co.uk/trax.cgi/A1C/1AS/B1D/A3L/A1S/C1R/ -http://www.trax.nilex.co.uk/trax.cgi/A1C/1AS/B1D/A3L/A1S/B4L/ -http://www.haikou.hi.cn/pandect/nj/n96ei3.htm -http://se.egroups.com/message/dailydreamers/36 -http://sunsite.org.uk/Mirrors/ftp.cdrom.com/pub/linux/slackware/contrib/contrib-sources/gcc-2.7.2.3/ -http://hp-partner.whowhere.lycos.com/hp/excite/Online_Communities/Angelfire/wi/index9.html -http://www.cse.unsw.edu.au/archives/linux/redhat/beta/?M=A -http://www.webcrawler.com/entertainment/music/artists_and_genres/folk_and_acoustic/artists_s/simon_and_garfunkel/garfunkel_art/interviews/ -http://www.russ.ru:8081/journal/media/98-05-21/telen0.htm -http://www.chaos.dk/sexriddle/x/r/k/o/w/ -http://www.jt.com.br/noticias/98/06/22/sd2.htm -http://retailer.gocollect.com/do/session/1912734/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/gifts/gift_floor.asp -http://www.ualberta.ca/CNS/RESEARCH/Software/SAS/gis/z0782606.htm -http://www.sentientnet.com/univercd/cc/td/doc/product/rtrmgmt/bluelist/cwblue21/cwbwsug/features.htm -http://pub5.ezboard.com/fthekojiroestrogenbrigadeconsolegaming.threadControl?topicID=16.topic -http://www.zjrs.zei.gov.cn/economy/text/policy/LHB/LHBA0909.TXT -http://seascape.tucows.com/winnt/adnload/2060_29646.html -http://seascape.tucows.com/winnt/adnload/2063_29648.html -http://seascape.tucows.com/winnt/adnload/2066_29651.html -http://ben.aspads.net/ex/c/641/517693268 -http://yp.gates96.com/7/63/80/20.html -http://yp.gates96.com/7/63/80/22.html -http://yp.gates96.com/7/63/80/80.html -http://yp.gates96.com/7/63/80/87.html -http://yp.gates96.com/7/63/81/50.html -http://yp.gates96.com/7/63/81/77.html -http://yp.gates96.com/7/63/81/79.html -http://yp.gates96.com/7/63/81/91.html -http://yp.gates96.com/7/63/82/36.html -http://yp.gates96.com/7/63/82/73.html -http://yp.gates96.com/7/63/84/6.html -http://yp.gates96.com/7/63/84/91.html -http://yp.gates96.com/7/63/85/30.html -http://yp.gates96.com/7/63/85/57.html -http://yp.gates96.com/7/63/85/98.html -http://yp.gates96.com/7/63/89/13.html -http://yp.gates96.com/7/63/89/20.html -http://yp.gates96.com/7/63/89/32.html -http://yp.gates96.com/7/63/89/65.html -http://www.rarf.riken.go.jp/archives/tex-archive/macros/latex//contrib/supported/linguex/?M=A -http://members.tripod.com/shelly34/shellyphotos/page12.html -http://ftp.nsysu.edu.tw/Unix/Perl/modules/by-category/23_Miscellaneous_Modules/Bundle/PlRPC-0.2003.readme -http://www.affiliate.hpstore.hp.co.uk/do/session/380827/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/vacationcards.asp -http://www.marktplatz-hs.de/cgi-bin/ChioEditionShop.s/39fe2ee3005fd9642740d47540f806e1/IconBar -http://home.sprynet.com/~keithco/london.htm -http://earth.collectingnation.com/cgi-bin/bn/post.mod/aupn?B=cna&R=48 -http://earth.collectingnation.com/cgi-bin/bn/post.mod/aupn?B=cna&R=38 -http://www.realize.com/am747b81.htm,qt=e784fe2f=2a38a234-e-1adebfb-80000000-0-0-3-- -http://www.opengroup.com/dfbooks/009/0091856140.shtml -http://www.egroups.org/message/fotografya/216 -http://www.cn.informatik.fh-furtwangen.de/studenten/dv_labor/onlinebuecher/php/function.yaz-errno.html -http://www.cn.informatik.fh-furtwangen.de/studenten/dv_labor/onlinebuecher/php/function.yaz-hits.html -http://www.cn.informatik.fh-furtwangen.de/studenten/dv_labor/onlinebuecher/php/function.yaz-wait.html -http://www.catholicstore.com/search/index.cfm/FuseAction/detailSearch/SKU/17311/category/Bo/subCategory/G/subject/1 -http://www.cc.ntut.edu.tw/~584ce040/anne-1.htm -http://www.intervoz.com.ar/2000/09/23/sociedad_n11.htm -http://pub22.ezboard.com/frecipegoldminesharearecipe.showAddReplyScreenFromWeb?topicID=4.topic -http://opencity.kulichki.ru/moshkow/PROZA/LIPSKEROV/okno.txt -http://www.tccomputers.com/cgi-bin/bp/1021890426/products/modems/modems.htm -http://www.tccomputers.com/cgi-bin/bp/1021890426/services/sitemap.htm -http://library.bangor.ac.uk/search/dCrystallography+--+Periodicals/dcrystallography+periodicals/-5,-1,0,B/frameset&F=dcrystallography+mathematical&8,,9 -http://music.excite.ca/artist/-264813 -http://www.gameboyz.com/g/review_465_p4_n3.html -http://library.cwu.edu/search/aCarande,+Robert/acarande+robert/-5,-1,0,B/2exact&F=acarande+robert&1,2 -http://www.townstuff.com/search.cfm?directory=1040&town=285 -http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/graphics/png/files/patch-aa?only_with_tag=RELEASE_2_2_7 -http://www.amcity.com/columbus/stories/1997/07/07/focus6.html?t=email_story -http://retailer.gocollect.com/do/session/1912716/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/checkout/shopping_cart.asp -http://ds.dial.pipex.com/town/drive/kch36/select/s12/ch034.html -http://ds.dial.pipex.com/town/drive/kch36/select/s12/ch118.html -http://www.dbring.de/160/16005-09.html -http://198.103.152.100/search*frc/lHQ+769+E3614/lhq++769+e3614/7,-1,0,B/frameset&F=lhq++777.4+d47&1,1 -http://yp.gates96.com/7/27/70/14.html -http://yp.gates96.com/7/27/70/27.html -http://yp.gates96.com/7/27/70/35.html -http://yp.gates96.com/7/27/70/37.html -http://yp.gates96.com/7/27/70/62.html -http://yp.gates96.com/7/27/71/38.html -http://yp.gates96.com/7/27/71/80.html -http://yp.gates96.com/7/27/72/62.html -http://yp.gates96.com/7/27/72/80.html -http://yp.gates96.com/7/27/73/10.html -http://yp.gates96.com/7/27/73/61.html -http://yp.gates96.com/7/27/73/78.html -http://yp.gates96.com/7/27/74/7.html -http://yp.gates96.com/7/27/74/16.html -http://yp.gates96.com/7/27/75/62.html -http://yp.gates96.com/7/27/76/90.html -http://yp.gates96.com/7/27/77/7.html -http://yp.gates96.com/7/27/77/92.html -http://yp.gates96.com/7/27/78/21.html -http://yp.gates96.com/7/27/79/21.html -http://yp.gates96.com/7/27/79/57.html -http://yp.gates96.com/7/27/79/96.html -http://moviestore.zap2it.com/help/b.STARWARSSAGA%20STARWARS-ROJ/s.nrF6V2sr -http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=8,27,13,5 -http://newspaper.swww.com.cn/1999/cdwb/199912/26/html/1003.html -http://newspaper.swww.com.cn/1999/cdwb/199912/26/html/1008.html -http://iworld.freethemes.com/adnload/77752.html -http://iworld.freethemes.com/adnload/15251.html -http://iworld.freethemes.com/adnload/54697.html -http://iworld.freethemes.com/adnload/15232.html -http://www.fogdog.com/cedroID/ssd3040183238457/nav/products/ice_hockey/1d/gear_accessories/ -http://www.ftp.uni-erlangen.de/pub/Linux/DEBIAN/dists/Debian2.2r0/main/binary-m68k/doc/ -http://www.ftp.uni-erlangen.de/pub/Linux/DEBIAN/dists/Debian2.2r0/main/binary-m68k/sound/ -http://library.cwu.edu/search/aThimbleby,+Harold/athimbleby+harold/-5,-1,0,B/exact&F=athilde+jean&1,2 -http://www5.pconline.com.cn/pcedu/soft/doc/001024/2.htm -http://member.nifty.ne.jp/kaito-mist/nifty5.htm -http://www.cc.yamaguchi-u.ac.jp/~archive/doc/jdk1.2.2/docs/api/java/awt/image/BandedSampleModel.html -http://www.sandiego.digitalcity.com/honolulu/arts/occurrence.dci?ecid=75 -http://ubahn.exit.de/ffm/pic/pp/?S=A -http://www.visiobroker.com/opcvm/details/4/43591.html -http://www.visiobroker.com/opcvm/details/9/9765.html -http://ring.toyama-ix.net/archives/linux/debian/debian-jp/dists/woody-towns/?M=A -http://www.asahi-net.or.jp/~ZI3H-KWRZ/lawylegalaid.html -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/195/1999/7/0/ -http://www.buybuddy.com/sleuth/27/1/1060103/490578/ -http://java.javasoft.com/products/jdk/1.2/ja/docs/ja/api/java/awt/image/BandedSampleModel.html -http://mitglied.tripod.de/~HTTC/mannschaften/3LigaGr1_0001.htm -http://opac.lib.rpi.edu/search/anightingale+peggy+1942/-5,-1,0,B/browse -http://ftp.unina.it/pub/Amiga/NetBSD/NetBSD-current/pkgsrc/editors/ssam/files/ -http://kikakusvr3.city.yokohama.jp/y/j/e25/ktt/ktt.html -http://members.spree.com/entertainment/juskickit/http//members.spree.com/sports/comicus1 -http://www.butuanon.tsx.org/ -http://archive.soccerage.com/s/de/07/05375.html -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1995/10/0/859255/ -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1995/10/50 -http://polygraph.ircache.net:8181/http_-2www.soniajekums.com/docs/Http_-2ua.battle-zone.com/html/html/on_line.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380855/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-creativeworld.com/creativeworld.asp?lang=f -http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/authors/id/T/TO/TOSTI/vstadaf-0.01.readme -http://www.xmission.com/~dkenison/cgi/lwgate.cgi/KLR650/archives/v02.n1633/Subject/article-16.html -http://www.realize.com/p25581.htm,qt=e784fe2f=2a38a234-7-da710e-0-0-0-1-- -http://www.realize.com/am947681.htm,qt=e784fe2f=2a38a234-7-da6e1d-80000000-0-0-3-- -http://www.realize.com/am2c3a81.htm,qt=e784fe2f=2a38a234-7-da6e1d-80000000-0-0-3-- -http://www.realize.com/amd15381.htm,qt=e784fe2f=2a38a234-7-da6e1d-1-84-0-3-- -http://link.fastpartner.com/do/session/600403/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/speednames.php -http://home.freeuk.net/lyne/work.htm -http://www.gotocity.com/local/2/us/AZ/p/85643/people/ -http://www.service911.com/egghead/step/0,2743,6+33+121+25440+18092_4,00.html -http://www.jamba.de/KNet/_KNet-irv8j1-WEd-139z7/showInfo-werbung.de/node.0/cenv0b09a -http://ustlib.ust.hk/search*chi/dbeijing+mandarin+dialects+china+slang/dbeijing+mandarin+dialects+china+slang/-5,1,1,B/frameset&F=dbeijing+mayors+china+fiction&1,1, -http://www.linux.org.tw/~chester/xlib/GC/convenience-functions/XSetGraphicsExposures.html -http://www.linux.org.tw/~chester/xlib/graphics/font-metrics/XUnloadFont.html -http://www.chaos.dk/sexriddle/c/f/j/u/c/ -http://www.chaos.dk/sexriddle/c/f/j/u/q/ -http://www.bornloser.com/comics/committed/archive/committed-20001027.html -http://tulips.ntu.edu.tw/search*chi/dDeath+lc/ddeath+lc/-17,-1,0,E/frameset&F=ddeath+in+adolescence+abstracts&1,,0 -http://hem.fyristorg.com/lottaleman/LLfar/1_6955.htm -http://preview.egroups.com/post/scoresheet-talk?act=reply&messageNum=7013 -http://209.52.189.2/profile.cfm/TimmyJ -http://archive.soccerage.com/s/pt/37/04816.html -http://pub16.ezboard.com/fleftbehindmessageboardfellowshiphall.showMessage?topicID=456.topic&index=16 -http://www.2pl.com/asp/tools/fili1.asp?sp=se&fi=pppp0005s8 -http://link.fastpartner.com/do/session/600382/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/jobs.htm -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdenetwork/kppp/Rules/Poland/?only_with_tag=MAIN -http://genforum.genealogy.com/cgi-genforum/forums/flippin.cgi?30 -http://pub.chinaccm.com/23/news/200010/28/114339.asp -http://pub.chinaccm.com/23/news/200010/27/134259.asp -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=21,9,14,35,15 -http://gamesearcher.com/games/pc/returnofphantom-cheatsfaqs.html -http://ua.php.net/manual/es/function.pg-errormessage.php -http://findmail.com/group/prairydog -http://www.loria.fr/projets/dilib/DILIB_ROOT/SYSTEMS/Linux/Dilib/Data/NLM/MedLine/ -http://www.daysinn.com/ctg/cgi-bin/DaysInn/programs/AAAksrACwAAACEaAAQ -http://www.leo.org/leoclick/35dd60550f1ba90ed5bb7952eebae0d3+L+1__ -http://members.fortunecity.com/abbalink/songs/lyrics/wg.htm -http://chat.sportsline.com/u/football/nfl/xword/answers/091500.htm -http://210.173.172.13/entertainments/sports/sydney/kanrenkiji/0924/0925m096-500.html -http://210.173.172.13/entertainments/sports/sydney/kanrenkiji/0924/0925m094-500.html -http://www.private-immobilien-boerse.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/3d-service/Gemeinsam/Inserieren/3d-service/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm -http://www.private-immobilien-boerse.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/3d-service/Gemeinsam/Inserieren/3d-service/Gemeinsam/IIMMitglieder.htm -http://www.realize.com/amcf7781.htm,qt=e784fe2f=2a38a234-4-7cf2ef-80000000-0-0-3-- -http://family.go.com/Categories/Features/family_1998_12/penn/penn128urban/ -http://www.loria.fr/projets/dilib/DILIB_ROOT/ApplicationsTest/Dilib/newBD/Prog/?N=D -http://www.loisirs.ch/xfeoav/7/kqbmsh.html -http://tucows.tu-graz.ac.at/herdwin0807.html -http://www-d0.fnal.gov/cgi-bin/cvsweb.cgi/gtr_htf/dat/?sortby=log -http://www.buybuddy.com/sleuth/17/1/2006/32619/ -http://www.aelita.net/products/Reg/QuoteRegister/products/library/products/company/Privacy.htm -http://www.refdag.nl/bui/990803bui08.html -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,6-14,0+0,2 -http://www.aelita.net/products/services/support/sitemap/news/solutions/default.htm -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=26,5,30,16,12 -http://www.ericsson.cl/gsmpro/contact.shtml -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/maheuitu/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mangoo333/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/maomizhijia/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/masaki_hamada/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/maxiaofei/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/maz0503/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/menghuanboy/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/michealshen/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mike717/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mikeshang_2/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mingyueyaze/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mm3/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mnbv89/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/morsia/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/move/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mslug/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/msshi/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/muwei/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/my1799/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mychat2000/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/myesky/ -http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mzlzq/ -http://www.ring.gr.jp/pub/linux/Vine/VineSeed/alpha/mnt/source/sbin/loader -http://www.nrk.no/finnmark/x8_5_96/nyh7.htm -http://202.99.23.245/rmrb/200001/27/no_txb_6.html -http://www-d0.fnal.gov/d0dist/dist/releases/test/smt_hit/test/?N=D -http://www-d0.fnal.gov/d0dist/dist/releases/test/smt_hit/test/LIBRARIES -http://jupiter.u-3mrs.fr/~msc41www/releves/13440405.HTM -http://ftp.univie.ac.at/packages/perl/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/CGI/ANDK/Apache-correct_headers.readme.html -http://www.linux.com/networking/network/networking/free/windows_nt/distro/ -http://www.linux.com/networking/network/networking/free/windows_nt/tip/ -http://australia-holiday-guide.com/Englisch/Queensland_1/QLD_Furher_North_1/qld_further_north_1.html -http://australia-holiday-guide.com/Englisch/Queensland_1/QLD_Great_Barrier_Reef_1/qld_great_barrier_reef_1.html -http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/Ayrton.readme -http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/Deadline_1.readme -http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/DiamondPPC.readme -http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/Gravity2_inv.readme -http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/HJB-BCFix.readme -http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/ImpPos.readme -http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/Nat-AutF.readme -http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/PSB-Desperado2.readme -http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/PSB-PUK_final.readme -http://genforum.genealogy.com/cgi-genforum/forums/kilroy.cgi?34 -http://genforum.genealogy.com/cgi-bin/print.cgi?kilroy::34.html -http://content.health.msn.com/ef/message/803324/content.health.msn.com%2fmessage_board_message%2f803324/803324 -http://de.excite.de/gesundheit/katalog/6107 -http://de.excite.de/gesundheit/katalog/4909 -http://de.excite.de/gesundheit/katalog/5941 -http://de.excite.de/gesundheit/katalog/4924 -http://de.excite.de/gesundheit/katalog/5898 -http://de.excite.de/gesundheit/katalog/4949 -http://de.excite.de/gesundheit/katalog/5987 -http://de.excite.de/gesundheit/katalog/5855 -http://de.excite.de/gesundheit/katalog/39862 -http://de.excite.de/gesundheit/katalog/5852 -http://de.excite.de/gesundheit/katalog/5645 -http://de.excite.de/gesundheit/katalog/6078 -http://de.excite.de/gesundheit/katalog/5834 -http://yp.gates96.com/11/26/80/31.html -http://yp.gates96.com/11/26/80/47.html -http://yp.gates96.com/11/26/80/91.html -http://yp.gates96.com/11/26/81/61.html -http://yp.gates96.com/11/26/81/86.html -http://yp.gates96.com/11/26/82/37.html -http://yp.gates96.com/11/26/82/49.html -http://yp.gates96.com/11/26/83/38.html -http://yp.gates96.com/11/26/83/52.html -http://yp.gates96.com/11/26/83/58.html -http://yp.gates96.com/11/26/83/84.html -http://yp.gates96.com/11/26/84/0.html -http://yp.gates96.com/11/26/84/59.html -http://yp.gates96.com/11/26/84/75.html -http://yp.gates96.com/11/26/84/99.html -http://yp.gates96.com/11/26/85/37.html -http://yp.gates96.com/11/26/85/63.html -http://yp.gates96.com/11/26/85/78.html -http://yp.gates96.com/11/26/86/36.html -http://yp.gates96.com/11/26/86/40.html -http://yp.gates96.com/11/26/87/66.html -http://yp.gates96.com/11/26/87/87.html -http://yp.gates96.com/11/26/89/7.html -http://yp.gates96.com/11/26/89/21.html -http://yp.gates96.com/11/26/89/38.html -http://providenet.tukids.tucows.com/mac/9-12/macspell912_license.html -http://providenet.tukids.tucows.com/mac/9-12/adnload/25805_25780.html -http://www04.u-page.so-net.ne.jp/zb3/eiji-m/dog6.htm -http://school.educities.org/card/jou0731.html -http://school.educities.org/card/ke234.html -http://school.educities.org/card/aaaaaqqqqqqq.html -http://school.educities.org/card/cso.html -http://school.educities.org/card/g40203.html -http://school.educities.org/card/h123915388.html -http://school.educities.org/card/k1084211.html -http://www.cigar-pipe.de/SP/dhuc3112.htm -http://www.newquestcity.com/cities/MA///news/3675.htm -http://caowei_814.home.chinaren.com//wenxue/wenxue-mood/love147.htm -http://www.amulation.com/md-l-archive/199805/msg00065.html -http://in.egroups.com/messages/conventions/51?viscount=-30 -http://yp.gates96.com/11/63/20/4.html -http://yp.gates96.com/11/63/20/21.html -http://yp.gates96.com/11/63/20/51.html -http://yp.gates96.com/11/63/21/29.html -http://yp.gates96.com/11/63/21/41.html -http://yp.gates96.com/11/63/21/74.html -http://yp.gates96.com/11/63/22/4.html -http://yp.gates96.com/11/63/22/29.html -http://yp.gates96.com/11/63/22/80.html -http://yp.gates96.com/11/63/22/86.html -http://yp.gates96.com/11/63/23/7.html -http://yp.gates96.com/11/63/23/24.html -http://yp.gates96.com/11/63/23/39.html -http://yp.gates96.com/11/63/24/1.html -http://yp.gates96.com/11/63/25/35.html -http://yp.gates96.com/11/63/25/78.html -http://yp.gates96.com/11/63/25/83.html -http://yp.gates96.com/11/63/26/37.html -http://yp.gates96.com/11/63/27/3.html -http://yp.gates96.com/11/63/27/9.html -http://yp.gates96.com/11/63/27/14.html -http://yp.gates96.com/11/63/28/16.html -http://yp.gates96.com/11/63/28/26.html -http://yp.gates96.com/11/63/28/54.html -http://yp.gates96.com/11/63/28/55.html -http://yp.gates96.com/11/63/29/13.html -http://yp.gates96.com/11/63/29/64.html -http://yp.gates96.com/11/63/29/69.html -http://spaceports.tucows.com/winnt/httpservernt_license.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380848/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp -http://incrediblegolfsavings.subportal.com/sn/Games/Simulation_Games/11310.html -http://incrediblegolfsavings.subportal.com/sn/Games/Simulation_Games/12064.html -http://www.linux.com/networking/linux/industry/gnu/operating_system/Corel/ -http://www.linux.com/networking/linux/industry/gnu/operating_system/Updates/ -http://www.fogdog.com/cedroID/ssd3040183307418/womens/ -http://www.fogdog.com/cedroID/ssd3040183307418/nav/products/featured_brands/1o/casual_sunglasses/ -http://www.fogdog.com/cedroID/ssd3040183307418/nav/products/featured_brands/1o/hockey_skates/ -http://www.fogdog.com/cedroID/ssd3040183307418/nav/products/featured_brands/1o/sweatshirts_fleece/ -http://www.fogdog.com/cedroID/ssd3040183307418/crs/nvCZ/wld/fogdog_sports/nike/football/equipment/500r_series_football.html -http://www.seoul.co.kr/dmaeil/199908/0820j015.htm -http://www-trn.bards.ru/Lobanovskiy/part13.htm -http://www-trn.bards.ru/Vahnuk/part27.htm -http://www-trn.bards.ru/Vetrova_Svetlana/part9.htm -http://www-trn.bards.ru/Tretiyakov/part22.htm -http://www-trn.bards.ru/Okoudjava/part202.htm -http://www-trn.bards.ru/Panyushkin/part100.htm -http://www-trn.bards.ru/Gorodnicky/part287.htm -http://yumemi.ne.jp/bbs/ky/view/f/forum9/1_jpbshj_vvvzil.html -http://yumemi.ne.jp/bbs/ky/view/f/forum9/1_xxosis_czhmrb.html -http://yumemi.ne.jp/bbs/ky/view/f/forum9/1_yikriy_qjvins.html -http://www.peopledaily.co.jp/shch/199907/28/newfiles/D103.html -http://legalminds.lp.findlaw.com/list/newlawbooks-l/frm00336.html -http://tucows.sp-plus.nl/winme/phoneme.html -http://ustlib.ust.hk/search*chi/dalcoholic+beverages+china/dalcoholic+beverages+china/7,-1,0,E/2browse -http://ustlib.ust.hk/search*chi/dalcoholic+beverages+china/dalcoholic+beverages+china/-5,-1,0,E/frameset&F=dalcoholic+beverages+great+britain&1,,0 -http://www.canit.se/(k10,k13,k16,k6)/support/faq/faq.html -http://aecjobbank.com/texis/script/jobbank/+Owwrmwxeri2wBV6evNVpwwwF6eWYqkwwwn6eXmcOwwwn6ekmyjwwwn6eULpOwwqn6eUCBZwwwn6e22QuwwwefPY9GepmwwmeiP46eczdwwmeOTB6eXhzwwwnmBVve89AHwwxeY44Ie-pxwww+vejWRhwwxealYTeXjzwwwhvep9q9wwwxveoA6kwwqe0PYieqFzwwwv6eFRFrwwwt6eSGxDwwwetNY1e8drwwqeT53Amwww0h7mwww1tzmwwweb-3qmwwww/jobdirectory.html -http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/newmenu.html -http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d30_sd0_pt0.html -http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d70_sd0_pt0.html -http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d90_sd0_pt0.html -http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d120_sd0_pt0.html -http://www.hbdaily.com.cn/hbrb/20000622/BIG5/hbrb^18323^12^0622h016.htm -http://excite.de/immobilien/katalog/6877 -http://excite.de/immobilien/katalog/7012 -http://www.globalmart.com/housewares/appliances/household/irons/blackanddecker/S680.htm -http://mediate.magicbutton.net/do/session/625631/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-artc.html -http://ddb.libnet.kulib.kyoto-u.ac.jp/exhibit/mt3/image/mt3shf/mt3sh0192.html -http://us.parsimony.net/forum26166/messages/410.htm -http://linux.tnc.edu.tw/CPAN/authors/id/A/AZ/AZEMGI/?M=A -http://linux.tnc.edu.tw/CPAN/authors/id/A/AZ/AZEMGI/CHECKSUMS -http://launchbase.com/Shopping/Visual_Arts/communication/entertainment/Pictures_&_Images.htm -http://launchbase.com/Shopping/Visual_Arts/communication/shopping/Gifts.htm -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/programs/simple/music/midi/lit/lit/quizz/quizz1.html -http://home02.wxs.nl/~nash0002/amber-94.htm -http://www.redrocksports.com/sports/webSession/shopper/RR972959711-31098/store/dept-5/department/dept-5/item/52400 -http://www.redrocksports.com/sports/webSession/shopper/RR972959711-31098/store/dept-5/department/dept-5/item/52550 -http://www.redrocksports.com/sports/webSession/shopper/RR972959711-31098/store/dept-5/department/dept-5/item/50900 -http://gnu.archive.sunet.se/software/sather/ICSI_Sather/Documentation/Compiler/CompilerBrowser/shortflat-FLIST{_}.html -http://mailman.real-time.com/rte-crossfire/1992/Dec/mail1.html -http://de.nedstat.net/viewstat.asp?name=larsen -http://ftp.ring.gr.jp/archives/pc/gnu-win32/latest/man/?S=A -http://src.openresources.com/debian/src/graphics/HTML/D/S_ISSOCK.html -http://www.perotech.ch/d/securedb/html/listtopic.php?4277 -http://web.health.aol.thriveonline.oxygen.com/medical/library/article/003558res.html -http://cn.egroups.com/message/Website_Warez/346 -http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd510213891 -http://ring.nii.ac.jp/pub/pack/x68/personal/calendar/ -http://www.zeal.com/Government/U_S__Government/State___Local_Governments/South_Carolina/Politics/Elections/State_wide/ -http://ftp.unina.it/pub/TeX/macros/latex209/contrib/manual/?S=A -http://www.perotech.ch/d/securedb/html/listtopic.php?5376 -http://polygraph.ircache.net:8181/lci/https_-2ssl.galaxy-net.net/jazzee/http_-2www.microsoft.com/truetype/fontpack/win.htm -http://python.konbib.nl/dutchess.ned/83/00/info-1592.html -http://www.excite.com/lifestyle/cultures_and_groups/world_cultures/regions/north_america/ethnic_communities/african_american/history/military_history/ -http://www.bluemonutain.com/engy/david/CHI1-educk.html -http://www.bluemonutain.com/engy/susie/CHI1-edaddog.html -http://cn.egroups.com/messages/childhoodepilepsy/3349 -http://cn.egroups.com/messages/childhoodepilepsy/648 -http://cn.egroups.com/messages/childhoodepilepsy/1189 -http://polygraph.ircache.net:8181/services/design/http_-2www.swnebr.net/~cambridg/http_-2www.bikininet.com/climate.htm -http://www.annuairefrancais.com/54/France/I/INTERNET/Fournisseurs-d'acces/Fournisseurs-d -http://polygraph.ircache.net:8181/http_-2www.monarchcom.net/http_-2www.netscape.com/comprod/mirror/http_-2bible.gospelcom.net/http_-2www.rehablinks.com/ptlinks.htm -http://findmail.com/message/studentdoctor/4312?source=1 -http://mediate.magicbutton.net/do/session/625624/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-cart.html -http://ring.htcn.ne.jp/archives/lang/perl/CPAN/authors/id/P/PG/?M=A -http://www.buybuddy.com/sleuth/33/1/10601/526343/ -http://www1.zdnet.com/products/stories/reviews/0,4161,2470142,00.html -http://www1.zdnet.com/companyfinder/filters/products/0,9996,2256-82,00.html -http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdeutils/ark/doc/en/Attic/index-2.html?only_with_tag=MAIN -http://tv.thevines.com/leaf/AA0000364048/45///&act=24-1-11&bref=1601 -http://link.fastpartner.com/do/session/600384/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php -http://www.excite.com/lifestyle/politics_and_society/community_and_cultures/world_cultures/diaspora/jewish/judaism/congregations/humanistic_judaism/ -http://biblio.cesga.es:81/search*gag/aXove,+Xosé/axove+xose/7,-1,0,B/frameset&F=axuntanza&1,,3 -http://biblio.cesga.es:81/search*gag/aXove,+Xosé/axove+xose/7,-1,0,B/frameset&F=axuntanza&3,,3 -http://db.zaq.ne.jp/asp/bbs/jttk_baasc506_1/article/36 -http://db.zaq.ne.jp/asp/bbs/jttk_baasc506_1/article/37 -http://db.zaq.ne.jp/asp/bbs/jttk_baasc506_1/article/35 -http://db.zaq.ne.jp/asp/bbs/jttk_baasc506_1/article/21 -http://www.tiroler-adler.com/1Root/Kontinent/6/Staat/7/Bundesland/16/Ort/691/Homepage/f_homepage...1.html -http://yp.gates96.com/4/52/90/87.html -http://yp.gates96.com/4/52/90/95.html -http://yp.gates96.com/4/52/91/4.html -http://yp.gates96.com/4/52/91/39.html -http://yp.gates96.com/4/52/91/42.html -http://yp.gates96.com/4/52/92/33.html -http://yp.gates96.com/4/52/92/93.html -http://yp.gates96.com/4/52/93/6.html -http://yp.gates96.com/4/52/93/98.html -http://yp.gates96.com/4/52/94/8.html -http://yp.gates96.com/4/52/94/14.html -http://yp.gates96.com/4/52/95/92.html -http://yp.gates96.com/4/52/96/16.html -http://yp.gates96.com/4/52/96/32.html -http://yp.gates96.com/4/52/96/72.html -http://yp.gates96.com/4/52/96/90.html -http://yp.gates96.com/4/52/97/1.html -http://yp.gates96.com/4/52/97/53.html -http://yp.gates96.com/4/52/98/34.html -http://yp.gates96.com/4/52/98/84.html -http://yp.gates96.com/4/52/98/97.html -http://yp.gates96.com/4/52/99/55.html -http://yp.gates96.com/4/52/99/68.html -http://yp.gates96.com/14/40/10/3.html -http://yp.gates96.com/14/40/10/86.html -http://yp.gates96.com/14/40/11/53.html -http://yp.gates96.com/14/40/12/74.html -http://yp.gates96.com/14/40/13/11.html -http://yp.gates96.com/14/40/13/34.html -http://yp.gates96.com/14/40/13/45.html -http://yp.gates96.com/14/40/13/79.html -http://yp.gates96.com/14/40/14/3.html -http://yp.gates96.com/14/40/14/6.html -http://yp.gates96.com/14/40/14/25.html -http://yp.gates96.com/14/40/14/84.html -http://yp.gates96.com/14/40/14/88.html -http://yp.gates96.com/14/40/15/39.html -http://yp.gates96.com/14/40/15/40.html -http://yp.gates96.com/14/40/16/64.html -http://yp.gates96.com/14/40/16/92.html -http://yp.gates96.com/14/40/17/69.html -http://yp.gates96.com/14/40/18/42.html -http://yp.gates96.com/14/40/18/82.html -http://yp.gates96.com/14/40/19/36.html -http://www.4positiveimages.com/4positiveimages/727410225/IconBar -http://www.teacherformation.org/html/od/facilitators.cfm/task1,login/discussion_id,2/xid,6559/yid,6157439 -http://www.secinfo.com/dSU5m.74.htm -http://www.secinfo.com/dSU5m.7v.htm -http://www.secinfo.com/dSU5m.6y.htm -http://www.secinfo.com/dSU5m.5c.htm -http://linux.softhouse.com.cn/linux/knowledge/tech/qs/linux5.htm -http://linux.softhouse.com.cn/linux/knowledge/tech/qs/linux10.htm -http://freesoftware.subportal.com/sn/Programming/Visual_Basic_Components_H-P/993.html -http://dk.egroups.com/message/NGHILUAN/2881 -http://dk.egroups.com/message/NGHILUAN/2889 -http://www.cga.state.ct.us/ps98/cbs/H/hj-0084.htm -http://apple.excite.com/entertainment/music/artists_and_genres/jazz/new_world_jazz/afro_cuban/ -http://www.euronet.nl/users/hiroshi/ksweb/interest.htm -http://library.bangor.ac.uk/search/aMollica,+Anthony/amollica+anthony/-5,-1,0,B/browse -http://www.fogdog.com/cedroID/ssd3040183308040/nav/products/featured_brands/14t/all/ -http://www.brio.de/BRIO.catalog/39fe2f8d0912d4962740d472aa780701/UserTemplate/9 -http://www.hig.se/(accessed,autoformat,referrer,sqloutput,tablify)/~jackson/roxen/ -http://www.newstimescybermall.com/Mall/Catalog/Product/ASP/product-id/206059/store-id/1000010991.html -http://www6.163.com/news/p-item/0,1587,economy_1916,00.html -http://ftp.uni-stuttgart.de/pub/systems/sgi/graphics/lib/?D=A -http://preview.egroups.com/message/abdou3/152 -http://ch.php.net/manual/it/function.pg-loimport.php -http://yp.gates96.com/1/94/30/39.html -http://yp.gates96.com/1/94/30/78.html -http://yp.gates96.com/1/94/31/11.html -http://yp.gates96.com/1/94/31/72.html -http://yp.gates96.com/1/94/31/85.html -http://yp.gates96.com/1/94/32/25.html -http://yp.gates96.com/1/94/32/45.html -http://yp.gates96.com/1/94/32/74.html -http://yp.gates96.com/1/94/33/20.html -http://yp.gates96.com/1/94/33/68.html -http://yp.gates96.com/1/94/34/92.html -http://yp.gates96.com/1/94/35/1.html -http://yp.gates96.com/1/94/35/50.html -http://yp.gates96.com/1/94/35/60.html -http://yp.gates96.com/1/94/37/0.html -http://yp.gates96.com/1/94/37/46.html -http://yp.gates96.com/1/94/37/47.html -http://yp.gates96.com/1/94/37/61.html -http://yp.gates96.com/1/94/38/19.html -http://yp.gates96.com/1/94/39/49.html -http://yp.gates96.com/1/94/39/57.html -http://www.gartenfachmarkt.de/beratung_garten/duengen_und_kompostieren/anlage_und_vorarbeiten/fertig.htm -http://support.dell.com/docs/storage/4955r/en/Hw/setup.htm -http://www.hig.se/(clientname,header,sort,sqlquery,sqltable)/~jackson/roxen/ -http://www.mic.hr/PGBURZA:423870 -http://www.mic.hr/PGNEWS:423870 -http://members.tripod.com/Tess_Tom/my_photoalbum/page12.html -http://legalminds.lp.findlaw.com/list/courtinterp-spanish/nav05815.html -http://www.fogdog.com/cedroID/ssd3040183239698/crs/pn__/wld/fogdog_sports/pearl_izumi/road_cycling/apparel/classic_vest.html -http://www.fogdog.com/cedroID/ssd3040183239698/nav/stores/wakeboarding/ -http://troy.lib.sfu.ca/search/slogos/slogos/-5,-1,0,E/frameset&F=slogistics+and+transportation+review&1,,0 -http://themes.tucows.dia.dk/skins/icq/preview/54718.html -http://php.nic.fi/manual/html/function.shm_open.html -http://ftp.fi.debian.org/debian/dists/woody/non-free/binary-m68k/misc/?S=A -http://www.csupomona.edu/reference/java/jdk1.2/docs/api/org/omg/CORBA/class-use/CompletionStatus.html -http://www.trax.nilex.co.uk/trax.cgi/A1C/B1U/A1D/C1R/A1D/B1R/ -http://www.uni-duesseldorf.de/ftp/ftp/software/opt/cpio-2.4.2/?M=A -http://ep.com/js/about/c9079/b0/250918.html -http://polygraph.ircache.net:8181/busi/html/http_-2www.dirtsports.com/index.html-ssi -http://www.chabadlibrary.org/ecatalog/EC06/EC06232.HTM -http://chat.hani.co.kr/NetBBS/Bbs.dll/brief/lst/qqa/f/qqo/PRMY/zka/B23qB2Bm -http://209.207.239.212/bkindex/c1047/f1128.html -http://tv.thevines.com/leaf/AA0000364429/4/1 -http://tv.thevines.com/leaf/AA0000364429/4//&order_by=WORST -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=12,17,20,5,16 -http://yp.gates96.com/4/4/40/22.html -http://yp.gates96.com/4/4/40/29.html -http://yp.gates96.com/4/4/41/11.html -http://yp.gates96.com/4/4/42/0.html -http://yp.gates96.com/4/4/42/27.html -http://yp.gates96.com/4/4/42/89.html -http://yp.gates96.com/4/4/42/99.html -http://yp.gates96.com/4/4/43/40.html -http://yp.gates96.com/4/4/43/69.html -http://yp.gates96.com/4/4/43/85.html -http://yp.gates96.com/4/4/44/27.html -http://yp.gates96.com/4/4/44/28.html -http://yp.gates96.com/4/4/44/36.html -http://yp.gates96.com/4/4/44/86.html -http://yp.gates96.com/4/4/45/76.html -http://yp.gates96.com/4/4/45/82.html -http://yp.gates96.com/4/4/45/86.html -http://yp.gates96.com/4/4/46/61.html -http://yp.gates96.com/4/4/47/1.html -http://yp.gates96.com/4/4/47/41.html -http://yp.gates96.com/4/4/47/42.html -http://yp.gates96.com/4/4/48/66.html -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/misc/geekcode/pkg-descr?only_with_tag=RELEASE_3_4_0 -http://perso.wanadoo.fr/genealogie.aubert.jm/geweb/ff100.htm -http://www.securitiestimes.com.cn/199904/29/data/newfiles/0060080.htm -http://autos.yahoo.co.jp/ucar/m1015/k10152012199906/g21/a101520120210248821003520208199906.html -http://dg.galaxy.com/galaxy/Community/United-States/States/Connecticut/Cities-and-Regions/Guilford/Education/K--12/Middle.html -http://carriage.de/Schoner/info-e/literature/collections/models/ -http://www.amcity.com/orlando/stories/1998/06/29/weekinbiz.html?t=email_story -http://www.icopyright.com/1.1655.94549 -http://biblio.cesga.es:81/search*gag/dMicrosoft+Visual+BASIC+(Archivo+de+ordenador)/dmicrosoft+visual+basic+archivo+de+ordenador/-5,1,1,B/frameset&F=dmicrosoft+project+archivo+de+ordenador&1,1, -http://www.jamba.de/KNet/_KNet-AzI8j1-tGd-13d56/browse.de/node.0/cde7f1uou -http://www.jamba.de/KNet/_KNet-AzI8j1-tGd-13d5e/browse.de/node.0/cde7f1uou -http://www.ioppublishing.com/PEL/help/article/ja30010l2/refs/?topic=refs -http://members.tripod.lycos.co.kr/uuujsh/?N=D -http://www.wlu.ca/~wwwregi/95-96/cal/ucourses/CP/CP417.html -http://books.hyperlink.co.uk/bookinfo/Essential_Papers_on_Messianic_Movements_and_Personalities_in_Jewish_History/0814779433 -http://generalstore.everdream.com/kore/catalog/Office_Supplies/Furniture_&_Accessories/File_Cabinets/Vertical/GRP-US747/product.html -http://satlink.tucows.com/winnt/adnload/54136_29678.html -http://dc.web.aol.com/myrtlebeacharea/penpals/browse.dci?cat=twenties&sort=m -http://itcareers.careercast.com/texis/it/itjs/+nwwBme4WD86e4rwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewDthDo5O5apGdtGwMaBGnDBdDaqd1DBGon5aoDqc1moDtax15oDn55amnVncdpoDta5dc1BodD5adppdGB1DoBon5aqdMpnBoBoVnaMFqtuNfIjIDzmYqwwpBme68D86eihwww5rmerdwwwBrmeZpwww/jobpage.html -http://ring.yamanashi.ac.jp/pub/linux/debian/debian-jp/dists/hamm-jp/hamm/disks-i386/current/base14-3.bin.2.0.11.2-i386 -http://www.ibm.co.jp/pc/thinkpad/pt110/look110.html -http://retailer.gocollect.com/do/session/1912720/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp -http://www-rn.informatik.uni-bremen.de/home/X11R6/xc/doc/hardcopy/XProtocol/?N=D -http://cafe3.daum.net/Cafe-bin/bbsList?bbsgrp=SIXTEEN&bbscode=SIXTEENbbs -http://allmacintosh.arrakis.es/adnload/12140.html -http://allmacintosh.arrakis.es/adnload/2476.html -http://www.msb.malmo.se/search*swe/dSkönlitteratur/dskz~cnlitteratur/-5,-1,0,B/2exact&F=dskz~cnliteratur&1,2 -http://tucows.syix.com/winme/preview/137803.html -http://pages.prodigy.net/patotoole/musicman/page6.htm -http://yp.gates96.com/14/43/0/39.html -http://yp.gates96.com/14/43/0/78.html -http://yp.gates96.com/14/43/0/79.html -http://yp.gates96.com/14/43/0/99.html -http://yp.gates96.com/14/43/1/3.html -http://yp.gates96.com/14/43/1/57.html -http://yp.gates96.com/14/43/1/86.html -http://yp.gates96.com/14/43/2/74.html -http://yp.gates96.com/14/43/2/80.html -http://yp.gates96.com/14/43/3/2.html -http://yp.gates96.com/14/43/3/97.html -http://yp.gates96.com/14/43/3/99.html -http://yp.gates96.com/14/43/4/37.html -http://yp.gates96.com/14/43/4/51.html -http://yp.gates96.com/14/43/4/72.html -http://yp.gates96.com/14/43/6/4.html -http://yp.gates96.com/14/43/7/20.html -http://yp.gates96.com/14/43/7/39.html -http://yp.gates96.com/14/43/7/45.html -http://yp.gates96.com/14/43/9/41.html -http://yp.gates96.com/14/43/9/58.html -http://yp.gates96.com/14/43/9/60.html -http://ftp.support.compaq.com/public/dunix/v3.2g/ASE_V1.3/ReleaseNotes.htm -http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/mchI1k9vDw6DGJ19bljzJPwhHhJYxAcnAIKgudPEJtzjiTWMWT4U-YMr4m-AccPn7sEIqMzfFTZnQEQBZNx-lh8DEr_c1F3DXpcc4PzhALzHJ76GytRWNCSauwtfVocYmy_RKsP-H9T-UhQgoc9_uexBhD4a -http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/IqtI3V1hdRxfYW_4AHOzeXZkuTzyKfveVl4qdYM_2WFldvLDKFgK8SvYa0mSlrWDVodDERGv2jvb2dEN1-mRmY3TBKURFCsqneanb8BNMBeBfqmSnBYuou5RMCmHxXCedHy3TQnL51n3TYbg5exYBWl9FJTcQEIJt2wyyrfB66jP -http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/Hk1ILVbQbFwze5TrhlBima0MylJ0gTqcnVeTbMTcn7Gy5GkelYKhUQ7m8P8_K3IkOWfIWbpGOJEuHqJLX5jY_7ygFevbtkNXPvb1yztdy9qzCTsCJvS5uaHN3cZd0LtuoMX3lX7d_-L_PrwRXSfTE3TNvWl-RHiY4Xmxk1fXhD_uwwjDvC7DDsxz66j6 -http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/T41IiB449vZ7nrOl2Z_klJHCHQZhigz52e9YVMztVI-K01klBYQrw4VmiKN8JDs9xaeMSWopQs1euSbr6BAiyuqpbSFiiVWObVmWHv031jtdQ1y93wnHhx8PkbrA4hkNhjTPs2mUhBF9wIAJSPCYLkf6W7mCB8ObikqLTuIwBfRtSgMK4Hz9e7Bp -http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/CI1IlJNaoNrBcwJYSEcjLyxBnpQHK3wpRPeCR_0u07GznNXQ3Ug57ciOqlfXKlYM1HbRfcvrF5s214yaEHiIizneyWrbSEW_xal49NjQDbWj6R2nEZvDQdDMQEMoTuQlSetyUwMidLBmJJ5v5w9m066en6Yxuzt3RkGIyoHKaVmXgVIYD2Fc40eA -http://www.secinfo.com/dSm4r.997.htm -http://www.secinfo.com/dSm4r.68c.htm -http://www.secinfo.com/dSm4r.69c.htm -http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/modules/by-module/MD5/GAAS/HTML-Parser-3.04.readme -http://polygraph.ircache.net:8181/Game+Controllers/http_-2www.real-e-video.com/price-abuse.html -http://ecomonly.shop.goto.com/z/netadp/search/matches.jhtml?MANUF=Linksys -http://ecomonly.shop.goto.com/z/netadp/search/matches.jhtml?MANUF=Madge -http://freesoftware.subportal.com/sn/Web_Authoring/Misc__Programming_Tools/3100.html -http://www.sam.hi-ho.ne.jp/m-saka/stepwgn/himeji/6scene/ -http://ftp.unina.it/pub/Unix/linux/SuSE/ftp.suse.com/projects/3d/kernel/?N=D -http://www.ld.com/cbd/archive/1999/08(August)/10-Aug-1999/61awd001.htm -http://www.ld.com/cbd/archive/1999/08(August)/10-Aug-1999/61awd004.htm -http://statweb.byu.edu/sasdoc/sashtml/stat/chap2/sect5.htm -http://www.diogenes.de/4DACTION/web_rd_aut_show_authorlist/ID=483367&chr=F -http://web1.localbusiness.com/Story/Email/1,1198,RDU_461041,00.html -http://www.clientwire.com/A55697/tmr.nsf/vwApprovedResumesbyDate!OpenView&Start=55&Count=50&Collapse=48 -http://cpan.nitco.com/modules/by-module/Mail/JWIED/SNMP-Monitor-0.1011.readme -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=178,16,10 -http://www6.compaq.com/products/quickspecs/10135_na/10135_na.PDF -http://www.suk2.com/user/777/20001012.html -http://www.jamba.de/KNet/_KNet-vAy8j1-iFd-13az6/browse.de/node.0/cde7f2elw -http://www.imagesofengland.org.uk/41/69/416915.htm -http://ocean.ntou.edu.tw/search*chi/aLaplante,+Phillip+A./alaplante+phillip+a/7,-1,0,B/frameset&F=alappe+frances+moore&1,,2 -http://ocean.ntou.edu.tw/search*chi/aLaplante,+Phillip+A./alaplante+phillip+a/7,-1,0,B/frameset&F=alappe+frances+moore&2,,2 -http://wap.jamba.de/KNet/_KNet-6Fz8j1-oFd-13b3x/admLogin.de/node.0/cde7f1uou -http://yp.gates96.com/14/49/20/26.html -http://yp.gates96.com/14/49/20/37.html -http://yp.gates96.com/14/49/20/39.html -http://yp.gates96.com/14/49/20/86.html -http://yp.gates96.com/14/49/20/94.html -http://yp.gates96.com/14/49/20/97.html -http://yp.gates96.com/14/49/21/19.html -http://yp.gates96.com/14/49/21/43.html -http://yp.gates96.com/14/49/21/68.html -http://yp.gates96.com/14/49/21/78.html -http://yp.gates96.com/14/49/24/6.html -http://yp.gates96.com/14/49/24/62.html -http://yp.gates96.com/14/49/24/77.html -http://yp.gates96.com/14/49/24/83.html -http://yp.gates96.com/14/49/25/30.html -http://yp.gates96.com/14/49/25/41.html -http://yp.gates96.com/14/49/26/17.html -http://yp.gates96.com/14/49/26/53.html -http://yp.gates96.com/14/49/27/21.html -http://yp.gates96.com/14/49/27/27.html -http://yp.gates96.com/14/49/27/45.html -http://yp.gates96.com/14/49/27/65.html -http://yp.gates96.com/14/49/28/71.html -http://www.boston.digitalcity.com/orangecounty/entertainment/article.dci?aid=1293&start=10 -http://tucows.allnet.it/winme/adnload/143-006-005-021.html -http://tucows.allnet.it/winme/adnload/143-006-005-030.html -http://www.trax.nilex.co.uk/trax.cgi/A1C/B1U/A1D/C1R/A2D/A1U/ -http://www.crosswinds.net/~klinnia/DragonsDomain/Nest/nest.htm -http://mirrors.valueclick.com/backup.pause/modules/by-category/99_Not_In_Modulelist/Memoize/?S=A -http://www.tgw.com/EJr.5ajd/customer/category/product.html?SUBCATEGORY_ID=557 -http://www.sohu.com/business_economy/Company/Computer_Internet/Network_System/Network/ -http://china-water.51.net/oicq/oicq_down.htm -http://ftp.lip6.fr/pub/FreeBSD/development/FreeBSD-CVS/ports/math/plplot/patches/Attic/patch-ac,v -http://library.cuhk.edu.hk/search*chi/cHC427.92.C59/chc++427.92+c59/-5,-1,,E/browse -http://yp.gates96.com/4/8/60/2.html -http://yp.gates96.com/4/8/60/19.html -http://yp.gates96.com/4/8/62/9.html -http://yp.gates96.com/4/8/62/23.html -http://yp.gates96.com/4/8/62/59.html -http://yp.gates96.com/4/8/63/26.html -http://yp.gates96.com/4/8/63/41.html -http://yp.gates96.com/4/8/64/48.html -http://yp.gates96.com/4/8/65/0.html -http://yp.gates96.com/4/8/65/42.html -http://yp.gates96.com/4/8/66/13.html -http://yp.gates96.com/4/8/66/88.html -http://yp.gates96.com/4/8/67/23.html -http://yp.gates96.com/4/8/67/51.html -http://yp.gates96.com/4/8/68/11.html -http://yp.gates96.com/4/8/68/16.html -http://yp.gates96.com/4/8/68/78.html -http://www.outpersonals.com/cgi-bin/w3com/pws/out/CehIaxpSN7cGOeOUjXx_FtrylkakPWisW0DYq0MYmHwGxLBo7shB2XGSeXyvbnsBzHMJTZtmYOUK-XaaAW0Yh88wTY-Mms-hxw67Xaw8WMk3-vUJ4sXm4U7yIGdiN9XoPOqfnODrkqXYztjU6Var -http://www.brd.net/brd-cgi/brd_netzwerk?mailto&router&BZ85G0IL -http://power.luneng.com/power/library/jxgcs/jxgc99/jxgc9912/991204.htm -http://www.egroups.com/messages/Creative_Teaching/72?viscount=-30 -http://www.egroups.com/message/Creative_Teaching/85 -http://ftp.eecs.umich.edu/.1/people/elta/cusm-Javajae-elta/?D=A -http://polygraph.ircache.net:8181/cagliari/WHOWOULD.HTM -http://www.tiscover.ch/1Root/Kontinent/6/Staat/30/Bundesland/33/Ort/1564/Homepage/h_homepage...2.html -http://t-online.de/computer/haupt/intcoh87.htm -http://prodigy-sports.excite.com/ncaab/news/025uwire1 -http://wwwold.ifi.uni-klu.ac.at/Manuals/jdk1.1b3/docs/guide/awt/designspec/graphics/imagescale.html -http://www.taconet.com.tw/a6983/ -http://www.mapion.co.jp/custom/AOL/admi/13/13107/higashimukojima/3chome/index-3.html -http://www.mapion.co.jp/custom/AOL/admi/13/13107/higashimukojima/3chome/index-13.html -http://caller-times.com/autoconv/kickoff98/kickoff30.html -http://www.incestpornstories.com/bisexualbisexual/big-bonedmen/beautiesslanted-eyes/plus-sizeoverweight/{teenlink} -http://qcardsccg.safeshopper.com/8/359.htm?923 -http://qcardsccg.safeshopper.com/8/429.htm?923 -http://qcardsccg.safeshopper.com/8/433.htm?923 -http://lib1.nippon-foundation.or.jp/1997/0486/contents/011.htm -http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceOrderStatusOverview-BBC709F1_97EF_F357031944376B6D965FDC23BED4C6F4 -http://in.egroups.com/subscribe/muovimallit -http://multichat.de/fp/talk/cb-funk/4.htm -http://multichat.de/fp/talk/cb-funk/5.htm -http://www.jamba.de/KNet/_KNet-zfB8j1-EFd-13bkr/browse.de/node.0/cde7f2elw -http://www.jamba.de/KNet/_KNet-zfB8j1-EFd-13bl7/showInfo-jobs.de/node.0/cenv0b09a -http://152.80.49.210/PUBLIC/WXMAP/GLOBAL/AVN/2000103000/avn.prp.00-36.swasia.htm -http://retailer.gocollect.com/do/session/1912741/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp -http://retailer.gocollect.com/do/session/1912741/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=2 -http://www.fogdog.com/cedroID/ssd3040183248168/nav/products/winter_sports/1b/shell_jackets/ -http://www.fogdog.com/cedroID/ssd3040183248168/nav/products/featured_brands/3c/all/ -http://kutschen.de/Schoner/literature/Sammlungen/modelle/collections/ -http://el-mundo.es/1999/06/04/television/04N0121.html -http://bitwise.tucows.com/win2k/htmlval2k_license.html -http://bbs.ee.ntu.edu.tw/boards/Saturn/3/7/12/5.html -http://ustlib.ust.hk/search*chi/deconomic+conditions+cameroon+to+1960/deconomic+conditions+cameroon+to+1960/-5,-1,0,B/browse -http://excite.de/kunst/katalog/865 -http://www2.hindustantimes.com/ht/nonfram/280498/detFRO07.htm -http://yp.gates96.com/11/69/0/60.html -http://yp.gates96.com/11/69/1/60.html -http://yp.gates96.com/11/69/1/72.html -http://yp.gates96.com/11/69/2/80.html -http://yp.gates96.com/11/69/3/7.html -http://yp.gates96.com/11/69/3/54.html -http://yp.gates96.com/11/69/3/66.html -http://yp.gates96.com/11/69/3/90.html -http://yp.gates96.com/11/69/3/91.html -http://yp.gates96.com/11/69/4/13.html -http://yp.gates96.com/11/69/4/18.html -http://yp.gates96.com/11/69/4/26.html -http://yp.gates96.com/11/69/4/70.html -http://yp.gates96.com/11/69/5/45.html -http://yp.gates96.com/11/69/5/77.html -http://yp.gates96.com/11/69/6/10.html -http://yp.gates96.com/11/69/6/80.html -http://yp.gates96.com/11/69/7/43.html -http://yp.gates96.com/11/69/7/76.html -http://yp.gates96.com/11/69/8/17.html -http://yp.gates96.com/11/69/8/33.html -http://yp.gates96.com/11/69/8/98.html -http://yp.gates96.com/11/69/9/3.html -http://yp.gates96.com/11/69/9/41.html -http://yp.gates96.com/11/69/9/92.html -http://store.peoplestour.com/kore/catalog/Music/R&B/G_by_artist/104757/product.html -http://free.prohosting.com/~seikyo/speak2.htm -http://pub.chinaccm.com/12/news/200009/16/160724.asp -http://pub.chinaccm.com/12/news/200008/11/155448.asp -http://www.fogdog.com/cedroID/ssd3040183305379/nav/products/featured_brands/12r/spa_products/ -http://itcareers.careercast.com/texis/it/itjs/+EwwBmev6D86ebtwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDacnwmaADdicnmtnaMwDwtnMnDBanDtoDnnGaMw55wqr15nBB5aqwpB1GnaoDhdGMwBodDaBnqrDdcdton5aMFqhTfR20DzmewrwwwpBmGeP0-dmwww5rmeNDwwwBrmeZpwww/jobpage.html -http://www.outdoorwire.com/content/lists/dirt/200004/msg00354.html?{LoadingFrameset} -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=5&discrim=186,22,8 -http://www.teleparc.com/sports/funski/02/03.htm -http://cn.egroups.com/post/safrica_bridge?act=reply&messageNum=43 -http://www.dfae.diplomatie.gouv.fr/culture/france/cinema/documentaires/recherche/francais/ethique.html -http://ring.toyama-ix.net/archives/mac/info-mac/_Communication/ctb/?D=A -http://www.eveclub.com/cgi-bin/eveclub.front/972959528284/Catalog/11000155 -http://www.eveclub.com/cgi-bin/eveclub.front/972959528284/Catalog/2000019 -http://cometweb01.comet.co.uk/do!session=132005&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLljX5fkkKaotHlob5mloLq1 -http://cometweb01.comet.co.uk/do!session=132005&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG3XqLbdlLov4LfpmLiXvL-Zd5jbkLYozKvot0cZd5ockLYozKvsm0uts0cZX5qkXLjbzKKbiLbsfLpflLkp5 -http://www.ualberta.ca/CNS/RESEARCH/Software/SAS/cms/zfor-hex.htm -http://www.ualberta.ca/CNS/RESEARCH/Software/SAS/os390/zlibname.htm -http://genforum.genealogy.com/cgi-bin/print.cgi?hanrahan::175.html -http://library.bangor.ac.uk/search/dAIDS+(Disease)+--+Risk+factors+--+Psychological+aspects+--+Periodicals/daids+disease+risk+factors+psychological+aspects+periodicals/-5,1,1,B/frameset&F=daids+disease+research&1,1, -http://www.rismedia.com/consumer/27/12194/ -http://www.hole.kommune.no/hole/journweb.nsf/weboffjournal!OpenView&Start=39&Count=50&Expand=38 -http://www.etoys.com/prod/toy/53097261 -http://www.outpersonals.com/cgi-bin/w3com/pws/out/J6tI5danl1CaEvxOmyBVl8pzyaGqhs1RWIGq0aJ2_fwvzv4y9T7bHlxQKPzsrhMRN5HEI_Y9ZKrSvboCZvKhdwPPYK2klPp0EqNMO7Mb8fDTcz6xykQv8YQCQ2dy_iLZjbXwrknXqcH32HVSXAq7iUr4yIVG66IK -http://www.amcity.com/jacksonville/stories/1999/11/22/daily16.html?t=printable -http://moviestore.zap2it.com/browse/MOVIES/BOXERSHO/s.F0FWmEHm -http://moviestore.zap2it.com/browse/MOVIES/SHIRT/s.F0FWmEHm -http://moviestore.zap2it.com/browse/MOVIES/TIE/s.F0FWmEHm -http://moviestore.zap2it.com/browse/MOVIES/WATCH/s.F0FWmEHm -http://yp.gates96.com/11/25/30/0.html -http://yp.gates96.com/11/25/30/47.html -http://yp.gates96.com/11/25/31/87.html -http://yp.gates96.com/11/25/32/3.html -http://yp.gates96.com/11/25/32/61.html -http://yp.gates96.com/11/25/32/97.html -http://yp.gates96.com/11/25/33/6.html -http://yp.gates96.com/11/25/33/81.html -http://yp.gates96.com/11/25/33/83.html -http://yp.gates96.com/11/25/34/10.html -http://yp.gates96.com/11/25/34/35.html -http://yp.gates96.com/11/25/34/88.html -http://yp.gates96.com/11/25/34/90.html -http://yp.gates96.com/11/25/35/95.html -http://yp.gates96.com/11/25/36/19.html -http://yp.gates96.com/11/25/36/98.html -http://yp.gates96.com/11/25/37/61.html -http://yp.gates96.com/11/25/37/74.html -http://yp.gates96.com/11/25/38/2.html -http://yp.gates96.com/11/25/38/62.html -http://yp.gates96.com/11/25/39/1.html -http://yp.gates96.com/11/25/39/25.html -http://yp.gates96.com/11/25/39/85.html -http://yp.gates96.com/11/25/39/95.html -http://www.linux.com/networking/network/industry/server/community/Red_Hat/ -http://www.linux.com/networking/network/industry/server/community/Slashdot/ -http://www.linux.com/networking/network/industry/server/community/growth/ -http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/modules/by-category/16_Server_and_Daemon_Utilities/Server/DRUOSO/Server-FastPL-1.0.0.readme -http://ftp.nacamar.de/pub/NetBSD/NetBSD-current/pkgsrc/parallel/clusterit/pkg/DESCR -http://dk.egroups.com/login.cgi?login_target=%2Fgroup%2FGravesrus -http://www.maxfunds.com/MF1000.nsf/FUNDanalysisPrint/FGOAX -http://www.gbnf.com/genealog2/brothers/html/d0065/I12666.HTM -http://office.net/benelux/nld/downloadcatalog/dldpowerpoint.asp -http://yam.com/en/rand/ent/music/minfo/ -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/Collect_DB_Advers2/2000-09-28/23/?N=D -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=22,11,35 -http://dk.egroups.com/messages/lafz/6 -http://www.online.kokusai.co.jp/Words/V0043555/wrd/G700/words/kana_main.html -http://adelaida.net/music/texts/pink75.html -http://support.tandy.com/support_audio/doc40/40914.htm -http://www.nutritionblvd.com/426162.html -http://www.nutritionblvd.com/426121.html -http://www.nutritionblvd.com/426117.html -http://www.fogdog.com/cedroID/ssd3040183301450/boutique/aaron_chang/ -http://www.fogdog.com/cedroID/ssd3040183301450/boutique/moving_comfort/ -http://www.fogdog.com/cedroID/ssd3040183301450/fly/ -http://in.egroups.com/login.cgi?login_target=%2Fmessage%2Finfogiappone%2F81 -http://in.egroups.com/post/infogiappone?act=reply&messageNum=81 -http://cn.egroups.com/message/1800list/5416 -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.slac.stanford.edu/grp/arb/tn/arbvol1/ARDB011.pdf -http://crrstv.tucows.com/winnt/adnload/135146_46908.html -http://syix.tucows.com/win2k/adnload/61785_28334.html -http://ftp.ccu.edu.tw/pub/language/tcl/sorted/packages-7.6/sound/xmpeg_0.5/ -http://www.eos.ncsu.edu/linux/LDP/LDP/khg/HyperNews/get/fs/fs/3.html -http://polygraph.ircache.net:8181/http_-2www.tvguide.com/sports/football/http_-2home.netscape.com/http_-2www.premaonline.com/http_-2www.ionet.net/~burndragon/form1.html -http://se.egroups.com/group/MyLuminaGoezBoom -http://www.diogenes.ch/4DACTION/web_rd_aut_show_author/a_id=7056553&tmpl=AUT_00&ID=483371 -http://www3.newstimes.com/archive97/apr0497/tvg.htm -http://dic.empas.com/show.tsp/?q=edger&f=B -http://www.brio.de/BRIO.catalog/39fe2f570905fb6a2740d472aa7806aa/UserTemplate/2 -http://itcareers.careercast.com/texis/it/itjs/+uwwBme7WD86eYtwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDaoDhdGMwBodDa5nq1GoBOanDtoDnnGaiw5roDtBdDanDBnGpGo5naGn31oGnmawGqroBnqB1Gna5O5BnM5aMFqhTfR20DzmehrwwwpBmeZWD86Nwww5rmekdwwwBrmeZpwww/jobpage.html -http://itcareers.careercast.com/texis/it/itjs/+pwwBmet5986twwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDaoDhdGMwBodDa5nq1GoBOanDtoDnnGaiw5roDtBdDanDBnGpGo5naGn31oGnmawGqroBnqB1Gna5O5BnM5aMFqhTfR20DzmehrwwwpBmeZWD86Nwww5rmekdwwwBrmeZpwww/morelike.html -http://biblioteca.upv.es/bib/doc/doc_fisbd/180/132317//C/1825784/0////25/S/MLTPAI -http://www.stanford.edu/~sevls/files/?M=D -http://library.bangor.ac.uk/search/dSystem+analysis+--+Periodicals/dsystem+analysis+periodicals/-17,-1,0,B/browse -http://mirror.ox.ac.uk/Mirrors/ftp.redhat.com/roughcuts/m68k/misc/src/install/pci-probing/CVS/ -http://yp.gates96.com/0/13/10/17.html -http://yp.gates96.com/0/13/11/26.html -http://yp.gates96.com/0/13/12/20.html -http://yp.gates96.com/0/13/12/24.html -http://yp.gates96.com/0/13/12/49.html -http://yp.gates96.com/0/13/13/22.html -http://yp.gates96.com/0/13/13/80.html -http://yp.gates96.com/0/13/15/8.html -http://yp.gates96.com/0/13/16/4.html -http://yp.gates96.com/0/13/16/18.html -http://yp.gates96.com/0/13/16/64.html -http://yp.gates96.com/0/13/17/15.html -http://yp.gates96.com/0/13/18/11.html -http://yp.gates96.com/0/13/18/18.html -http://yp.gates96.com/0/13/19/5.html -http://yp.gates96.com/0/13/19/22.html -http://yp.gates96.com/0/13/19/60.html -http://library.cuhk.edu.hk/search*chi/aYen-shou,+Shih,+904-975./ayen+shou+shih++904++975/-5,-1,0,E/2browse -http://china.sydney2000.com/StaticNews/2000-07-29/News372a86.htm -http://www.fujian-window.com/Fujian_w/news/mzrb1/20000724/3_1.html -http://www.fujian-window.com/Fujian_w/news/mzrb1/20000724/3_2.html -http://legalminds.lp.findlaw.com/list/law-lib/nav07807.html -http://ftp.fi.debian.org/debian/dists/woody/contrib/binary-sparc/tex/?N=D -http://community.webshots.com/photo/3635718/3636284GcTotmmONR -http://www.power2lead.com/Global/English.nsf/pgWWLocations!OpenPage&ExpandSection=23,24,25,17,10 -http://spaindustry.com/por/exp/911.html -http://niagara.tucows.com/winme/preview/10464.html -http://niagara.tucows.com/winme/adnload/138750_30032.html -http://niagara.tucows.com/winme/adnload/138743_30025.html -http://niagara.tucows.com/winme/adnload/138740_30023.html -http://retailer.gocollect.com/do/session/1912780/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/advanced_search.asp -http://preview.egroups.com/messages/UKMatrix -http://fi.egroups.com/login.cgi?login_target=%2Fmessage%2Fhecates_news%2F21 -http://pub.chinaccm.com/02/news/200005/31/133146.asp -http://pub.chinaccm.com/02/news/200005/31/133212.asp -http://localhost/test, -http://kuyper.calvin.edu/fathers2/ANF-02/anf02-25.htm -http://kuyper.calvin.edu/fathers2/ANF-02/anf02-56.htm -http://totalsports.aol.com/stats/bbo/mlb/mlb/990910.cle.AT.cws.box.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/990915.nym.AT.col.box.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/990919.cws.AT.tor.box.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/990926.hou.AT.mil.box.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/991003.nyy.AT.tam.box.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/991006.bos.AT.cle.box.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/ALscores.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/CAT.ROS.pit.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/NYY.CLE.pit.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/mlb.ARI.recap.html -http://totalsports.aol.com/stats/bbo/mlb/mlb/mlb.atl.vs.hou.stat.html -http://www.jpc-music.com/2241771.htm -http://sunsite.org.uk/packages/TeX/uk-tex/macros/latex/contrib/supported/europs/?M=A -http://mitglied.tripod.de/blueblood/forum.html -http://kuyper.calvin.edu/fathers2/NPNF1-06/npnf1-06-92.htm -http://garbage.sonicnet.com/classical/features/Thomas,_Tilson/060500/index04.jhtml -http://dk.egroups.com/post/danish?act=forward&messageNum=6 -http://www.bornloser.com/comics/peanuts/f_profiles/html/f4b1.html -http://www.online.kokusai.co.jp/Home/V0043517/wrd/G100/ -http://www.affiliate.hpstore.hp.co.uk/do/session/380823/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/Main/acheterhp/ -http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/Startseite/Top-Darlehens-Konditionen/Gemeinsam/erreichenPartner/email3d.htm -http://sunsite.org.uk/public/pub/Mirrors/ftp.hpc.uh.edu/pub/?D=A -http://genforum.genealogy.com/cgi-bin/print.cgi?tillery::418.html -http://ring.omp.ad.jp/archives/lang/perl/CPAN/authors/id/MSCHWARTZ/?M=A -http://montxsuz.all-hotels.com/usa/massachusetts/plymouth_e1.htm -http://montxsuz.all-hotels.com/usa/massachusetts/brewster_e1.htm -http://montxsuz.all-hotels.com/usa/massachusetts/edgartown_e1.htm -http://montxsuz.all-hotels.com/usa/massachusetts/north_dartmouth_e1.htm -http://montxsuz.all-hotels.com/usa/massachusetts/washington_e1.htm -http://romeo.univ-savoie.fr/winnt/adnload/51179_28892.html -http://www.dispatch.co.za/1998/12/02/sport/FALDO.HTM -http://www.dispatch.co.za/1998/12/02/sport/RACE2.HTM -http://store1.europe.yahoo.com/brink2/2000074707407.html -http://www34.yahoo.co.jp/horse/1999/tokyo/0530/result_08.html -http://members.tripod.co.jp/suiha_izumi/gallery-taikoubou-.htm -http://linuxberg.vol.at/gnomehtml/adnload/020-008-002-004_6145.html -http://books.hyperlink.com/bookdetails/Nuclear_Power_Plants_Worldwide/0810388804 -http://www.hudecek.de/gen/gen57.htm -http://www.hudecek.de/gen/gen61.htm -http://unofficial.capital.edu/students/kralph/ -http://web6.peopledaily.com.cn/gjjrb/200004/home.htm -http://www.gov.hk/hkma/eng/public/sccr/toc.htm -http://www4.50megs.com/johnphil29/86week3injury.htm -http://www4.50megs.com/johnphil29/86week3loupitlog.htm -http://naver22.juniornaver.co.kr/Entertainment_and_Arts/Performing_Arts/Theater/Musical/ -http://198.103.152.100/search*frc/dInfrastructure+(Economics)+--+Canada/dinfrastructure+economics+canada/-5,-1,0,B/frameset&F=dinfrastructure+economics&3,,0 -http://198.103.152.100/search*frc/dInfrastructure+(Economics)+--+Canada/dinfrastructure+economics+canada/-5,-1,0,B/frameset&F=dinfrastructure+economics&5,,0 -http://www.playgirl.dk/oncampus/feature/collegemovies/06.html -http://www.linux.com/networking/support/red_hat/internet/consumer/growth/ -http://www.linux.com/networking/support/red_hat/internet/consumer/mainstream/ -http://no.egroups.com/message/tengu-l/224 -http://no.egroups.com/message/tengu-l/229 -http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/romfs.txt?only_with_tag=LINUX-2_3_24 -http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/romfs.txt?only_with_tag=LINUX-2_3_22 -http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/romfs.txt?only_with_tag=LINUX-2_3_16 -http://sunsite.informatik.rwth-aachen.de/LinuxArchives/slackware/slackware/source/a/e2fsprog/?M=A -http://bbs.syu.ac.kr/NetBBS/Bbs.dll/ipspds018/lst/qqa/f/qqo/008A/zka/B2-kB2-p -http://stulchik.list.ru/catalog/13346.html -http://katalog.wp.pl/www/Biznes_i_Ekonomia/Firmy_Podzial_wg_Branz/Elektrotechnika_i_Energetyka/index25.html -http://www.fogdog.com/cedroID/ssd3040183313356/nav/stores/tennis/ -http://www.fogdog.com/cedroID/ssd3040183313356/customer_service/shop_by_catalog.html -http://193.207.57.3/cgi-win/hiweb.exe/a2/d13/b4,4,1f,4,4,, -http://ring.omp.ad.jp/archives/lang/perl/CPAN/modules/by-authors/id/JPRIT/Envy-2.45.readme -http://193.207.57.3/cgi-win/hiweb.exe/a2/d1342/b4,4,1f,e,e,, -http://library.wuhee.edu.cn/dzsy/military/china/army/002.htm -http://library.wuhee.edu.cn/dzsy/military/china/army/006.htm -http://library.wuhee.edu.cn/dzsy/military/china/army/059.htm -http://library.wuhee.edu.cn/dzsy/military/china/army/095.htm -http://polygraph.ircache.net:8181/http_-2www.geocities.com/TimesSquare/Maze/2075/http_-2www.yahoo.com/Science/Engineering/Mechanical_Engineering/corporate.htm -http://198.103.152.100/search*frc/aGundavaram,+Shishir/agundavaram+shishir/-17,-1,0,B/frameset&F=aguirdham+maureen&1,1 -http://findmail.com/message/geewhiz/21 -http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/19P02|972959597|Luggage|user|0|1,0,0,1 -http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|19P03|972959597|Luggage|user|0|1,0,0,1 -http://nme.com/AST/Discussion_Groups/CDA/Message_Search/1,1105,37_92-0-0-7,00.html -http://namviet.subportal.com/sn/Programming/Visual_Basic_Components_H-P/5638.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4963.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4810.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4735.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/3294.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/3329.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4689.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4646.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4582.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4587.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4154.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4607.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4600.html -http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4571.html -http://www.gotocity.com/local/2/us/KS/g/67455/shopping/ -http://www.mapion.co.jp/custom/AOL/admi/13/13115/ogikubo/1chome/index-1.html -http://www.mapion.co.jp/custom/AOL/admi/13/13115/ogikubo/1chome/index-21.html -http://neuro-www.mgh.harvard.edu/forum_2/ChronicPainF/Capornottocapthatisthe.html -http://www.yagoo.co.kr/stats/pitching.asp?Mlbmanid=MIGDEL7299 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=50&discrim=165,233,7 -http://www.mirror.edu.cn/res/sunsite/pub/academic/literature/book-reviews/1994/8-August/?N=D -http://www.ferien-immobilien.de/ungarn/verkauf/Versteigerungen-IB/Startseite/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/Gemeinsam/vertriebspartner.htm -http://www.ferien-immobilien.de/ungarn/verkauf/Versteigerungen-IB/Startseite/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/Gemeinsam/feedback.html -http://www.bjd.com.cn/BJWB/20000401/GB/BJWB^10199^1^01W136.htm -http://pluto.beseen.com/boardroom/u/49766/ -http://amadeus.siba.fi/doc/bitchx/documentation/color.txt -http://www.ealingcommon.londonengland.co.uk/pensions.htm -http://pub8.ezboard.com/fthecriticalpoetsmessageboartheartofcritiquing.showMessage?topicID=11.topic&index=13 -http://pub8.ezboard.com/fthecriticalpoetsmessageboareverythingelse.showMessage?topicID=223.topic&index=10 -http://www.endocrine.ru/Meln_09_10_00/_vti_bin/shtml.exe/meln_post.htm?79 -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,0+9,3-12,0+18,0 -http://www.jobvillage.com/channel/jobs/media_communication/b.9255.g.1733.html -http://www.teenplatinum.com/barelylegal/no-boundarieshardcore/flashingbarely-legal/sweatingendurance/cuntamateur/chinesepetite/bootygay-bar/lubricationfellatio.html -http://www.babyheirlooms.com/catalog/htmlos.cat/001222.1.5246799112 -http://src.openresources.com/debian/src/utils/HTML/R/change_cur_jutil.html -http://genforum.genealogy.com/caudill/messages/389.html -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959928076/Catalog/1000003 -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959928076/ContentView/1000188/1/1201981 -http://www.marketingtool.com/contribute/webfirm/b.435.r.2416.html -http://dell.excite.co.jp/member_encounters/mailing_list/ml_for_women -http://www.angeredsgymn.se/doc/sdb/en/html/keylist.SIGNSET.html -http://map.ipc.co.jp/asp/onmap/r/new/g-27/f-525628/ -http://www.jpc-music.com/2549026.htm -http://www.egroups.com/message/nandscarolina/324?source=1 -http://www.jpc-music.com/2226499.htm -http://www.jpc-music.com/2226480.htm -http://tucows.bigskysoft.com/winnt/miscaudiont_rating.html -http://tucows.bigskysoft.com/winnt/adnload/69355_28370.html -http://www.hole.kommune.no/hole/journweb.nsf/weboffjournal!OpenView&Start=115.23&Count=50&Expand=130 -http://personal.atl.bellsouth.net/mia/a/j/ajcubas/ -http://yp.gates96.com/7/49/21/96.html -http://yp.gates96.com/7/49/22/39.html -http://yp.gates96.com/7/49/22/60.html -http://yp.gates96.com/7/49/22/70.html -http://yp.gates96.com/7/49/22/75.html -http://yp.gates96.com/7/49/23/8.html -http://yp.gates96.com/7/49/23/30.html -http://yp.gates96.com/7/49/23/43.html -http://yp.gates96.com/7/49/24/7.html -http://yp.gates96.com/7/49/24/8.html -http://yp.gates96.com/7/49/24/27.html -http://yp.gates96.com/7/49/24/49.html -http://yp.gates96.com/7/49/25/92.html -http://yp.gates96.com/7/49/26/56.html -http://yp.gates96.com/7/49/26/77.html -http://yp.gates96.com/7/49/28/23.html -http://yp.gates96.com/7/49/28/34.html -http://yp.gates96.com/7/49/29/56.html -http://yp.gates96.com/7/49/29/60.html -http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|38P08B|972959501|Communications|user|0|1,0,0,1 -http://193.207.57.3/cgi-win/hiweb.exe/a2/d170/b9,4,1f,1c,1c,, -http://wuarchive.wustl.edu/systems/linux/replay/debian/dists/unstable/non-US/binary-hurd-i386/?M=D -http://www.private-immobilien-boerse.de/friesland/verkauf/Ferien-IB/Startseite/Gemeinsam/MarketingStrategie/Allgemeine-IB/Startseite/Exklusiv-IB/Startseite/ -http://citeseer.nj.nec.com/update/269184 -http://citeseer.nj.nec.com/cidcontext/3266491 -http://citeseer.nj.nec.com/cidcontext/3266502 -http://genforum.genealogy.com/cgi-genforum/forums/hinkle.cgi?786 -http://eagle.synet.edu.cn/mirror/www.wisc.edu/grad/catalog/cals/biometry.html -http://cisne.sim.ucm.es/search*spi/cCDR7(035)TRA/ccdr7(035)tra/-5,-1,0,B/frameset&F=ccdr7(058)may&1,1 -http://www.wfg-rhein-lahn.de/goldenes-fass/schrott2.htm -http://www.jamba.nl/KNet/_KNet-6Aw8j1-pC4-ptt0/browse.nl/node.0/cdn40t70v -http://www.dcc.ufmg.br/Entnet/estrem/tsld018.htm -http://sites.uol.com.br/knaumann/DorstnerDrahtwerke.html -http://64.209.212.162/learnlots/step/0,2891,9+47+95+23413+12412_0,00.html -http://www.on-semiconductor.com/pub/prod/0,1824,productsm_ProductSummary_BasePartNumber=LM337A,00.html -http://jxi.gov.cn/yw-gn001.nsf/view!OpenView&Start=39.19&Count=30&Expand=53 -http://systemlogic.neoseeker.com/Games/Products/PC/dropship/dropship_reviews.html -http://link.fastpartner.com/do/session/600373/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/smartguy.php -http://www.bsv.ch/ch/d/sr/0_211_222_1/a10.html -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/contact.netscape.com/contact -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/entertainment.netscape.com/entertainment/ -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/games.netscape.com/computing/games/features/ -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/home.netscape.com/finance/taxes/ -http://link.fastpartner.com/do/session/600379/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/brleksaker.php -http://itcareers.careercast.com/texis/it/itjs/+TwwBmeOWD86eDhwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewPXwotoBwcaqconDBahoDwDqnaqddGmoDwBdGaqdMpwDon5aBnwMax1mtnBoDtaMwoDBnDwDqnapGdqn55n5aGn51MnaMFqryfHfREIDzmUwwwpBme+9D86Exww5rme7dwwwBrmeZpwww/jobpage.html -http://fi.egroups.com/message/handebol_aaagm/5?source=1 -http://www.crutchfield.com/cgi-bin/S-SHC3792E7De/viewcart.asp -http://www.links2go.org/more/www.asle.umn.edu/ -http://yp.gates96.com/7/69/10/58.html -http://yp.gates96.com/7/69/10/64.html -http://yp.gates96.com/7/69/10/76.html -http://yp.gates96.com/7/69/10/91.html -http://yp.gates96.com/7/69/11/31.html -http://yp.gates96.com/7/69/11/67.html -http://yp.gates96.com/7/69/11/70.html -http://yp.gates96.com/7/69/11/88.html -http://yp.gates96.com/7/69/11/96.html -http://yp.gates96.com/7/69/12/25.html -http://yp.gates96.com/7/69/12/29.html -http://yp.gates96.com/7/69/12/61.html -http://yp.gates96.com/7/69/12/65.html -http://yp.gates96.com/7/69/12/73.html -http://yp.gates96.com/7/69/13/30.html -http://yp.gates96.com/7/69/13/36.html -http://yp.gates96.com/7/69/14/8.html -http://yp.gates96.com/7/69/14/32.html -http://yp.gates96.com/7/69/14/54.html -http://yp.gates96.com/7/69/14/62.html -http://yp.gates96.com/7/69/14/83.html -http://yp.gates96.com/7/69/15/34.html -http://yp.gates96.com/7/69/15/87.html -http://yp.gates96.com/7/69/16/18.html -http://yp.gates96.com/7/69/17/5.html -http://yp.gates96.com/7/69/17/22.html -http://yp.gates96.com/7/69/17/44.html -http://yp.gates96.com/7/69/17/86.html -http://yp.gates96.com/7/69/17/88.html -http://yp.gates96.com/7/69/18/16.html -http://yp.gates96.com/7/69/18/83.html -http://yp.gates96.com/7/69/18/88.html -http://yp.gates96.com/7/69/19/0.html -http://yp.gates96.com/7/69/19/1.html -http://yp.gates96.com/7/69/19/97.html -http://213.36.119.69/do/session/152995/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/jeux/jeux_himalaya.html -http://www.egroups.com/post/sikhstudent?act=forward&messageNum=77 -http://ca.yahoo.com/Regional/U_S__States/Wisconsin/Metropolitan_Areas/Milwaukee_Metro/Business_and_Shopping/Shopping_and_Services/Food_and_Drink/Beverages/ -http://www.aelita.net/products/services/library/~archive/Download_redirect/company/news/default.htm -http://mindex.tucows.com/winme/preview/430.html -http://coda.nctu.edu.tw/vendors/DBMaker/DBMaker/driver/PHP/?S=A -http://www.streetprices.com/Electronics/Computer_Hardware_PC/Switches/Monitor/MAKE+BELKIN+COMPONENTS/sortproductbydesc/SP151043.html -http://wynnsystems.com/y9I_5aVd/careerlink.html -http://www.volny.cz/alik/akordy/zizen.htm -http://www.houses-apartment-listings.com/Michigan/city_search_criteria.asp?state=MI&City=CHAMPION -http://pub9.ezboard.com/fpyro1394pyro1394.showAddReplyScreenFromWeb?topicID=345.topic -http://www.maastrek.de/maas/01851471b455eff5cd01/1/0/1 -http://beta.mkn.co.uk/wine/order/champ2?what-mnw9=1 -http://beta.mkn.co.uk/wine/order/champ2?what-mnw14=1 -http://sunsite.org.uk/public/pub/packages/andrew/auis-6.3/overhead/ -http://www.ferien-immobilien.de/Spanien/Verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Exklusiv-IB/Startseite/Gemeinsam/geschaeftsbedingungen.htm -http://www.trax.nilex.co.uk/trax.cgi/A1S/A2S/A3S/1AL/A2D/A1S/ -http://www.trax.nilex.co.uk/trax.cgi/A1S/A2S/A3S/1AL/A2D/C2S/ -http://tv.thevines.com/leaf/AA0000369148/3/1 -http://tv.thevines.com/leaf/AA0000369148/37/0/&favorite[join]=yes -http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/showFolder/100001/1304571 -http://freebsd.ntu.edu.tw/perl/modules/by-module/FileCache/ILYAZ/?D=A -http://www.highwired.net/Sport/Player/0,2291,2037-46698,00.html -http://www.nl.sco.com/unixware/adminguide/qs-11-32.html -http://www.online.kokusai.co.jp/Service/V0043502/wrd/G200/service/service.html -http://www.realize.com/ambe7581.htm,qt=e784fe2f=2a38a234-14-26557ed-80000000-0-0-3-- -http://www.realize.com/am9a7d81.htm,qt=e784fe2f=2a38a234-14-26557ed-80000000-0-0-3-- -http://www.geocities.co.jp/Colosseum/7952/dragon3.html -http://uk.dir.clubs.yahoo.com/Entertainment___Arts/Magic/~other/~White_Pages/2.html -http://yp.gates96.com/13/9/60/95.html -http://yp.gates96.com/13/9/60/97.html -http://yp.gates96.com/13/9/61/12.html -http://yp.gates96.com/13/9/61/42.html -http://yp.gates96.com/13/9/61/52.html -http://yp.gates96.com/13/9/62/13.html -http://yp.gates96.com/13/9/62/19.html -http://yp.gates96.com/13/9/62/32.html -http://yp.gates96.com/13/9/62/44.html -http://yp.gates96.com/13/9/62/75.html -http://yp.gates96.com/13/9/63/71.html -http://yp.gates96.com/13/9/63/89.html -http://yp.gates96.com/13/9/64/16.html -http://yp.gates96.com/13/9/64/64.html -http://yp.gates96.com/13/9/64/83.html -http://yp.gates96.com/13/9/65/15.html -http://yp.gates96.com/13/9/65/39.html -http://yp.gates96.com/13/9/65/81.html -http://yp.gates96.com/13/9/66/19.html -http://yp.gates96.com/13/9/66/51.html -http://yp.gates96.com/13/9/67/72.html -http://yp.gates96.com/13/9/67/75.html -http://yp.gates96.com/13/9/67/93.html -http://yp.gates96.com/13/9/67/94.html -http://yp.gates96.com/13/9/68/9.html -http://yp.gates96.com/13/9/68/14.html -http://yp.gates96.com/13/9/68/23.html -http://yp.gates96.com/13/9/68/39.html -http://yp.gates96.com/13/9/68/68.html -http://yp.gates96.com/13/9/69/22.html -http://yp.gates96.com/13/9/69/62.html -http://shop.intouch.de/cgi-bin/Eternit-Shop/1678827467/IconBar -http://www.jango.com/home_and_garden/outdoor_and_garden/gardening/outdoor_furniture/miscellaneous/?num=1&prod=7 -http://ring.omp.ad.jp/archives/lang/perl/CPAN/authors/id/SHERWOOD/CHECKSUMS -http://www.acad.polyu.edu.hk/spkg/sas8/sasdoc/hrddoc/indfiles/57263.htm -http://ftp.te.fcu.edu.tw/cpatch/system/mbm/source/?D=A -http://web1.localbusiness.com/Story/0,1118,SAN_11751,00.html -http://www.amulation.com/md-l-archive/199902/msg00357.html -http://ads3.zdnet.com/c/g=r1517&c=a53585&camp=c13878&idx=2000.10.30.21.32.11/www.sega.com/seganet -http://pub.chinaccm.com/23/news/200009/30/111206.asp -http://www.online.kokusai.co.jp/Service/V0043534/wrd/G200/service/service.html -http://www.buybuddy.com/sleuth/27/1/1060204/2992/ -http://www.friend4life.com/foreign-affair/infopage/info12655.htm -http://www.friend4life.com/women/info7867.htm -http://www.friend4life.com/women/info11637.htm -http://www.chabadlibrary.org/ecatalog/EC07/EC07328.HTM -http://tulips.ntu.edu.tw/search*chi/cJC311+S275+1992/cjc++311+s275+1992/7,-1,0,E/2browse -http://stationradio.subportal.com/sn/Network_and_Internet/Misc__Networking_Tools/866.html -http://www.canlii.org/ca/regu/sor88-278/sec2.html -http://www.rottentomato.com/movies/titles/traffic/click.php?review=1 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=4,26,16,35,15 -http://www.staroriental.net/nav/soeg/ihf,aai,n2,169,Electric+Wave+Girl+1998.html -http://www.staroriental.net/nav/soeg/ihf,aai,n2,176,Electric+Wave+Girl+1998.html -http://www.teenplatinum.com/barelylegal/bellyovary/parkingjail-bait/oral-sexoral-sex/big-bonedmen/sex/main.html -http://troy.lib.sfu.ca/search/snewsinc/snewsinc/-5,1,1,B/frameset&F=snewsbrief&1,,2 -http://biblio.cesga.es:81/search*gag/dLó%3Bpez+de+Medina,+Juan/dlopez+de+medina+juan/-5,-1,0,B/frameset&F=dlopez+de+ayala+pedro+critica+e+interpretacion&1,,2 -http://proxy.rmcnet.fr/udsp68/commissions.htm -http://proxy.rmcnet.fr/udsp68/csp_colmar.htm -http://yp.gates96.com/4/0/70/88.html -http://yp.gates96.com/4/0/71/51.html -http://yp.gates96.com/4/0/71/57.html -http://yp.gates96.com/4/0/71/84.html -http://yp.gates96.com/4/0/71/85.html -http://yp.gates96.com/4/0/72/84.html -http://yp.gates96.com/4/0/72/94.html -http://yp.gates96.com/4/0/73/15.html -http://yp.gates96.com/4/0/73/92.html -http://yp.gates96.com/4/0/74/96.html -http://yp.gates96.com/4/0/75/23.html -http://yp.gates96.com/4/0/75/94.html -http://yp.gates96.com/4/0/76/41.html -http://yp.gates96.com/4/0/76/82.html -http://yp.gates96.com/4/0/77/64.html -http://yp.gates96.com/4/0/78/93.html -http://yp.gates96.com/4/0/79/72.html -http://yp.gates96.com/4/0/79/82.html -http://fi.egroups.com/message/morehealth/13?source=1 -http://cn.egroups.com/message/Multicultural/489 -http://cn.egroups.com/message/Multicultural/495 -http://cn.egroups.com/message/Multicultural/497 -http://yp.gates96.com/4/1/60/54.html -http://yp.gates96.com/4/1/60/69.html -http://yp.gates96.com/4/1/61/83.html -http://yp.gates96.com/4/1/62/68.html -http://yp.gates96.com/4/1/63/13.html -http://yp.gates96.com/4/1/63/42.html -http://yp.gates96.com/4/1/63/61.html -http://yp.gates96.com/4/1/63/73.html -http://yp.gates96.com/4/1/64/15.html -http://yp.gates96.com/4/1/64/49.html -http://yp.gates96.com/4/1/64/54.html -http://yp.gates96.com/4/1/65/19.html -http://yp.gates96.com/4/1/65/26.html -http://yp.gates96.com/4/1/65/69.html -http://yp.gates96.com/4/1/65/98.html -http://yp.gates96.com/4/1/66/57.html -http://yp.gates96.com/4/1/66/62.html -http://yp.gates96.com/4/1/66/79.html -http://yp.gates96.com/4/1/66/86.html -http://yp.gates96.com/4/1/66/88.html -http://yp.gates96.com/4/1/67/6.html -http://yp.gates96.com/4/1/67/49.html -http://yp.gates96.com/4/1/67/76.html -http://yp.gates96.com/4/1/67/78.html -http://yp.gates96.com/4/1/68/57.html -http://yp.gates96.com/4/1/69/10.html -http://yp.gates96.com/4/1/69/47.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=blich&l=de -http://www.secinfo.com/d17xw.53m.htm -http://www.cs.unm.edu/sheppard-bin/igmdesc.cgi/n=shep/I1475 -http://home.pchome.com.tw/computer/54915491/data/data2.htm -http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/author/3910318 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=215&discrim=164,80,165 -http://library.bangor.ac.uk/search/cHN582+.R45+1991/chn++582+r45+1991/-5,-1,0,B/bibandlinks&F=chn++573+h313&1,1 -http://mai.flora.org/forum/new-2110 -http://www.tucows.telia.no/winnt/adnload/68747_30295.html -http://www.tucows.telia.no/winnt/adnload/135780_47081.html -http://www.annotate.net/html/Annotate_Directory/Top/Regional/North_America/United_States/Louisiana/Localities/C/Coushatta -http://wine.cc.chuo-u.ac.jp/home/pub/TeX/CTAN/support/mctex/?D=A -http://pub21.ezboard.com/ujaletheadmin.showPublicProfile?language=EN -http://ftp.lip6.fr/pub11/NetBSD/NetBSD-current/src/usr.sbin/quot/Makefile -http://www.hrdc.gc.ca/socpol/cfs/bulletins/jan97/man_f.shtml -http://www.loveme.com/infopage/info23899.htm -http://polygraph.ircache.net:8181/http_-2www.fsa.org/MutareMap.asp -http://www.sdrt.com.cn/tiyuzhichuang/wangqiu/mingxingdangan/4/gelafu.htm -http://home.netvigator.com/~raympoon/digital7.htm -http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/3d-service/Top-Darlehens-Konditionen/Startseite/Gemeinsam/immolink/Startseite/froben.htm -http://www.hum.auc.dk/~magnus/MHonArc/NTSEC/frm00999.html -http://www.hum.auc.dk/~magnus/MHonArc/NTSEC/frm09255.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380849/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry.asp -http://genforum.genealogy.com/cgi-genforum/forums/skeen.cgi?265 -http://wiem.onet.pl/wiem/00f59f.html -http://www2.ipc.pku.edu.cn/scop/data/scop.1.007.033.001.002.000.html -http://splitrock.themes.tucows.com/cursors/adnload/15789.html -http://splitrock.themes.tucows.com/cursors/adnload/15884.html -http://www.cpami.gov.tw/ymsnp/animal/insect/34654text.htm -http://lateline.muzi.net/ll/fanti/89027.shtml -http://www.hig.se/(accessed,comment,date,header,quote)/~jackson/roxen/ -http://ftpsearch.belnet.be/ftp/packages/Linux-RedHat/up2date/rhl-6.0/alpha/README -http://ftpsearch.belnet.be/ftp/packages/Linux-RedHat/up2date/rhl-6.0/alpha/etc/ -http://ftpsearch.belnet.be/ftp/packages/Linux-RedHat/up2date/rhl-6.0/alpha/lib/ -http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/http_-2www.microsoft.com/ntserver/http_-2www.netscape.com/comprod/mirror/http_-2gateway.olympcfunding.com/products.html -http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/http_-2www.microsoft.com/ntserver/http_-2www.netscape.com/comprod/mirror/http_-2gateway.olympcfunding.com/products/ -http://f7.parsimony.net/forum9177/messages/638.htm -http://f7.parsimony.net/forum9177/messages/594.htm -http://japan.medscape.com/medscape/HIV/journal/1998/v04.n03/expert1098/expert1098.html -http://golfonline.comfluent.net/cgi.pan$advsts&Dicky_Pride&102&lwfth&pga?golfstats -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=93&discrim=5,200,183 -http://girls.4gee.com/japan/azumi_kawashima/big_page/0023.htm -http://www.jobvillage.com/channel/jobs/travel/travel_guide/b.4899.g.37.html -http://www.chaos.dk/sexriddle/b/o/q/p/ -http://www.osiris.978.org/~brianr/mirrors/olga/cowpie/m/mellencamp_john/?N=D -http://www.jpc-music.com/1695294.htm -http://sunsite.org.uk/packages/TeX/uk-tex/macros/latex/contrib/supported/t-angles/?D=A -http://www.shopworks.com/index.cfm/action/info/userid/000B34B5-2F17-19FE-9038010B0A0ADCF2 -http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Top-Darlehens-Konditionen/Gemeinsam/Startseite/Gemeinsam/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Inserieren/onlineInserieren.htm -http://www.idgnet.com/crd_playstation_254384.html -http://www.3wbooks.de/BauerGunter/BauerGunter3406402798.htm -http://library.cwu.edu/search/dSports+--+Washington+(State)+--+Periodicals/dsports+washington+state+periodicals/-5,-1,0,B/request&F=dsports+university+of+michigan&1,,2 -http://www.aelita.net/products/library/sitemap/Reg/Subscribe/sitemap/Reg/QuoteRegister/Default.htm -http://topcu.tucows.com/winme/preview/76604.html -http://tonet.com.cn/zhuanyejihua/kaoshijihua/ligonglei/dianzizhuanyezhuanke.htm -http://tonet.com.cn/zhuanyejihua/kaoshijihua/falv2001.htm -http://tonet.com.cn/zhuanyejihua/kaoshijihua/caijinglei/gongshangqiyeguanlibenke.htm -http://ftp.univ-lyon1.fr/faq/by-name/cats-faq/breeds/american-curl -http://www.videos-erotism.com/xhuge/1/hardMid3.html -http://www.zope.org/Wikis/DevSite/Projects/CoreSessionTracking/WikiWikiWeb/map -http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/74461000003304200000112720000087451/Labels.wo/603110000077451/2.0.0.5.0/3/Webobjects1 -http://books.hyperlink.co.uk/bookinfo/Willa_Cathers_Transforming_Vision/Brienzo/Gary_W./0945636660 -http://ftp.darenet.dk/tucows/winme/adnload/137112_28604.html -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/TEKNIIKKA/korkeakoulukirjastot/yliopisto-+ja+korkeakoulukirjastot/insin%F6%F6rit/kirjastot/ -http://www.pokers.com/asp/sp-asp/_/SZ--2/PD--10017288/posters.htm -http://itcareers.careercast.com/texis/it/itjs/+RwwBmelXD86elmwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhXwotoBwcaMnmowamoGnqBdGaDntdBowBodD5aqconDBaMwGAnBoDtapd5oBodDaMwDwtnainxawqqd1DBaMFqryfHfREIDzmbwwwpBmezWD86Wwww5rme9cwwwBrmeZpwww/jobpage.html -http://berlin-charlottenburg.de/deutsch/politik/ma/062.htm -http://www.ericsson.cl/cables/protection/index.shtml -http://209.207.239.212/bkindex/c1007/f1401.html -http://209.207.239.212/bkindex/c1007/f1418.html -http://www.neoseeker.com/forums/index.php?function=edit_message&messageid=1037 -http://www.neoseeker.com/forums/index.php?function=edit_message&messageid=1199 -http://www.geocities.co.jp/SweetHome-Green/3692/PROFILE.HTML -http://www.geocities.co.jp/SweetHome-Green/3692/MELINDEX.HTML -http://myhome.naver.com/bora1234/photo.html -http://www.magicvillage.de/magicvillage/computercenter/Grafik%20%26%20Layout/Software/Macintosh/Hotline/PowerBooks/ -http://student.monterey.edu/nr/panditharatnesha/world/ -http://in.egroups.com/message/Michelles__Miracles/657 -http://www.babyheirlooms.com/catalog/htmlos.cat/001248.1.5492769465 -http://republika.pl/raduczulu/counter.html -http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd378258019 -http://www.8848.net/fjnews/200007/0728/2000072811393979.htm -http://www.chaos.dk/sexriddle/m/n/x/t/ -http://www.maastrek.de/maas/01eea86f59dac641c053/1/0/4 -http://yp.gates96.com/14/79/82/8.html -http://yp.gates96.com/14/79/82/95.html -http://yp.gates96.com/14/79/82/98.html -http://yp.gates96.com/14/79/83/10.html -http://yp.gates96.com/14/79/83/16.html -http://yp.gates96.com/14/79/83/48.html -http://yp.gates96.com/14/79/84/4.html -http://yp.gates96.com/14/79/84/96.html -http://yp.gates96.com/14/79/85/34.html -http://yp.gates96.com/14/79/85/96.html -http://yp.gates96.com/14/79/86/9.html -http://yp.gates96.com/14/79/86/11.html -http://yp.gates96.com/14/79/86/28.html -http://yp.gates96.com/14/79/86/32.html -http://yp.gates96.com/14/79/86/86.html -http://yp.gates96.com/14/79/86/96.html -http://yp.gates96.com/14/79/87/96.html -http://yp.gates96.com/14/79/88/38.html -http://yp.gates96.com/14/79/88/74.html -http://yp.gates96.com/14/79/88/95.html -http://yp.gates96.com/14/79/89/57.html -http://autos.yahoo.co.jp/ucar/m1010/k10102006199904/g24/a101020060240158710008510205199904_4.html -http://www02.geocities.co.jp/HeartLand-Keyaki/7483/ -http://online.excite.de/wirtschaft/katalog/32476 -http://www9.hmv.co.uk:5555/do/session/1347777/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/Top_Navigation_Bar/top_navbar.html -http://www9.hmv.co.uk:5555/do/session/1347777/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d90_sd0_pt0.html -http://infoserv2.ita.doc.gov/efm/efm.nsf/Sources!OpenView&Start=5&Count=30&Collapse=54 -http://users.ai-lab.fh-furtwangen.de/for_local_use_only/CD-TMFUMV/daten/beisp/05321/?D=A -http://www.babyheirlooms.com/catalog/htmlos.cat/011629.1.0871727476 -http://www.fogdog.com/cedroID/ssd3040183241146/cgi-bin/MyFogdog -http://www.3w-geschichte.de/OReillyJamesT/OReillyJamesT0471287237.htm -http://www.annotate.net/html/Annotate_Directory/Top/Arts/Movies/Titles/W/World_According_to_Garp,The/ -http://dandini.cranfield.ac.uk/vl=-39536559/cl=151/nw=1/rpsv/cw/web/nw1/bargen.htm -http://cgi.superonline.com/cgi-bin/sworld43/thread.pl/forums/sworld43/oss2000/45.html?dir=nextResponse -http://cgi.superonline.com/cgi-bin/sworld43/get/forums/sworld43/oss2000/45.html?admin -http://dogbert.bizit.net/debian/dists/unstable/non-US/non-free/binary-sparc/?M=A -http://ftp.eecs.umich.edu/debian/dists/potato/main/binary-i386/misc/?D=A -http://fi.egroups.com/message/girlscouting/3383 -http://dk.egroups.com/group/scaleauto -http://members.tripod.lycos.co.kr/SM4/paper.htm -http://www.jamba.nl/KNet/_KNet-BqE8j1-JC4-pv4w/browse.nl/node.0/cde7f2elw -http://yp.gates96.com/4/6/10/47.html -http://yp.gates96.com/4/6/10/52.html -http://yp.gates96.com/4/6/10/96.html -http://yp.gates96.com/4/6/11/25.html -http://yp.gates96.com/4/6/11/61.html -http://yp.gates96.com/4/6/11/67.html -http://yp.gates96.com/4/6/11/93.html -http://yp.gates96.com/4/6/12/11.html -http://yp.gates96.com/4/6/12/28.html -http://yp.gates96.com/4/6/12/66.html -http://yp.gates96.com/4/6/12/81.html -http://yp.gates96.com/4/6/12/93.html -http://yp.gates96.com/4/6/13/86.html -http://yp.gates96.com/4/6/13/94.html -http://yp.gates96.com/4/6/14/17.html -http://yp.gates96.com/4/6/14/76.html -http://yp.gates96.com/4/6/15/61.html -http://yp.gates96.com/4/6/16/47.html -http://yp.gates96.com/4/6/16/71.html -http://yp.gates96.com/4/6/17/62.html -http://yp.gates96.com/4/6/18/1.html -http://yp.gates96.com/4/6/18/24.html -http://yp.gates96.com/4/6/18/28.html -http://158.169.50.70/eur-lex/it/lif/dat/1994/it_294D1217_09.html -http://158.169.50.70/eur-lex/it/lif/dat/1995/it_295D0928_02.html -http://158.169.50.70/eur-lex/it/lif/dat/1997/it_297D0904_03.html -http://www.irishnews.com/k_archive/181299/local4.html -http://www.irishnews.com/k_archive/181299/local14.html -http://www.irishnews.com/k_archive/181299/local16.html -http://uk.dir.yahoo.com/Regional/U_S__States/North_Carolina/Cities/Charlotte/Business_and_Shopping/Business_to_Business/Manufacturing/Casting__Moulding__and_Machining/ -http://www.uwec.edu/Academic/English/Projects/VonHaden/ -http://www.playease.com/et/beauty/img/jijinglian/jjl054.htm -http://www.digitaldrucke.de/(aktuell,für,marktplatz,metamorphose,raum,sense)/_fort/html/themen/kultur/digital/digital.htm -http://pub6.ezboard.com/fzfreesubmissiondirectoryplacestosubmitforfree.showMessage?topicID=35.topic -http://pub6.ezboard.com/fzfreesubmissiondirectoryplacestosubmitforfree.showMessage?topicID=12.topic -http://www.emerchandise.com/browse/DISNEY/TOY/b.FAVORITES%20COMICS%20CARTOONS%20DISNEY/s.CgJlPxcV -http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/showNextUnseen/fol/100001/1302769 -http://911codes.com/games/platform/gameboy/sect/div/cont/list_cheat/spray/y/id/0000010187/gid/0000003974/_cheats/_walkthroughs/_codes/_pc/_n64/_psx/_gameboy/_playstation/ -http://library.bangor.ac.uk/search/dPolice+regulations+--+Great+Britain/dpolice+regulations+great+britain/7,-1,0,E/frameset&F=dpolice+social+work+great+britain+congresses&1,1 -http://www02.u-page.so-net.ne.jp/ta2/grosh/Training/Training9.html -http://ring.shibaura-it.ac.jp/archives/linux/RedHat/redhat/code/i18n/trans/?D=A -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=15,35,22,28,26 -http://ftp.nacamar.de/pub/NetBSD/NetBSD-current/pkgsrc/graphics/ruby-gl/?S=A -http://www.academyfloral.com/state/aliro/flowers/birthdaybouquet1.html -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/KIRJASTO-+JA+TIETOPALVELUT/ammattikorkeakoulukirjastot/ammattikorkeakoulut/p%E4ij%E4t-h%E4meen+koulutuskonserni/kirjastot/ -http://www.jpc-music.com/1409509.htm -http://chat.sportsline.com/u/ce/feature/0,1518,2565545_56,00.html -http://chat.sportsline.com/u/ce/feature/0,1518,1675610_56,00.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380831/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hpstore.hewlett-packard.fr/gp -http://209.207.239.212/bkindex/c1016/f1419.html -http://209.207.239.212/bkindex/c1016/f1424.html -http://www.sports.aol.fr/Jo/Perec_2.html -http://www.citybrazil.com.br/go/smiguelaraguaia/transporte.htm -http://www.fileamerica.com/states/texas/local/cameron/ptax.html -http://www.angelfire.com/nv/bellea -http://school.educities.org/card/a4711862.html -http://school.educities.org/card/a60902.html -http://school.educities.org/card/amy60630.html -http://school.educities.org/card/aney1.html -http://school.educities.org/card/christinelee.html -http://school.educities.org/card/grace3721.html -http://school.educities.org/card/jj1245j.html -http://school.educities.org/card/jyik.html -http://school.educities.org/card/k3813813.html -http://school.educities.org/card/k78780606.html -http://school.educities.org/card/kitty1snoopy.html -http://school.educities.org/card/landy1.html -http://school.educities.org/card/m0522.html -http://school.educities.org/card/mark747.html -http://school.educities.org/card/okdh.html -http://school.educities.org/card/poppybaby.html -http://school.educities.org/card/ry21.html -http://www.secinfo.com/dvtBm.7a.htm -http://www.craft-supplies.co.uk/cgi-bin/psProdDet.cgi/HT206|972959537|Deluxe_Dividers|user|0|0,0,1,1 -http://in.egroups.com/post/book-readers?act=forward&messageNum=3829 -http://www.nacion.co.cr/ln_ee/2000/enero/31/mundo10.html -http://www.bigstar.com/news/sb/index.cfm/4ae0978g371d907g1?fa=today -http://www.bigstar.com/cs/index.cfm/4ae0978g371d907g1?fa=privacy -http://v2.bdnet.com/I/Cailleaux/I/Cannabissimo/fiche_serie.htm -http://ftp.darenet.dk/tucows/winnt/adnload/12475_29978.html -http://ftp.darenet.dk/tucows/winnt/adnload/1879_29966.html -http://www.canit.se/(h1,k15,mail,unix,www)/support/ -http://byron17.home.chinaren.com/lit/novle/maio.htm -http://www.emerchandise.com/browse/PAGEANTS/MUG/b.FAVORITES%20PAGEANTS/s.Q8q0znEj -http://stulchik.list.ru/catalog/10310.html -http://stulchik.list.ru/catalog/10967.2.html -http://dada.tucows.com/adnload/70717_30131.html -http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/alpha/7677890 -http://webraft.its.unimelb.edu.au/196024/students/cabong/pub/?M=A -http://www.crutchfield.com/S-fFFHlZKyKNq/shop/ -http://www.earthsystems.org/gopher/seacnet/announce97-08-03-14/1994/aug94/94-08-25-18:%20Violence%20in%20Indian%20Country%20Over%20Waste -http://www.brio.de/BRIO.catalog/39fdb65f08c44c28273fd472aa7806e3/UserTemplate/10 -http://www.qsl.net/hj3ufa -http://www-jl.jl.cninfo.net/jlweb/book/wxtd/gu_long/chuliuxiang/bat/009.htm -http://www.intel.fr/support/netport/pro/21402.htm -http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957423999/957522544/Catalog/1375/001 -http://www01.u-page.so-net.ne.jp/qc4/sam-ft/gallerycraftspace.html -http://rpmfind.net/linux/RPM/mandrake/usr_src_linux-2.2.16_pcmcia-cs-3.1.14_doc_Tree.html -http://www.chrisgraef.de/chg/webdesigner_medien.html -http://www.opengroup.com/trbooks/186/1864501634.shtml -http://moviestore.zap2it.com/shopcart/s.1GUFVsoF -http://moviestore.zap2it.com/browse/MOVIES/ACTIONFI/s.1GUFVsoF -http://moviestore.zap2it.com/browse/MOVIES/PUPPET/s.1GUFVsoF -http://ocean.ntou.edu.tw/search*chi/m387.224+M178t/m387.224+m178+t/-5,-1,0,E/buttonframe&F=m387.224+m178+m&1,,0 -http://www.egroups.com/message/BalletBuds/25 -http://link.fastpartner.com/do/session/600375/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/create/learn.htm -http://www.vedomosti.spb.ru/2000/arts/spbved-2180-art-27.html -http://www.vedomosti.spb.ru/2000/arts/spbved-2180-art-42.html -http://www.vedomosti.spb.ru/2000/arts/spbved-2180-art-45.html -http://www.vedomosti.spb.ru/2000/arts/spbved-2180-art-46.html -http://www2.ipc.pku.edu.cn/scop/rsgen.cgi?pd=3nla -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959900763/Catalog/1000006 -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959900763/Catalog/1000031 -http://fi.egroups.com/message/gailporter/199 -http://fi.egroups.com/message/gailporter/222 -http://www.egroups.com/messages/X-Air_Ultralight_Aircraft/359 -http://dia.tucows.com/winme/adnload/136838_28375.html -http://dia.tucows.com/winme/adnload/136846_28383.html -http://www.letsmusic.co.kr/directory/weblink/weblink_list/1,1011,100000000186810,00.html -http://www.smcworld.com/smcworld/bp/large/0744_2_1611_2_1611b.html -http://news.pchome.com.tw/ettoday/entertainment/20001028/index-20001028155543020439.html -http://www2.stas.net/lostlane/J.html -http://allmacintosh.arrakis.es/utilsmac_rating.html -http://novel.hichinese.net/zt/zpj/k/kelisidi/kill/008.htm -http://194.174.50.23/cgi-bin/FisRun/InsertExhibitorIntoNotebook/1/interpack99/d/2891 -http://www.loisirs.ch/jifmuf/14/roedrz.html -http://www.linux.com/networking/server/business/operating_system/learning/consumer/ -http://dandini.cranfield.ac.uk/vl=-39685335/cl=158/nw=1/rpsv/cw/www/faqs.htm -http://blisty.internet.cz/1250/9901/19990108a.html -http://www.staroriental.net/nav/soeg/ihf,aai,n2,247,Electric+Wave+Girl+1998.html -http://www.multimania.com/excave/vicking.html -http://students.lsu.edu/students/main.nsf/Pages/CSISAJ1!OpenDocument&ExpandSection=5,14,21,12 -http://www.secinfo.com/dWXc8.bz.htm -http://www.secinfo.com/dWXc8.9d.htm -http://bbs.ee.ntu.edu.tw/boards/RomanceNovel/11/2/9/2/ -http://ftp.nacamar.de/pub/NetBSD/packages/1.4/amiga/emulators/?M=A -http://no.egroups.com/subscribe/windows98 -http://ftp.dei.uc.pt/pub/netscape/communicator/english/4.76/unix/unsupported/linux20_libc5/?D=A -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.gsb.stanford.edu/sloan/sloan_fellows.html -http://apple.excite.com/entertainment/music/artists_and_genres/alternative_rock/grunge/stone_temple_pilots/merchandise/ -http://home.sprynet.com/~tales/asw2.html -http://fi.egroups.com/post/audiovision?act=reply&messageNum=145 -http://www.zema.ru/post/forum/komi_respublika/usinsk/messages/712 -http://opac.lib.rpi.edu/search/ddesert+ecology/-5,-1,0,B/browse -http://www.arm.com/sitearchitek/support.ns4/html/sdt_debug!OpenDocument&ExpandSection=6,32,7,5 -http://www.linux.com/networking/network/technology/security/community/open_source/ -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=9,33,15,36,22 -http://isbn.nu/0505523892/borders -http://www.informika.ru/text/database/geom/Draw/ris/ris34_1.htm -http://caselaw.lp.findlaw.com/casecode/uscodes/42/chapters/77/subchapters/iii/parts/h/sections/section_6374_notes.html -http://www.cyd.com.cn/zqb/19991104/GB/9672^Q805.htm -http://providenet.tukids.tucows.com/win95nt/9-12/adnload/132963_46167.html -http://www.chaos.dk/sexriddle/e/o/g/k/i/ -http://www2.brent.gov.uk/planning.nsf/013459d30f2ad00680256623005fcc0a/8af30b42469a1215802568720046524a!OpenDocument&ExpandSection=16,13,11,9,15 -http://jje.subportal.com/sn/Multimedia_and_Graphics/MPEG_Audio_Players_and_Editors/9126.html -http://www.ropnet.ru/HyperNews/edit-response.pl/case/2856.html -http://www.eveclub.com/cgi-bin/eveclub.front/972959508447/Catalog/1000045 -http://itcareers.careercast.com/texis/it/itjs/+rwwBmeO9D86MwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewDXnnqrDoqwcaiGoBnapd5oBodDaxw5nmamdq1MnDBwBodDawppcoqwBodD5a15naM15BapGdm1qBodDawxcnaMFqtPfRRZNDzme8xwwwpBme7WD86eLrwww5rm-mwwBrmeZpwww/jobpage.html -http://www.iucr.ac.uk/iucr-top/journalsonline/iucr-top/cif/software/hiccup/prods/?M=A -http://lists.omnipotent.net/mysql/199707/msg00381.html -http://www.yescall.co.kr/kyungheein/ -http://minyos.its.rmit.edu.au/~s9763278/sparks/sparks.html -http://www.movieguide.com/pressroom/events/nbcpresstour/festival_nbcpresstour9.html -http://www.gamers.net/game/190940/reviews -http://www.staroriental.net/nav/soeg/ihf,aai,n2,198,Electric+Wave+Girl+1998.html -http://marysz.freeservers.com/cgi-bin/c/736/64/dXNlcmJhbm5lcg==/gn/6616/ -http://subversion.tigris.org/source/browse/subversion/subversion/libsvn_delta/delta.h?annotate=1.34&sortby=rev -http://subversion.tigris.org/source/browse/subversion/subversion/libsvn_delta/delta.h?annotate=1.28&sortby=rev -http://sunsite.org.uk/public/public/packages/WWW/spinner/?D=A -http://sunsite.org.uk/public/public/packages/WWW/spinner/untared/ -http://www.realbig.com/miata/miata/1998-01/1635.html -http://cky.8k.com/cgi-bin/framed/1359/info/jess.html -http://cky.8k.com/cgi-bin/framed/1359/info/bran.html -http://www.loisirs.ch/jifmuf/10/bhcqud.html -http://naver22.jrnaver.co.kr/Entertainment_and_Arts/Design_Arts/Architecture/Organizations/ -http://www.zing.com/member/?name=birchpole&c=1 -http://student.monterey.edu/nr/porrasjohnny/campus/ -http://ftp.lip6.fr/pub/FreeBSD/development/FreeBSD-CVS/ports/misc/peq/files/patch-ab,v -http://www.multimania.com/lesoir2/news/sept99/quake4.htm -http://www.multimania.com/lesoir2/news/sept99/2309-12.txt -http://www.multimania.com/lesoir2/news/sept99/0609-06.txt -http://www.multimania.com/lesoir2/news/sept99/1309-13.txt -http://homepage1.nifty.com/shiraishi/school/school2.htm -http://ring.htcn.ne.jp/pub/NetBSD/NetBSD-current/pkgsrc/mbone/sdr/pkg/PLIST -http://www.chaos.dk/sexriddle/m/c/z/b/ -http://www.chaos.dk/sexriddle/m/c/z/p/ -http://map.ipc.co.jp/asp/onmap/r/new/g-26/f-523824/ -http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/admission/972959650-- -http://novel.hichinese.net/xd/gt/zpj/l/liangfengyi/jingrong/010.htm -http://www.tvstore.com/browse/TV/MAGNET/s.l03qOWiP -http://www.tvstore.com/browse/TV/KEYCHAIN/s.l03qOWiP -http://www.gbnf.com/genealog2/burt/html/d0002/I1199.HTM -http://www.gbnf.com/genealog2/burt/html/d0006/I1187.HTM -http://www.gbnf.com/genealog2/burt/html/d0004/I1521.HTM -http://src.openresources.com/debian/src/graphics/HTML/R/HVcreate.html -http://yomama.tgm.ac.at/doc/susehilf/gnu/vip/Changing.html -http://www.science.uva.nl/pub/NetBSD/NetBSD-current/pkgsrc/sysutils/gmc/pkg/ -http://news.fm365.com/zonghe/20001009/156610.htm -http://homepage1.nifty.com/tojo/shin13.htm -http://www.sf.digitalcity.com/naplesfl/personals/browse.dci?cat=wsw&sort=t -http://plat.debian.or.jp/debian/dists/woody/non-free/binary-hppa/otherosfs/?M=A -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/databases/gdbm/distinfo?only_with_tag=RELEASE_4_1_0 -http://bbs.csie.ntu.edu.tw/txt/Emprisenovel/ebooks/mystery/alisanderla/wsyz/013.txt -http://www.legis.state.ia.us/GA/78GA/Legislation/SCR/00000/SCR00018/?M=D -http://www.mapion.co.jp/custom/AOL/admi/23/23104/kaminagoya/2chome/index-2.html -http://ciscom.cnet.com/hardware/member/entry/0,10285,0-1069-419-1544825,00.html -http://wow-online.vhm.de/Regional/Grossbritannien/Kunst.html -http://www.cs.rit.edu/~hpb/Man/_Man_Openwin_html/html2/sigaction.2.html -http://in.egroups.com/message/talksigncreate/287 -http://rainforest.parentsplace.com/dialog/thread.pl/newclubfoot8/19.html?dir=nextThread -http://ftp.jp.debian.org/debian-non-US/dists/potato/non-US/main/binary-arm/?N=D -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=baumelte&l=de -http://www.chaos.dk/sexriddle/i/f/p/k/h/ -http://unionsoft.narod.ru/3d/anatomy/pages/head1.htm -http://src.openresources.com/debian/src/electronics/acs_021.orig/acs-021.orig/ -http://www.mapion.co.jp/custom/AOL/admi/23/23111/takagicho/2chome/index-45.html -http://dennou-q.geo.kyushu-u.ac.jp/library/Linux/debian-jp/dists/unstable/contrib-jp/binary-m68k/tex/?N=D -http://rapidus.tucows.com/winnt/adnload/54123_28460.html -http://193.207.119.193/MV/gazzette_ufficiali/303-99/8.htm -http://www.emerchandise.com/help_security/b.TV%20FRASIER/s.LoO0xS99 -http://gpul.org/ftp/os/linux/cd-images/other/ISO/suse/?M=A -http://opac.lib.rpi.edu/search/arush+sean+c/-17,-1,0,E/frameset&arush+homer+f&1,,0 -http://genforum.genealogy.com/cgi-genforum/forums/griffin.cgi?3823 -http://www.leo.org/leoclick/dce2b1c893db6a8193428ecad9ecd878+L+1__ -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=55&discrim=178,230,174 -http://www.msb.malmo.se/search*swe/aKling,+Rolf/akling+rolf/7,-1,0,B/browse -http://retailer.gocollect.com/do/session/1912785/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/checkout/shopping_cart.asp -http://st3.yahoo.co.jp/nihondo/k4932828003023.html -http://webtools.familyeducation.com/whatworks/review/front/0,2562,1-10641-2316_-7233-3,00.html -http://www.bretagne-online.com/telegram/htdocs/archive/1997/19970618/sommaire/stpoldeleon.htm -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=234&discrim=235,230,183 -http://www.yagoo.co.kr/stats/batting.asp?Mlbmanid=HAMPAT7709 -http://www.linux.com/networking/network/new/website/suse/SAP/ -http://www.linux.com/networking/network/new/website/suse/security/ -http://javatest.a-net.nl/servlet/pedit.Main/http://www.cdc.gov/ncidod/dpd/parasiticpathways/drinkingwater.htm -http://www.across.or.jp/shizuoka/nbbs.cgi/seibu:n52/post -http://www.across.or.jp/shizuoka/nbbs.cgi/seibu:n52/450 -http://www.across.or.jp/shizuoka/nbbs.cgi/seibu:n52/607 -http://dangerous.co.kr/www.sony.co.jp/ProductsPark/Consumer/Peripheral/MDData/page6.html -http://www2.sega.co.jp/bbs/article/s/sports/47/xvwixh/jlvcgk.html -http://troy.lib.sfu.ca/search/alondon+mathematical+society/alondon+mathematical+society/-5,-1,0,B/frameset&F=alondon+m+c+s&2,,3 -http://pub14.ezboard.com/fbrlproductionsfrm10.showAddTopicScreenFromWeb -http://rex.skyline.net/html/Computers_-_Monitors.html?16,computers,radio,electronics,communication -http://rex.skyline.net/html/Software_-_Developers.html?20,computers,radio,electronics,communication -http://ftp.cwi.nl/static/publications/reports/abs/MAS-R9815.html -http://www.jt.com.br/noticias/98/09/28/sd2.htm -http://www.kentuckyconnect.com/heraldleader/news/080899/sportsdocs/08chuck.htm -http://pix.egroups.com/post/ipe?act=forward&messageNum=5302 -http://tulips.ntu.edu.tw/search*chi/cHT392+Un3/cht++392+un3/-5,-1,,B/browse -http://magazines.sina.com/gourmet/contents/199912/199912-006_3_gb.html -http://collection.nlc-bnc.ca/100/201/300/january/2000/00-06-05/sanctuary.html -http://collection.nlc-bnc.ca/100/201/300/january/2000/00-06-05/blue1.html -http://www.vorlesungen.uni-osnabrueck.de/informatik/pt/code/DiagramPalettes/Components.dpalette2/Image45 -http://www.vorlesungen.uni-osnabrueck.de/informatik/pt/code/DiagramPalettes/Components.dpalette2/Image5 -http://playsite.top263.net/software/hh-13.htm -http://www.dispatch.co.za/1998/12/21/sport/MISS.HTM -http://www.allhealth.com/parentsplace/send/0,3288,14-844-1-fertility-INFERTILITY,00.html -http://www.tucows.telia.no/win2k/preview/37705.html -http://www.peopledaily.co.jp/9803/09/current/newfiles/j1020.html -http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1320/001 -http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1321/001 -http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1328/001 -http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1350/001 -http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1359/001 -http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/ProductView/26897 -http://www.uftree.com/UFT/WebPages/Don_MacFarlane/FEB99/d1/i0001285.htm -http://wap.jamba.de/KNet/_KNet-n4B8j1-DFd-13bgt/showInfo-jambabanner.de/node.0/cde7f1uou -http://launchbase.com/Shopping/Visual_Arts/entertainment/information/Politics.htm -http://launchbase.com/Shopping/Visual_Arts/entertainment/shopping/Electronics.htm -http://www.aoyun.sina.com.cn/news/sports/table/2000-09-15/1/4622.shtml -http://www.eggerwirt.at/1Root/Kontinent/6/Staat/7/Bundesland/21/Ort/129509/Homepage/m_homepage...1.html -http://198.103.152.100/search*frc/dSociologie+rurale+--+Ontario/dsociologie+rurale+ontario/-5,-1,0,B/frameset&F=dsociologie+religieuse+islam&1,,0 -http://msn.excite.co.jp/travel/the_country/kinki/wakayama/hot_spring_of_accommodations/inn_tourist_home_in_wakayama?summary=false -http://search.ibm.co.jp/as400/year2000/v3r2.html -http://www.allgemeine-immobilien-boerse.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/Allgemeine-IB/Startseite/3d-service/Private-IB/Startseite/Gemeinsam/Super-Zins-Konditionen/anforderungsformular.htm -http://spaceports.tucows.com/winnt/adnload/78908_28797.html -http://www.trax.nilex.co.uk/trax.cgi/A1S/A2R/A3R/B1S/A1D/A1S/ -http://www.babyheirlooms.com/catalog/htmlos.cat/041130.1.3206884924 -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/misc/colorart/misc/freespeech.html -http://www.cs.rit.edu/~hpb/Lectures/2000/JRMS_590/all-2.7.html -http://www.cs.rit.edu/~hpb/Lectures/2000/JRMS_590/all-4.11.html -http://www.refdag.nl/kl/990615klfo01.html -http://pub20.ezboard.com/ftheimperiumknightsfrm11.showMessage?topicID=9.topic -http://retailer.gocollect.com/do/session/1912767/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/advanced_search.asp -http://www.thestateofcolorado.com/saudealersnew.html -http://awelymor.weblogs.co.uk/sdb/en/html/ftp://ftp.suse.com/pub/suse/i386/6.2/suse/n1/ -http://www.mirror.kiev.ua:8083/paper/2000/21/1251/text/21-13-3.htm -http://www.recipezaar.com/browse/0110FC1070110A301109901109E00F06D -http://www.linux.com/networking/network/vpn/server/Unix/ -http://www.gasex.com/main.html?m4m.gallery.twinks -http://www.xtdnet.nl/listarch/linux-router/1998-05-01/nav00046.html -http://www.fogdog.com/cedroID/ssd3040183325831/cgi-bin/CedroCommerce?func=EditBasket -http://www.totalmarketing.com/an/basket.pl/cancel/xwxm6773.94076 -http://ciaoweb.tucows.com/winnt/adnload/56695_29112.html -http://www.brio.de/BRIO.catalog/39fe2f6006e4fc48273fd472aa7806e0/UserTemplate/1 -http://retailer.gocollect.com/do/session/1912715/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=2 -http://retailer.gocollect.com/do/session/1912715/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/dealer_lookup.asp -http://www.streetprices.com/Electronics/Computer_Hardware_PC/Motherboards/ATX/Slot1/Via_Pro133/sortproductbymake/sortcategorybylowprice/ -http://www.streetprices.com/Electronics/Computer_Hardware_PC/Projectors/MAKE+CTX/sortdetailbystock/sortproductbyhighprice/sortcategorybycount/SP318392.html -http://www.multimania.com/egypt95/img0017.htm -http://dic.empas.com/show.tsp/?q=fourteenthly&f=B -http://linux2.ipc.pku.edu.cn/scop/pdb.cgi?sid=d1repc2 -http://www.schlagertempel.de/RobertPayer/B00000B8D2.htm -http://www.cricinfo.com/link_to_database/INTERACTIVE/MAGAZINE/1996-97/SL_IN_NZ/SL_IN_NZ_FEEDBACK_1.html -http://mediate.magicbutton.net/do/session/625637/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html -http://www.clickm.dk/Clickmusic_Web_Guide/Bands_and_Artists/B/Better_Than_Ezra/ -http://www.clickm.dk/Clickmusic_Web_Guide/Bands_and_Artists/B/Breeders,_The/ -http://www.maastrek.de/maas/71eb3baf4c78ed98ef94/1/0/4 -http://www.trnonline.com/archives/1999archives/07221999/obits/24620.shtml -http://www.recipezaar.com/browse/0110FC1070110A100F06D0110A00110A3 -http://www.areaguide.net/addlisting.asp?book=box&CatID=516 -http://webraft.its.unimelb.edu.au/196023/students/lucym/ -http://sunsite.org.uk/public/0-Most-Packages/quake/utils/frontends/qshel15b.txt -http://pub14.ezboard.com/flfiaglarafabianisagoddess.emailToFriend?topicID=858.topic -http://www.realize.com/am4d0481.htm,qt=e784fe2f=2a38a234-4-7cf2ef-1-1-0-3-- -http://www.realize.com/am7bcd81.htm,qt=e784fe2f=2a38a234-4-7cf2ef-1-10-0-3-- -http://mailman.real-time.com/rte-crossfire/1993/Dec/msg00022.html -http://mailman.real-time.com/rte-crossfire/1993/Dec/msg00000.html -http://mailman.real-time.com/rte-crossfire/1993/Dec/msg00009.html -http://www.eallinfo.com/A55782/sameeron.nsf/homeFood!OpenPage&ExpandSection=8,4,3,6 -http://www.ami.dk/udgivelser/emne/36.html -http://www-x500-1.uni-giessen.de:8890/Lcn%3dKai%20Cheong%20HO,ou%3dEstates%20Management%20Office,o%3dHong%20Kong%20University%20of%20Science%20and%20Technology,c%3dHK -http://ftp.telepac.pt/pub/cpan/modules/by-module/DBD/DMOW/?D=A -http://members.se.tripod.de/aah/jochumsen/per02614.htm -http://www.academyfloral.com/state/cacat/flowers/funeralofferingshare.html -http://www.hotelboulevard.com/fr/paris/standard/htmlb877e62937802c0678f4638130be1ef0/sessionLang/ANG/prov/browse/cp/75013/resultatSearch.html -http://www.alsapresse.com/jdj/00/03/24/AK/article_4.html -http://www.mairie-montreuil93.fr/ville_pratique/environ/democrat/printemps/_vti_cnf/interstice.htm -http://variety.studiostore.com/help/b.FAVORITES%20COMICS%20CARTOONS%20POWERPUFF/s.UAREyMtL -http://ftp.sektornet.dk/tucows/winme/adnload/137341_28799.html -http://www.eveclub.com/cgi-bin/eveclub.front/972959532302/Catalog/1000046 -http://www.eveclub.com/cgi-bin/eveclub.front/972959532302/ClubBoard/list/1000022 -http://findmail.com/post/geewhiz?act=reply&messageNum=2039 -http://orders.mkn.co.uk/toy/rattles/order/now.en$NOK?what-bells=1 -http://www.buybuddy.com.au/sleuth/26/1/502/10134/ -http://spokesmanreview.sportshuddle.com/sports/baseball/playbetter/ask-expert/vincent3.asp -http://ant.i.hosei.ac.jp/Ant.WWW/PCD0420/HTMLE/29.html -http://ant.i.hosei.ac.jp/Ant.WWW/PCD0420/HTMLE/34.html -http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~074800~90270',00.html -http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~074800~09890',00.html -http://dennou-h.ees.hokudai.ac.jp/library/Linux/debian-jp/dists/hamm-jp/non-free/binary-i386/games/?M=A -http://www.peopledaily.com.cn/GB/paper68/1469/236625.html -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/koffice/kformula/BracketElement.cc?hideattic=1&sortby=rev -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/koffice/kformula/FractionElement.cc?hideattic=1&sortby=rev -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/koffice/kformula/MIMETYPE-Format?hideattic=1&sortby=rev -http://linuxberg.ii.net/conhtml/preview/7963.html -http://213.36.119.69/do/session/152992/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/hotels.html -http://213.36.119.69/do/session/152992/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.spycamera.com/webcam/ -http://ftp.netc.pt/pub/idgames/levels/doom/d-f/deathme.txt -http://ftp.netc.pt/pub/idgames/levels/doom/d-f/dork.txt -http://ustlib.ust.hk/search*chi/dsea+stories/dsea+stories/-5,-1,0,B/browse -http://members.fortunecity.com/skinweaver/nf/nfpin01.htm -http://se.egroups.com/group/French_ -http://www.gencat.es/cgi-bin/bc/drawer.cgi/LD/0074/L00465?101 -http://oss.sgi.com/cgi-bin/cvsweb.cgi/projects/ogl-sample/main/gfx/lib/glut/glut_shapes.c?sortby=author -http://www.teacherformation.org/html/od/facilitators.cfm/task1,about/discussion_id,2/xid,9456/yid,7276398 -http://genforum.genealogy.com/cgi-genforum/forums/getchell.cgi?230 -http://www9.hmv.co.uk:5555/do/session/1347795/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d100_sd0_pt0.html -http://www.brd.net/brd-cgi/brd_multimedia/bildbearbeitung/WZ01K0DJ/beurteilung/ci=972850465.htm -http://retailer.gocollect.com/do/session/1912745/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/affiliate_network.asp -http://www.fao.org/icatalog/orders/basket.asp?prev2=yes&aries_id=1310 -http://www.realestate-mls.com/list.cgi/VACANT_LAND|WATERFRONT|Edenville!Midland!MI -http://www.geocities.co.jp/SilkRoad-Desert/1661/profile/profile.html -http://hp-partner.whowhere.lycos.com/hp/chick/com/nj/ -http://hp-partner.whowhere.lycos.com/hp/chick/com/next/ -http://hp-partner.whowhere.lycos.com/hp/chick/com/nightflight/ -http://www.emerchandise.com/browse/FRIENDS/TSHIRT/20/10/b.TV%20FRIENDS/s.kGIgjr5i -http://dk.egroups.com/group/anarchymcgill -http://bbs.gznet.edu.cn/cgi-bin/getannounce//groups/GROUP_3/WinNT_Win2k/smthbbs/Dir002 -http://de.excite.de/computer/katalog/12947 -http://www.bizline.co.kr/library/data/002/001/007/008/020/002/000017.html -http://www.bizline.co.kr/library/data/002/001/007/008/020/002/000046.html -http://saleonall.com/cat/OPTOMA/6492/video/projectors/145336/oneprod.html -http://sun1.rrzn-user.uni-hannover.de/jgaertner/matlab/help/techdoc/newfeat/ch213.html -http://sun1.rrzn-user.uni-hannover.de/jgaertner/matlab/help/techdoc/newfeat/newfeat.html -http://excite.de/wirtschaft/katalog/37737 -http://www.digitaldrucke.de/(aktuell,kino,kultur,werbung)/_fort/html/themen/aktuell/events/events.htm -http://www.digitaldrucke.de/(aktuell,kino,kultur,kunst)/suche/uebersicht.html -http://www.online.kokusai.co.jp/Stock_corner/V0043566/wrd/G500/stock_corner/stock_corner.html -http://yp.gates96.com/4/37/0/92.html -http://yp.gates96.com/4/37/1/3.html -http://yp.gates96.com/4/37/1/38.html -http://yp.gates96.com/4/37/1/58.html -http://yp.gates96.com/4/37/2/21.html -http://yp.gates96.com/4/37/3/56.html -http://yp.gates96.com/4/37/3/68.html -http://yp.gates96.com/4/37/3/79.html -http://yp.gates96.com/4/37/4/1.html -http://yp.gates96.com/4/37/4/48.html -http://yp.gates96.com/4/37/4/99.html -http://yp.gates96.com/4/37/5/27.html -http://yp.gates96.com/4/37/6/1.html -http://yp.gates96.com/4/37/6/7.html -http://yp.gates96.com/4/37/6/80.html -http://yp.gates96.com/4/37/7/0.html -http://yp.gates96.com/4/37/7/5.html -http://yp.gates96.com/4/37/7/9.html -http://yp.gates96.com/4/37/7/12.html -http://yp.gates96.com/4/37/7/49.html -http://yp.gates96.com/4/37/7/97.html -http://yp.gates96.com/4/37/8/15.html -http://yp.gates96.com/4/37/8/32.html -http://yp.gates96.com/4/37/8/62.html -http://yp.gates96.com/4/37/8/76.html -http://yp.gates96.com/4/37/8/96.html -http://yp.gates96.com/4/37/9/12.html -http://yp.gates96.com/4/37/9/14.html -http://yp.gates96.com/4/37/9/23.html -http://yp.gates96.com/4/37/9/78.html -http://yp.gates96.com/4/37/9/80.html -http://cgi.cnn.com/US/9601/state_union_poll/state_union_speech/pm/ -http://freethemes.netc.pt/cursors/adnload/16904.html -http://freethemes.netc.pt/cursors/preview/16926.html -http://freethemes.netc.pt/cursors/adnload/16953.html -http://library.bangor.ac.uk/search/dTelevision+broadcasting+of+news+--+Wales/dtelevision+broadcasting+of+news+wales/-17,-1,0,B/frameset&F=dtelevision+broadcasting+moral+and+ethical+aspects&1,1 -http://home.baoding.cn.net/~snowcxm/photoshop/newpage6tp.htm -http://home.baoding.cn.net/~snowcxm/photoshop/newpage6xq2.htm -http://dennou-q.geo.kyushu-u.ac.jp/library/Linux/debian-jp/dists/woody/non-free-jp/binary-sparc/otherosfs/?D=A -http://www.tucows.ch/winnt/toolnt_size.html -http://www.sdinfonet.com.cn/379/26/379269983.htm -http://www.sdinfonet.com.cn/379/26/379269980.htm -http://www.egroups.com/message/wdf/3368 -http://de.excite.de/bildung/katalog/35821 -http://kidneyfailure.shn.net/content/article/1677.57596 -http://kidneyfailure.shn.net/content/article/1677.57625 -http://kidneyfailure.shn.net/content/article/1677.57517 -http://kidneyfailure.shn.net/content/article/1677.57456 -http://kidneyfailure.shn.net/content/article/1677.57562 -http://dia.tucows.com/winme/adnload/138490_29803.html -http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31062/lst/qqo/004A -http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31062/qry/zka/B2-kB23p/pno/0/qqatt/^ -http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31062/qry/zka/B2-kB2-n/pno/0/qqatt/^ -http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31062/qry/zka/B2-kB2-o/pno/0/qqatt/^ -http://dk.egroups.com/message/tw2002/3626 -http://dk.egroups.com/message/tw2002/3644 -http://www.spiral.at/Katalog/Artikel/8908435/ -http://www.spiral.at/Katalog/Artikel/8908842/ -http://168.160.224.62/insurance/200006/10/114941.asp -http://168.160.224.62/insurance/200006/10/114219.asp -http://tucows.soneraplaza.nl/termnt_license.html -http://pub13.ezboard.com/ubelegruin.showPublicProfile?language=EN -http://troy.lib.sfu.ca/search/tbiometrics/tbiometrics/-5,-1,0,B/exact&F=tbiometrical+genetics+the+study+of+continuous+variation&1,2/limit -http://futures.homeway.com.cn/lbi-html/news/content/20001013/172026.shtml -http://jproxy.uol.es/jproxy/http://www.channel6000.com/sh/sports/columnist/stories/columnists-20001030-154321.html -http://www.linux.com/networking/network/free/release/community/development/ -http://pub17.ezboard.com/fskysurfingskysurfersubb.showAddReplyScreenFromWeb?topicID=4.topic -http://ring.tains.tohoku.ac.jp/pub/linux/debian/debian-jp/dists/woody/contrib-jp/binary-m68k/oldlibs/?D=A -http://10000downloads.subportal.com/sn/Network_and_Internet/Misc__Communications_Tools/12507.html -http://www.hbdaily.com.cn/ctdsb/19991101/GB/ctdsb^1042^06^Ct06b08.htm -http://cytobase.cnusc.fr:8101/textes/PURDmail/1998-12/nav00129.html -http://www.brio.de/BRIO.catalog/39fe2f73050d53aa2741d472aa7806d2/UserTemplate/9 -http://www.anekdot.ru:8084/an/an0007/t000731.html -http://statweb.byu.edu/sasdoc/sashtml/gref/z0265802.htm -http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux/drivers/char/ftape/Makefile?only_with_tag=davem-cvs-merge -http://www.intellicast.com/Golf/World/UnitedStates/Southeast/NorthCarolina/Hawksnest/WINDcast/d1_00/bannerAd.shtml -http://dailynews.sina.com.hk/sinaNews/wiser/hkStock/2000/0720/1418727.html -http://ftp.dti.ad.jp/pub/lang/CPAN/authors/id/A/AG/AGUL/?S=A -http://link.fastpartner.com/do/session/600392/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/jobpilot.php -http://link.fastpartner.com/do/session/600392/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/smartguy.php -http://citeseer.nj.nec.com/cidcontext/1024594 -http://www.burstnet.com/ads/ad4820b-map.cgi/1395444997 -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdeutils/kpm/proc.h?r1=1.6&only_with_tag=HEAD -http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d0/i0001501.htm -http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d0/i0000641.htm -http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d1/i0000932.htm -http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d1/i0000762.htm -http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d1/i0000997.htm -http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d1/i0001325.htm -http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/nindex.htm -http://www.primenet.com/~g-lady/Farewell/_borders/ -http://imasy.or.jp/~iwao/hokkaido/kushiro.html -http://citeseer.nj.nec.com/nrelated/0/208436 -http://www.zeal.com/Arts___Entertainment/Literature/Authors/Lovecraft__H_P_/Books/Cthulhu_Campus_Crusade_for_Cthulhu/ -http://ftp1.se.debian.org/debian/dists/woody/contrib/binary-mipsel/mail/?M=A -http://ftp1.se.debian.org/debian/dists/woody/contrib/binary-mipsel/mail/?S=A -http://webtools.familyeducation.com/whatworks/item/front/0,2551,1-10698-1981-,00.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380859/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp -http://www.collectingnation.com/cgi-bin/bn/view_feedback.mod/pn?HANDLE=pokeweed -http://www.egroups.com/messages/Future-History-L/213 -http://www.egroups.com/message/Future-History-L/192 -http://www.burstnet.com/ads/cb7826a-map.cgi/1384588733 -http://www.cs.com.cn/csnews/articles/142_23823.htm -http://search.yam.com.tw/en/new/edu/hs/voca/tpc_vs/ -http://ftp.univie.ac.at/packages/tex/macros/latex2e/contrib/supported/vmargin/?D=A -http://citeseer.nj.nec.com/cidcontext/3145269 -http://yp.gates96.com/11/72/80/34.html -http://yp.gates96.com/11/72/80/36.html -http://yp.gates96.com/11/72/80/76.html -http://yp.gates96.com/11/72/81/26.html -http://yp.gates96.com/11/72/81/67.html -http://yp.gates96.com/11/72/83/68.html -http://yp.gates96.com/11/72/84/29.html -http://yp.gates96.com/11/72/84/39.html -http://yp.gates96.com/11/72/85/56.html -http://yp.gates96.com/11/72/85/63.html -http://yp.gates96.com/11/72/85/96.html -http://yp.gates96.com/11/72/86/3.html -http://yp.gates96.com/11/72/86/28.html -http://yp.gates96.com/11/72/86/59.html -http://yp.gates96.com/11/72/86/63.html -http://yp.gates96.com/11/72/88/43.html -http://yp.gates96.com/11/72/89/8.html -http://yp.gates96.com/11/72/89/13.html -http://yp.gates96.com/11/72/89/20.html -http://cometweb01.comet.co.uk/do!session=132039&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkkHbqpLZXmLbkZHljlKaltLkilLXalKfkaLbukKeqjLi1 -http://iworld.freethemes.com/savers/adnload/77213.html -http://iworld.freethemes.com/savers/adnload/35420.html -http://www.questlink.com/QL/CDA/Research/ProductBrief/1,1768,0_11201_353170_43264,00.html -http://www.questlink.com/QL/CDA/Research/ProductBrief/1,1768,0_11201_353170_43305,00.html -http://www2.eunet.lv/library/iso/HISTORY/RUSSIA/Mirrors -http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=10,3,5,16,14,6 -http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=17,3,5,16,14,6 -http://opac.lib.rpi.edu/search/dnatural+history+united+states+historiography+dictionaries/-17,-1,0,B/browse -http://opac.lib.rpi.edu/search/dnatural+history+united+states+historiography+dictionaries/7,-1,0,B/browse -http://www.sportinggreen.com/news/20001014/fbo/fbc/abb/001014.0391.html -http://yp.gates96.com/0/14/10/63.html -http://yp.gates96.com/0/14/10/80.html -http://yp.gates96.com/0/14/11/32.html -http://yp.gates96.com/0/14/11/37.html -http://yp.gates96.com/0/14/11/80.html -http://yp.gates96.com/0/14/13/21.html -http://yp.gates96.com/0/14/13/23.html -http://yp.gates96.com/0/14/13/38.html -http://yp.gates96.com/0/14/13/49.html -http://yp.gates96.com/0/14/13/90.html -http://yp.gates96.com/0/14/14/53.html -http://yp.gates96.com/0/14/14/63.html -http://yp.gates96.com/0/14/14/77.html -http://yp.gates96.com/0/14/15/12.html -http://yp.gates96.com/0/14/15/88.html -http://yp.gates96.com/0/14/15/96.html -http://yp.gates96.com/0/14/16/27.html -http://yp.gates96.com/0/14/16/62.html -http://yp.gates96.com/0/14/16/67.html -http://yp.gates96.com/0/14/16/86.html -http://yp.gates96.com/0/14/16/92.html -http://yp.gates96.com/0/14/17/15.html -http://yp.gates96.com/0/14/17/22.html -http://yp.gates96.com/0/14/17/44.html -http://yp.gates96.com/0/14/18/27.html -http://yp.gates96.com/0/14/18/29.html -http://yp.gates96.com/0/14/18/83.html -http://yp.gates96.com/0/14/19/35.html -http://yp.gates96.com/0/14/19/58.html -http://www.123bestphonerates.com/q/001p/vn/ZWUdEJwdxM.htm -http://www.trax.nilex.co.uk/trax.cgi/A1C/B1U/A2S/B3L/A4S/B1L/ -http://www.trax.nilex.co.uk/trax.cgi/A1C/B1U/A2S/B3L/A4S/C2D/ -http://southwind.themes.tucows.com/skins/icq/preview/68532.html -http://southwind.themes.tucows.com/skins/icq/adnload/77797.html -http://southwind.themes.tucows.com/skins/icq/preview/55623.html -http://southwind.themes.tucows.com/skins/icq/adnload/51324.html -http://southwind.themes.tucows.com/skins/icq/adnload/26609.html -http://southwind.themes.tucows.com/skins/icq/adnload/48629.html -http://southwind.themes.tucows.com/skins/icq/adnload/48628.html -http://www.webcom.com.mx/cronica/1999/mar/09/neg01.html -http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/msp98/news/mpl000207.html -http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/msp98/news/news61.html -http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/msp98/ds2/fact.html -http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/mgs/sci/mola/98lander.html -http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/msp98/news/status990123.html -http://ustlib.ust.hk/search*chi/dmarriage/dmarriage/-5,-1,0,B/exact&F=dmarriage+china&1,4/limit -http://mediate.magicbutton.net/do/session/625641/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-artc.html -http://www.scifi.com/cgi-bin/rbox/articles.pl?1&6&1721&20 -http://www.areteoutdoors.com/contribute/earth/b.97.r.54.g.1706.html -http://members.tripod.lycos.co.kr/ifoo6981/?M=A -http://link.fastpartner.com/do/session/600395/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/bol.php -http://link.fastpartner.com/do/session/600395/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mediatransfer.php -http://link.fastpartner.com/do/session/600395/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/smartguy.php -http://www.safrex.com/catalog/elite08/elite084c.html -http://www.911codes.com/games/platform/psx/sect/div/cont/list_cheat/spray/y/id/0000005511/gid/0000003893/_cheats/_walkthroughs/_codes/_pc/_n64/_psx/_gameboy/_playstation/ -http://yp.gates96.com/7/44/10/4.html -http://yp.gates96.com/7/44/10/15.html -http://yp.gates96.com/7/44/10/30.html -http://yp.gates96.com/7/44/10/32.html -http://yp.gates96.com/7/44/10/36.html -http://yp.gates96.com/7/44/11/1.html -http://yp.gates96.com/7/44/11/41.html -http://yp.gates96.com/7/44/11/44.html -http://yp.gates96.com/7/44/12/29.html -http://yp.gates96.com/7/44/12/76.html -http://yp.gates96.com/7/44/12/81.html -http://yp.gates96.com/7/44/13/56.html -http://yp.gates96.com/7/44/14/19.html -http://yp.gates96.com/7/44/15/14.html -http://yp.gates96.com/7/44/15/52.html -http://yp.gates96.com/7/44/15/62.html -http://yp.gates96.com/7/44/15/72.html -http://yp.gates96.com/7/44/15/78.html -http://yp.gates96.com/7/44/15/81.html -http://yp.gates96.com/7/44/15/82.html -http://yp.gates96.com/7/44/16/78.html -http://yp.gates96.com/7/44/16/93.html -http://yp.gates96.com/7/44/17/51.html -http://yp.gates96.com/7/44/17/75.html -http://yp.gates96.com/7/44/18/43.html -http://yp.gates96.com/7/44/18/92.html -http://yp.gates96.com/7/44/19/26.html -http://www3.newstimes.com/archive2000/oct17/bze.htm -http://member.aol.co%20m/askmo/ -http://home.excite.co.uk/directory/categories/528195 -http://www.scifi.com/bboard/browse.cgi/1/5/545/11566?pnum=1 -http://member.shangdu.net/home1/havdone/game/gonglue/ljcq.htm -http://member.shangdu.net/home1/havdone/game/gonglue/lishou.htm -http://archiv.leo.org/cgi-bin/leo-md5.pl/pub/comp/usenet/comp.sources.misc/dostrace/ -http://yp.gates96.com/8/70/91/12.html -http://yp.gates96.com/8/70/91/20.html -http://yp.gates96.com/8/70/91/45.html -http://yp.gates96.com/8/70/92/29.html -http://yp.gates96.com/8/70/92/40.html -http://yp.gates96.com/8/70/92/74.html -http://yp.gates96.com/8/70/93/9.html -http://yp.gates96.com/8/70/93/11.html -http://yp.gates96.com/8/70/94/10.html -http://yp.gates96.com/8/70/94/90.html -http://yp.gates96.com/8/70/95/4.html -http://yp.gates96.com/8/70/95/13.html -http://yp.gates96.com/8/70/95/58.html -http://yp.gates96.com/8/70/95/74.html -http://yp.gates96.com/8/70/95/80.html -http://yp.gates96.com/8/70/96/34.html -http://yp.gates96.com/8/70/96/65.html -http://yp.gates96.com/8/70/97/0.html -http://yp.gates96.com/8/70/97/16.html -http://yp.gates96.com/8/70/97/75.html -http://yp.gates96.com/8/70/98/27.html -http://yp.gates96.com/8/70/98/60.html -http://www.icopyright.com/1.1638.306154 -http://www.zeal.com/category/be_zealous.jhtml?cid=828 -http://lib1.nippon-foundation.or.jp/1996/0621/contents/004.htm -http://www.haikou.hainan.gov.cn/pandect/nj/n96jada.htm -http://www.chaos.dk/sexriddle/s/e/x/p/b/m/s/ -http://www.symantec.ca/region/uk/resources/mobile/nav.html -http://retailer.gocollect.com/do/session/1912798/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/products/product_lines.asp -http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/ie/Tabitha/http_-2www.adultlinks.net/gallery.shtml -http://f22.parsimony.net/forum42460/messages/1.htm -http://www.greenleaves.com/bookcat/gb_0722530986.html -http://www.classiccmp.org/mail-archive/classiccmp/1998-06/0638.html -http://www1.onelist.com/dir/Society/Paranormal/UFOs/Biblical_Perspectives -http://home.hiwaay.net/~bjacobs/genealogy/laster/html/d0055/g0000045.html -http://link.fastpartner.com/do/session/600374/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/netmaling.php -http://big5.peopledaily.com.cn/haiwai/200003/03/newfiles/A104.html -http://ustlib.ust.hk/search*chi/achang+chieh+mei/achang+chieh+mei/-5,-1,0,B/frameset&F=achang+chieh+fu&1,,2 -http://teleline.terra.es/personal/mgsair/chtml/ejemplos/marcos1.html -http://myhome.naver.com/toktok01/bbs.php3?p_work=admin&p_page=1 -http://netway.pda.tucows.com/palm/adnload/34443_22051.html -http://netway.pda.tucows.com/palm/adnload/34930_22057.html -http://netway.pda.tucows.com/palm/adnload/34435_22044.html -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kmusic/brahms/qtWaveTrack.h?sortby=rev&only_with_tag=HEAD -http://sinr.net/book/content/39/8411.html -http://www.egroups.com/post/gvocsa?act=reply&messageNum=145 -http://www.diogenes.ch/4DACTION/web_rd_aut_prview/a_id=7056669&area=&ID=483352 -http://www.brio.de/BRIO.catalog/39fe2f7d06fe4a08273fd472aa7806a9/UserTemplate/1 -http://www3.newstimes.com/archive2000/sep01/rgd.htm -http://community.webshots.com/photo/5886633/5886821zAagKCgZhs -http://community.webshots.com/photo/5886633/5917061PxBHHqElgV -http://www.dnai.com/~mbaum/anita/html/eng/art/images/image38.html -http://www.houses-apartment-listings.com/Michigan/city_search_criteria.asp?state=MI&City=CLINTON -http://www.brio.de/BRIO.catalog/39fdb87c09896af6273fd472aa78076c/UserTemplate/10 -http://www.expressindia.com/ie/daily/19990129/02950495p.html -http://www.linux.com/networking/web/unix/internet/project/security/ -http://www.linux.com/networking/web/unix/internet/project/Red_Hat/ -http://www.linux.com/networking/web/unix/internet/project/freshmeat/ -http://www.linux.com/networking/web/unix/internet/project/?kw_offset=50 -http://ring.yamanashi.ac.jp/pub/linux/debian/debian/dists/Debian2.2r0/non-free/binary-i386/science/?N=D -http://ftp.task.gda.pl/pub/games/idgames/utils/level_edit/acaddoom.txt -http://www.affiliate.hpstore.hp.co.uk/do/session/380864/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp -http://fi.egroups.com/post/allianc?act=reply&messageNum=2305 -http://polygraph.ircache.net:8181/services/design/company/http_-2burn.ucsd.edu/~abcf -http://polygraph.ircache.net:8181/services/design/company/miami.htm -http://www.utexas.edu/ftp/admin/AI_ATTIC/ATW/Mosaic.instruct/?D=A -http://ftp.du.se/disk3/redhat/updates/powertools/current/alpha/ -http://www.multicosm.com/facade/demo.multicosm.com/facade/www.informationweek.com/mediakit/00/default.html -http://www.multicosm.com/facade/demo.multicosm.com/facade/www.informationweek.com/mediakit/00/about_overview.html -http://www7.tok2.com/home/maki67/menu.htm -http://www.mapion.co.jp/custom/AOL/admi/23/23103/tsujicho/2chome/index-24.html -http://sunsite.org.uk/public/computing/networks/internet/ietf/printmib/printmib-attendees-97apr.txt -http://ftp.univie.ac.at/packages/tex/macros/latex2e/contrib/supported/nomencl/?N=D -http://spaceports.tucows.com/winme/adnload/137993_30287.html -http://habenix.uni-muenster.de/Rektorat/Forschungsberichte-1997-1998/fo05acd01.htm -http://www.power2lead.com/Global/English.nsf/pgWWLocations!OpenPage&ExpandSection=2,25,7,32,18 -http://www.teacherformation.org/html/od/facilitators.cfm/task1,help/discussion_id,2/xid,6155/yid,3651726 -http://itcareers.careercast.com/texis/it/itjs/+IwwBmeS9D867xwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew7hmwGAnBoDtapGdtGwMamnVncdpa51ppdGBaqconDBaqdMM1DoqwBodDaoDVn5BMnDBapGdm1qBaMwDwtnaqGnwBoVnaMFqhgfHNEDzm7wwwpBmeg9D86exqwww5rmeqDwwwBrmeZpwww/morelike.html -http://itcareers.careercast.com/texis/it/itjs/+XwwBmie0B-deaqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew7hmwGAnBoDtapGdtGwMamnVncdpa51ppdGBaqconDBaqdMM1DoqwBodDaoDVn5BMnDBapGdm1qBaMwDwtnaqGnwBoVnaMFqhgfHNEDzm7wwwpBmeg9D86exqwww5rm-mwwBrmeZpwww/morelike.html -http://members.iinet.net.au/~scott3/legacy/matt.html -http://cn.egroups.com/post/bastardimage?act=forward&messageNum=11 -http://ftp.nodomainname.net/pub/mirrors/.2/gnu/tasks/?N=D -http://ftp.nodomainname.net/pub/mirrors/.2/gnu/tasks/standards.text -http://10000downloads.subportal.com/sn/Utilities/Misc__Utilities/11320.html -http://mindit.netmind.com/proxy/http://www.altera.com/html/tools/swupdates.html -http://www.next.com.hk/mag/419/news/an06.htm -http://www.areteoutdoors.com/channel/air/b.283.g.3871.html -http://troop485.tripod.com/documents/johnwayne.htm -http://troop485.tripod.com/documents/bp-churchhill.htm -http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/22P03|972959558|Security|user|0|1,0,0,1 -http://www9.hmv.co.uk:5555/do/session/1347794/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d120_sd0_pt0.html -http://ftp.du.se/debian/dists/Debian2.2r0/main/disks-m68k/2.2.16-2000-07-14/mac/images-1.44/?S=A -http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20043193/-5,-1,0,B/buttonframe&F=bp20043190&1,1 -http://www.parlament.ch/internet98/Poly/Suchen_amtl_Bulletin/ce98/ete/275.HTM -http://in.egroups.com/messages/svpvril/5195?viscount=-30 -http://in.egroups.com/messages/svpvril/?expand=1 -http://retailer.gocollect.com/do/session/1912744/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/checkout/shopping_cart.asp -http://retailer.gocollect.com/do/session/1912744/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://www18.freeweb.ne.jp/sports/imamako/ -http://www.cs.ucc.ie/javadocs/jdk1.2.2/docs/api/java/awt/geom/class-use/QuadCurve2D.Double.html -http://click-to.tell-a-friend.boardhost.com/tell-a-friend-confirm.cgi?stigmaonline&msg=172 -http://www.emerchandise.com/aboutus/b.TV%20ANGEL/s.2YYjVOgH -http://www.leyou.com/product/ShowResult.php?LY_Category=0531&page=3 -http://cafe6.daum.net/Cafe-bin/Bbs.cgi/rest114pds/qry/zka/B2-kB23o/qqatt/^ -http://sunsite.informatik.rwth-aachen.de/LinuxArchives/sunsite.unc.edu/distributions/linux-router/dists/2.9.6/base/?N=D -http://www-uk5.cricket.org/link_to_database/ARCHIVE/1999-2000/PAK_IN_SL/FANTASY/ -http://findmail.com/message/sangersreview/99 -http://phase.etl.go.jp/mirrors/netlib/utk/people/JackDongarra/SLIDES/osu-498/sld011.htm -http://tucows.datasync.com/winme/preview/75261.html -http://secure.danysoft.com/asp/dany.tienda/1266636789/Catalog -http://www.birding.about.com/hobbies/birding/cs/placesecuador/index_2.htm -http://www.cpami.gov.tw/ymsnp/animal/fauna/nospc385text.htm -http://www.fh-telekom-leipzig.de/hilfe/pak_e/paket_inhalt_jade_dsl.html -http://home.vicnet.net.au/~nunayl/feedback.html -http://www.expage.com/nibina -http://www.expage.com/virtuaalisiittolantallivihko -http://www.expage.com/muittentallijenkisoja -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=9,39,33 -http://retailer.gocollect.com/do/session/1912707/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=2 -http://www.streetprices.com/Electronics/Other/MAKE+SYMANTEC/sortdetailbystock/SP322647.html -http://www.peopledaily.co.jp/haiwai/199810/09/no_981009003024_6.html -http://mediate.magicbutton.net/do/session/625622/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-artc.html -http://mediate.magicbutton.net/do/session/625622/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html -http://www.nada.kth.se/systemgruppen/docs/javadoc/jdk-1.3/docs/api/javax/swing/plaf/basic/class-use/BasicSliderUI.ChangeHandler.html -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/Collect_DB_Advers2/2000-09-10/08/?N=D -http://yp.gates96.com/12/57/30/53.html -http://yp.gates96.com/12/57/32/14.html -http://yp.gates96.com/12/57/32/97.html -http://yp.gates96.com/12/57/33/1.html -http://yp.gates96.com/12/57/33/37.html -http://yp.gates96.com/12/57/37/91.html -http://yp.gates96.com/12/57/37/98.html -http://yp.gates96.com/12/57/38/23.html -http://yp.gates96.com/12/57/38/34.html -http://yp.gates96.com/12/57/38/51.html -http://yp.gates96.com/12/57/38/53.html -http://yp.gates96.com/12/57/39/43.html -http://yp.gates96.com/12/57/39/56.html -http://yp.gates96.com/12/57/39/68.html -http://yp.gates96.com/12/57/39/70.html -http://www3.sympatico.ca/jacques.m.boisvert/Data_Distribution.html -http://www.garekiya.com/female/female02-25.html -http://www.brio.de/BRIO.catalog/39fe2f6c06f4cd8e273fd472aa780734/UserTemplate/5 -http://202.99.23.195/GB/channel1/13/20001030/291723.html -http://db.bbc.co.uk/education/gcsebitesize/maths/shape_and_space_i_h/loci_rev.shtml -http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceStoreCategories-BBC709F9_97F3_1F2D7EFC4CA45617D914720977E88400 -http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceShoppingCartPage-BBC709F9_97F3_1F2D7EFC4CA45617D914720977E88400 -http://polygraph.ircache.net:8181/http_-2www.microsoft.com/frontpage/http_-2www.hercules.com/history.htm -http://www.jbc.org/cgi/content/short/275/36/27501 -http://brazil.mit.edu/sdb/de/html/keylist.NNTP.html -http://ads3.zdnet.com/c/g=r771&c=a53605&idx=2000.10.30.21.30.57/www.micronpc.com/zd/max1299 -http://webtools.familyeducation.com/whatworks/item/front/0,2551,22-9696-6689-473-46499,00.html -http://www.dispatch.co.za/2000/04/08/business/HIGHLOW.HTM -http://generalstore.everdream.com/kore/catalog/Office_Supplies/Forms,_Record_Keeping_&_Reference/Human_Resources/Motivational/brand.html?sort=price&count=0 -http://www.laria.u-picardie.fr/docs/www.linux-france.org/article/securite/intro.html -http://ftp.uni-stuttgart.de/pub/netscape/communicator/slovenian/4.51/windows/windows95_or_nt/ -http://cafe4.daum.net/Cafe-bin/Bbs.cgi/monjatingpds/lst/qqeq/1/zka/B2-kBnNt -http://myhome.shinbiro.com/~funky27/novel18.htm -http://www.apcmag.com/apcweb/reviewsdisc.nsf/aac7d56ca8fd884b852563be00610639/25858e2d9c878e294a2567060015364d!EditDocument -http://www.private-immobilien-boerse.de/nordrhein-Westfalen/luedinghausen/Verkauf/3d-service/Gemeinsam/Immolink/Gemeinsam/erreichenPartner/Private-IB/ -http://www.eos.dk/archive/swing/msg00405.html -http://www.jobvillage.com/channel/jobs/human_resources/benefits_analysis/b.2807.g.1757.html -http://www.hanaga.com.cn/gbjc/tc/jq.htm -http://www.multimap.com/wi/33747.htm -http://www.multimap.com/wi/143959.htm -http://home.freeuk.net/jdl/Left_Navigate.htm -http://www.crit.org/nph-edit.cgi/http://crit.org/pub/ifi.unizh.ch/wagner/just-testing.html -http://www.interessengemeinschaft-musik.de/catalog%20data/body_22.html -http://aleph.tau.ac.il:4500/ALEPH/ENG/ATA/AAS/AAS/FIND-ACC/0333501 -http://www.mojahedin.org/Pages/Mojahed/Mojahed451/rp/rp09.html -http://genforum.genealogy.com/cgi-genforum/forums/lenhart.cgi?158 -http://carriage.de/Schoner/collections/Geschichte/Sammlungen/info-e/ -http://cafe4.daum.net/Cafe-bin/Bbs.cgi/pflhs11pds/rnw/zka/B2-kB2-s -http://ftp.lip6.fr/pub11/NetBSD/arch/hpcmips/pkgstat/20001008.0536/textproc/xerces-j-current/ -http://dk.egroups.com/message/scotdisinfo/306 -http://groups.haas.berkeley.edu/hcs/Docs/SASv8/sasdoc/sashtml/proc/z0360708.htm -http://www.legend-net.com/news/tiyu/messages/474.html -http://www.legend-net.com/news/tiyu/messages/466.html -http://tv.thevines.com/leaf/AA0000373887/3/0/0/&hmode=on -http://vorg1.subportal.com/sn/Business/Enhanced_Calculators/5511.html -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=7,28,31,24,35 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=24,5,17,30,11 -http://ftp.gwdg.de/pub/eff/Global/USA/Legislation/gtda_export.regulations -http://www.dein-schicksal.de/Fotoanzeigen/April_2000/7/17/27/body_57.html -http://www.fujian-window.com/Fujian_w/news/mzrb1/20000630/2_14.html -http://www.webswap.com/shelf/2/17559/sell.html -http://search.leg.wa.gov/wslrcw/RCW%20%2036%20%20TITLE/RCW%20%2036%20.100%20%20CHAPTER/RCW%20%2036%20.100%20.060.htm -http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1997-98/jmc1/labs/Ex02/icc97/?M=A -http://school.educities.org/card/abc0609.html -http://school.educities.org/card/huangmei.html -http://school.educities.org/card/a126457822.html -http://school.educities.org/card/a8911.html -http://school.educities.org/card/aa5117.html -http://school.educities.org/card/b3575610.html -http://school.educities.org/card/c5625.html -http://school.educities.org/card/h1230997.html -http://school.educities.org/card/h224153937.html -http://school.educities.org/card/julie9.html -http://school.educities.org/card/lefe135.html -http://school.educities.org/card/nl123.html -http://school.educities.org/card/s5802.html -http://school.educities.org/card/s58120.html -http://school.educities.org/card/s5931.html -http://school.educities.org/card/s6197.html -http://school.educities.org/card/vov.html -http://school.educities.org/card/xx5331.html -http://darkwing.uoregon.edu/~cblanksh/GeneratedItems/?M=A -http://ciscom.gamecenter.com/Tipcheat/PC/Item/0,128,0-202,00.html -http://rotten-tomatoes.com/movies/browse/1010942/video.php -http://rotten-tomatoes.com/movies/browse/1076825/reviews.php -http://archive.soccerage.com/s/fr/09/98335.html -http://www.ferien-immobilien.de/nordrhein-Westfalen/aachen/Verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/3d-service/Gemeinsam/erreichenPartner/Gemeinsam/impressum.htm -http://www.ebigchina.com/tool_tellfriend.phtml?code=msg&mid=3174 -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/src/libexec/rpc.rwalld/Makefile?only_with_tag=RELENG_3 -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/src/libexec/rpc.rwalld/Makefile?only_with_tag=MAIN -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/src/libexec/rpc.rwalld/Makefile?only_with_tag=RELENG_3_BP -http://ring.jec.ad.jp/pub/linux/debian/debian/dists/unstable/contrib/binary-sh/admin/?M=A -http://www2.eunet.lv/library/alt/URIKOVA/FORTUNE_D/Mirrors -http://www.hermes.dk/departments/om/publica.shtml -http://208.194.150.10/Ski/Articles/DrDewpoint/001/bannerAd.shtml -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/quanta/quanta/widgets/?sortby=log&only_with_tag=start -http://biblio.cesga.es:81/search*gag/aSempere+Navarro,+Antonio-Vicente/asempere+navarro+antonio+vicente/-5,-1,0,E/frameset&F=asempere+y+guarinos+juan+trad&1,1 -http://www.fractal.com.ru/Component/Toshiba/74Cxx/TC74HC74DS.pdf -http://www.staroriental.net/nav/soeg/ihf,aai,n3,7,Electric+Wave+Girl+1998.html -http://excite.de/auto/katalog/11803 -http://gatekeeper.dec.com/pub/BSD/NetBSD/NetBSD-current/pkgsrc/sysutils/amanda-client/pkg/ -http://www.smcworld.com/smcworld/bp_e/large/0524_2301_002x2301_003x2301_004x2301_005x2301_006x2301_007_2301_005b.html -http://www.kaos.dk/sexriddle/x/j/t/z/d/ -http://www.kaos.dk/sexriddle/x/j/t/z/e/ -http://spartanburg2.edgate.com/blgspringes/school_athletics/parent/ -http://www-personal.engin.umich.edu/~mhaanpaa/?S=D -http://www.amcity.com/jacksonville/stories/2000/05/15/story8.html?t=email_story -http://yp.gates96.com/7/47/40/13.html -http://yp.gates96.com/7/47/42/7.html -http://yp.gates96.com/7/47/43/2.html -http://yp.gates96.com/7/47/43/22.html -http://yp.gates96.com/7/47/43/54.html -http://yp.gates96.com/7/47/44/0.html -http://yp.gates96.com/7/47/45/3.html -http://yp.gates96.com/7/47/45/30.html -http://yp.gates96.com/7/47/45/78.html -http://yp.gates96.com/7/47/45/89.html -http://yp.gates96.com/7/47/46/41.html -http://yp.gates96.com/7/47/46/71.html -http://yp.gates96.com/7/47/48/1.html -http://yp.gates96.com/7/47/48/68.html -http://yp.gates96.com/7/47/48/92.html -http://yp.gates96.com/7/47/49/6.html -http://yp.gates96.com/7/47/49/43.html -http://yp.gates96.com/7/47/49/86.html -http://yp.gates96.com/7/47/49/97.html -http://de.excite.de/bildung/katalog/24692 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=90&discrim=226,20,231 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=90&discrim=226,20,4 -http://www.affiliate.hpstore.hp.co.uk/do/session/380862/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/search.asp -http://www1.zdnet.co.uk/news/news1/ns-1511.html -http://bellona.itworld.com:8080/cwi/reprint/0,1926,NAV63-128-1357-1367_STO48730,00.html -http://wwwhome.cs.utwente.nl/~zwiers/projects/docs/jdk/api/java/util/class-use/SortedMap.html -http://cgi.cnnsi.com/football/nfl/players/Ed.McCaffrey/ -http://fi.egroups.com/messages/philmusic/12006 -http://fi.egroups.com/messages/philmusic/12123 -http://fi.egroups.com/messages/philmusic/213 -http://fi.egroups.com/messages/philmusic/1826 -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=22,0+20,0-9,2-~ -http://my.egroups.com/message/gps4gis/164 -http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/MarketingStrategie/Gemeinsam/Inserieren/Startseite/Startseite/Gemeinsam/versicherungen/gebaeude/anforderungsformular.htm -http://apple.excite.com/entertainment/fine_arts/classical_music/composers/baroque_composers/albinoni_tomaso/works/ -http://www.lithoquoter.com/Scripts/WebObjects.exe/Printers.woa/609420000046582000001552000000949302/main.wo/7834100000849302/4/-/prime -http://yp.gates96.com/11/75/40/25.html -http://yp.gates96.com/11/75/40/38.html -http://yp.gates96.com/11/75/40/88.html -http://yp.gates96.com/11/75/40/91.html -http://yp.gates96.com/11/75/42/1.html -http://yp.gates96.com/11/75/42/74.html -http://yp.gates96.com/11/75/42/81.html -http://yp.gates96.com/11/75/43/45.html -http://yp.gates96.com/11/75/43/51.html -http://yp.gates96.com/11/75/46/25.html -http://yp.gates96.com/11/75/46/72.html -http://yp.gates96.com/11/75/46/89.html -http://yp.gates96.com/11/75/46/91.html -http://yp.gates96.com/11/75/47/5.html -http://yp.gates96.com/11/75/48/67.html -http://yp.gates96.com/11/75/49/89.html -http://users.telerama.com/~mross/jenny/forsale.html -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=14&discrim=212,57 -http://ring.htcn.ne.jp/archives/NetBSD/NetBSD-1.4.2/atari/binary/security/?N=D -http://library.bangor.ac.uk/search/dCanada+--+Agricultural+resources+--+19th+century/dcanada+agricultural+resources+++19th+century/-5,-1,0,B/exact&F=dcanaanites&1,3 -http://www.brio.de/BRIO.catalog/39fe2f6406e8eec4273fd472aa780738/UserTemplate/5 -http://kuyper.calvin.edu/fathers2/NPNF1-05/npnf1-05-04.htm -http://kuyper.calvin.edu/fathers2/NPNF1-05/npnf1-05-08.htm -http://kuyper.calvin.edu/fathers2/NPNF1-05/npnf1-05-20.htm -http://polygraph.ircache.net:8181/http_-2www.sgi.net/http_-2www.itools.com/research-it/http_-2www.aardvarkclay.com/Themes/http_-2www.snapsite.com/guests/sk8ctrl/public/html/sitemap/sitemap.htm -http://www.genexchange.com/cemlist.cfm?state=mo&county=webster -http://newsone.net/nnr/showart/alt.current-events.haiti/911 -http://212.11.11.62/voyages_degriffes/MEXIQUE/PARIS+-+MEXICO+A%2FR/SAI00511790/ -http://bitwise.linux.tucows.com/x11html/adnload/131942_45932.html -http://www.brio.de/BRIO.catalog/39fe2f740910301a2740d472aa7806aa/UserTemplate/1 -http://singles-ads.theshoppe.com/cgi-bin/c/736/64/dXNlcmJhbm5lcg==/gn/3585/ -http://www.chaos.dk/sexriddle/j/l/v/y/t/ -http://www.interlog.com/~prandall/relations/d0003/g0000795.html -http://ftp.jp.debian.org/debian/dists/woody/non-free/binary-arm/oldlibs/?M=A -http://biblioteca.upv.es/bib/doc/doc_fisbd/129/97268//V/1828099/6////25/N/MLTPAID -http://biblioteca.upv.es/bib/doc/doc_fisbd/129/147168//V/1828099/11////25/N/MLTPAID -http://biblioteca.upv.es/bib/doc/doc_fisbd/129/124846//V/1828099/24////25/N/MLTPAID -http://mirrortucows.technet.it/winme/htmlbeginnerme_size.html -http://www.bcbsal.org/Provider_Dir/pharmacy/state/Georgia/HAWKINSVILLE/index_10201.html -http://www.incestpornstories.com/tinkerbellbeard/ac/plus-sizehealthy/petitevietnamese/slanted-eyes/cuntschoolgirls/high-schoolteenager/cherryunderage.html -http://www.0563.net/imode2/hazu/play/outdoor/nature/nature1.htm -http://www.launch.com/music/songpage/pvn_content/0,5259,1074221,00.html -http://ftp.jp.debian.org/debian/dists/unstable/main/binary-alpha/tex/?S=A -http://iceberg.adhomeworld.com/cgi-win/redirect.exe/896425026 -http://www.nrc-handelsblad.nl/W2/Lab/Baan/000726-a.html -http://www.nrc-handelsblad.nl/W2/Lab/Baan/000718-a.html -http://members.tripod.co.jp/muzyaki/?M=A -http://alfa.nic.in/lsdeb/ls12/ses4/0413039930.htm -http://excite.de/immobilien/katalog/26640 -http://excite.de/immobilien/katalog/27591 -http://excite.de/immobilien/katalog/28370 -http://excite.de/immobilien/katalog/28376 -http://excite.de/immobilien/katalog/26426 -http://excite.de/immobilien/katalog/28458 -http://www.emerchandise.com/aboutus/b.TV%20THE60S/s.qxmvd5Gr -http://www.computerworld.com.cn/99/week/9920/9920c13.asp -http://www.stud.ntnu.no/~oystena/oystena/cache/dvx70a.html -http://nealet.subportal.com/sn/Shell_and_Desktop/Holiday_Screen_Savers/ -http://dk.egroups.com/message/ugm/40?source=1 -http://www1.bdaserver.de/bda/nat/pzt/formel1/gp/mon.html -http://www17.freeweb.ne.jp/diary/t-soken/love-love.htm -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-10-12/14/971332013437.txt -http://pub3.ezboard.com/f80sxchangegeneraldiscussion.showMessage?topicID=60.topic -http://www.northampton.ac.uk/cgi-bin/liberation/betsie/betsie.pl/0005/www.nene.ac.uk/ncr/enrol/sectn4/pdf/4-5.pdf -http://www.xmission.com/~dkenison/cgi/lwgate.cgi/LDS-BOOKSHELF/archives/v01.n676/Date/article-15.html -http://www.eos.dk/archive/swing/nav08574.html -http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=1,4,11,18,5,17 -http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=6,4,11,18,5,17 -http://cn.egroups.com/message/highlanderswaps/3351 -http://cn.egroups.com/message/highlanderswaps/3356 -http://www.mobygames.com/user/sheet/view/havelist/so,game_title(game_id)+DESC,game_havelist_id+DESC/userHaveListId,18/userSheetId,832/offset,15/ -http://www.mobygames.com/user/sheet/view/havelist/so,game_title(game_id)+DESC,game_havelist_id+DESC/userHaveListId,18/userSheetId,832/offset,60/ -http://gettosdownloads.subportal.com/sn/Palm_Pilot/Home_and_Hobby/12385.html -http://biblio.cesga.es:81/search*gag/aOurense+(Di%26oacute%3Bcesis).+Obispado+de+Ourense,+ed./aourense+diocesis+obispado+de+ourense+ed/-5,-1,0,B/browse -http://www.beneteau-owners.com/beneteau.nsf/userlistbyboat!OpenView&Start=21.24&Count=45&Expand=39 -http://www.geocities.com/Yosemite/8908/ -http://www.geocities.com/Yosemite/3295/ -http://lists.insecure.org/linux-kernel/2000/Apr/4105.html -http://www.telematik.informatik.uni-karlsruhe.de/osf/sw/v5.0x/lp2/dna500/ -http://atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/dist/0.0.28/graphics/TreeBuilder/TreeMaker/CVS/?M=A -http://www.21hk.com/book/zt/zt/zpj/c/chichuancilang/txmoxj/012.htm -http://chat.hani.co.kr/NetBBS/Bbs.dll/brief/rcm/zka/B23lBn-t/qqatt/^ -http://www3.buch-per-sms.de/impressum.jsp$ID=To7770mC6889218603037781At0.41865389376542195 -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1997/7/0/904457/ -http://www.mets.com/gameinfo/990504-recap.htm -http://www.mets.com/Video/990709-PiazzaHR_lr.asp -http://www.people.zeelandnet.nl/cn.atlas/compatlasw1.html -http://www.digitaldrucke.de/(aktuell,bekanntschaften,hilfe,marktplatz,nuernberg)/_fort/html/themen/markt/bekannt/bekannt.htm -http://www.staroriental.net/nav/soeg/ihf,acf,s0,359,Gigi+Leung+Wing-Kay.html -http://rapidus.tucows.com/winme/adnload/137435_28887.html -http://library.bangor.ac.uk/search/aBerthoff,+Ann+E/aberthoff+ann+e/-5,-1,0,B/frameset&F=aberthier+rene&1,1 -http://www.teenplatinum.com/barelylegal/underagevirgin/abductionbondage/amateurco-ed/chijapanese/{gaylink} -http://www.paisvirtual.com/informatica/freeware/cltorres/contra.htm -http://library.cuhk.edu.hk/search*chi/aInstitution+of+Civil+Engineers+(Great+Britain)/ainstitution+of+civil+engineers+great+britain/-5,-1,0,B/browse -http://www.digitaldrucke.de/(aktuell,computer,hersteller,hilfe)/_fort/html/themen/computer/hard/links/dell.htm -http://www.angelfire.com/ar/jimbowles/weekofoct3.html -http://www.dtic.mil/envirodod/derpreport95/vol_2/b2_1991.html -http://www.dtic.mil/envirodod/derpreport95/vol_2/b2_2010.html -http://kobe.cool.ne.jp/heartisland/y_top0004.html -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=146&discrim=10,97,3 -http://www.channel7000.com/partners/tv/consumer/partners-tv-consumer-20000207-231308.html -http://www.channel7000.com/partners/tv/consumer/partners-tv-consumer-19991206-195152.html -http://www.channel7000.com/partners/tv/consumer/partners-tv-consumer-990920-105620.html -http://www.channel7000.com/partners/tv/consumer/partners-tv-consumer-990810-082554.html -http://gallery2.simplenet.com/lobby/main/videocaps/lalbrght/conair/laca26.htm -http://www.ld.com/cbd/archive/1999/09(September)/30-Sep-1999/Bawd007.htm -http://www.ld.com/cbd/archive/1999/09(September)/30-Sep-1999/Bawd013.htm -http://chunma.yeungnam.ac.kr/~j4390071/ -http://www.chaos.dk/sexriddle/h/y/z/m/ -http://www.maas.ccr.it/cgi-win/hiweb.exe/a18/d262/b190,8,be,29,29,,b,,be,b, -http://pub17.ezboard.com/fanimesandrpgslinkstositesandotherforums.showMessage?topicID=2.topic -http://www.hotelboulevard.com/fr/riviera/standard/htmled1e03872682f66e105b3c38b4506d50/sessionLang/ANG/search.html -http://bbs.msquare.or.kr/list.bbs/course/old/DiscMath95/9.html -http://www.rezel.enst.fr/ftp/linux/distributions/debian/CD-1/dists/unstable/main/binary-all/mail/?N=D -http://www.ee/epbe/pangandus/9910/0.2.txt -http://shitty.10pics.com/buttfucking/rear/ -http://www.thestateofcolorado.com/hsiwindowdoorlettering.html -http://www.generation-formation.fr/brevesc.htm---o21zAo0UtDo0Ol9A074fo6Td4ezyr6feZJPAPfVbNyqruePl9neNHhIeOkatAhcgNA074wNV8XzAhcgNAPfVbdsNhJI.htm -http://netscape.digitalcity.com/boston/sports/standings.dci?league=NBA&team=BOS -http://netscape.digitalcity.com/boston/sports/attcompare.dci?league=NBA&team=BOS -http://retailer.gocollect.com/do/session/1912752/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://mindit.netmind.com/proxy/http://www.skepdic.com/sympathetic.html -http://mindit.netmind.com/proxy/http://faculty.washington.edu/chudler/moon.html -http://itcareers.careercast.com/texis/it/itjs/++wwBmeE_D86esmwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew8Qwo5qda5dc1BodDawGnwaGn31oGnmaoDmnpBraADdicnmtnapGdm1qBaBnqrDoqwcatGd1pamnVncdpaMFqoET02fgENDzmezxwwwpBmeC_D86Qwww5rmkmwwBrmeyDwww/morelike.html -http://retailer.gocollect.com/do/session/1912762/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/terms_and_conditions.asp -http://retailer.gocollect.com/do/session/1912762/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://www.writtenbyme.com/cgi-bin/rw_readarticle.cgi/141339880.shtml -http://www.writtenbyme.com/cgi-bin/rw_readarticle.cgi/410769654.shtml -http://www.writtenbyme.com/cgi-bin/rw_readarticle.cgi/190045923.shtml -http://tucows.megalink.com/winme/preview/76155.html -http://www.buybuddy.com/sleuth/17/1/2006/32184/ -http://www.affiliate.hpstore.hp.co.uk/do/session/380853/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp -http://pchome.net:81/ch/Hw/CAMERA/canoneosd30/canoneosd30.htm -http://pchome.net:81/ch/Hw/CAMERA/kodaknew.htm -http://pchome.net:81/ch/Hw/MODEM/twluc562w2k.htm -http://pchome.net:81/ch/Hw/MONITOR/mag796fd.htm -http://pchome.net:81/ch/Hw/cool/anquanshuileng/anquanshuileng.htm -http://pchome.net:81/ch/Hw/DISPLAY/3dbenchmarks/3dbenchmarks.htm -http://pchome.net:81/ch/Hw/CAMERA/Microdrive.htm -http://pchome.net:81/ch/Hw/harddisk/niyaomaishime.htm -http://www.civila.com/guitar/desenredada/chat/logos/index.html-ssi -http://members.xoom.it/scialpinismo/gitaappenparm/PreviewPages/PreviewPage7.htm -http://cpan.nitco.com/modules/by-module/Mail/ASPIERS/URI-Bookmarks-0.92.readme -http://polygraph.ircache.net:8181/services/design/http_-2www.swnebr.net/~cambridg/http_-2www.cauce.org/Malcolm/ -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_aswkit_aswkit.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_nbilwv_rbpobu.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_jkawvi_messod.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_jkawvi_otdbms.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_jkawvi_hoktlo.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_uhfkhdn_ilaeh.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_xyhsj_pfepjoa.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_alkqaay_mogsts.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_ighrg_ighrg.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_cbfjod_parbe.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_dqnlq_jfspcj.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_phcro_bwlah.html -http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_phcro_xoxchqb.html -http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/IkhI2h2UISFGhSJ4dK-jGu69npNFUTS7n0SO4q6b8rSzWq_RIDBJOsj9QRxPcb3IZgZlQ5jvjGikzJWNeK-85DucH1Ag5dhhL0czi-GMxyHC1dmfKc0hW5TzqJpnm938SIT3xNrWgjZN66P6 -http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/oo1IpLu33emgRiskeudWkzY7LxFY35wz6EqyQ42lguNadi_4qnt4FhGUPOob_C5Wt99hQSEKEuRTRevsau9UYJ9lySivV-u51_OF4aSEhYXTt98QpjnIOFYPV6acMb20In922uOHMyYdC8HXvwhIP-8o8oM4wLBMdll6aW8xe922WllgXE1F5qlvFqyA -http://msdn.microsoft.com/library/devprods/vs6/visualj/vjref/java.sql.DatabaseMetaData136.html -http://msdn.microsoft.com/library/devprods/vs6/visualj/vjref/java.sql.DatabaseMetaData090.html -http://romulus.ehs.uiuc.edu/cgi-bin/lwgate/RADSAFE/archives/radsafe9902/Date/article-572.html -http://spaceports.tucows.com/winme/preview/76400.html -http://www.telecombroker.com/q/001p/ppc3/qG4gs1ewhU.htm -http://ftp.nodomainname.net/pub/mirrors/.2/gnu/graphics/?N=D -http://retailer.gocollect.com/do/session/1912813/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp -http://retailer.gocollect.com/do/session/1912813/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/news/index.asp -http://retailer.gocollect.com/do/session/1912813/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/privacy_policy.asp -http://202.101.106.19/dir/100/10a/zzgk/bszn/111.htm -http://www.eveclub.com/cgi-bin/eveclub.front/972959538910/Catalog/1000084 -http://www.eveclub.com/cgi-bin/eveclub.front/972959538910/Club/start/1000000 -http://www.slis.ua.edu/cgi-bin/clickthrough.cgi/CT=http_3a_2f_2fwww_2edermis_2enet_2fbilddb_2fdiagnose_2fenglisch_2fi697015_2ehtm -http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/rnumber/8467604 -http://www-personal.engin.umich.edu/~vernage/teamweb/team.building/effective.meetings/effective.meetings.facilitation.htm -http://www4.law.cornell.edu/uscode/42/ch87subchIV.head.html -http://yp.gates96.com/7/27/90/10.html -http://yp.gates96.com/7/27/90/11.html -http://yp.gates96.com/7/27/90/30.html -http://yp.gates96.com/7/27/91/72.html -http://yp.gates96.com/7/27/91/76.html -http://yp.gates96.com/7/27/91/85.html -http://yp.gates96.com/7/27/91/92.html -http://yp.gates96.com/7/27/92/61.html -http://yp.gates96.com/7/27/92/72.html -http://yp.gates96.com/7/27/93/10.html -http://yp.gates96.com/7/27/93/17.html -http://yp.gates96.com/7/27/93/30.html -http://yp.gates96.com/7/27/93/65.html -http://yp.gates96.com/7/27/93/76.html -http://yp.gates96.com/7/27/93/99.html -http://yp.gates96.com/7/27/94/37.html -http://yp.gates96.com/7/27/94/85.html -http://yp.gates96.com/7/27/95/5.html -http://yp.gates96.com/7/27/95/14.html -http://yp.gates96.com/7/27/95/55.html -http://yp.gates96.com/7/27/95/57.html -http://yp.gates96.com/7/27/96/21.html -http://yp.gates96.com/7/27/96/49.html -http://yp.gates96.com/7/27/96/50.html -http://yp.gates96.com/7/27/96/55.html -http://yp.gates96.com/7/27/96/92.html -http://yp.gates96.com/7/27/97/24.html -http://yp.gates96.com/7/27/97/73.html -http://yp.gates96.com/7/27/97/98.html -http://yp.gates96.com/7/27/98/26.html -http://yp.gates96.com/7/27/98/62.html -http://yp.gates96.com/7/27/99/15.html -http://yp.gates96.com/7/27/99/52.html -http://www.nrk.no/finnmark/x2_9_98/nyh11.htm -http://www.excelsior.com.mx/9701/970105/nac18.html -http://www.symantec.co.kr/sabu/igear/igear_educ/stories.html -http://www.smcworld.com/smcworld/bp/pre/0204_1_1070.html -http://www.cpami.gov.tw/ymsnp/animal/fauna/nospc708choice.htm -http://pub9.ezboard.com/fdawsonscreek50374helpwanted -http://pub9.ezboard.com/fdawsonscreek50374frm17 -http://www.happychannel.it/turismo/europa/top_news/schede/scheda_991209110434.shtml -http://www.happychannel.it/turismo/europa/top_news/schede/scheda_991111111106.shtml -http://dirs.educationamerica.net/New_York/Localities/N/New_York_City/Manhattan/Business_and_Economy/ -http://dirs.educationamerica.net/New_York/Localities/N/New_York_City/Manhattan/Government/ -http://china-water.51.net/life/life_20.htm -http://china-water.51.net/life/life_22.htm -http://www.egroups.com/message/ramtalk/17801 -http://www.usahardware.com/inet/webSession/shopper/US972959720-31113/store/dept-1 -http://www.usahardware.com/inet/webSession/shopper/US972959720-31113/store/specials -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=97&discrim=2,68,201 -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/quizz/legendes/misc/music/lit/hasard.html -http://findmail.com/group/ken2061 -http://www.affiliate.hpstore.hp.co.uk/do/session/380852/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-photoworld.com/photoworld.asp?lang=f -http://www.affiliate.hpstore.hp.co.uk/do/session/380852/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/traveljournal.asp -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www-med.stanford.edu/school/banner.html -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www-med.stanford.edu/school/neurosurgery.html -http://hotop.on.net.cn/diguo/club/disp.asp?owner=A201&ID=894 -http://hotop.on.net.cn/diguo/club/disp.asp?owner=A201&ID=846 -http://interbaun.tucows.com/winme/preview/577.html -http://www.ferien-immobilien.de/ungarn/verkauf/Gemeinsam/Immolink/Exklusiv-IB/Startseite/3d-service/Private-IB/Startseite/Default.htm -http://www.eos.dk/archive/swing/msg10936.html -http://www.egroups.com/message/ICSIA-PublicForum/138 -http://www.online.kokusai.co.jp/Service/V0043601/wrd/G200/service/service.html -http://debian.tod.net/debian/dists/unstable/main/source/libs/?N=D -http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d79/b77,e,4d,51,51,819,819,,2,,51,2,4e,,4d,4e, -http://www.redhat.com/mirrors/LDP/LDP/khg/HyperNews/get/fs/fs/9/?N=D -http://ftp.oleane.net/pub/CTAN/systems/knuth/local/man1/?D=A -http://www.jamba.de/KNet/_KNet-_UA8j1-xFd-13bat/browse.de/node.0/cde7f1uou -http://www.jamba.de/KNet/_KNet-_UA8j1-xFd-13bbg/showInfo-jambabanner.de/node.0/cenv0b09a -http://www.tente.de/us/produkte/artikel/af000000736.htm -http://dwp.bigplanet.com/bloomingprairie/look/sitemap.nhtml -http://www.kfh-mainz.de/Organisationen/Ketteler/pf/ws0001.html -http://extreme-dm.com/tracking/reports/dj/nph-reloads.cgi?tag=agmusik -http://www.chaos.dk/sexriddle/c/v/m/v/y/ -http://ring.jec.ad.jp/pub/linux/debian/debian/dists/woody/non-free/binary-i386/electronics/?D=A -http://tongbang-gh.ed.taejon.kr/1998대전시/math/olym/function/m103_003/html/m103_003h01.html -http://www.company-product.com/23063/ -http://members.tripod.lycos.co.kr/re22/CPUCOOL5195/uni2k15/?N=D -http://209.52.189.2/print_message.cfm/stepparents/8279/173602 -http://216.33.87.17/sports/baseball/sba/sba04r.htm -http://www.mc99.co.jp/mvp/member/new/honda/16kr3fj2/search.cgi?_file=038 -http://www.emerchandise.com/browse/EMERCH/COASTERS/s.cU6lmV05 -http://www.emerchandise.com/browse/CHARMED/s.cU6lmV05 -http://www.across.or.jp/nbbs/nbbs.cgi/talk:n18/replyto/462 -http://www.vins-siffert-scea.fr/lycee-seijo/guide/staff/yoshida.htm -http://www.egroups.com/messages/grebel-list/2305 -http://polygraph.ircache.net:8181/services/design/http_-2www.abcjewelry.com/http_-2www.1045fm.com/http_-2www.4sitedesign.com/stp/nbm.html -http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/astro/wmmoonclock/pkg/Attic/DESCR?only_with_tag=RELEASE_4_0_0 -http://biblio.cesga.es:81/search*gag/tMariposas+negras.+1:08,50+min/tmariposas+negras++++1+++08+++50+min/-5,-1,0,B/frameset&F=tmariposa+y+la+hormiga&1,1 -http://polygraph.ircache.net:8181/Cameras/order/rr962.htm -http://polygraph.ircache.net:8181/Cameras/order/dfwmap.htm -http://support.tandy.com/support_audio/doc45/45827.htm -http://image.tulips.tsukuba.ac.jp:70/fif=picture/ECWP/001.fpx&init=-0.23170732,0.0,1.2317073,1.0&rect=0.5,0.25,0.6829269,0.375&wid=600&hei=600&lng=ja&enablePastMaxZoom=OFF&page=uv1-en.html&obj=uv,1.0&cmd=NW -http://pub23.ezboard.com/fcaribbeanvoiceforumsfrm3.showAddTopicScreenFromWeb -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,1+0,0-19,0+9,4 -http://vipnet.tucows.com/win2k/adnload/51108_28465.html -http://vipnet.tucows.com/win2k/adnload/38782_28482.html -http://www4.50megs.com/tstazer/edhtms/edbeats.htm -http://www.unterhaltungs-cd.de/ObervellacherBuam/B000025KMT.htm -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=bocarderont&l=fr -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=146&discrim=10,3,211 -http://variety.studiostore.com/help_security/b.TV%20HERCULES/s.cD15jQkr -http://variety.studiostore.com/help_shipping/b.TV%20HERCULES/s.cD15jQkr -http://variety.studiostore.com/product/TSHER0001/b.TV%20HERCULES/s.cD15jQkr -http://variety.studiostore.com/aboutus/b.TV%20HERCULES/s.cD15jQkr -http://www.redrocksports.com/sports/webSession/shopper/RR972959753-31163/store/dept-5/department/dept-5/item/51530 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=135&discrim=165,71,194 -http://www.kagtech.com/SpitfrireKennels -http://www.expage.com/page/thekatshow -http://www.jobvillage.com/channel/jobs/cleaning/gardener/b.4255.g.3878.html -http://www.xmwb.sh.cn/xmwb/20000704/BIG5/14016^6070408.htm -http://www.xmwb.sh.cn/xmwb/20000704/BIG5/14016^7070414.htm -http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/woody-jp/contrib/binary-all/tex/?S=A -http://genforum.genealogy.com/ny/monroe/messages/350.html -http://genforum.genealogy.com/ny/monroe/messages/296.html -http://genforum.genealogy.com/ny/monroe/messages/306.html -http://genforum.genealogy.com/ny/monroe/messages/213.html -http://otenet.themes.tucows.com/fonts/preview/18792.html -http://otenet.themes.tucows.com/fonts/adnload/18828.html -http://otenet.themes.tucows.com/fonts/adnload/18876.html -http://otenet.themes.tucows.com/fonts/preview/18877.html -http://otenet.themes.tucows.com/fonts/adnload/18894.html -http://otenet.themes.tucows.com/fonts/adnload/18910.html -http://otenet.themes.tucows.com/fonts/adnload/18941.html -http://otenet.themes.tucows.com/fonts/adnload/18949.html -http://otenet.themes.tucows.com/fonts/adnload/25945.html -http://ww.egroups.com/message/schoolnet_sadc/96 -http://ww.egroups.com/message/schoolnet_sadc/98 -http://www6.pasta.cs.uit.no/ietf/ietf45/proceedings/I-D/webdav-dublin-core-01.txt -http://www-uk9.cricket.org/link_to_database/INTERACTIVE/SURVEYS/POLLS_DEC1998.html -http://www.ucp.org/ucp_generaldsc.cfm/151/8/35/ucp_disctpc/292/263 -http://www.ucp.org/ucp_generaldsc.cfm/151/8/35/ucp_disctpc/79/79 -http://se.egroups.com/message/DBA/1700 -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/138/2000/6/0/ -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/138/2000/7/0/ -http://www.inf.fu-berlin.de/lehre/WS00/SWT/material/rosebeispiele/interaccess/logicalview/cat32862112022a/cat36e7162c0192/msg343269780227.htm -http://www.private-immobilien-boerse.de/leipzig/verkauf/Gemeinsam/erreichenPartner/IIM-Teil/Startseite/Gemeinsam/versicherungen/gebaeude/Allgemeine-IB/Startseite/ -http://www.private-immobilien-boerse.de/leipzig/verkauf/Gemeinsam/erreichenPartner/IIM-Teil/Startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Immolink/link.htm -http://freetravel.bedandbreakfast.com/Canada/Prince%20Edward%20Island/Little%20Sands.asp -http://freetravel.bedandbreakfast.com/Canada/Prince%20Edward%20Island/Miscouche.asp -http://freetravel.bedandbreakfast.com/Canada/Prince%20Edward%20Island/O'Leary.asp -http://www.buybuddy.com/sleuth/15/1/1070306/519432/ -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/KIRJASTO-+JA+TIETOPALVELUT/ammattikorkeakoulukirjastot/ammattikorkeakoulut/lahti/p%E4ij%E4t-h%E4me/ -http://www.3w-buecher.de/GravesRobert/GravesRobert0140171991.htm -http://www.3w-buecher.de/GravesRobert/GravesRobert1559948345.htm -http://www.3w-buecher.de/GravesRobert/GravesRobert1850897506.htm -http://members.theglobe.com/heliox2/pokepages/ninepic.htm -http://taiwan.vh.org//////Providers/Textbooks/MuscleInjuries/Fig2.html -http://www.globalgarden.com/Tomato/Archives/vol.1/1147.html -http://www.mojahedin.org/Pages/Mojahed/Mojahed442/articles/articlesftx03.html -http://216.34.146.180/161000reu/16hlth6.htm -http://moshkow.sstu.samara.ru/win/BESTER/Encoding_koi -http://in.egroups.com/message/Girl-Scout-Swaps/9 -http://in.egroups.com/message/Girl-Scout-Swaps/31 -http://members.tripod.com/floydechoes/more.htm -http://nanjingnews.jlonline.com/nanjingnews/njrb/20000222/08dushi.htm -http://www.egroups.com/messages/archery/38?expand=1 -http://retailer.gocollect.com/do/session/1912759/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/index.asp -http://home.dqt.com.cn/~ying_jia/wangwen/new/111.htm -http://canoe.com/MLB97FLASF/sep30_fla_sf.html -http://pub2.ezboard.com/fespguitarsmessageboardltdguitarandbassreviews.subscribeUnregisteredToTopic?topicID=8.topic -http://www.catholicstore.com/search/index.cfm/FuseAction/largeImage/SKU/2558/category/Bo/subCategory/AE/subject/17 -http://www.allgemeine-immobilien-boerse.de/bayern/augsburg/Verkauf/Private-IB/Startseite/Gemeinsam/Inserieren/Private-IB/IIM-Teil/Startseite/froben.htm -http://www.infoscape.com.cn:8171/nf/0004/18/nfga1801.htm -http://www.infoscape.com.cn:8171/nf/0004/18/nfga1809.htm -http://www.linux.com/networking/network/kernel/apache/applications/HTTP/ -http://www.linux.com/networking/network/kernel/apache/applications/Linuxcare/ -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=exacerbate&l=en -http://dopey.rediris.es/ftp/mirror/CPAN/modules/by-module/overload/GSAR/Archive-Tar-0.071.readme -http://dopey.rediris.es/ftp/mirror/CPAN/modules/by-module/overload/GSAR/Tie-IxHash-1.21.readme -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,201,226 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,201,85 -http://www.gsnet.com/bdltg/es/1_136243.html?num=2 -http://www.pinoycentral.com/img/UBB.nsf/e39d540ca6a9104b4825694d006ed185/6668efca7b60518648256966000fd202?Navigate&To=Prev -http://www.academyfloral.com/state/cabel/flowers/harmony.html -http://trading.rakuten.co.jp/items001/4c/0d/10138895/bidlist.html -http://www.cs.uwa.edu.au/programming/jdk1.2.2/api/javax/swing/event/class-use/TableColumnModelListener.html -http://secure.danysoft.com/asp/dany.tienda/803039052/IconBar -http://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN/modules/by-authors/id/L/LH/LHS/?S=A -http://genforum.genealogy.com/ga/messages/6297.html -http://genforum.genealogy.com/ga/messages/7843.html -http://genforum.genealogy.com/ga/messages/7281.html -http://www.jsinc.com/dd/destnat/sep00/fromcol10090800.asp -http://www.secinfo.com/$/SEC/Filing.asp?T=nDA3.7c_9i4 -http://www.secinfo.com/$/SEC/Filing.asp?T=nDA3.7c_b19 -http://www.sd.digitalcity.com/maconga/penpals/browse.dci?cat=teens -http://www.sd.digitalcity.com/maconga/penpals/browse.dci?cat=seniors&sort=f -http://www.picktips.com/category-1031-1172_1170_1174-4_1_3 -http://www-us6.semiconductors.com/acrobat/datasheets/CR6627_1.pdf -http://ftp.netc.pt/pub/idgames/levels/doom2/deathmatch/p-r/pimp.txt -http://ftp.netc.pt/pub/idgames/levels/doom2/deathmatch/p-r/radiated.txt -http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceMallCategories-BBC709FC_97F7_9E91E7C8C7066684B664C77C8575B940 -http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceOrderStatusOverview-BBC709FC_97F7_9E91E7C8C7066684B664C77C8575B940 -http://ads.puntopartenza.com/cgi-bin/redirect.cgi/31033638 -http://mediate.magicbutton.net/do/session/625642/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html -http://link.fastpartner.com/do/session/600388/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/netmaling.php -http://www.egroups.com/message/RecipeCollectors2/3785 -http://plat.debian.or.jp/debian/dists/woody/contrib/binary-alpha/admin/?S=A -http://198.103.152.100/search*frc/aFILIPPELLI,+R.L/afilippelli+r+l/-5,-1,0,B/frameset&F=afilion+louis+jacques&1,,0 -http://de.excite.de/wetter/katalog/4206 -http://www.burstnet.com/ads/ad8386a-map.cgi/973225252.925077 -http://www.branchenfuehreronline.de/A/hauptteil_a.html -http://www.linux.com/networking/support/red_hat/internet/test/simple/ -http://www.shopworks.com/ccfarm/index.cfm/action/search/userid/00061450-2F40-19FE-9038010B0A0ADCF2 -http://www.shopworks.com/index.cfm/userid/00061450-2F40-19FE-9038010B0A0ADCF2 -http://pelit.saunalahti.fi/.1/tucows/preview/144491.html -http://pelit.saunalahti.fi/.1/tucows/preview/52377.html -http://www.teacherformation.org/html/od/facilitators.cfm/xid,7238/yid,4053212 -http://tw.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Tianjin/Business/Companies/Utilities/ -http://brain.brent.gov.uk/WebPages.nsf/vWebAllPagesByKey!OpenView&Start=174&Count=60&Expand=194 -http://brain.brent.gov.uk/WebPages.nsf/vWebAllPagesByKey!OpenView&Start=174&Count=60&Expand=227 -http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/versicherungen/unfall/Gemeinsam/erreichenPartner/Startseite/Gemeinsam/MarketingStrategie/Startseite/froben.htm -http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/versicherungen/unfall/Gemeinsam/erreichenPartner/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm -http://www.3wposter.com/hake/hkg1701.htm -http://www.citybrazil.com.br/go/mossamedes/utilpub.htm -http://oss.software.ibm.com/developerworks/opensource/cvs/icu4j/icu4j/src/com/ibm/demo/translit/Attic/?sortby=date -http://www.linux.com/networking/network/management/operating_system/enterprise/research/ -http://www.angelfire.com/pq/Prophetess/Prophetess.page3.html -http://www.3w-nostalgie.de/ZeigerMimi/ZeigerMimi007072833X.htm -http://www.excelsior.com.mx/9801/980128/for01.html -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=11&discrim=49,235,5 -http://retailer.gocollect.com/do/session/1912802/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/contact.asp -http://citeseer.nj.nec.com/track/64292/4220924 -http://citeseer.nj.nec.com/correct/318910 -http://citeseer.nj.nec.com/correct/249393 -http://www.chaos.dk/sexriddle/h/y/r/k/ -http://www.hig.se/(aconf,date,doc,insert,return)/~jackson/roxen/ -http://www.hig.se/(aconf,date,doc,gtext,insert)/~jackson/roxen/ -http://mediate.magicbutton.net/do/session/625608/vsid/4573/tid/4573/cid/88043/mid/2247/rid/2383/chid/3527/url/http://www.winesmart.com/expert.asp -http://magazines.sina.com/education/renbun/93/13.html -http://www6.freeweb.ne.jp/art/cilter/kamijo02.htm -http://yp.gates96.com/11/25/50/28.html -http://yp.gates96.com/11/25/50/41.html -http://yp.gates96.com/11/25/50/65.html -http://yp.gates96.com/11/25/50/74.html -http://yp.gates96.com/11/25/50/91.html -http://yp.gates96.com/11/25/50/93.html -http://yp.gates96.com/11/25/50/94.html -http://yp.gates96.com/11/25/51/59.html -http://yp.gates96.com/11/25/51/93.html -http://yp.gates96.com/11/25/52/66.html -http://yp.gates96.com/11/25/54/46.html -http://yp.gates96.com/11/25/54/68.html -http://yp.gates96.com/11/25/54/83.html -http://yp.gates96.com/11/25/54/95.html -http://yp.gates96.com/11/25/54/98.html -http://yp.gates96.com/11/25/55/1.html -http://yp.gates96.com/11/25/55/6.html -http://yp.gates96.com/11/25/55/96.html -http://yp.gates96.com/11/25/56/83.html -http://yp.gates96.com/11/25/56/89.html -http://yp.gates96.com/11/25/57/30.html -http://yp.gates96.com/11/25/57/68.html -http://yp.gates96.com/11/25/58/56.html -http://yp.gates96.com/11/25/58/67.html -http://yp.gates96.com/11/25/59/7.html -http://yp.gates96.com/11/25/59/40.html -http://yp.gates96.com/11/25/59/58.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/misc/legendes/lit/misc/quizz/quizz2.html -http://excite.de/kleinanzeigen/katalog/7100 -http://www.egroups.org/messages/stepup/97 -http://sunsite.org.uk/pub/packages/proftpd/misc/?S=A -http://ring.htcn.ne.jp/archives/lang/perl/CPAN/modules/by-module/CGI/DOUGM/?M=A -http://ring.htcn.ne.jp/archives/lang/perl/CPAN/modules/by-module/CGI/DOUGM/Apache-Scoreboard-0.10.readme -http://ring.htcn.ne.jp/archives/lang/perl/CPAN/modules/by-module/CGI/DOUGM/B-Size-0.04.readme -http://herndon1.sdrdc.com/cgi-bin/can_ind/S8NY00082/1/Y/ -http://in.egroups.com/message/msu-foi/20?source=1 -http://www.worldstocks.de/htm/boersen/asien/indonesien_boerse.htm -http://members.xoom.com/pvmnieuws/movies/movies.html -http://gb.toget.com.tw/article/screensaver/index_a_2.html -http://www.emis.de/journals/EJDE/Volumes/Monographs/Volumes/2000/64/?N=D -http://bsd.wj.o3.net/8/1/18/4.html -http://www.ftp.uni-erlangen.de/pub/mirrors/_other/afterstep.foo.net/apps/asprint/?S=A -http://citeseer.nj.nec.com/cidcontext/3597768 -http://m4.findmail.com/dir/Sports/Soccer/Academic_Study_of_Soccer/History -http://genforum.genealogy.com/cgi-bin/print.cgi?westerman::121.html -http://www-koi.bards.ru/Egorov/part84.htm -http://www-koi.bards.ru/Egorov/part29.htm -http://www-koi.bards.ru/Egorov/part127.htm -http://www-koi.bards.ru/Egorov/part68.htm -http://www.loisirs.ch/emjius/10/brglll.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/quizz/music/computers/legendes/lit/hellequin.html -http://www.redrival.com/dejanss/muzika/exploited/themassacre.html -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-08-31/13/967698323786.txt -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-08-31/13/967699453627.txt -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-08-31/13/967699813970.txt -http://www.chaos.dk/sexriddle/c/v/w/l/o/ -http://www.chaos.dk/sexriddle/c/v/w/l/x/ -http://www.allgemeine-immobilien-boerse.de/Oesterreich/verkauf/IIM-Teil/Startseite/Allgemeine-IB/Gemeinsam/3d-service/info.htm -http://www.marktplatz-hs.de/cgi-bin/ChioEditionShop.s/39fe2eeb0239a4a4273fd47540f806ea/IconBar -http://www.jamba.nl/KNet/_KNet-sDD8j1-GC4-puzu/browse.nl/node.0/cde7f1uou -http://www.icopyright.com/1.1635.66362 -http://www.ld.com/cbd/archive/1999/05(May)/07-May-1999/Vsol004.htm -http://www.infoscape.com.cn:8171/nf/0007/05/nfgz0517.htm -http://209.207.239.212/bkindex/c1034/f1392.html -http://www.gbnf.com/genealogy/rockwel4/html/d0007/I1584.HTM -http://www.gbnf.com/genealogy/rockwel4/html/d0023/I3700.HTM -http://www.hornchurch.londonengland.co.uk/designersgraphic.htm -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/computers/lit/misc/colorart/lit/quizz/ -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/computers/lit/misc/colorart/lit/misc/orders_mag.html -http://www.multimap.com/wi/141313.htm -http://www.multimap.com/wi/141326.htm -http://www.thestateofcolorado.com/aconplumbing.html -http://www.thestateofcolorado.com/aconstairs.html -http://ftp.netc.pt/pub/idgames/levels/doom2/0-9/10level.txt -http://members.tripod.com.br/Magoo13/musicas.htm -http://tucows.bigskysoft.com/winme/adnload/137256_30133.html -http://www.houses-apartment-rentals.com/Texas/city_search_criteria.asp?state=TX&City=CHICOTA -http://se.egroups.com/message/trabalhoseguro/186 -http://www.daysinn.com/ctg/cgi-bin/DaysInn/financial_support/AAAksrACwAAABvyAAQ -http://www.long-life.de/lt040.htm -http://smartnet.tucows.com/winme/meditme_rating.html -http://smartnet.tucows.com/winme/meditme_size.html -http://www.kmoviefc-jp.com/db/prod/pd/k1000003.htm -http://ftp.rge.com/pub/usenet/readers/mac/Mews/?S=A -http://fi.egroups.com/messages/lasermail/298 -http://fi.egroups.com/message/lasermail/295 -http://www.voter.com/home/message/post/1,1559,24-60_2976_2473-,00.html -http://se.egroups.com/message/rv8list/1122 -http://www.ferien-immobilien.de/Rhein-Sieg-kreis/verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/3d-service/Gemeinsam/Inserieren/Private-IB/Startseite/Default.htm -http://library.bangor.ac.uk/search/aUnited+Kingdom+Reading+Association/aunited+kingdom+reading+association/-17,-1,0,B/exact&F=aunited+kingdom+environmental+law+association&1,2/limit -http://webcenter.travelocity-leisure.netscape.com/DestGuides/0,1840,TRAVELOCITY|1987|5|2,00.html -http://yokohama.cool.ne.jp/michirur/dragon/maria/m2.htm -http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/graphics/Ngraph/patches/?D=A -http://mitglied.tripod.de/argewesterwald/jr/jrfo3.htm -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=3,16,10 -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=28,16,10 -http://avdistrict.edgate.com/hhs/pa_rc_gre.html -http://pub26.ezboard.com/fdysfuctionalrealityfrm2.showAddReplyScreenFromWeb?topicID=32.topic&index=1 -http://www.geocities.co.jp/Playtown-Domino/5245/guti.html -http://www.haikou.hi.cn/Pandect/hknj98/nj98d1.html -http://retailer.gocollect.com/do/session/1912800/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp -http://ftp.unina.it/pub/Pcibm/pcdemos/ftp.hornet.org/graphics/images/1998/b/?M=A -http://variety.studiostore.com/browse/ABUGSLIFE/FIGURINE/s.qjEoNLlG -http://yp.gates96.com/11/76/10/13.html -http://yp.gates96.com/11/76/10/18.html -http://yp.gates96.com/11/76/11/63.html -http://yp.gates96.com/11/76/14/45.html -http://yp.gates96.com/11/76/14/65.html -http://yp.gates96.com/11/76/14/77.html -http://yp.gates96.com/11/76/15/1.html -http://yp.gates96.com/11/76/15/68.html -http://yp.gates96.com/11/76/15/97.html -http://yp.gates96.com/11/76/16/2.html -http://yp.gates96.com/11/76/16/59.html -http://yp.gates96.com/11/76/16/64.html -http://yp.gates96.com/11/76/16/79.html -http://yp.gates96.com/11/76/17/10.html -http://yp.gates96.com/11/76/17/52.html -http://yp.gates96.com/11/76/19/9.html -http://yp.gates96.com/11/76/19/11.html -http://yp.gates96.com/11/76/19/17.html -http://yp.gates96.com/11/76/19/19.html -http://www.debian.org.cn/Bugs/db/67/67207-b.html -http://www.bemi-immobilien.de/Exklusiv-IB/Startseite/Gemeinsam/immolink/Gemeinsam/Inserieren/Startseite/Gemeinsam/versicherungen/unfall/Gemeinsam/3d-service/info.htm -http://www.private-immobilien-boerse.de/baden-wuertemberg/calw/Verkauf/Gemeinsam/versicherungen/gebaeude/Gemeinsam/erreichenPartner/Private-IB/IIM-Teil/Startseite/frinfo.htm -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=21,0-(14,0)+9,5 -http://www.thesite.msnbc.com/tlkbck/comment/2100652/0,7436,80913-291181,00.html -http://202.109.72.57:8077/article/19991130/1741.htm -http://www.mit.edu/afs/athena.mit.edu/astaff/project/eolcdev/arch/sgi_62/ -http://www.metromix.com/top/1,1419,M-Metromix-Home-reviews!PlaceDetail-13623,00.html -http://ring.jec.ad.jp/pub/linux/debian/debian/dists/woody/non-free/binary-powerpc/news/?M=A -http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceStoreCategories-BBC70A07_97FC_42E663949129E2030ACC2E97E71CD8B3 -http://grwy.online.ha.cn/paoe/about/aoe2.htm -http://www.2pl.com/b/ar/to/1/01/01/v1/1010178470-3.htm -http://www.digitaldrucke.de/(aktuell,marktplatz,nuernberg,sense,werbung)/suche/uebersicht.html -http://ustlib.ust.hk/search*chi/aswiss+radio+symphony+orchestra/aswiss+radio+symphony+orchestra/-5,-1,0,B/frameset&F=aswiss+society+for+soil+and+rock+mechanics&1,1 -http://www.ecatsbridge.com/BiB/static/sims/bbljuly99/00000101843221172F1.htm -http://www.videogames.com/psx/sports/freestyle99/screen.html?page=19 -http://www.mojahedin.org/Pages/Mojahed/Mojahed474/sci/sci02.html -http://www.shopworks.com/bigmountain/index.cfm/action/cart/userid/000E50D6-1185-19FE-A703010D0A0A8CF2 -http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/~xionthia/as/ -http://yp.gates96.com/14/76/30/16.html -http://yp.gates96.com/14/76/30/81.html -http://yp.gates96.com/14/76/31/12.html -http://yp.gates96.com/14/76/31/37.html -http://yp.gates96.com/14/76/31/68.html -http://yp.gates96.com/14/76/32/11.html -http://yp.gates96.com/14/76/32/50.html -http://yp.gates96.com/14/76/32/68.html -http://yp.gates96.com/14/76/33/26.html -http://yp.gates96.com/14/76/33/53.html -http://yp.gates96.com/14/76/35/11.html -http://yp.gates96.com/14/76/35/26.html -http://yp.gates96.com/14/76/35/47.html -http://yp.gates96.com/14/76/35/74.html -http://yp.gates96.com/14/76/36/16.html -http://yp.gates96.com/14/76/37/23.html -http://yp.gates96.com/14/76/37/56.html -http://yp.gates96.com/14/76/37/82.html -http://yp.gates96.com/14/76/38/76.html -http://yp.gates96.com/14/76/39/20.html -http://yp.gates96.com/14/76/39/25.html -http://yp.gates96.com/14/76/39/28.html -http://yp.gates96.com/14/76/39/33.html -http://yp.gates96.com/14/76/39/61.html -http://yp.gates96.com/14/76/39/69.html -http://yp.gates96.com/14/76/39/91.html -http://www-usa8.cricket.org/link_to_database/ARCHIVE/ARTICLES/JAN-JUN_1996/PRESS_REACTIONS_AUS_18MAR1996 -http://www-usa8.cricket.org/link_to_database/ARCHIVE/ARTICLES/JAN-JUN_1996/LOSS_WI_CRICKET_11MAR1996.html -http://www-usa8.cricket.org/link_to_database/ARCHIVE/ARTICLES/JAN-JUN_1996/SPINNERS_TALES_11JAN1996 -http://hurweb01.hurriyetim.com.tr/hur/turk/98/11/19/gundem/31gun.htm -http://library.cuhk.edu.hk/search*chi/aKuan,+Jui-hsuan./akuan+jui+hsuan/-5,-1,0,E/exact&F=akuan+jui+hsuan&1,22 -http://library.cuhk.edu.hk/search*chi/aKuan,+Jui-hsuan./akuan+jui+hsuan/-5,-1,0,E/frameset&F=akuan+jung&1,,0 -http://ring.toyama-ix.net/archives/pc/winsock-l/Windows95/Finger/fing32l.txt -http://cometweb01.comet.co.uk/do!tid=20&rtid=1&vsid=700&session=132044&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplGGolLarZLq4fLpmiLXv-KmooLckYLoznGmpq0qsc0mojLbkYLozvGotc0ZdoLckYLozvGsmv0qmc0jXfLkVZLdocLkYoLzcj1XfkLVZXLqkXLjbzKcob5qroLkVrLoizKlZd5fjYHfklKkZlLjjbLoZbLpl51ubZLDXZLollK3ljLbqlKjXfLkkaHotl4obmLloqL -http://student.monterey.edu/nr/riveradebranepom/campus/ -http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/listUnseen/fol/100001/20,0/5170254 -http://www.ibiblio.org/pub/Linux/distributions/debian/contrib/binary-all/otherosfs/?D=D -http://www.ilmessaggero.it/hermes/19980909/01_NAZIONALE/SPETTACOLI/E.htm -http://ayasii.virtualspace.net/html/1207/12071611_himemiya02.htm -http://retailer.gocollect.com/do/session/1912732/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp -http://retailer.gocollect.com/do/session/1912732/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/newintros.asp -http://retailer.gocollect.com/do/session/1912732/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/dealer_lookup.asp -http://se.egroups.com/subscribe/pretty_of_five -http://home.neo.rr.com/keeter/pics.html -http://www.peopledaily.co.jp/haiwai/199910/12/newfiles/E108.html -http://www.telematik.informatik.uni-karlsruhe.de/osf/sw/v4.0x/lp2/snt100/?M=A -http://www.alyon.org/perso/1001-sciences/sciences_citoyens/agronomie/agronomie/intervenants.htm -http://www.2pl.com/b/no/fi/3/02/24/b1/3022400016-11131.htm -http://channel.nytimes.com/indexes/2000/07/21/sports/hockey/ -http://space.tin.it/io/fivird/REM/eng/albums/lyrics/documentfr.html -http://www.kurit.com/girls/galleryf.cgi?mp_code=7332&service=girls -http://store.efunctional.com/nokia.html -http://dk.egroups.com/login.cgi?login_target=%2Fmessage%2Fbonsai-cz%2F274 -http://bbs.kcm.co.kr/NetBBS/Bbs.dll/boliviabbs/opn/zka/B2-kB2Fq/qqo/007D/qqatt/^ -http://www.loisirs.ch/cvljnq/10/yrespd.html -http://www.primenet.com/~trakker/events/abcforum.htm -http://www.primenet.com/~trakker/events/frame_abcforum.htm -http://www.fogdog.com/cedroID/ssd3040183253760/nav/products/featured_brands/12r/gift_packs/ -http://www.fogdog.com/cedroID/ssd3040183253760/nav/products/featured_brands/12r/windshirts/ -http://www.oreilly.com/homepages/dtdparse/docbook/3.0/dtdent/simmod02.htm -http://dk.egroups.com/group/SCMHCSC -http://www.ycwb.com.cn/gb/2000/01/11/ycwb/dsxw/9.html -http://dk.egroups.com/message/teenhealth/1620 -http://nbzhuhq1.top263.net/htm/y/y14-5.htm -http://adserver.latimes.com/editions/orange/20001030/t000103739.html -http://adserver.latimes.com/editions/orange/20001030/t000103751.html -http://library.bangor.ac.uk/search/cWS+200+G4655+1999/cws++200+g4655+1999/-17,-1,0,B/frameset&F=cws++141+j74+h+1989&2,,2 -http://ftpsearch.belnet.be/pub/os/linux/SuSE-Linux/i386/6.4/disks/rescue -http://www.rarf.riken.go.jp/archives/tex-archive/macros/latex//contrib/supported/elsevier/model-harv.pdf -http://www.diogenes.ch/4DACTION/web_glob_showhtml/path=leser/verlag/index.html&ID=483373 -http://crn.com/Components/emailArticle.asp?ArticleID=2114 -http://link.fastpartner.com/do/session/600410/vsid/1970/tid/1970/cid/135878/mid/1060/rid/1488/chid/1970/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/speednames.php -http://link.fastpartner.com/do/session/600410/vsid/1970/tid/1970/cid/135878/mid/1060/rid/1488/chid/1970/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/nordicliving.php -http://ftp.gigabell.net/pub/FreeBSD/FreeBSD-stable/packages/emulators/ -http://ftp.gigabell.net/pub/FreeBSD/FreeBSD-stable/packages/print/ -http://emplois.fr.net/archive062000/2348.html -http://variety.studiostore.com/browse/ANASTASIA/_/b.FAVORITES%20COMICS%20ANIMFEAT/s.eKoxAPfo -http://www.geocities.co.jp/HeartLand-Gaien/3163/choko.htm -http://members.tripod.com/~moviemaniac1/moviesR/Rocketman.html -http://wiem.onet.pl/wiem/0006ac-sp1.html -http://msdn.microsoft.com/library/devprods/vs6/visualj/vjref/java.net.UnknownHostException001.html -http://www.tiscover.ch/1Root/Kontinent/6/Staat/30/Bundesland/31/Ort/1732/Homepage/m_homepage...2.html -http://power.luneng.com/power/library/jzjs/jzjs99/jzjs9903/990311.htm -http://citeseer.nj.nec.com/cidcontext/1976718 -http://in.egroups.com/messages/srcg/2 -http://sunsite.informatik.rwth-aachen.de/cgi-bin/ftp/ftpshow/pub/comp/Linux/debian/dists/potato/main/disks-sparc -http://pd.shiseido.co.jp/s9701unt/html/unt00025.htm -http://www.kame.tadaima.com/9721036/taro1.html -http://www.kame.tadaima.com/9721036/taro8.html -http://www.unc.edu/courses/chem41/classnotes/41s6/sld008.htm -http://a1sexpics.com/butts/buttfucking/ -http://moundoflove.com/buttfucking/butts/asslickinganal.html -http://www.digitaldrucke.de/(arbeitsvermittlung,hilfe,nuernberg)/_fort/html/themen/hilfe/hilfe.htm -http://freethemes.netc.pt/preview/15221.html -http://freethemes.netc.pt/preview/51972.html -http://freethemes.netc.pt/preview/74442.html -http://cn.tech.yahoo.com/000913/23/1dpl.html -http://cn.tech.yahoo.com/000913/23/1dp2.html -http://wap.jamba.de/KNet/_KNet-JgK8j1-FGd-13di8/browse.de/node.0/cde7f1uou -http://imageserver2.tibetart.com:8087/fif=fpxbuddhist/43.fpx&init=0.0,0.0,1.0,1.0&rect=-0.25,0.25,0.25,0.75&wid=280&hei=400&lng=en_US&enablePastMaxZoom=OFF&page=image.html&obj=uv,1.0&cmd=S -http://www.ozemail.com.au/~pballard/gnt_hidden123/mar12.htm -http://www.ozemail.com.au/~pballard/gnt_hidden123/act9.htm -http://www.ozemail.com.au/~pballard/gnt_hidden123/rom7.htm -http://www.ozemail.com.au/~pballard/gnt_hidden123/2co13.htm -http://www.ozemail.com.au/~pballard/gnt_hidden123/heb12.htm -http://www.ozemail.com.au/~pballard/gnt_hidden123/jam4.htm -http://ftp.darenet.dk/tucows/winnt/adnload/1449_29554.html -http://www.chaos.dk/sexriddle/w/j/u/o/ -http://www.chaos.dk/sexriddle/w/j/u/v/ -http://opac.lib.rpi.edu/search/tmcgraw+hill+series+in+advanced+chemistry/-5,-1,0,B/frameset&tmcgraw+hill+series+in+advanced+chemistry&9,,42 -http://www.zcu.cz/ftp/mirrors/pgp/6.5/6.5.1/win/ -http://webpolitik.subportal.com/sn/Multimedia_and_Graphics/Misc__Graphics_Tools/12852.html -http://ftp.lip6.fr/pub2/perl/CPAN/doc/manual/html/lib/SysV/SysV.html -http://bbs.gznet.edu.cn/cgi-bin/getannounce//groups/GROUP_9/Telecom/friend/fbf/ewqtr -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-10.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-88.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-92.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-177.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-178.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-229.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-288.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-293.html -http://www.usq.edu.au/unit-1997/fullspec/54081s2x.htm -http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/15P04|972959617|Helmet|user|0|1,0,0,0 -http://www.buybuddy.com.au/sleuth/8/1/5010204/40843/ -http://www.maxpages.com/vote.cgi?site=pokemonyellow1&pg=Home -http://rex.skyline.net/html/Automobiles_-_Dealers_-_Used.html?64,outdoor,transportation,collectibles,transportation -http://www.linux.com/networking/network/communications/management/updates/Windows_NT/ -http://retailer.gocollect.com/do/session/1912735/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=1 -http://amarilloglobenews.com/stories/031000/ -http://www.egroups.com/post/swish?act=reply&messageNum=275 -http://www.apcmag.com/apcweb/reviewsdisc.nsf/aac7d56ca8fd884b852563be00610639/af5bb64432e7f9444a2565240026bbbf!Navigate&To=PrevMain -http://best.netease.com/guestbook/personal/zhuirinew3.html -http://best.netease.com/cgi-bin/view/viewbasic.cgi?japanboy4 -http://www.ftp.uni-erlangen.de/cgi-bin/view/pub/mirrors/redhat/current/i386/doc/gsg/ch-basics.htm -http://www.ftp.uni-erlangen.de/cgi-bin/view/pub/mirrors/redhat/current/i386/doc/gsg/p5202.htm -http://splitrock.themes.tucows.com/preview/77000.html -http://splitrock.themes.tucows.com/preview/25855.html -http://splitrock.themes.tucows.com/preview/134493.html -http://splitrock.themes.tucows.com/preview/14722.html -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=13,0-22,0+15,0-0,2 -http://www.icopyright.com/1.1634.64625 -http://mvweb.de/olympia/nachrichten/sportarten/ergebnisse/bdt-190900-438-dpa_153140.html -http://www.rge.com/pub/tex/fonts/armtex/v2.0/examples/plain/ -http://www.club-internet.fr/cgi-bin/h?Antibes -http://www.caprili.it/santantimo.htm -http://dic.empas.com/show.tsp/?q=%C3%EB%C8%EF%20%F6%AD%FD%E9&f=B -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=98&discrim=2,38 -http://www.artex.firenze.it/_qualitart/articoli/zoom/02235.htm -http://home.powertech.no/huftis/w3c/TR/WAI-WEBCONTENT-NO-NYN/checkpoint-list.txt -http://mtlab.biol.tsukuba.ac.jp/WWW/PDB2/PCD0467/htmls/07.html -http://library.cuhk.edu.hk/search*chi/aShu,+Tien-min./ashu+tien+min/-5,-1,0,B/exact&F=ashu+tsung+chiao&1,6 -http://www.trnonline.com/archives/2000archives/05242000/how_now_joe_brown/23506.shtml -http://www.bemi-immobilien.de/Exklusiv-IB/Startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/MarketingStrategie/Gemeinsam/erreichenPartner/Gemeinsam/versicherungen/lebensversicherung/Startseite/frinfo.htm -http://santabarbarashops.com/Mall/Stores/StoreInfo/asp/store-id/1000007121.html -http://www.angelfire.com/ok/americassweetheart/UNique.html -http://ukinvest.ukwire.com/articles/199909070731000375A.html -http://www.streetprices.com/Electronics/Consumer/Camcorders/Digital/sortproductbylowprice/SP374033.html -http://www.streetprices.com/Electronics/Consumer/Camcorders/Digital/sortproductbylowprice/SP363722.html -http://www.streetprices.com/Electronics/Consumer/Camcorders/Digital/sortproductbylowprice/SP288187.html -http://www.streetprices.com/Electronics/Consumer/Camcorders/Digital/sortproductbylowprice/SP288192.html -http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/Gemeinsam/versicherungen/gebaeude/Startseite/Gemeinsam/Gemeinsam/immolink/Top-Darlehens-Konditionen/anforderungsformular.htm -http://celes.subportal.com/sn/Business/Standard_Calculators/index1.html -http://www.linux.com/networking/network/networking/it/future/firewall/ -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=198&discrim=87,19,3 -http://www.hig.se/(append,define,language,quote,tablify)/~jackson/roxen/ -http://www.guba.com/114/236/12fE/index-3.phtml -http://genforum.genealogy.com/tn/messages/7906.html -http://207.138.41.133/message/BienestarCalifornia/16 -http://207.138.41.133/message/BienestarCalifornia/26 -http://chasnaz.freeyellow.com/email.html -http://genforum.genealogy.com/cgi-bin/print.cgi?mcevoy::217.html -http://www.civila.com/brasil/fov/ -http://www.emerchandise.com/associates/b.FAVORITES%20PAGEANTS/s.oAq5vp1w -http://www.emerchandise.com/help_security/b.FAVORITES%20PAGEANTS/s.oAq5vp1w -http://www.z-plus.de/freizeit/kino/galerie/roula/kritikwelt.html -http://www.angelfire.com/mo2/MrMime2000/wewon.html -http://www.gazeta.com/Iso/Regiony/Lodz/Raporty/Jedzenie/Jedz/020jed.html -http://www.sportas.de/ddsup00.htm -http://muc-zvs-web1.goethe.de/an/mel/wabhorst/dtourism.htm -http://www.cardina.net/~erps -http://www.polbox.com/p/paruwa/spec.html -http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d72/b31,e,1f,b,b,50,50,,3,,1f,3,9,,1f,9, -http://www.ld.com/cbd/archive/1999/03(March)/29-Mar-1999/15awd002.htm -http://dk.egroups.com/post/cbradio?act=reply&messageNum=823 -http://aecjobbank.com/texis/script/newjobs/+lww7mwww0xBV6e52iHwwwesPBB2eZmwwwt6erV0Vwwwh6er6Gswwwt6er6bgwwwt6etDL-www+6ethrCwwxeRT43eR4mwwwt6etrvuwwwn6KeU-wwwmcmrmwxerjmx7mwww1hzmww-eHxww/jobdirectory.html -http://www.envy.nu/summerslip/past.html -http://www.envy.nu/summerslip/leave.html -http://home.pacific.net.sg/~kinnkinn/ -http://www.bluesapphires.net/ladies/lv0444.shtml -http://www.freerepublic.com/forum/a4148bd.htm -http://www.sdinfonet.com.cn/024/32/024329969.htm -http://www.sdinfonet.com.cn/024/32/024329953.htm -http://www.jpc-music.com/8754347.htm -http://www.jpc-music.com/5183511.htm -http://www.jamba.nl/KNet/_KNet-ytO8j1-7D4-pwef/browse.nl/node.0/cde7f38ny -http://dk.egroups.com/message/noholdsbarred/210 -http://uoi.tucows.com/winme/preview/75912.html -http://207.197.132.133/lobbyists/98profiles/556.htm -http://www.jobvillage.com/channel/jobs/protective_services/private_investigator/g.4.html -http://www.jobvillage.com/channel/jobs/protective_services/private_investigator/b.8946.g.4179.html -http://aleph.tau.ac.il:4500/ALEPH/eng/ATA/AAS/AAS/SET-MAIL/381462/11/ -http://www-rn.informatik.uni-bremen.de/home/X11R6/xc/lib/font/Speedo/?D=A -http://www.brio.de/BRIO.catalog/39fe2f7006f69fb6273fd472aa78073d/UserTemplate/6 -http://cardiology.medscape.com/IMNG/ClinPsychNews/1998/v26.n07/cpn2607.34.01.html -http://www.incestpornstories.com/hot-hardcore-fuckingbanging/plus-sizewhale/slutspretty/slutsbest-friends/erectionfellatio/bisexualtinkerbell.html -http://yp.gates96.com/7/65/10/40.html -http://yp.gates96.com/7/65/11/15.html -http://yp.gates96.com/7/65/11/34.html -http://yp.gates96.com/7/65/11/69.html -http://yp.gates96.com/7/65/11/88.html -http://yp.gates96.com/7/65/12/95.html -http://yp.gates96.com/7/65/13/82.html -http://yp.gates96.com/7/65/13/91.html -http://yp.gates96.com/7/65/13/93.html -http://yp.gates96.com/7/65/14/2.html -http://yp.gates96.com/7/65/14/8.html -http://yp.gates96.com/7/65/15/31.html -http://yp.gates96.com/7/65/15/38.html -http://yp.gates96.com/7/65/15/51.html -http://yp.gates96.com/7/65/15/95.html -http://yp.gates96.com/7/65/15/96.html -http://yp.gates96.com/7/65/16/4.html -http://yp.gates96.com/7/65/16/20.html -http://yp.gates96.com/7/65/16/58.html -http://yp.gates96.com/7/65/17/22.html -http://yp.gates96.com/7/65/17/66.html -http://yp.gates96.com/7/65/18/37.html -http://yp.gates96.com/7/65/18/69.html -http://yp.gates96.com/7/65/18/97.html -http://yp.gates96.com/7/65/19/0.html -http://yp.gates96.com/7/65/19/12.html -http://yp.gates96.com/7/65/19/16.html -http://yp.gates96.com/7/65/19/28.html -http://yp.gates96.com/7/65/19/37.html -http://yp.gates96.com/7/65/19/44.html -http://dyade.inrialpes.fr/aaa/public/java/jdk1.3/docs/api/javax/swing/plaf/basic/class-use/BasicSplitPaneUI.KeyboardUpLeftHandler.html -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/kalatalous/ty%F6voimapolitiikka/pienet+ja+keskisuuret+yritykset/maatilatalous/ -http://www.ferien-immobilien.de/ungarn/verkauf/Gemeinsam/MarketingStrategie/Allgemeine-IB/Private-IB/Private-IB/Startseite/Default.htm -http://ftp.du.se/disk2/CPAN/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/WWW/libwww-perl-5.43.readme -http://ftp.du.se/disk2/CPAN/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/WWW/libwww-perl-5.46.readme -http://ftp.du.se/disk2/CPAN/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/WWW/webchat-0.05.readme -http://209.0.220.240/biz/541519/541-389-1493.htm -http://www.shsu.edu/wcb/schools/SHSU/sed/rmzoubi/12/forums/forum54/wwwboard.html -http://retailer.gocollect.com/do/session/1912768/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/news/index.asp -http://romulus.ehs.uiuc.edu/cgi-bin/lwgate/RADSAFE/archives/radsafe9610/Date/article-33.html -http://romulus.ehs.uiuc.edu/cgi-bin/lwgate/RADSAFE/archives/radsafe9610/Date/article-31.html -http://www.acfas.ca/congres/congres67/S408.htm -http://pub1.ezboard.com/fthehawkeyehotspotfrm16.showMessage?topicID=178.topic -http://archives.marshall.edu/~mccomas/cd315-spring00-list/1549.html -http://www.asiastockwatch.com/AsiaStockWatch_-_Cached/Articles/asw_recommend_friend_con/1,1145,617_1_1:3,00.html -http://wiem.onet.pl/wiem/014a7e.html -http://linux99.inrialpes.fr/linux/RPM/kondara/1.2/errata/bugfixes/i586/System_Environment_Daemons.html -http://linux99.inrialpes.fr/linux/RPM/kondara/1.2/errata/bugfixes/i586/User_Interface_X.html -http://cn.egroups.com/login.cgi?login_target=%2Fmessage%2FWeb_Holidays%2F35 -http://library.bangor.ac.uk/search/aEuropean+Academy+of+Allergology+and+Clinical+Immunology/aeuropean+academy+of+allergology+and+clinical+immunology/7,-1,0,B/bibandlinks&F=aeuropean+association+for+animal+production+commission+on+animal+management&1,1 -http://www4.freeweb.ne.jp/art/fujiso/gehp/pge222.html -http://pnews.jcc.co.jp/scoop/9905/990506kk2-3ss.html -http://ring.nii.ac.jp/archives/linux/Vine/Vine-1.1/kernel-2.2.x-kit/RPMS/ -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=81&discrim=8,230,214 -http://www.emerchandise.com/browse/BUFFYTHEVAMP/KEYCHAIN/b.TV%20BUFFYTHEVAMP/s.DfgPpLQw -http://www.emerchandise.com/browse/BUFFYTHEVAMP/MAGNET/s.DfgPpLQw -http://www.koms.de/I-Data/Upgrades/HostCom/Cx/isp/?S=A -http://www.back2roots.org/Aminet/Forums/Util--Wb--Amero36/ -http://www.hig.se/(autoformat,define,en,modified,referrer)/~jackson/roxen/ -http://216.35.79.131/sites/gunits/052302u.html -http://216.35.79.131/sites/gunits/052303u.html -http://216.35.79.131/sites/gunits/032883u.html -http://itcareers.careercast.com/texis/it/itjs/+4wwBmecXD86ExwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewShwAwMwoacnwmamnpcdOMnDBaMwoDBnDwDqnanDtoDnnGaDnBidGAaoDqc1mna5BGdDtaADdicnmtnaGn31oGnmaMFqtwAwMwoDzmeZxwwwpBmIe0B-decrwww5rmeAdwwwBrmeZpwww/morelike.html -http://troy.lib.sfu.ca/search/tadvocate+vanc/tadvocate+vanc/7,-1,0,B/browse -http://210.159.30.200:8080/-_-http://www2s.biglobe.ne.jp/~proton/kokuritu/ -http://210.159.30.200:8080/-_-http://www2s.biglobe.ne.jp/~proton/mituzawa/mitusta.html -http://config.tucows.com/win2k/monitor2k_size.html -http://config.tucows.com/win2k/adnload/136674_47327.html -http://www.thisisyork.com/york/news/YORK_NEWS_CAMPAIGNS_POSTOFFICE5.html -http://yp.gates96.com/5/78/0/35.html -http://yp.gates96.com/5/78/0/41.html -http://yp.gates96.com/5/78/0/65.html -http://yp.gates96.com/5/78/0/79.html -http://yp.gates96.com/5/78/0/81.html -http://yp.gates96.com/5/78/1/33.html -http://yp.gates96.com/5/78/1/76.html -http://yp.gates96.com/5/78/2/0.html -http://yp.gates96.com/5/78/2/65.html -http://yp.gates96.com/5/78/3/37.html -http://yp.gates96.com/5/78/4/31.html -http://yp.gates96.com/5/78/4/60.html -http://yp.gates96.com/5/78/4/73.html -http://yp.gates96.com/5/78/5/28.html -http://yp.gates96.com/5/78/5/65.html -http://yp.gates96.com/5/78/6/12.html -http://yp.gates96.com/5/78/6/38.html -http://yp.gates96.com/5/78/6/99.html -http://yp.gates96.com/5/78/7/48.html -http://yp.gates96.com/5/78/8/49.html -http://yp.gates96.com/5/78/8/55.html -http://yp.gates96.com/5/78/8/71.html -http://yp.gates96.com/5/78/9/19.html -http://yp.gates96.com/5/78/9/94.html -http://link.fastpartner.com/do/session/600420/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/fastpartner.php -http://www.highwired.net/Guidance/UniversalNav/Redirect/0,5314,15089-15089-728,00.html -http://ring.tains.tohoku.ac.jp/archives/lang/perl/CPAN/modules/by-module/Math/ILYAZ/os2/?S=A -http://www.outpersonals.com/cgi-bin/w3com/pws/out/DzRIZER-v0LffJEf3raIMcG3_vXLUQncNB0JHLK7Xt_XcNu5W9Xwg3bnK7e0BWrbchX2jMSNnK6eY6UuDPq6GFLMrzB0DcydY5VgMGVRUFbdksWiDCuTI0LBo3psuJxBJjEd -http://www.outpersonals.com/cgi-bin/w3com/pws/out/vihIvBk0g-CdjheZ4MILAcJAB--YtsE3nzjAldQSrSojV9JzVQJV-1yVbCi9rsPamZBGc9GfXE6dq1sCz-CnrfwDCHqr_nfUtl2qUN5oWAHphPSuuQXCc2fjfBv3EI-W4XBgp-ANhxEJS0536665 -http://www.outpersonals.com/cgi-bin/w3com/pws/out/VihIDgZ6TF6W8zfPesIFMiw-CNzcKPLyYr5OXnsaqepOa1j4Wz2V-pVOhRfX5lUkxRpYs_BkTdpvjf7zUAk3RdhEaXDfmzm4RA2CLjQ84zSbEZ_Vil1cFFmY0FFZr5oIErljk11AnTlYM6y066jO -http://www.outpersonals.com/cgi-bin/w3com/pws/out/dRhIQJ3pEIfD5uG_JFeaP3_7Bke37Z5pJi0A-hZ_-kxEK4Z1jl3HNb6d3hgJ7UZ34jMQGSNzhYuMNxB-oyBon62h9GWx3Xt1Zk_o4kS3s9ybikCpzetMwprVGDCC-YzllwvEWxmP66jF -http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/24161000003783000000741030000081551/v2tvindex.wo/810000000071551/1.0.4/3/Webobjects1 -http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d3345/b77,c,4d,469,469,46e,46e,168e,168e,,51,,4d,51, -http://findmail.com/messages/themcse/102 -http://netcon.tucows.com/winme/adnload/136907_28427.html -http://netcon.tucows.com/winme/adnload/136906_30076.html -http://www.jyu.fi/~heili/tietoverkot/?S=A -http://www1.onelist.com/dir/1/16/483/32773?st=10 -http://www1.onelist.com/messages/animadores -http://seussville.com/teachers/authors/ayre.html -http://seussville.com/teachers/authors/corm.html -http://www.tente.de/sw/produkte/rubriksuche/aa000001461.htm -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=57&discrim=165,57,164 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=57&discrim=165,57,207 -http://jars.developer.com//classes/jresout.cgi?resource=2897 -http://members.tripod.co.jp/spirits/?S=A -http://homepages.go.com/homepages/i/u/g/iuguy22/ -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=21,5,24 -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=31,5,24 -http://troy.lib.sfu.ca/search/delectrolytes+periodicals/delectrolytes+periodicals/-5,-1,0,B/exact&F=delectrolytes+congresses&1,3 -http://www.rdg.ac.uk/ITS/Topic/Stats/StGSAS8_01/SAS8/af/z0254912.htm -http://www.rdg.ac.uk/ITS/Topic/Stats/StGSAS8_01/SAS8/af/z0254924.htm -http://ring.jec.ad.jp/local/mirror/FreeBSD-current/snapshots/i386/5.0-20000902-CURRENT/compat20/ -http://ring.jec.ad.jp/local/mirror/FreeBSD-current/snapshots/i386/5.0-20000902-CURRENT/dict/ -http://ring.jec.ad.jp/local/mirror/FreeBSD-current/snapshots/i386/5.0-20000902-CURRENT/manpages/ -http://www.xmission.com/~dkenison/cgi/lwgate.cgi/KLR650/archives/v02.n1682/date/article-7.html -http://ring.toyama-ix.net/pub/linux/Vine/Vine-2.0/ppc/?S=A -http://romulus.ehs.uiuc.edu/cgi-bin/lwgate/RADSAFE/archives/radsafe9907/Date/article-80.html -http://www.officeqmart.com/cgi-bin/qmart.front/972959552267/Catalog/3000033 -http://www.checkout.com/member/movies/title/member_reviews_form/1,7722,882122,00.html -http://mindit.netmind.com/proxy/http://www.siennasoft.com/english/order/orders_retail.shtml -http://pelit.saunalahti.fi/.1/tucows/adnload/267_29529.html -http://pelit.saunalahti.fi/.1/tucows/adnload/7574_29534.html -http://zenha.myrice.com/2/23.htm -http://zenha.myrice.com/2/20.htm -http://citeseer.nj.nec.com/cachedpage/62677/1 -http://citeseer.nj.nec.com/check/248055 -http://www.3wbooks.de/BrackRuth/BrackRuth3258053200.htm -http://preview.egroups.com/group/u_exactus -http://preview.egroups.com/group/ticovista -http://www.linux.com/networking/linux/support/va_linux_systems/price/sales/ -http://kulichki-mac.rambler.ru/moshkow/akm/zercalo/kosmix/03.html -http://innopac.lib.tsinghua.edu.cn:2080/search*chi/tStructure+and+bonding+&%2359%3B+70/tstructure+and+bonding+++70/19,-1,0,B/browse -http://www.science.uva.nl/pub/NetBSD/NetBSD-current/pkgsrc/archivers/gcpio/files/ -http://www-d0.fnal.gov/d0dist/dist/releases/pmc04.00.00/calibration_management/?S=A -http://mvweb.de/olympia/nachrichten/sportarten/news/bdt-290900-158-dpa_173282.html -http://www.scifi.com/bboard/browse.cgi/3/1/69/57?pnum=2 -http://www.diogenes.ch/4DACTION/web_rd_aut_prview/a_id=7056459&area=&ID=483365 -http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/authors/id/L/LA/LAXEN/?D=A -http://www.affiliate.hpstore.hp.co.uk/do/session/380856/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/Main/acheterhp/ -http://library.cuhk.edu.hk/search*chi/aLu,+Li,+1914-/alu+li+1914/-5,-1,0,B/frameset&F=alu+li+chun&1,1 -http://www-usa4.cricket.org/link_to_database/ARCHIVE/2000-01/IND_LOCAL/WOMEN/OTHERS/KLCA-SL/SQUADS/ -http://www.babyheirlooms.com/catalog/htmlos.cat/041141.1.4425650346 -http://193.207.57.3/cgi-win/hiweb.exe/a2/d9/b1305,4,5,,1f,5, -http://www.icopyright.com/1.1664.228033 -http://www.trax.nilex.co.uk/trax.cgi/A1C/B1S/1AR/A2S/A1S/D1L/ -http://www.trax.nilex.co.uk/trax.cgi/A1C/B1S/1AR/A2S/A1S/A2S/ -http://www.ferien-immobilien.de/baden-wuertemberg/calw/Verkauf/Gemeinsam/Inserieren/Private-IB/Gemeinsam/Super-Zins-Konditionen/3d-service/info.htm -http://sunsite.informatik.rwth-aachen.de/LinuxArchives/redhat/releases/guinness/i386/en/dosutils/fips15c/restorrb/ -http://213.36.119.69/do/session/153002/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/connaitre/revue-presse_titres.html -http://pub19.ezboard.com/uvinylangel.showPublicProfile?language=EN -http://boeing_dude.tripod.com/id125_m.htm -http://members.fortunecity.com/greatway1/gallery-pageother-0.htm -http://www.searchtraffic.com/wsignup.php3?owor12 -http://www.staroriental.net/nav/soeg_c/ihf,acv,s0,194,陳慧ç³.html -http://www.jpc-music.com/5864555.htm -http://oaziz.narod.ru/kuhn/uzb/sal_f1.html -http://preview.egroups.com/message/4aromatherapy/1112 -http://www.luecos.de/webguides/reisen/travelpictures/europe -http://www.maas.ccr.it/cgi-win/hiweb.exe/a18/d47/b47,8,be,29,29,,38,,be,38, -http://www.chaos.dk/sexriddle/k/u/u/a/ -http://www.chaos.dk/sexriddle/k/u/u/d/ -http://student.monterey.edu/nr/nielsenadamp/campus/ -http://excite.de/gesundheit/katalog/3727 -http://www.ozemail.com.au/~jcai/page19.html -http://www.ozemail.com.au/~jcai/page24.html -http://www.hantsnet.co.uk/scrmxn/c23173.html -http://www.fogdog.com/cedroID/ssd3040183334784/content/fan/subway_series/ -http://www.fogdog.com/cedroID/ssd3040183334784/boutique/arnette/ -http://www.fogdog.com/cedroID/ssd3040183334784/boutique/hi-tec/ -http://www.fogdog.com/cedroID/ssd3040183334784/boutique/marmot/ -http://ftpsearch.belnet.be/packages/CPAN/modules/by-module/Stat/ENNO/ -http://go1.163.com/_NTES/~yejingsong/03/y18/506.htm -http://sinr.net/book/content/343/26710.html -http://www.ramada.com/ctg/cgi-bin/Ramada/progpack/AAAksrACwAAABtrAAV -http://library.bangor.ac.uk/search/aBoer,+J.+H.+de+(Jan+Hendrik),+1899-/aboer+j+h+de+jan+hendrik+1899/-5,-1,0,B/buttonframe&F=aboer+dirk+jan+den&1,1 -http://library.cuhk.edu.hk/search*chi/a三çœå ‚(åƒä»£ç”°å€,+Tokyo,+Japan)/a%7B213024%7D%7B214d49%7D%7B213840%7D+%7B213458%7D%7B213073%7D%7B214c24%7D%7B213455%7D+tokyo+japan/-5,-1,0,B/browse -http://ibm1.cicrp.jussieu.fr/ibmc/classref/ref/ISetCanvas--Style_DSC.htm -http://amateur-alley.porncity.net/169/ -http://www.teacherformation.org/html/od/facilitators.cfm/task1,about/discussion_id,2/xid,1989/yid,5768630 -http://www.shopworks.com/index.cfm/action/mallcat/mallcatlevel/2/parentmallcat/6/userid/000056F0-2E26-19FE-AF65010C0A0A8CF2 -http://retailer.gocollect.com/do/session/1912760/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/shipping_policy.asp -http://news.novgorod.ru/news/2001/4/1/8/-1 -http://news.novgorod.ru/news/2001/4/3/8/-1 -http://sp201.unige.ch:49213/cxxdoc/classref/ref/ITimingTestStopwatch_DSC.htm -http://netscape.digitalcity.com/boston/localexperts/profile.dci?screenName=PSYWU -http://netscape.digitalcity.com/boston/localexperts/profile.dci?screenName=Mende67 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=17,2,26,33,23 -http://www.multicosm.com/facade/www.isinet.com/isilinks/isilinks.html -http://kutschen.de/Schoner/Info-d/history/history/literature/ -http://troy.lib.sfu.ca/search/dengineering+research+periodicals/dengineering+research+periodicals/-5,-1,0,B/frameset&F=dengineering+research+grants+canada&3,,4 -http://member.nifty.ne.jp/y-shibata/pc/pch2.htm -http://stocks.tradingcharts.com/stocks/charts/iops-bb/m -http://www.kaos.dk/sexriddle/x/j/c/s/z/ -http://www.bioimages.org.uk/HTML/R138925.HTM -http://pub22.ezboard.com/fawolpaintballfrm1.threadControl?topicID=82.topic -http://www.incestpornstories.com/hot-hardcore-fuckingbanging/plus-sizewhale/body-shotstounge/fuckinghardcore/barely-legalbackseat/{gaylink} -http://www.buybuddy.com/sleuth/27/1/1060904/5811/ -http://www.loisirs.ch/gtfmjv/9/nkrlua.html -http://vorg1.subportal.com/sn/Utilities/File_Maintenance_and_Repair_Utilities/6387.html -http://smartnet.tucows.com/winme/adnload/138584_30392.html -http://ftpsearch.belnet.be/mirrors/src.doc.ic.ac.uk/usenet/usenet-by-hierarchy/comp/emacs/?D=A -http://genforum.genealogy.com/cgi-genforum/forums/green.cgi?7578 -http://cio.cisco.com/warp/public/789/33.html -http://www7.freeweb.ne.jp/diary/bru_dog/tk/ -http://www.chinabyte.com/staticpages/software/software_download/GRBA/software_download_23274_GRBA.html -http://www.chinabyte.com/staticpages/software/software_download/GRBA/software_download_9599_GRBA.html -http://www.seekon.com/L/US/IL/Abingdon -http://freethemes.arrakis.es/skins/winamp/adnload/25359.html -http://www.hig.se/(accessed,modified,remove_cookie,smallcaps,sqlquery)/~jackson/roxen/ -http://cn.egroups.com/message/SF-users/218 -http://cn.egroups.com/message/SF-users/235 -http://www.chaos.dk/sexriddle/r/f/y/c/ -http://www.chaos.dk/sexriddle/r/f/y/e/ -http://www.chaos.dk/sexriddle/r/f/y/g/ -http://yp.gates96.com/13/50/10/33.html -http://yp.gates96.com/13/50/10/49.html -http://yp.gates96.com/13/50/10/55.html -http://yp.gates96.com/13/50/10/98.html -http://yp.gates96.com/13/50/11/35.html -http://yp.gates96.com/13/50/11/73.html -http://yp.gates96.com/13/50/11/94.html -http://yp.gates96.com/13/50/12/39.html -http://yp.gates96.com/13/50/13/8.html -http://yp.gates96.com/13/50/13/67.html -http://yp.gates96.com/13/50/14/8.html -http://yp.gates96.com/13/50/14/11.html -http://yp.gates96.com/13/50/14/47.html -http://yp.gates96.com/13/50/16/18.html -http://yp.gates96.com/13/50/16/58.html -http://yp.gates96.com/13/50/17/33.html -http://yp.gates96.com/13/50/18/13.html -http://yp.gates96.com/13/50/18/49.html -http://yp.gates96.com/13/50/18/54.html -http://yp.gates96.com/13/50/19/0.html -http://cn.egroups.com/post/romtrade?act=reply&messageNum=3851 -http://members.fortunecity.com/toleransi/sorbonne.html -http://ring.htcn.ne.jp/pub/lang/perl/CPAN/modules/by-module/PPM/MURRAY/?S=A -http://sunsite.berkeley.edu/PhiloBiblon/BITAGAP/BIB/BIB5648.html -http://sunsite.berkeley.edu/PhiloBiblon/BITAGAP/BIB/BIB7392.html -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53940/eus53960/eus54753/eus543189/eus550516/ -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53940/eus53960/eus54753/eus543189/eus550528/ -http://shn.webmd.com/roundtable_printing/774674 -http://www.zi.unizh.ch/software/unix/statmath/sas/sasdoc/lgref/z0205140.htm -http://www.hblb.org.uk/hblbweb.nsf/$Pages/NewsArchive1!OpenDocument&ExpandSection=16,12,3,13,5,6,9 -http://www.uni-duesseldorf.de/ftp/ftp/pf/share/fvwm-2.0.45/?S=A -http://members.tripod.com/~PhyrePhox/mcse/70-088.htm -http://extreme-dm.com/tracking/reports/dj/nph-ref1.cgi?tag=nimrood -http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20040397/-5,-1,0,B/frameset&F=bp20040402&1,1 -http://209.0.220.240/spec/txve.htm -http://209.0.220.240/spec/tyai.htm -http://ftp.up.pt/Linux/Linus/net-source/www/clients/netscape/?M=A -http://ftp.up.pt/Linux/Linus/net-source/www/clients/netscape/?D=A -http://www.jobvillage.com/channel/jobs/health_care/nursing/licensed_practical_nurse/b.9505.g.1766.html -http://www.zope.org/Members/stevea/CoadObjectModels/BackLinks/backlinks -http://www.mairie-montreuil93.fr/ville_pratique/environ/energie/mve/media/?D=A -http://member.shangdu.net/home2/chr/jishang/hongkong/inxg-6.html -http://www.wild-dog.com/activity/touring/idx/page_18_1.html -http://members.tripod.co.jp/susu/?M=A -http://www.dulux.co.uk/UKRETAIL:623356687:DFinity.1QJiP4jMLco -http://www.kordic.re.kr/~trend/Content326/agriculture04.html -http://www.kordic.re.kr/~trend/Content326/agriculture09.html -http://ftp.lip6.fr/pub12/OpenBSD/src/gnu/egcs/config/mh-aix43 -http://ftp.lip6.fr/pub12/OpenBSD/src/gnu/egcs/config/mh-elfalphapic -http://ftp.lip6.fr/pub12/OpenBSD/src/gnu/egcs/config/mt-x86pic -http://www.ecatsbridge.com/BiB/static/sims/bbljuly99/00000101758612773F1.htm -http://pub20.ezboard.com/faustralianslotcarreviewhoracing.showMessage?topicID=2.topic&index=47 -http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/games/exchess/pkg/DESCR -http://homepage.renren.com/sandybay/help.htm -http://no.egroups.com/post/oslosynth?act=reply&messageNum=634 -http://www.brio.de/BRIO.catalog/39fe2f940703266c273fd472aa7806a8/UserTemplate/2 -http://www.50megs.com/prettysenshi/captures/ep3/SMep3.html -http://www.thisislancashire.co.uk/lancashire/archive/1999/11/05/CHORNEWS5VQ.html -http://au.yahoo.com/Regional/U_S__States/California/Metropolitan_Areas/San_Francisco_Bay_Area/Entertainment_and_Arts/Restaurants/Coffee_and_Tea_Houses/ -http://www.niwl.se/WAIS/30002/30002360.htm -http://www.infoscape.com.cn:8178/gb/content/2000-08/16/content_6082.htm -http://link.fastpartner.com/do/session/600419/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php -http://www.canit.se/(c1,f3,ftp,generellt,irc,mail)/support/ -http://citeseer.nj.nec.com/cidcontext/3787443 -http://www.affiliate.hpstore.hp.co.uk/do/session/380878/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry.asp -http://www.usq.edu.au/unit-1997/fullspec/51129s3x.htm -http://worldres.lycos.com/script/gen_mr.asp?hotel_id=6354&n=1518 -http://www.members.aon.at/~kleindlp/neue_seite_4.htm -http://210.169.76.95/html/tai_0043/bat_1180.html -http://oneplace.adbureau.net/accipiter/adclick/site=ONEPLACE/area=INDEX/POSITION=FOOTER/AAMSZ=468x60/ACC_RANDOM=262411779164 -http://www.service911.com/mvu/step/0,2632,6+34+90+23506+13880_4,00.html -http://ftp.lip6.fr/pub11/NetBSD/NetBSD-current/src/usr.sbin/kvm_mkdb/Makefile -http://www.bemi-immobilien.de/Private-IB/Startseite/Startseite/Gemeinsam/versicherungen/unfall/Gemeinsam/immolink/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/gebaeude/anforderungsformular.htm -http://wap.jamba.de/KNet/_KNet-BOC8j1-LFd-13bpy/showInfo-hilfe.de/node.0/cenv0b09a -http://wap.jamba.de/KNet/_KNet-BOC8j1-LFd-13bq0/browse.de/node.0/cde7f1uou -http://cnnews.sina.com/kwongzhou/china/2000/1026/2083022_2.html -http://www.msb.malmo.se/search*swe/dFlygplanskonstruktion/dflygplanskonstruktion/-5,-1,0,B/frameset&F=dflygolyckor&4,,6 -http://home.hanmir.com/~100sun/joo4.htm -http://www.szed.com/szsb/19990629/GB/default.htm -http://www.szed.com/szsb/19990629/GB/4-NPCLASS.HTM -http://www.szed.com/szsb/19990629/GB/7-NPCLASS.HTM -http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=15,24,26,25 -http://movies.exit.de/lichtsammler/images/tunnel/gross/sw_kb/?D=A -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=5,34,38 -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=21,34,38 -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=31,34,38 -http://fi.egroups.com/login.cgi?login_target=%2Fmessage%2Fgamp%2F1734 -http://de.excite.de/katalog/katalog/9231 -http://www-win.rusf.ru/esli/rubr/books/es0500di.htm -http://www.jamba.de/KNet/_KNet-yjF8j1-8Gd-13cj6/browse.de/node.0/cde7f1uou -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/misc/lit/programs/misc/math/lit/athalie.html -http://ftp.fi.debian.org/debian/dists/Debian2.2r0/contrib/binary-powerpc/interpreters/?S=A -http://jupiter.u-3mrs.fr/~msc41www/releves/04350110.HTM -http://ocean.ntou.edu.tw/search*chi/dDigital+modulation/ddigital+modulation/7,-1,0,E/frameset&F=ddigital+techniques+signal+processing&4,,0 -http://pub20.ezboard.com/fcharmingtailsresourcetradeyoursportscardshere.unsubscribeUnregisteredToTopic?topicID=43.topic -http://www.kaos.dk/sexriddle/x/w/k/u/q/ -http://www.kaos.dk/sexriddle/x/w/k/u/t/ -http://216.205.158.3/smm/programs/CDG_Player/wwwboard/messages/27.html -http://216.205.158.3/smm/programs/CDG_Player/wwwboard/messages/60.html -http://fen.com/whatworks/review/edit/1,2560,1-9696-5539-0-45394,00.html -http://yp.gates96.com/8/74/30/30.html -http://yp.gates96.com/8/74/31/1.html -http://yp.gates96.com/8/74/32/12.html -http://yp.gates96.com/8/74/32/60.html -http://yp.gates96.com/8/74/32/92.html -http://yp.gates96.com/8/74/33/41.html -http://yp.gates96.com/8/74/33/55.html -http://yp.gates96.com/8/74/33/57.html -http://yp.gates96.com/8/74/33/95.html -http://yp.gates96.com/8/74/34/21.html -http://yp.gates96.com/8/74/34/23.html -http://yp.gates96.com/8/74/34/79.html -http://yp.gates96.com/8/74/35/3.html -http://yp.gates96.com/8/74/35/22.html -http://yp.gates96.com/8/74/35/79.html -http://yp.gates96.com/8/74/36/31.html -http://yp.gates96.com/8/74/36/84.html -http://yp.gates96.com/8/74/37/58.html -http://yp.gates96.com/8/74/37/77.html -http://yp.gates96.com/8/74/37/89.html -http://yp.gates96.com/8/74/37/97.html -http://yp.gates96.com/8/74/39/43.html -http://yp.gates96.com/8/74/39/63.html -http://yp.gates96.com/8/74/39/88.html -http://www9.hmv.co.uk:5555/do/session/1347828/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/newmenu.html -http://www9.hmv.co.uk:5555/do/session/1347828/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d80_sd0_pt0.html -http://gladstone.uoregon.edu/~sme28057/arch181-202/assign2/?M=A -http://cco.cisco.com/univercd/cc/td/doc/product/core/7206/7206ig/trble6ug.pdf -http://210.32.1.18/goldbook/humor/mh/c/changgu/1/028.htm -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=17,28,24,31,11 -http://www.spiral.at/Katalog/Artikel/7561032/ -http://www.crutchfield.com/cgi-bin/S-Ql7dbZlSZa2/viewcart.asp -http://www.fogdog.com/cedroID/ssd3040183327788/nav/products/winter_sports/1b/shell_pants/ -http://www.fogdog.com/cedroID/ssd3040183327788/nav/products/winter_sports/1j/oakley/ -http://www.fogdog.com/cedroID/ssd3040183327788/nav/products/winter_sports/1l/day_packs/ -http://www.thestateofcolorado.com/pglblock.html -http://www.staroriental.net/nav/soeg/ihf,adj,s0,259,Kristy+Yeung+Gung-Yu.html -http://pcmcia.sourceforge.org/cgi-bin/HyperNews/get/pcmcia/toshiba/38.html -http://sunsite.org.uk/public/public/packages/Dr-Fun/df9412/?N=D -http://nt.mortgage101.com/partner-scripts/1144.asp?p=mig&pw=600 -http://biblioteca.upv.es/bib/doc/doc_fisbd/17/87050//C/1828104/3////25/N/MLTPAI -http://130.80.29.3/content/houston/k-12/hanc/ -http://javatest.a-net.nl/exhibits/default.htm -http://javatest.a-net.nl/museum_info/job_opportunities.asp -http://books.hyperlink.co.uk/booklist/Alphabet_Workbook/Cheney/Martha/1565658396 -http://kobe.cool.ne.jp/orera/guestbook.html -http://ftp.eecs.umich.edu/pub/NetBSD/packages/1.4.1/vax/audio/ -http://ftp.eecs.umich.edu/pub/NetBSD/packages/1.4.1/vax/editors/ -http://ftp.eecs.umich.edu/pub/NetBSD/packages/1.4.1/vax/tk80/ -http://www.zdnet.de//news/artikel/1999/03/09001-wc.html -http://neptune.guestworld.com/gear/gateway.cfm?action=private&owner=sitonga7 -http://www.de.lycos.de/dir/Reisen_und_Regionen/L%E4nder_und_St%E4dte/Deutschland/Schleswig-Holstein/St%E4dte_und_Orte/St%E4dte_und_Orte_P_bis_S/ -http://www.mirror.edu.cn/res/sunsite/pub/academic/music/album-reviews/1995/9-September/?M=A -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=213&discrim=176,11,57 -http://europa.eu.int/abc/doc/off/bull/el/9705/x085.htm -http://europa.eu.int/abc/doc/off/bull/el/9705/x209.htm -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=15,0+17,0-3,0-9,0 -http://www.ferien-immobilien.de/baden-wuertemberg/stuttgart/Verkauf/Gemeinsam/MarketingStrategie/Ferien-IB/Startseite/Gemeinsam/Super-Zins-Konditionen/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/indexbeginn.htm -http://www.ferien-immobilien.de/baden-wuertemberg/stuttgart/Verkauf/Gemeinsam/MarketingStrategie/Ferien-IB/Startseite/Gemeinsam/Super-Zins-Konditionen/Gemeinsam/impressum.htm -http://www.chaos.dk/sexriddle/s/e/x/v/i/a/w/ -http://pub4.ezboard.com/fscarletstreethorroritalianstyle.showAddReplyScreenFromWeb?topicID=15.topic -http://ftp.dti.ad.jp/pub/lang/CPAN/authors/id/P/PJ/PJF/ -http://www.highwired.net/Paper/EmailToFriend/1,2102,302-183023,00.html -http://ftpsearch.belnet.be/mirror3/ftp.kde.org/pub/kde/Incoming/Attic/old/1.1.2/apps/ide/?D=A -http://www.affiliate.hpstore.hp.co.uk/do/session/380877/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-creativeworld.com/creativeworld.asp?lang=f -http://expert.cc.purdue.edu/~steinfoc/assignment3/assig3.html -http://www.wyborcza.com/Ascii/Raporty/Filmowa/277rap.html -http://www.redhat.com/mirrors/LDP/LDP/LG/issue50/misc/pollman/?D=A -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=148&discrim=142,11,200 -http://www.marktplatz-hs.de/cgi-bin/ChioEditionShop.s/39fe2ee602379b7e273fd47540f806e1/Catalog -http://www.affiliate.hpstore.hp.co.uk/do/session/380836/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/createbroch.asp -http://joy1.alpha-g.ne.jp/tree/user/a/amuro/2_index.shtml -http://time.188.net/movie/star/taiwan/2/pic/image36.htm -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=25,1,36,31,11 -http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/audio/kdemultimedia11-i18n/Attic/pkg-comment?only_with_tag=RELEASE_2_2_7 -http://www.landfield.com/ftp/usenet/news.answers/bicycles-faq/?S=A -http://wap.jamba.de/KNet/_KNet-puF8j1-aGd-13clg/browse.de/node.0/cenv0b09a -http://www.empas.com/search/all.html?q=%C0%CC%B7%D3%B4%D9 -http://www.linux.com/networking/server/install/howto/website/developers/ -http://aecjobbank.com/texis/script/newjobs/+NwxBm6ev7I1wwwhmrmwxetiAw/jobdirectory.html -http://www.egroups.com/message/ijtihadmk/5 -http://www.egroups.com/message/ijtihadmk/11 -http://www.realize.com/am67bd81.htm,qt=e784fe2f=2a38a234-7-da6e2d-0-0-0-3-- -http://www.realize.com/p643c81.htm,qt=e784fe2f=2a38a234-7-da6e80-0-0-0-3-- -http://moneysaver.net/netcall/?almktng -http://www.agria.hu/bikersmeeting/archivum/talalkozo/foto/taj.cgi?15n -http://link.fastpartner.com/do/session/600401/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/ -http://198.103.152.100/search*frc/aDidsbury,+Howard+F.,+1924-/adidsbury+howard+f+1924/-5,-1,0,B/frameset&F=adidier+marcel&1,,0 -http://198.103.152.100/search*frc/aDidsbury,+Howard+F.,+1924-/adidsbury+howard+f+1924/-5,-1,0,B/frameset&F=adidier+michel&1,,0 -http://www.medoc-ias.u-psud.fr:81/synoptic/gif/001020/?D=A -http://shop.goto.com/compperiph/periph/cdrom/search/sidexside.jhtml?s=1&sort_up=LOW_PRICE -http://excite.de/wirtschaft/katalog/1356 -http://excite.de/wirtschaft/katalog/2631 -http://www.areteoutdoors.com/channel/earth/caving/b.89.g.473.html -http://www.areteoutdoors.com/channel/earth/caving/b.91.g.473.html -http://bo.ole.com/actualidad/articulo/html/act13873.htm -http://www.dulux.co.uk/UKRETAIL:446033260:DFinity.1QJiP4jMomdoclfieh -http://www.linux.com/networking/network/release/sap/hardware/firewall/ -http://genforum.genealogy.com/cgi-genforum/forums/hendrix.cgi?430 -http://www.chaos.dk/sexriddle/s/p/w/c/ -http://198.103.152.100/search*frc/tCanada+in+the+21st+century.+II,+Resources+and+technology/tcanada+in+the+21st+century+ii+resources+and+technology/-5,-1,0,B/frameset&F=tcanada+in+the+21st+century+no+01&1,1 -http://books.hyperlink.co.uk/bookinfo/Sunk_Costs_and_Market_Structure/Sutton/John/0262193051 -http://members.tripod.com/theshavedbeaver/site2/s2laststand.html -http://members.tripod.com/theshavedbeaver/site2/s2s1ep21.html -http://www.ytmag.com/cgi-bin/redirect.cgi/602479760 -http://www18.freeweb.ne.jp/school/syodou/you005.htm -http://www.fogdog.com/cedroID/ssd3040183334500/nav/products/featured_brands/2h/replica_jerseys/ -http://www.fogdog.com/cedroID/ssd3040183334500/nav/products/featured_brands/2h/replica_jerseys/4.html -http://www.fogdog.com/cedroID/ssd3040183334500/crs/nvCZ/wld/fogdog_sports/champion/fan_memorabilia/apparel/vlade_divac_replica_jersey.html -http://www.jobvillage.com/channel/jobs/travel/travel_guide/b.4897.g.5299.html -http://www.bcbsal.org/Provider_Dir/pharmacy/state/Oregon/HILLSBORO/index_29061.html -http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d2066/b77,c,4d,469,469,1b65,1b65,,51,811,4d,51,811,, -http://www.loisirs.ch/bbewxu/2/wofyff.html -http://mitglied.tripod.de/Jag3/jag3b.htm -http://linuxberg.starhub.net.sg/x11html/preview/9016.html -http://linuxberg.starhub.net.sg/x11html/preview/9062.html -http://linuxberg.starhub.net.sg/x11html/preview/9103.html -http://linuxberg.starhub.net.sg/x11html/preview/9820.html -http://linuxberg.starhub.net.sg/x11html/preview/10370.html -http://linuxberg.starhub.net.sg/x11html/preview/9965.html -http://linuxberg.starhub.net.sg/x11html/preview/10117.html -http://linuxberg.starhub.net.sg/x11html/preview/10129.html -http://linuxberg.starhub.net.sg/x11html/preview/10152.html -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=150&discrim=251,11,3 -http://totalsports.aol.com/stats/bbo/int/20000624/tol.at.swb.game.html -http://excite.de/gesundheit/katalog/41575 -http://bbs.csie.ntu.edu.tw/txt/Emprisenovel/ebooks/other/hsiao_yi/jqhy/007.txt -http://www.memorialcup99.com/HockeyStLouisArchive/nov17_stl.html -http://www.letsmusic.com/directory/theme/genre_each/1,1137,Z-ã„´-124-2-2,00.asp -http://rainforest.parentsplace.com/dialog/get/bedwetting/29/2.html?outline=-1 -http://www.volny.cz/j_medkova/p05.html -http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d2072/b77,c,4d,51,51,815,815,818,7d9,,51,7d9,818,, -http://collection.nlc-bnc.ca/100/200/301/ccmd-ccg/ccmd_report-e/rpt1e.pdf -http://cn.egroups.com/post/export-import-indonesia?act=forward&messageNum=595 -http://www.secinfo.com/$/SEC/Filing.asp?T=1zBgb.6t_9yc -http://www.realize.com/am81.htm,qt=4619dc8c=279e650e-c-16fba7d-1-0-0-0-- -http://amadeus.siba.fi/doc/php3-ldap/html/features.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.ada-fetchrow.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.array-pop.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.current.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.ftp-size.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.getmyinode.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.gmdate.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.hw-getusername.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.icap-list-alarms.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.ifx-free-char.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.imap-reopen.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.is-link.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.is-string.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.mcal-event-set-recur-monthly-wday.html -http://amadeus.siba.fi/doc/php3-ldap/html/function.mhash-get-block-size.html -http://wwws.br-online.de/geld/boerse/980420/110001.html -http://family.go.com/Categories/reviews/Features/family_2000_01/dony/dony0100craftapple/ -http://family.go.com/Categories/reviews/Features/family_2000_01/dony/dony0100craftcactus/ -http://family.go.com/Categories/reviews/Features/family_2000_01/dony/dony0100petvetticks/ -http://www.maastrek.de/maas/d49da6854db9e797f212/1/0/1 -http://astro1.chungnam.ac.kr/NetBBS/Bbs.dll/astromov/lst/qqadm/1/zka/B2-kB2Bl/qqo/004D -http://channel.cnnsi.com/basketball/college/2000/ncaa_tourney/west/news/2000/03/25/keady_ap/lg_keady_ap.html -http://incmagazine.com/articles/details/0,3532,AGD5_ART13806_CNT56_GDE30,00.html -http://incmagazine.com/research/details/0,3470,AGD5_CNT49_GDE30_RSC16754,00.html -http://gatekeeper.dec.com/pub/linux/lorax/i386/misc/src/anaconda/balkan/CVS/ -http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd720350329 -http://www.proviser.co.uk/regional/towns/alford/street_maps/alpha_b.html -http://www.fogdog.com/cedroID/ssd3040183255203/ -http://www.columbia.edu/~wl158/OCD.htm -http://www.irishnews.com/Archive2000/29052000/international.html -http://www.irishnews.com/Archive2000/29052000/sportinter.html -http://38scbshop.freeyellow.com/download.html -http://news.dinf.ne.jp/news/fj/rec/animation/msg01441.html -http://datastore.tucows.com/winnt/adnload/5372_28388.html -http://pages.infinit.net/limal/visage/chap17.htm -http://www.hotelboulevard.com/fr/paris/standard/htmlc258073cfbe254c1722c86e0aec5f5da/sessionLang/ANG/search.html -http://www.icopyright.com/1.1642.213678 -http://wiem.onet.pl/wiem/012aa2.html -http://www.secinfo.com/dRRsz.9e.htm -http://lily.nju.edu.cn/literature/cangshu/wx/wra/ysz/16.htm -http://home.swipnet.se/~w-15978/ -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.stanford.edu/dept/EIS/moral_responsibility.htm -http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.stanford.edu/dept/EIS/hardin_review.htm -http://www.uni-duesseldorf.de/ftp/pf/share/flex-2.5.2/man/man1/?S=A -http://mindit.netmind.com/proxy/http://www.ninds.nih.gov/health_and_medical/pubs/chronic_pain_htr.htm -http://mindit.netmind.com/proxy/http://www.smalltime.com/notvictims/cutting.html -http://www.peopledaily.co.jp/zdxw/7/19991231/19991231001085.html -http://pokemonothin.8m.com/cgi-bin/c/736/64/dXNlcmJhbm5lcg==/gn/4638/ -http://www.chaos.dk/sexriddle/s/e/x/u/y/n/d/ -http://www.bestinfo.net.cn/bsti_kjhy/kyys/bjkyys/arim/technical.html -http://www.leicos.de/webguides/fun_lifestyle/unterhaltung/43101.html -http://209.207.239.212/bkindex/c1047/f1423.html -http://cylis.lib.cycu.edu.tw/search*chi/tEncyclopaedia+of+mathematical+sciences+&%2359%3B+v.+65/tencyclopaedia+of+mathematical+sciences+v+++65/-17,-1,0,B/frameset&F=tencyclopaedia+of+mathematical+sciences+v+++48&1,1 -http://www.sanxia.net/beauty/Nanako/313.htm -http://www.sanxia.net/beauty/Nanako/323.htm -http://mirrortucows.technet.it/winme/adnload/138469_29790.html -http://www.fogdog.com/cedroID/ssd3040183321970/nav/stores/walking/ -http://www.fogdog.com/cedroID/ssd3040183321970/customer_service/employment.html -http://mirror.pku.edu.cn/www.berkeley.edu/ls.berkeley.edu/lscr/services/backups/UCBackup.html -http://retailer.gocollect.com/do/session/1912804/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp -http://www.uni-duesseldorf.de/ftp/pf/share/ddd-1.4d/man/man1/?M=A -http://www.uni-duesseldorf.de/ftp/pf/share/ddd-1.4d/man/man1/?S=A -http://javatest.a-net.nl/servlet/pedit.Main/http://www.zdnet.com/special/stories/wireless/0,10676,2557092-8,00.html -http://ftp.sunet.se/pub/os/FreeBSD/development/FreeBSD-CVS/ports/archivers/makeself/ -http://www.jamba.nl/KNet/_KNet-QYL8j1-2D4-pw4k/browse.nl/node.0/cde7f1uou -http://www.discoveromaha.com/shared/health/adam/ency/imagepage/1090.000233.html -http://home.dqt.com.cn/cgi-bin/push/setluntan?luntan=64 -http://sjsulib1.sjsu.edu:81/search/dbusiness+periodicals/-5,-1,1,B/frameset&dbusiness+vocational+guidance&2,,3 -http://www-d0.fnal.gov/d0dist/dist/releases/psim01.01.00/cft_tuple/VERSION -http://pub3.ezboard.com/fmcdonaldscollectorsclubauctions.subscribeUnregisteredToTopic?topicID=136.topic -http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424027/957522583/Catalog/1301/001 -http://www.cs.kuleuven.ac.be/~java/docs/jdk1.3/docs/api/java/sql/class-use/DriverPropertyInfo.html -http://www.buybuddy.com/sleuth/27/1/1060701/505427/ -http://web4.sportsline.com/u/football/nfl/players/splits/4451_split.htm -http://mirror.cc.utsunomiya-u.ac.jp/mirror/FreeBSD/ports/alpha/packages-5-current/japanese/?M=A -http://no.egroups.com/login.cgi?login_target=%2Fgroup%2Ftkd-full -http://www.bemi-immobilien.de/Ferien-IB/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/immolink/Gemeinsam/3d-service/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/MarketingStrategie/Strategie.htm -http://www.bemi-immobilien.de/Ferien-IB/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/immolink/Gemeinsam/3d-service/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm -http://www.3wposter.com/czaja/czj2002.htm -http://pub19.ezboard.com/fallamericanbaseballleagueplayersneeded.showMessage?topicID=6.topic -http://ftp.uni-mannheim.de/info/OReilly/nutshell/practcpp/disk/doit/?N=D -http://www02.geocities.co.jp/HeartLand-Kaede/4970/index2.htm -http://www.selbstmachen.de/shops/pop/infotext/8008.htm -http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/unstable/contrib-jp/binary-alpha/doc/?D=A -http://genforum.genealogy.com/cgi-genforum/forums/flynn.cgi?1004 -http://www.iwon.com/home/movies/movies_filmography_page/0,13178,Marguerite+Hickey,00.html -http://cometweb01.comet.co.uk/do!tid=20&rtid=2&vsid=700&session=132028&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLlci5XqVLkXsLkao4tloHbmlLoq5 -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus65300/eus65303/eus77824/eus541028/eus168664/ -http://user.chollian.net/~iipuni/pds1/?M=A -http://tucows.ciaoweb.it/winnt/adnload/73935_29937.html -http://home2.keyciti.com/x2001/ -http://www.amateurplatinum.com/teenagerclique/fagbodyshots/elbow-greaseac/plus-sizemen/butt-fuckpartner/actionextreme/hitting-itendurance.html -http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/vfs.txt?only_with_tag=LINUX-2_3_99_pre4 -http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/vfs.txt?only_with_tag=LINUX-2_3_17 -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+18,0-0,0-3,0 -http://www.skaninforma.no/nord-troendelag/leksvik-h.htm -http://194.128.65.4/pa/cm199798/cmwib/wb971115/nil.htm -http://www.on.fuchu.or.jp/~oimatudo/englishmisomanzyu.htm -http://map.ipc.co.jp/asp/onmap/connect/g-2/a-719/ -http://cherokee1.edgate.com/goucheres/ed_current.html -http://www.online.kokusai.co.jp/Service/V0043594/wrd/G200/service/service.html -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=21,16,7 -http://binary.tucows.com/winnt/adnload/70807_30160.html -http://binary.tucows.com/winnt/adnload/1422_28846.html -http://genforum.genealogy.com/cgi-genforum/forums/theroux.cgi?69 -http://rex.skyline.net/navigate.cgi?news,ice,women,resources,living -http://umweb2.unitedmedia.com/creators/rugrats/archive/rugrats-20001015.html -http://retailer.gocollect.com/do/session/1912824/vsid/2089/tid/2089/cid/621609/mid/1540/rid/1520/chid/2083/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlmo5larLZqVLafpLmiXLvlmHolaLrZqLpl4/url/http://www.gocollect.com/product_display/products/product_lines.asp -http://retailer.gocollect.com/do/session/1912824/vsid/2089/tid/2089/cid/621609/mid/1540/rid/1520/chid/2083/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlmo5larLZqVLafpLmiXLvlmHolaLrZqLpl4/url/http://www.gocollect.com/clubhouse/suggestions.asp -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=146&discrim=146,7,19 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=146&discrim=146,7,231 -http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1996-97/OD_TOURNEYS/SINWS/SINWS-MATCHES/SL_ZIM_SINWS_ODI5_03SEP1996_DAILY_MR.html -http://preview.egroups.com/group/God_Calling -http://www.fogdog.com/cedroID/ssd3040183340945/nav/products/outlet/1b/sunglasses_optics/ -http://www.fogdog.com/cedroID/ssd3040183340945/nav/products/outlet/1c/dc/ -http://www.fogdog.com/cedroID/ssd3040183340945/customer_service/contact_us.html -http://link.fastpartner.com/do/session/600424/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/itjobbank.php -http://link.fastpartner.com/do/session/600424/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/index.php -http://pub2.ezboard.com/fteamnexgenforumhelpnexgennexencodestudio.unsubscribeUnregisteredToTopic?topicID=29.topic -http://www02.geocities.co.jp/SiliconValley-PaloAlto/1763/event/ni2k/ni2k.htm -http://yp.gates96.com/7/89/60/35.html -http://yp.gates96.com/7/89/61/4.html -http://yp.gates96.com/7/89/61/38.html -http://yp.gates96.com/7/89/62/80.html -http://yp.gates96.com/7/89/63/8.html -http://yp.gates96.com/7/89/63/16.html -http://yp.gates96.com/7/89/65/10.html -http://yp.gates96.com/7/89/65/42.html -http://yp.gates96.com/7/89/65/54.html -http://yp.gates96.com/7/89/65/88.html -http://yp.gates96.com/7/89/65/98.html -http://yp.gates96.com/7/89/66/26.html -http://yp.gates96.com/7/89/66/55.html -http://yp.gates96.com/7/89/67/28.html -http://yp.gates96.com/7/89/68/67.html -http://yp.gates96.com/7/89/69/63.html -http://yp.gates96.com/7/89/69/73.html -http://www.mediko.de/news/alt.support.eating-disord/19944.html -http://www.mediko.de/news/alt.support.eating-disord/19975.html -http://www13.cplaza.ne.jp/musicnavi/i-mode/id/KICS113.html -http://home.beseen.com/community/alienpilot/AbductionTheory.html -http://www.hausbau-finder.de/festpreis/anbieter/A11/A11_05_eg.htm -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=10,15,200 -http://ftp.eecs.umich.edu/pub/NetBSD/packages/1.3.3/mac68k/kde/ -http://www.leg.wa.gov/pub/rcw%20-%20text/title_49/chapter_028/rcw_49_28_065.txt -http://fi.egroups.com/login.cgi?login_target=%2Fmessages%2Fdfbl%2F77 -http://ring.omp.ad.jp/pub/NetBSD/NetBSD-current/src/sys/arch/sgimips/dev/?D=A -http://retailer.gocollect.com/do/session/1912781/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp -http://providenet.tucows.com/win2k/adnload/136128_47180.html -http://providenet.tucows.com/win2k/adnload/38527_29571.html -http://no.egroups.com/dir/1/16/476/32069/32291/104313/293356 -http://www.playease.com/et/beauty/img/lingmuyamei/lmam043.htm -http://202.99.23.201/gb/special/node_484.htm -http://202.99.23.201/gb/special/node_518.htm -http://202.99.23.201/gb/special/node_531.htm -http://ring.jec.ad.jp/archives/NetBSD/NetBSD-current/pkgsrc/fonts/acroread-chsfont/README.html -http://www.gaiax.com/~dengeki/lineb.html?haru_da_pump -http://cafe2.daum.net/Cafe-bin/Bbs.cgi/naturalproductspds/qry/zka/B2-kB27p/qqatt/^ -http://cafe2.daum.net/Cafe-bin/Bbs.cgi/naturalproductspds/qry/zka/B2-kB23t/qqatt/^ -http://cafe2.daum.net/Cafe-bin/Bbs.cgi/naturalproductspds/qry/zka/B2-kB23r/qqatt/^ -http://my.egroups.com/group/uk-mac-dev -http://www.f20.parsimony.net/forum35990/archiv.htm -http://findmail.com/group/Costumers -http://variety.studiostore.com/browse/PEOPLE/b.FAVORITES%20PEOPLE/s.ZaC1r6Q6 -http://www.chinawolf.com/~warson/japan/chichuan/cat/jiangzuo/020.htm -http://www.branchen-vermittler.de/Branchen/Mecklenburg/Mecklenburg_Region_3/Neustrelitz/kopf_neustrelitz.html -http://www.xmission.com/(art,ftp,geek,music,music,caffiene,art,toys,dots,edge,misc,shopping,ftp,places,privacy,geek,cuseeme,apocalypse,people,stuffiuse,places,privacy,stuffiuse)/~bill/links.html -http://www.cs.helsinki.fi/linux/linux-kernel/Year-1999/1999-49/1283.html -http://www.ecotec.co.jp/view/arc/f/free/33/umcotk/zxlqox.html -http://www.ecotec.co.jp/view/arc/f/free/33/tgiotk/uftfwm.html -http://www.ecotec.co.jp/view/arc/f/free/33/purotk/qxxotk.html -http://www.ecotec.co.jp/view/arc/f/free/33/purotk/sewotk.html -http://www.ecotec.co.jp/view/arc/f/free/33/purotk/sjkfwm.html -http://www.ecotec.co.jp/view/arc/f/free/33/hazfwm/llhetk.html -http://www.ecotec.co.jp/view/arc/f/free/33/bvtctk/eptrik.html -http://www.ecotec.co.jp/view/arc/f/free/33/rvkptk/syurzz.html -http://library.cuhk.edu.hk/search*chi/a��頦��哨蕭嚙賢��鞈�嚙è¸ï¿½ï¿½ï¿½+1934-/a{214b33}{213021}{214451}+1934/-5,-1,0,B/frameset&F=a{214b33}{213021}{213c63}&6,,7 -http://mitglied.tripod.de/~haubentaucher/bilder.htm -http://amc.hollywood.com/maltin/v/valleyofthekings-1954.htm -http://amc.hollywood.com/maltin/v/vannuysblvd-1979.htm -http://amc.hollywood.com/maltin/v/venicevenice-1992.htm -http://amc.hollywood.com/maltin/v/vicesquad-1931.htm -http://amc.hollywood.com/maltin/v/violette-1978.htm -http://amc.hollywood.com/maltin/v/voiceofthewhistler-1945.htm -http://amc.hollywood.com/maltin/v/vulturethe-1967.htm -http://members.tripod.co.jp/hatahata/hikoki/?D=A -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-10-23/07/972255822718.txt -http://www.mapion.co.jp/custom/AOL/admi/23/23105/matsubaracho/5chome/index-43.html -http://search.chollian.net/cgi-bin/filter.cgi?cid=1109&g=11 -http://search.chollian.net/cgi-bin/filter.cgi?cid=1109&p=5 -http://www.linux.com/networking/network/new/website/applications/business/ -http://www.fogdog.com/cedroID/ssd3040183313598/nav/products/w_golf/1s/ball_retrievers/ -http://www.fogdog.com/cedroID/ssd3040183313598/nav/products/w_golf/1t/biographical_books/ -http://rammstein.sonicnet.com/artists/news/1090.jhtml -http://rammstein.sonicnet.com/allmusic/ai_bio.jhtml?ai_id=1090 -http://www.ycwb.com.cn/gb/2000/08/18/ycwb/gnxw/7.html -http://www.vorlesungen.uni-osnabrueck.de/informatik/c98/code/19/?D=A -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-10-23/11/972270515716.txt -http://www.affiliate.hpstore.hp.co.uk/do/session/380869/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry1.asp -http://uk.biz.yahoo.com/mutual_funds/micropal/lf/fund/008776/properf.html -http://troy.lib.sfu.ca/search/aasociacion+argentina+de+ciencias+naturales/aasociacion+argentina+de+ciencias+naturales/-5,-1,0,E/frameset&F=aasociacion+argentina+de+ciencias+naturales&1,,0 -http://uk.dir.yahoo.com/Regional/U_S__States/Virginia/Metropolitan_Areas/Charlottesville_Metro/Travel_and_Transportation/Accommodation/Caravan_Parks_and_Camp_Sites/ -http://uk.dir.yahoo.com/Regional/U_S__States/Virginia/Metropolitan_Areas/Charlottesville_Metro/Travel_and_Transportation/Accommodation/Hotels/ -http://library.cwu.edu/search/cQA76.73.A35+T75/cqa+++76.73+a35+t75/-5,-1,0,B/marc&F=cqa+++76.73+a8+j33+1985&1,1, -http://www.tages-anzeiger.ch/sport/nagano/0902/olymp_art4.htm -http://finance.sina.com.cn/globe/globe/2000-03-16/23725.html -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,3-9,0+0,1-0,3 -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,3-9,0+0,1-9,3 -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,3-9,0+0,1-19,0 -http://temps-libre.promovacances.net/D02/BH/BDANE/voyagealacarte.htm -http://sunsite.org.uk/public/computing/networks/internet/ietf/98aug/imapext-attendees-98aug.txt -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=124&discrim=221,178 -http://cpan.nettuno.it/authors/Ilya_Zakharevich/modules/FreezeThaw-0.41.readme -http://cpan.nettuno.it/authors/Ilya_Zakharevich/modules/Math-Pari-2.001700.readme -http://ricoh.co.jp/SHOGI/emate/tanigawa/tume0069a.html -http://troy.lib.sfu.ca/search/dlatin+america+periodicals/dlatin+america+periodicals/-5,-1,0,B/marc&F=dlatin+america+pest+control+industry&1,1, -http://moviestore.zap2it.com/browse/MOVIES/COLLECTI/s.w2bwHPkr -http://moviestore.zap2it.com/browse/MOVIES/BUNDLE/s.w2bwHPkr -http://moviestore.zap2it.com/browse/MOVIES/BOWL/s.w2bwHPkr -http://moviestore.zap2it.com/browse/MOVIES/JEWELRY/s.w2bwHPkr -http://moviestore.zap2it.com/browse/MOVIES/COMIC/s.w2bwHPkr -http://www9.hmv.co.uk:5555/do/session/1347801/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/Top_Navigation_Bar/top_banner.html -http://www3.adobe.com/type/browser/F/P_103/F_FRAK-70005000.html -http://ftp.netc.pt/pub/idgames/levels/doom2/deathmatch/j-l/kewl.txt -http://ftp.netc.pt/pub/idgames/levels/doom2/deathmatch/j-l/ledges-z.txt -http://park.org:8888/Japan/CSK/hyakki/zukan/turezure/ue/c_tirizuka.html -http://pub4.ezboard.com/fscarletstreetfilmmusic.unsubscribeUnregisteredToTopic?topicID=54.topic -http://tucows.niagara.com/win2k/adnload/37364_29149.html -http://wap.jamba.de/KNet/_KNet-JGG8j1-eGd-13cre/showInfo-special1.de/node.0/cde7f1uou -http://www.personalmd.com/news/n0706062122.shtml -http://ds.dial.pipex.com/tmc/ConfPresentations/s2000/NetworkingJ/msconfig.htm -http://calcul.si.uji.es/Programes/SAS/proc/z0325264.htm -http://www.kaos.dk/sexriddle/x/m/k/i/i/ -http://ring.toyama-ix.net/archives/lang/perl/CPAN/clpa/1998-08/?N=D -http://ring.toyama-ix.net/archives/lang/perl/CPAN/clpa/1998-08/?S=A -http://www.spiral.at/Katalog/Artikel/0879070/ -http://homepage1.nifty.com/nao~nao/pages/profile.html -http://www.ferien-immobilien.de/friesland/verkauf/Gemeinsam/Inserieren/Allgemeine-IB/3d-service/Allgemeine-IB/Startseite/ -http://www.ferien-immobilien.de/friesland/verkauf/Gemeinsam/Inserieren/Allgemeine-IB/3d-service/Gemeinsam/erreichenPartner/email3d.htm -http://www.thestateofcolorado.com/m1jerepair.html -http://www.legis.state.pa.us/WU01/LI/BI/TI/1989/0/MNTENNIS.HTM -http://www.legis.state.pa.us/WU01/LI/BI/TI/1989/0/MNTRASH.HTM -http://www.shop4magazines.com/pg004752.htm -http://www.shop4magazines.com/pg005070.htm -http://www.shop4magazines.com/pg005084.htm -http://fi.egroups.com/login.cgi?login_target=%2Fmessage%2Fsocalscan%2F5293 -http://www.incestpornstories.com/hot-hardcore-fuckingbanging/bootsfeet-/hitting-itsmacking/{hardcorelink} -http://www.columbia.edu/~mkn12/Nominees.html -http://www.generation-formation.fr/pdetail.htm---o21zAo06Rxo0Ol9A074fo6s0Md6jIHeNHhIeOkn2ApvFFo6s5dfexiWo2W81N3OsPeaR2VeuzlEdRsR3djaPfdNjfco41qrfP6sWd6wuCoz4ZteOgKHekLVSePl8vNhiWhAhcgNAPfVbdsNhJl.htm -http://tiscover.at/1Root/Kontinent/6/Staat/7/Bundesland/20/Ort/212/Sonstige_Sportstaette/276591/Bericht/berw...1.html -http://fi.egroups.com/message/meterreader/207?source=1 -http://polygraph.ircache.net:8181/services/design/http_-2www.arthritis.org/http_-2www.alameda-vcf.org/http_-2www.microsoft.com/ie/ie.htm -http://www.fortunecity.com/lavender/deathrace/251/billy.html -http://ftpsearch.belnet.be/packages/CPAN/modules/by-module/AppleII/?N=D -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=7,34,29,16,25 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=21,34,29,16,25 -http://www.ftp.uni-erlangen.de/pub/unix/BSD/FreeBSD/FreeBSD-current/ports/irc/tirc/ -http://retailer.gocollect.com/do/session/1912840/vsid/1696/tid/1696/cid/604361/mid/1540/rid/1420/chid/1725/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlmo5larLZqVLafpLmiXLvlmHolaLrZqLpl4/url/http://www.gocollect.com/company_info/about.asp -http://retailer.gocollect.com/do/session/1912840/vsid/1696/tid/1696/cid/604361/mid/1540/rid/1420/chid/1725/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlmo5larLZqVLafpLmiXLvlmHolaLrZqLpl4/url/http://www.gocollect.com/company_info/terms_and_conditions.asp -http://businessrecorder.com/story/S0024/S2401/S2401113.htm -http://arabia.com/article/0,1690,Sports|20732,00.html -http://www.worldmedicus.com/servlet/Controller/$7006041629a50000.sj_viewa/ -http://myhome.naver.com/chocobini/company.html -http://builder.hw.net/frmMessageFront/1,1079,'1~21~0~8~1~2348~9590',00.html -http://pub1.ezboard.com/fcrossstitchcorner504212000shepherdsbushretreat.showAddReplyScreenFromWeb?topicID=48.topic&index=5 -http://www.parisnights.de/fanfiction/archive/authors/andrews/stories/bright.htm -http://198.103.152.100/search*frc/cCA1+MPR+NS51+98Y25/cca1+mpr+ns51+98y25/7,-1,0,E/2browse -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus51605/eus147927/eus269761/eus269920/eus918452/ -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus51605/eus147927/eus269761/eus269920/eus918493/ -http://www.computing.net/cgi-bin/report.pl/windows95/wwwboard/forum/3119.html|21 -http://www.kiarchive.ru:8093/pub/misc/books/Camelot/Vasilyev/Forgotten_Road/ -http://yp.gates96.com/4/9/50/30.html -http://yp.gates96.com/4/9/51/1.html -http://yp.gates96.com/4/9/51/88.html -http://yp.gates96.com/4/9/51/92.html -http://yp.gates96.com/4/9/52/3.html -http://yp.gates96.com/4/9/52/53.html -http://yp.gates96.com/4/9/52/67.html -http://yp.gates96.com/4/9/53/25.html -http://yp.gates96.com/4/9/53/50.html -http://yp.gates96.com/4/9/53/96.html -http://yp.gates96.com/4/9/54/40.html -http://yp.gates96.com/4/9/54/57.html -http://yp.gates96.com/4/9/54/77.html -http://yp.gates96.com/4/9/55/57.html -http://yp.gates96.com/4/9/55/71.html -http://yp.gates96.com/4/9/56/1.html -http://yp.gates96.com/4/9/56/98.html -http://yp.gates96.com/4/9/57/6.html -http://yp.gates96.com/4/9/57/90.html -http://yp.gates96.com/4/9/58/91.html -http://yp.gates96.com/4/9/58/96.html -http://yp.gates96.com/4/9/59/29.html -http://yp.gates96.com/4/9/59/33.html -http://yp.gates96.com/4/9/59/84.html -http://yp.gates96.com/4/9/59/97.html -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1997/5/0/900308/ -http://www2.odn.ne.jp/~cao20970/affair/oh/ha-342 -http://www2.odn.ne.jp/~cao20970/affair/oh/ha-346 -http://wap.jamba.de/KNet/_KNet-lvH8j1-nGd-13d1j/browse.de/node.0/cdzqggtyb -http://www.danielwebster.org//hallofusa/thestampact/HENDRICKFISHER.COM//thestampact/ -http://news.cn.tom.com/maya/cnnav/01/item/2000_09/309490.shtml -http://polygraph.ircache.net:8181/services/design/http_-2www.paducahrotary.org/pbcmap.htm -http://polygraph.ircache.net:8181/services/design/http_-2www.paducahrotary.org/mainpage.htm -http://www.debian.org.cn/Bugs/db/23/23547.html -http://www.debian.org.cn/Bugs/db/54/54172.html -http://www.adetti.iscte.pt/ADETTI/Security/HowTo/Java/jdk1.2.1/docs/guide/beans/spec/beancontext.fm7.html -http://www.users.qwest.net/~campputz/page413.htm -http://flybird.soyou.edu.cn/item/2000-07-31/164671.html -http://www.cognigen.net/corporate/trainers.cgi?full-timer -http://www.babyheirlooms.com/catalog/htmlos.cat/041143.1.1156359481 -http://ramdam.com/art/k/katerine.htm -http://ramdam.com/art/k/krapulax.htm -http://aleph.tau.ac.il:4501/ALEPH/eng/ATA/AAM/AAM/SET-MAIL///1249009 -http://online.linux.tucows.com/conhtml/adnload/8973_2294.html -http://www.arrakis.es/~lady_cel/frcontenf.htm -http://online.linux.tucows.com/conhtml/adnload/39034_1349.html -http://online.linux.tucows.com/conhtml/adnload/51651_2248.html -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=23,0+14,0-13,0-13,0 -http://www.ferien-immobilien.de/Westerwald/verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Inserieren/Private-IB/Gemeinsam/suche.htm -http://www.linux.com/networking/network/it/alternative/developers/Apple/ -http://www.sanxia.net/beauty/Nanako/418.htm -http://www-usa8.cricket.org/link_to_database/ARCHIVE/1999-2000/OTHERS+ICC/NORTHANTS_IN_WI/ARTICLES/ -http://gds.cc.va.us:8888/Mcn%3dMELISSA%20BACK,%20ou%3dSV.CC.VA.US,%20ou%3dFaculty%20%26%20Staff,%20o%3dvccs,%20c%3dUS -http://www.allgemeine-immobilien-boerse.de/nordrhein-Westfalen/luedinghausen/Verkauf/Ferien-IB/Startseite/Gemeinsam/erreichenPartner/Versteigerungen-IB/Startseite/IIM-Teil/Startseite/froben.htm -http://198.103.152.100/search*frc/dIndustrial+relations+--+Germany+(West)+--+History/dindustrial+relations+germany+west+history/-5,-1,0,B/frameset&F=dindustrial+relations+germany+dictionaries&1,,0 -http://secure.danysoft.com/asp/dany.tienda/892496425/Catalog -http://yp.gates96.com/13/57/90/23.html -http://yp.gates96.com/13/57/90/91.html -http://yp.gates96.com/13/57/91/68.html -http://yp.gates96.com/13/57/92/22.html -http://yp.gates96.com/13/57/92/49.html -http://yp.gates96.com/13/57/92/73.html -http://yp.gates96.com/13/57/93/75.html -http://yp.gates96.com/13/57/94/16.html -http://yp.gates96.com/13/57/94/62.html -http://yp.gates96.com/13/57/94/99.html -http://yp.gates96.com/13/57/95/19.html -http://yp.gates96.com/13/57/95/34.html -http://yp.gates96.com/13/57/95/84.html -http://yp.gates96.com/13/57/96/22.html -http://yp.gates96.com/13/57/96/24.html -http://yp.gates96.com/13/57/96/52.html -http://yp.gates96.com/13/57/96/70.html -http://yp.gates96.com/13/57/97/39.html -http://yp.gates96.com/13/57/97/55.html -http://yp.gates96.com/13/57/98/4.html -http://yp.gates96.com/13/57/98/41.html -http://yp.gates96.com/13/57/98/58.html -http://yp.gates96.com/13/57/98/98.html -http://yp.gates96.com/13/57/98/99.html -http://yp.gates96.com/13/57/99/79.html -http://carriage.de/Schoner/Info-d/history/literature/literature/ -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/lit/computers/misc/unitest/misc/computers/programs/simple/simple.html -http://kwic.tucows.com/partners/flyswat/get_acx.html -http://sp201.unige.ch:49213/cxxdoc/ioc/concepts/c2g2rcsm.htm -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=0,2-0,1-21,0+9,1 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=10,2,183 -http://firstweb.tucows.com/win2k/adnload/58783_28760.html -http://www.boerseninfos.de/dynamic/ak/mk/news/719350-20000830-104827.html -http://baseball.mainichi.co.jp/life/family/syuppan/wakaru/wakaru-j/10/01/01.html -http://helios.nlib.ee/search*est/dsÃĩjalised+blokid/dsw~ajalised+blokid/-5,-1,0,B/exact&F=dsw~ajalised+konfliktid&1,58/limit -http://helios.nlib.ee/search*est/dsÃĩjalised+blokid/dsw~ajalised+blokid/-5,-1,0,B/frameset&F=dsw~ajalised+konfliktid&11,,58 -http://lexicon.linux.tucows.com/conhtml/adnload/8642_2088.html -http://ua.php.net/manual/es/function.pg-fieldisnull.php -http://www.babyheirlooms.com/catalog/htmlos.cat/041132.1.4352706945 -http://www.civila.com/guitar/chat/desenredada/juegos/ -http://sunsite.org.uk/public/pub/packages/info-mac/pilot/?N=D -http://www.aelita.net/products/products/support/news/Reg/Subscribe/company/contact/default.htm -http://cn.egroups.com/message/newsclips/295 -http://www.jornada.unam.mx/2000/sep00/000922/oriente-y.htm -http://members.tripod.co.jp/mosokke/dubair01ghe.html -http://202.99.23.245/zdxw/21/20000217/200002172112.html -http://link.fastpartner.com/do/session/600412/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/speednames.php -http://link.fastpartner.com/do/session/600412/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/nordicliving.php -http://link.fastpartner.com/do/session/600412/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php -http://iant.subportal.com/sn/Utilities/System_Maintenance_and_Repair_Utilities/2128.html -http://polygraph.ircache.net:8181/client/http_-2www.scubaring.com/http_-2www.aaainvestments.com/http_-2www.primenet.com/~stmmoon/stmbik.html -http://itcareers.careercast.com/texis/it/itjs/+wwwBme89D86qxwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDanDtoDnnGaMw55wqr15nBB5aoDhdGMwBodDa5nq1GoBOaDnBidGAapGdBdqdc5aGn31oGnmanLpnGonDqnaMFqhTfR20DzmehrwwwpBme26D86eSqwww5rmePdwwwBrmeZpwww/morelike.html -http://itcareers.careercast.com/texis/it/itjs/+awwBme3AT+6ezqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDanDtoDnnGaMw55wqr15nBB5aoDhdGMwBodDa5nq1GoBOaDnBidGAapGdBdqdc5aGn31oGnmanLpnGonDqnaMFqhTfR20DzmehrwwwpBme26D86eSqwww5rmeEdwwwBrmeZpwww/jobpage.html -http://itcareers.careercast.com/texis/it/itjs/+vwwBme26D86eSqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDanDtoDnnGaMw55wqr15nBB5aoDhdGMwBodDa5nq1GoBOaDnBidGAapGdBdqdc5aGn31oGnmanLpnGonDqnaMFqhTfR20DzmehrwwwpBme26D86eSqwwwGzmwwww5rmeEdwwwBrmeZpwww/morelike.html -http://www.starcities.com/usa/ca/carlsbad/ -http://www.3w-geschichten.de/PlumptreGeorge/PlumptreGeorge1857938461.htm -http://residence.educities.edu.tw/goyen/ -http://polygraph.ircache.net:8181/http_-2www.whowhere.com/http_-2www.primenet.com/~mmfact/http_-2www.microsoft.com/ie/download/ -http://polygraph.ircache.net:8181/http_-2www.whowhere.com/http_-2www.primenet.com/~mmfact/http_-2www.infohwy.com/odframes.html -http://www.linux.com/networking/network/management/industry/internet/services/ -http://cn.egroups.com/message/ruosulista/1176 -http://ftp.jp.debian.org/debian/dists/unstable/main/binary-i386/tex/?M=A -http://de.excite.de/bildung/katalog/17722 -http://de.excite.de/bildung/katalog/17893 -http://de.excite.de/bildung/katalog/17879 -http://www.emerchandise.com/browse/BUFFYTHEVAMP/PIN/b.TV%20BUFFYTHEVAMP/s.Xpiu5LCZ -http://variety.studiostore.com/browse/VARIETY/CAMERA/s.dmZspziz -http://carriage.de/Schoner/Sammlungen/models/info-e/Info-d/ -http://www.gazeta.com/Iso/Plus/Kraj/Prezyden/Ak/700kwa.html -http://www.linux.com/networking/network/networking/developers/operating_system/Debian/ -http://online.linux.tucows.com/conhtml/adnload/8808_32695.html -http://149.221.91.10/news/lokales/wermelskirchen/ -http://opac.lib.rpi.edu/search/avirgin+vision+limited/7,-1,0,B/frameset&avirginia+cooperative+fisheries+research+unit&1,1 -http://www.emerchandise.com/browse/DISNEY-FAM/ACTIONFI/b.FAVORITES%20KIDSSTUFF%20DISNEY-FAM/s.erm2bF5K -http://polit.kulichki.net/moshkow/PXESY/GORIN/ -http://polit.kulichki.net/moshkow/COPYRIGHT/stolyarov.txt -http://www.science.uva.nl/pub/NetBSD/NetBSD-current/pkgsrc/textproc/rman/pkg/DESCR -http://cgi.www.4tourism.com/uk/wareham65426.html -http://cgi.www.4tourism.com/uk/wareham22477.html -http://www.ccnet.com/affif/_themes/sumipntg/_vti_cnf/?M=A -http://web.tin.it/regionesardegna/ital/lavpubb/bandi_contratti/schema5_1q.htm -http://ring.htcn.ne.jp/archives/text/CTAN/macros/latex/contrib/other/apa/ -http://ftpsearch.belnet.be/packages/CPAN/modules/by-module/Callback/Callback-1.02.readme -http://iant.subportal.com/sn/Utilities/Misc__Utilities/12800.html -http://yp.gates96.com/2/51/0/86.html -http://yp.gates96.com/2/51/1/72.html -http://yp.gates96.com/2/51/2/10.html -http://yp.gates96.com/2/51/3/7.html -http://yp.gates96.com/2/51/3/50.html -http://yp.gates96.com/2/51/4/90.html -http://yp.gates96.com/2/51/5/6.html -http://yp.gates96.com/2/51/5/42.html -http://yp.gates96.com/2/51/5/50.html -http://yp.gates96.com/2/51/6/49.html -http://yp.gates96.com/2/51/8/12.html -http://yp.gates96.com/2/51/8/50.html -http://yp.gates96.com/2/51/9/82.html -http://yp.gates96.com/2/51/9/94.html -http://archive.soccerage.com/s/fr/09/37602.html -http://archive.soccerage.com/s/fr/09/39203.html -http://ftp.ring.gr.jp/archives/NetBSD/NetBSD-1.4.1/pmax/binary/security/ -http://www.yorosiku.net:8080/-_-http://www.us-japan.org/otr/ -http://support.dell.com/docs/storage/dlt1/ug/sp/jumpers.htm -http://moviestore.zap2it.com/browse/MOVIES/MOUSEPAD/s.uiIfdEiW -http://moviestore.zap2it.com/browse/MOVIES/STANDUP/s.uiIfdEiW -http://focusin.ads.targetnet.com/ad/id=animeart&opt=cin&cv=210&uid=972942857 -http://www.emerchandise.com/browse/SATNIGHTLIVE/SWEATSHI/s.pJ2FFfba -http://www.realize.com/p5dee81.htm,qt=e784fe2f=2a38a234-e-1ade986-0-0-0-3-- -http://support.tandy.com/support_audio/doc30/30780.htm -http://sun1.rrzn-user.uni-hannover.de/jgaertner/matlab/help/techdoc/umg/chlabel2.html -http://sun1.rrzn-user.uni-hannover.de/jgaertner/matlab/help/techdoc/umg/chprin12.html -http://www.es.co.nz/~rotary.home.html -http://www.excelsior.com.mx/9802/980217/nac18.html -http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/biblioteca1/1316779952/prevarticle -http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/stable/non-free-jp/binary-alpha/net/?D=A -http://guest/forestpatholog/diseases/annosus.html -http://guest/forestpatholog/diseases/rot.html -http://no.egroups.com/message/readbygrade3/2029 -http://www.cybercd.de/artist/Fabri,+Stafke.htm -http://www.jamba.de/KNet/_KNet-zQG8j1-hGd-13cwi/admLogin.de/node.0/cenv0b09a -http://www.digitaldrucke.de/(aktuell,computer,marktplatz,sense,tausch)/_fort/html/themen/computer/computer.htm -http://ring.tains.tohoku.ac.jp/pub/linux/debian/debian-jp/dists/potato/contrib-jp/source/news/?S=A -http://strategis.ic.gc.ca/sc_indps/recboats/frndoc/3g.html -http://ftp.eq.uc.pt/software/unix/Linux/redhat/redhat-6.2/i386/doc/gsg/figs/rpmlite/?M=A -http://www.judds-resort.com/judds/Lake-Winni-pike-lodge/upload/upload/photo/fallphoto/boat/12.html -http://ftp.eecs.umich.edu/.7/NetBSD/NetBSD-current/src/usr.sbin/cnwctl/ -http://ftp.eecs.umich.edu/.7/NetBSD/NetBSD-current/src/usr.sbin/mailwrapper/ -http://ftp.eecs.umich.edu/.7/NetBSD/NetBSD-current/src/usr.sbin/traceroute6/ -http://ftp.eecs.umich.edu/.7/NetBSD/NetBSD-current/src/usr.sbin/yppoll/ -http://pelit.saunalahti.fi/.3/linuxberg/conhtml/preview/8785.html -http://www.asahi-net.or.jp/~rz3n-snd/kitakan/kamiyosida.html -http://www.chaos.dk/sexriddle/s/e/x/q/x/k/l/ -http://www.chaos.dk/sexriddle/s/e/x/q/x/k/y/ -http://ring.jec.ad.jp/archives/text/CTAN/dviware/umddvi/libcompat/?S=A -http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/OCtIhwK0_lecIJU9yN87J4DTFWqXdztVO8nfP1zxdwq79fkod_IhHN3-iHbCrlaXZ5ATMMc_Gb5Zt_RdtVOloKJ1Z7DGqz2vE9vOjESyOqryETO-lNa0NWtCoTJH_QGCfq7ss5VGa1MO3iLryKZ2gIVI_Lonfx_bC9m7 -http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/D-tI2p4N__5TTgffRqVzdrKNYFZc3jj2Oatw29gt_YiNBPXUlYZaTA2ndP2CrwlrdiMS8YzPKxDR7Vp4ZBqD3d5o3MwYrYIxk31YsVtP3yFS2bLdZcBGLKdyNUc9yYgvGsGMXAMcEAUJPjtRqUVzDpuhHzS6V_U76I6G -http://my.egroups.com/subscribe/enemapix -http://yp.gates96.com/0/23/40/60.html -http://yp.gates96.com/0/23/40/82.html -http://yp.gates96.com/0/23/41/67.html -http://yp.gates96.com/0/23/43/71.html -http://yp.gates96.com/0/23/43/75.html -http://yp.gates96.com/0/23/44/64.html -http://yp.gates96.com/0/23/44/73.html -http://yp.gates96.com/0/23/44/84.html -http://yp.gates96.com/0/23/45/19.html -http://yp.gates96.com/0/23/46/9.html -http://yp.gates96.com/0/23/46/26.html -http://yp.gates96.com/0/23/46/37.html -http://yp.gates96.com/0/23/46/92.html -http://yp.gates96.com/0/23/47/39.html -http://yp.gates96.com/0/23/47/52.html -http://yp.gates96.com/0/23/48/52.html -http://yp.gates96.com/0/23/49/12.html -http://yp.gates96.com/0/23/49/90.html -http://retailer.gocollect.com/do/session/1912812/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/index.asp -http://retailer.gocollect.com/do/session/1912812/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/sports/index.asp -http://203.93.50.148:2222/*0110http://www.snweb.com/gb/people_daily/2000/10/20/i1020004.htm -http://cn.egroups.com/messages/romtrade/5024 -http://members.tripod.co.jp/medo/_private/ -http://dbc.copystar.com.tw/DelphiChat/200001/msg0325.htm -http://tucows.pi.be/winnt/diskcnt_license.html -http://millennium.fortunecity.com/ruthven/144/5041.htm -http://news.pchome.com.tw/ttv/finance/20000616/ -http://library.bangor.ac.uk/search/dEcology+--+Poland+--+Periodicals/decology+poland+periodicals/-17,-1,0,B/frameset&F=decology+north+america+congresses&1,1 -http://www.could.be/travel/north_america/united_states/lodge_2.htm -http://genforum.genealogy.com/cgi-bin/print.cgi?huntington::195.html -http://www.bemi-immobilien.de/Ferien-IB/Startseite/Gemeinsam/immolink/Gemeinsam/MarketingStrategie/Gemeinsam/erreichenPartner/Gemeinsam/3d-service/Top-Darlehens-Konditionen/anforderungsformular.htm -http://members.tripod.co.jp/snowmen/?D=A -http://ftp.unicamp.br/pub/FAQ/sf/alt_history/part6 -http://www.affiliate.hpstore.hp.co.uk/do/session/380884/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp -http://grid9.linux.tucows.com/x11html/adnload/9444_3744.html -http://www.linux.com/networking/network/communications/tools/web/support/ -http://www.linux.com/networking/network/communications/tools/web/alternative/ -http://cometweb01.comet.co.uk/do!tid=20&rtid=1&vsid=700&session=132030&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplGGolLarZLq4fLpmiLXv-KmooLckYLoznGmpq0qsc0mojLbkYLozvGotc0ZdoLckYLozvGsmv0qmc0jXfLkVZLdocLkYoLzcj1XfkLVZXLqkXLjbzKcob5qroLkVrLoizKlZd5fjYHfklKkZlLjjbLoZbLpl51ubZLDXZLollK3ljLbqlKjXfLkkaHotl4obmLloqL -http://yp.gates96.com/14/77/20/1.html -http://yp.gates96.com/14/77/20/3.html -http://yp.gates96.com/14/77/20/32.html -http://yp.gates96.com/14/77/20/55.html -http://yp.gates96.com/14/77/21/7.html -http://yp.gates96.com/14/77/22/20.html -http://yp.gates96.com/14/77/22/26.html -http://yp.gates96.com/14/77/22/50.html -http://yp.gates96.com/14/77/23/63.html -http://yp.gates96.com/14/77/23/96.html -http://yp.gates96.com/14/77/25/53.html -http://yp.gates96.com/14/77/26/8.html -http://yp.gates96.com/14/77/26/32.html -http://yp.gates96.com/14/77/27/0.html -http://yp.gates96.com/14/77/27/55.html -http://yp.gates96.com/14/77/27/78.html -http://yp.gates96.com/14/77/28/8.html -http://yp.gates96.com/14/77/28/53.html -http://yp.gates96.com/14/77/28/57.html -http://yp.gates96.com/14/77/28/99.html -http://yp.gates96.com/14/77/29/96.html -http://mirror.nucba.ac.jp/mirror/FreeBSD/FreeBSD-stable/ports/cad/xcircuit/files/?D=A -http://pub3.ezboard.com/BBSForum.showForumSearch?boardName=jenxforum&forumName=jenxforumfrm0 -http://genforum.genealogy.com/cgi-genforum/forums/hi.cgi?415 -http://elib.zib.de/pub/opt-net/msc/msc-90-xx/90c15/v93w20n4 -http://biblio.cesga.es:81/search*gag/aDittrich,+Stefan/adittrich+stefan/-5,-1,0,E/frameset&F=adittman+richard+h+coaut&1,,0 -http://biblio.cesga.es:81/search*gag/aDittrich,+Stefan/adittrich+stefan/-5,-1,0,E/frameset&F=adittmar+jorge&1,1 -http://biblio.cesga.es:81/search*gag/aDittrich,+Stefan/adittrich+stefan/-5,-1,0,E/exact&F=adivis+jan&1,4 -http://www.doc.ic.ac.uk/~gwsb98/bucket/Wine-20001026/etc/?D=A -http://news.fm365.com/xinwen/guoji/20000531/72641.htm -http://www.newquestcity.com/templates/eventout.cfm?nqc=TN0730 -http://www.rhena.de/kempinsk1.htm -http://www.jamba.de/KNet/_KNet-tkL8j1-PGd-13dss/showInfo-wir.de/node.0/cenvd8eze -http://www.jamba.de/KNet/_KNet-tkL8j1-PGd-13dsv/browse.de/node.0/ceo0fdeye -http://cpan.nitco.com/modules/by-module/String/BLCKSMTH/?N=D -http://www.digitaldrucke.de/(hilfe,nuernberg)/_fort/html/themen/computer/soft/links/intuit.htm -http://www.jeunesdocteurs.com/fplr/56/08.html -http://simf1.tripod.com/Rio.htm -http://www.mirror.kiev.ua:8083/paper/1998/17/1251/people.htm -http://web2.sportsline.com/u/baseball/mlb/2000PO_stats/tpSTLw.htm -http://www15.freeweb.ne.jp/art/charukun/yusuke.htm -http://map.ipc.co.jp/asp/onmap/r/new/g-24/f-905972/ -http://www.affiliate.hpstore.hp.co.uk/do/session/380882/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp -http://www.webcrawler.com/education/arts_and_humanities/visual_arts/art_history/c19th/arts_and_crafts/mackintosh_cr/structures/ -http://polygraph.ircache.net:8181/wwwboard/http_-2www.microsoft.com/msoffice/frontpage/http_-2www.linkstar.com/home/partners/marketlink-international-inc -http://polygraph.ircache.net:8181/wwwboard/http_-2www.microsoft.com/msoffice/frontpage/ECA2.htm -http://polygraph.ircache.net:8181/wwwboard/http_-2www.microsoft.com/msoffice/frontpage/http_-2www.intac.com/~dversch/catalog.html -http://excite.de.netscape.com/kunst/katalog/24315 -http://www.outpersonals.com/cgi-bin/w3com/pws/out/KhhIzVYqtXJlJzGPqrqzbJbUw7ERB8P7PSm9mTaj3BkJF6tLfllGlz2yKgLweoM1LPKLdHjjKv8zfb9tb2yojpTmzt6264ZE3V9vWzxY1mZnhDOG1vlwPrnwH5OCJM6C98fbjgZX66II -http://mirror.nucba.ac.jp/mirror/Netscape/netscape6/french/6_PR2/windows/win32/?S=A -http://www.linux.com/networking/server/install/howto/red_hat/package/ -http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/proof/972959618-- -http://brain.brent.gov.uk/WebPages.nsf/vWebAllPagesByKey!OpenView&Start=97&Count=60&Expand=152 -http://i-mode.kakiko.com/deaitomo/mag/magurox/1405b.html -http://www.ring.gr.jp/pub/NetBSD/arch/amiga/snapshot/20000115-1.4P/binary/security/ -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=18,0+20,0-17,0-0,0 -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/www/anoncvs.html?annotate=1.2&sortby=rev -http://ftp.jp.debian.org/debian/dists/woody/non-free/binary-sh/hamradio/?M=A -http://netscape.complete-skier.com/resorts/survey/submit.asp?ResortID=772 -http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=9,17,2,16,5,14 -http://www.egroups.com/messages/zingiber/238 -http://www.umr.edu/~rhall/class/sap/sap8/demo.html -http://209.207.239.212/bkindex/c1043/f1202.html -http://se.egroups.com/message/ackmud/104 -http://school.educities.org/card/cug55.html -http://school.educities.org/card/wgl.html -http://school.educities.org/card/a77125.html -http://school.educities.org/card/apple6128.html -http://school.educities.org/card/c369852.html -http://school.educities.org/card/cges4216.html -http://school.educities.org/card/cges6307.html -http://school.educities.org/card/eaa.html -http://school.educities.org/card/f129235832.html -http://school.educities.org/card/g1546.html -http://school.educities.org/card/h223422022.html -http://school.educities.org/card/lemon6112.html -http://school.educities.org/card/st6408.html -http://www.dulux.co.uk/UKRETAIL:1243142410:DFinity.1QJiP4jRACol -http://www.iagora.com/pages/bbaddpost/::bb_id=148:mid=43302:thread_id=8185:parent_id=43302::lang=de -http://www.iagora.com/pages/bbaddpost/::bb_id=148:mid=43431:thread_id=8185:parent_id=43431::lang=de -http://www.egroups.com/message/intelligent_humor/875 -http://club.telepolis.com/klvinbc/fotosb.htm -http://plat.debian.or.jp/debian/dists/woody/non-free/binary-mips/editors/?D=A -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,12,63 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,12,237 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,12,120 -http://www.jamba.de/KNet/_KNet-_tJ8j1-AGd-13ddq/browse.de/node.0/cdel3j591 -http://immihelpdownloads.subportal.com/sn/Utilities/System_Analysis_Utilities/2980.html -http://dwp.bigplanet.com/crestinginc/discussion/edit.nhtml -http://dwp.bigplanet.com/crestinginc/discussion/list.nhtml?profile=discussion -http://194.128.65.4/pa/cm199900/cmwib/wb991127/ahead.htm -http://61.128.218.34/book/hhsh/wu/wolongsheng/jiangxue/055.htm -http://gd.cnread.net/cnread1/wgwx/t/tuwen/kxj/035.htm -http://gd.cnread.net/cnread1/wgwx/t/tuwen/kxj/041.htm -http://www.redrocksports.com/sports/webSession/shopper/RR972959743-31143/store/dept-5/department/dept-5/item/50110 -http://www.redrocksports.com/sports/webSession/shopper/RR972959743-31143/store/dept-5/department/dept-5/item/51530 -http://www.redrocksports.com/sports/webSession/shopper/RR972959743-31143/store/dept-5/department/dept-5/item/51510 -http://www.yorku.ca/org/yusa/who99/wh02.html -http://www1.onelist.com/message/ar8200/3350 -http://www.kodak.se/US/en/corp/features/kern/jodi/index.shtml -http://cafe3.daum.net/Cafe-bin/Bbs.cgi/semtle15pds/rnw/zka/B2-kB27k -http://my.egroups.com/messages/dcfwriters/187?expand=1 -http://link.fastpartner.com/do/session/600414/vsid/1970/tid/1970/cid/135878/mid/1060/rid/1488/chid/1970/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/gosafe.php -http://www.tiscover.com/1Root/Kontinent/6/Staat/7/Bundesland/20/Ort/108147/Bauernhof/315126/Homepage/f_homepage...2.html -http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/net/gnut/patches/?D=A -http://www.mtranslations.cz/40/cs/dictionary/dictionary_index.html -http://pub10.ezboard.com/BBSSystem.handleLoginCheck?action=forgotPassword&boardName=alakazamslair -http://tour.stanford.edu/cgi/locate3.prl/139.6/jMtlo -http://www.shopworks.com/index.cfm/action/search/userid/00042DDE-2F63-19FE-9038010B0A0ADCF2 -http://thestar.com/back_issues/ED20001004/life/20000820LFE01_AH-BATH.html -http://thestar.com/back_issues/ED20001004/life/20000818LFE01_LI-DEPRESS.html -http://thestar.com/back_issues/ED20001004/life/20000806LFE01_AH-DAHLIAS.html -http://www.hole.kommune.no/hole/journweb.nsf/7e180336094ef23a412568cd004a5093/466e7592a4c6c7ccc12568e3004402e8!Navigate&To=Prev -http://mailthat.subportal.com/sn/Multimedia_and_Graphics/Graphics_Editors/3752.html -http://www.gbnf.com/genealogy/rockwel4/html/d0014/I6348.HTM -http://www.lookforforestry.com/catalog/FORSALE/FORKLIFT/JCB/930RTFL/ -http://www.espl.org/mearscol/pagendxs/stockley/d1828.htm -http://in.egroups.com/messages/eyecandy/1290 -http://in.egroups.com/message/eyecandy/1264 -http://in.egroups.com/message/eyecandy/1271 -http://www.ferien-immobilien.de/bayern/deggendorf/Verkauf/Exklusiv-IB/Startseite/3d-service/Gemeinsam/Immolink/Gemeinsam/vertriebspartner.htm -http://linux99.inrialpes.fr/linux/RPM/redhat/6.2/i386/Distribs.html -http://students.lsu.edu/students/main.nsf/Pages/CSISAJ1!OpenDocument&ExpandSection=4,13,11,10 -http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1997-98/jmc1/labs/Ex04/jwb97/?S=A -http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/folderFrame/100001/0/alpha/2509069 -http://www.scifi.com/bboard/browse.cgi/1/5/545?lnum=4223 -http://www.fogdog.com/cedroID/ssd3040183304719/customer_service/ -http://www.fogdog.com/cedroID/ssd3040183304719/nav/products/winter_sports/1b/suits/ -http://www.gpul.org/ftp/lang/java/JDK/jdk1.1.6-docs/api/java.lang.Math.html -http://www.gpul.org/ftp/lang/java/JDK/jdk1.1.6-docs/api/java.lang.IncompatibleClassChangeError.html -http://www.staroriental.net/nav/soeg/ihf,aai,n2,418,Electric+Wave+Girl+1998.html -http://www.parentsplace.com/expert/lactation/basics/qa/0,3459,5757,00.html -http://www.francetrade.fr/opcvm/details/4/44200.html -http://www.francetrade.fr/opcvm/details/4/42876.html -http://genforum.genealogy.com/cgi-bin/print.cgi?phillippines::319.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380860/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-photoworld.com/photoworld.asp?lang=f -http://ftp.eq.uc.pt/software/unix/Linux/docs/HOWTO/translations/italian/distributions/?M=A -http://store1.europe.yahoo.com/brink2/2000074017704.html -http://store1.europe.yahoo.com/brink2/2000073276003.html -http://www.cbe21.com.cn/xueke/dili/jiaoxuezs/ziliaojn/tupianhc/i0733.htm -http://www.networkpatternmatching.com/inventory/L/Limoges-American/Limoges-American-Tea-Rose-(Green).html -http://www.networkpatternmatching.com/inventory/L/Limoges-American/Limoges-American-Toledo-Delight-(Sand).html -http://ftp.debian.org/dists/sid/non-free/binary-hppa/games/?M=A -http://www.angelfire.com/vt/kAoZzZ -http://yp.gates96.com/14/28/60/15.html -http://yp.gates96.com/14/28/60/17.html -http://yp.gates96.com/14/28/60/41.html -http://yp.gates96.com/14/28/60/75.html -http://yp.gates96.com/14/28/60/83.html -http://yp.gates96.com/14/28/60/87.html -http://yp.gates96.com/14/28/61/96.html -http://yp.gates96.com/14/28/62/12.html -http://yp.gates96.com/14/28/62/28.html -http://yp.gates96.com/14/28/62/45.html -http://yp.gates96.com/14/28/62/74.html -http://yp.gates96.com/14/28/63/24.html -http://yp.gates96.com/14/28/63/45.html -http://yp.gates96.com/14/28/64/33.html -http://yp.gates96.com/14/28/65/84.html -http://yp.gates96.com/14/28/66/28.html -http://yp.gates96.com/14/28/66/49.html -http://yp.gates96.com/14/28/67/15.html -http://yp.gates96.com/14/28/67/17.html -http://yp.gates96.com/14/28/67/92.html -http://yp.gates96.com/14/28/67/95.html -http://yp.gates96.com/14/28/68/10.html -http://yp.gates96.com/14/28/69/20.html -http://yp.gates96.com/14/28/69/64.html -http://yp.gates96.com/14/28/69/74.html -http://www.cs.kuleuven.ac.be/documentation/Sun/WorkShop/html_docs/c-plusplus/stdlibcr/deq_4164.htm -http://no.egroups.com/message/Holiday-Best/571?source=1 -http://www.outpersonals.com/cgi-bin/w3com/pws/out/G1hIPcWIQWr-i3fHpjDuaPPPdDR9n25II-MFpjX9vR_df0A3ukwPXLd19bYe7oxRH5Zr5z3G_wJnwM6gAVSOlRUN-p5MKYEBVJa1T-GaZS44Z98yjSST2LfXzEdc9Xqp8W0jRiNL6iAX -http://msn.expedia.co.uk/wg/Asia/China/P31642.asp -http://www.angelfire.com/fl2/gulfcoastsoftball/images/?N=D -http://www.greenleaves.com/bookcat/gb_0879513802.html -http://cn.egroups.com/post/Digitrends_Daily?act=reply&messageNum=210 -http://www.bookhome.net/wuxia/hzlz/li/031.html -http://gb.toget.com.tw/intro/game_action/game_action_click/19990804_3190_dl.html -http://www.mbnet.mb.ca/gray/cgrcc.html -http://www.civila.com/noticias/chat/logos/juegos/esgratis/logos/index.html-ssi -http://www.ytmag.com/cgi-bin/redirect.cgi/1197948180 -http://debian.tod.net/debian/dists/sid/contrib/binary-arm/admin/?M=A -http://haste.co.kr/www.amaquest.com.tw/support.htm -http://www.diogenes.ch/4DACTION/web_rd_aut_frlist_az/ID=483376&chr=A -http://ads.neoseeker.com/remoteclick/GB972959289/ -http://urawa.cool.ne.jp/whoinside/cg/cgframe2.htm -http://excite.de/bildung/katalog/33148 -http://plat.debian.or.jp/debian-archive/dists/Debian-2.0/hamm/binary-m68k/news/ -http://wwwpriv.uni-koblenz.de:81/~admin/Doku/HtmlTutor/tcdkc.htm -http://platsbanken.amv.se/kap/text/62/000907,150090,120901,40,1427050362.shtml -http://216.35.79.131/sites/gunits/022140u.html -http://www.hotelboulevard.com/fr/paris/standard/htmle55cd396d0d1450ad1eddadf65bd6574/sessionLang/ANG/prov/browse/cp/75011/resultatSearch.html -http://www.ftp.uni-erlangen.de/cgi-bin/view/pub/unix/Linux/MIRROR.KDE/unstable/apps/README -http://www.ftp.uni-erlangen.de/pub/unix/Linux/MIRROR.KDE/unstable/apps/network/ -http://www.ycwb.com.cn/gb/2000/04/28/dnzk/itkx/3.html -http://polygraph.ircache.net:8181/http_-2www.microsoft.com/guestbook/http_-2www.nmpinc.com/cfiguest.htm -http://www.our-home.org/giulianovallemani/success.htm -http://retailer.gocollect.com/do/session/1912838/vsid/2312/tid/2312/cid/573127/mid/1020/rid/2147/chid/2210/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlZe5ofpLqjXLpl4/url/http://www.gocollect.com/product_display/products/product_lines.asp -http://binary.tucows.com/win2k/adnload/60913_29719.html -http://www.allhealth.com/kickbutt/qa/0,4801,6565_168263-1,00.html -http://library.cuhk.edu.hk/search*chi/tChinese+history+series.+[Motion+picture]/tchinese+history+series/-5,1,1,B/frameset&F=tchinese+history+index+to+learned+articles+1902+1962&1,1, -http://cafe4.daum.net/Cafe-bin/Bbs.cgi/culturalistpds/lst/qqeq/1/zka/B2-kB27p -http://lib1.nippon-foundation.or.jp/1997/0012/contents/086.htm -http://members.tripod.com/~theernest/lit/long.html -http://de.excite.de/auto/katalog/13030 -http://www.szinfo.com/book/ke/fam/nk1/wlsf/001.htm -http://www.backflip.com/members/cquinn/466730/sort=1/ -http://130.158.208.53/WWW/PDB2/PCD4711/htmls/49.html -http://astronomysite.com/mapug1/15/msg15752.htm -http://astronomysite.com/mapug1/15/msg15922.htm -http://astronomysite.com/mapug1/15/msg15970.htm -http://astronomysite.com/mapug1/12/msg12909.htm -http://astronomysite.com/mapug1/9/msg9909.htm -http://astronomysite.com/mapug1/7/msg7248.htm -http://astronomysite.com/mapug1/7/msg7288.htm -http://astronomysite.com/mapug1/7/msg7300.htm -http://astronomysite.com/mapug1/7/msg7277.htm -http://astronomysite.com/mapug1/3/msg3386.htm -http://astronomysite.com/mapug1/0/msg898.htm -http://astronomysite.com/mapug1/2/msg2146.htm -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/x11-fm/systemg/pkg/Attic/DESCR -http://www.posterwelt.de/byers/bye2506.htm -http://www.5a8.com/book/wg/zpj/f/fajieyefu/huimie/003.htm -http://www.5a8.com/book/wg/zpj/f/fajieyefu/huimie/015.htm -http://businessrecorder.com/story/S0015/S1510/top -http://sunsite.org.uk/Mirrors/ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/nt351/hotfixes-postsp5/sec-fix/?S=A -http://sunsite.org.uk/Mirrors/ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/nt351/hotfixes-postsp5/sec-fix/readme.txt -http://www.angelfire.com/ky/dodone/HistJ.html -http://www.cricinfo.com/link_to_database/ARCHIVE/1997-98/WI_IN_PAK/WI_IN_PAK_NOV-DEC1997_WI-SQUAD.html -http://www.egroups.com/message/-Girlhelp-/3251 -http://www.egroups.com/message/-Girlhelp-/3268 -http://202.130.244.3/wuliwangye/help/help.htm -http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/mirror.html -http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/s20ghinelli.html -http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/s25dress.html -http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/s30wen.html -http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/slc41email.html -http://guardian.co.uk/Print/0,3858,3889048,00.html -http://genforum.genealogy.com/mccallum/messages/187.html -http://genforum.genealogy.com/mccallum/messages/192.html -http://genforum.genealogy.com/mccallum/messages/133.html -http://genforum.genealogy.com/mccallum/messages/95.html -http://genforum.genealogy.com/mccallum/messages/82.html -http://genforum.genealogy.com/mccallum/messages/30.html -http://dekooi.tucows.com/win2k/adnload/37333_29427.html -http://dekooi.tucows.com/win2k/adnload/37624_29418.html -http://dekooi.tucows.com/win2k/preview/139483.html -http://www.zurich-schweiz.ch/static/it/peraziende/grandiimprese/riskmanagement/procedere_con_metodo/gestione_del_rischio/ -http://cn.egroups.com/login.cgi?login_target=%2Fmessage%2Fcertdev%2F373 -http://www.angelfire.com/pa2/DreamAvs/ -http://www.madisonmag.com/sh/entertainment/stories/entertainment-20000713-013454.html -http://variety.studiostore.com/browse/WHATSNEW/SHIRT/b.FAVORITES%20WHATSNEW/s.GqXR0UHu -http://variety.studiostore.com/browse/WHATSNEW/MUG/b.FAVORITES%20WHATSNEW/s.GqXR0UHu -http://www.ecs.soton.ac.uk/~ecc/teaching/java/ExampleCode/Chapter10/s03/ -http://ftp.nacamar.de/pub/NetBSD/packages/1.4/alpha/cross/?M=A -http://www.he.ctc.org.cn/ctc2/news/internet/develop/news0413-7.htm -http://www.he.ctc.org.cn/ctc2/news/internet/invest/news0523-4.htm -http://www.he.ctc.org.cn/ctc2/news/internet/invest/news0514-1.htm -http://www.he.ctc.org.cn/ctc2/news/internet/politics/news0518-1.htm -http://www.linux.com/networking/network/applications/industry/trade_show/internet/ -http://www.linux.com/networking/network/applications/industry/trade_show/Motorola/ -http://www.linux.com/networking/network/applications/industry/trade_show/distro/ -http://iinet.tukids.tucows.com/mac/5-8/macmulti58_license.html -http://www.leg.wa.gov/pub/rcw%20-%20text/title_48/chapter_098/rcw_48_98_005.txt -http://universal.eud.com/1999/02/28/28304AA.shtml -http://www.firstview.com/WRTWfall97/MAX_MARA/P033.html -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/SOSIAALI-+JA+TERVEYSALA/tietoverkot/suositukset/tietotekniikka/sanat/getdoc.akM?document_id=479 -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/SOSIAALI-+JA+TERVEYSALA/tietoverkot/suositukset/tietotekniikka/sanat/www/ -http://ns.studenti.to.it/~s86852/applets/tetris.htm -http://www.egroups.com/message/grebel-list/1014 -http://emedici.net/www.homesbyavi.com/canadian_site/communities/evergreen/evergreen.html -http://ring.toyama-ix.net/pub/net/wu-ftpd/wu-ftpd/binaries/?N=D -http://ring.nii.ac.jp/archives/text/CTAN/support/vmspell/?N=D -http://ftpsearch.belnet.be/packages/CPAN/modules/by-authors/John_Macdonald/CHECKSUMS -http://students.depaul.edu/~eephrem/piazza123 -http://students.depaul.edu/~eephrem/maqdoomi.html -http://ftp.unina.it/pub/Unix/KDE/stable/2.0/distribution/deb/?D=A -http://www.dulux.co.uk/UKRETAIL:1433075516:DFinity.1QJiP4jMofi7bof -http://yp.gates96.com/14/20/10/26.html -http://yp.gates96.com/14/20/10/34.html -http://yp.gates96.com/14/20/10/63.html -http://yp.gates96.com/14/20/11/36.html -http://yp.gates96.com/14/20/11/73.html -http://yp.gates96.com/14/20/12/93.html -http://yp.gates96.com/14/20/13/42.html -http://yp.gates96.com/14/20/13/44.html -http://yp.gates96.com/14/20/14/9.html -http://yp.gates96.com/14/20/15/62.html -http://yp.gates96.com/14/20/15/77.html -http://yp.gates96.com/14/20/16/52.html -http://yp.gates96.com/14/20/16/70.html -http://yp.gates96.com/14/20/16/83.html -http://yp.gates96.com/14/20/17/91.html -http://yp.gates96.com/14/20/17/98.html -http://yp.gates96.com/14/20/18/8.html -http://yp.gates96.com/14/20/18/73.html -http://yp.gates96.com/14/20/19/38.html -http://yp.gates96.com/14/20/19/42.html -http://yp.gates96.com/14/20/19/56.html -http://www.wco.com/~havok/wellington.html -http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bbm0019678/7,-1,0,E/frameset&F=bbm0019685&1,1 -http://cdrom.zeelandnet.nl/elfsound/archief.htm -http://businessrecorder.com/story/S0055/S5527/top -http://www.private-immobilien-boerse.de/DominikanischeRep/verkauf/Versteigerungen-IB/Startseite/Gemeinsam/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/IIM-Teil/Startseite/froben.htm -http://ring.nii.ac.jp/archives/lang/perl/CPAN/doc/manual/html/pod/perlfunc/utime.html -http://yp.gates96.com/14/21/10/71.html -http://yp.gates96.com/14/21/11/15.html -http://yp.gates96.com/14/21/12/55.html -http://yp.gates96.com/14/21/12/58.html -http://yp.gates96.com/14/21/13/94.html -http://yp.gates96.com/14/21/14/7.html -http://yp.gates96.com/14/21/14/12.html -http://yp.gates96.com/14/21/14/32.html -http://yp.gates96.com/14/21/14/96.html -http://yp.gates96.com/14/21/15/3.html -http://yp.gates96.com/14/21/15/51.html -http://yp.gates96.com/14/21/16/32.html -http://yp.gates96.com/14/21/16/87.html -http://yp.gates96.com/14/21/17/19.html -http://yp.gates96.com/14/21/17/31.html -http://yp.gates96.com/14/21/18/15.html -http://yp.gates96.com/14/21/18/68.html -http://yp.gates96.com/14/21/19/56.html -http://cafe2.daum.net/Cafe-bin/Bbs.cgi/kjbugopds/lst/qqa/f/zka/B2-kB2Rt -http://legalminds.lp.findlaw.com/list/courtinterp-spanish/frm04580.html -http://legalminds.lp.findlaw.com/list/courtinterp-spanish/frm04611.html -http://genforum.genealogy.com/cgi-genforum/forums/sweden.cgi?5207 -http://variety.studiostore.com/main/b.FAVORITES%20NOSTALGI%20CLASTV%20ILOVELUCY/s.VfgR3aEr -http://variety.studiostore.com/help/b.FAVORITES%20NOSTALGI%20CLASTV%20ILOVELUCY/s.VfgR3aEr -http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/x11-clocks/xalarm/patches/Attic/patch-aa?only_with_tag=RELEASE_2_2_8 -http://gd.cnread.net/cnread1/ztxs/h/henggouzhengshi/eld/013.htm -http://gd.cnread.net/cnread1/ztxs/h/henggouzhengshi/eld/022.htm -http://gd.cnread.net/cnread1/ztxs/h/henggouzhengshi/eld/024.htm -http://ftp.unina.it/pub/Amiga/NetBSD/NetBSD-current/xsrc/xc/lib/xkbfile/?N=D -http://202.99.23.245/zdxw/17/20000217/200002171734.html -http://sunsite.org.uk/packages/netbsd/NetBSD-current/pkgsrc/net/batchftp/files/ -http://www.highwired.net/Activity/PrintArticle/0,1640,1326-186648,00.html -http://phpbuilder.net/forum/archives/1/2000/10/1/104426?&print_mode=1 -http://www.cognos.co.uk/de/vertriebspartner/vertriebspartner_plz.html -http://citeseer.nj.nec.com/cidcontext/3974259 -http://fi.egroups.com/message/free-classifieds/4556?source=1 -http://genforum.genealogy.com/cgi-genforum/forums/epler.cgi?2 -http://no.egroups.com/post/relations_iVillage?act=reply&messageNum=5 -http://198.103.152.100/search*frc/lHD69+P75H84/lhd+++69+p75+h84/-5,-1,0,E/frameset&F=lhd+++69+p75+k47+1984&1,1 -http://www.4positiveimages.com/4positiveimages/921456486/UserTemplate/2 -http://haha.3322.net/donghua/agui/adi/6.htm -http://mediate.magicbutton.net/do/session/625591/vsid/4573/tid/4573/cid/88043/mid/2247/rid/2383/chid/3527/url/http://www.winesmart.com/CaseDetails.asp?idCase=66 -http://www.lettera.de/tp/deutsch/inhalt/lis/8676/1.html -http://www.citybrazil.com.br/sc/regioes/joinville/expressoes.htm -http://webcvs.kde.org/cgi-bin/cvsweb.cgi/www/food/worse_is_better.html?sortby=date -http://yp.gates96.com/7/45/60/13.html -http://yp.gates96.com/7/45/61/3.html -http://yp.gates96.com/7/45/61/60.html -http://yp.gates96.com/7/45/62/37.html -http://yp.gates96.com/7/45/62/48.html -http://yp.gates96.com/7/45/62/70.html -http://yp.gates96.com/7/45/64/9.html -http://yp.gates96.com/7/45/64/33.html -http://yp.gates96.com/7/45/64/43.html -http://yp.gates96.com/7/45/64/55.html -http://yp.gates96.com/7/45/65/14.html -http://yp.gates96.com/7/45/65/48.html -http://yp.gates96.com/7/45/65/57.html -http://yp.gates96.com/7/45/66/27.html -http://yp.gates96.com/7/45/67/51.html -http://yp.gates96.com/7/45/68/12.html -http://yp.gates96.com/7/45/68/78.html -http://yp.gates96.com/7/45/69/25.html -http://www.msb.malmo.se/search*swe/aHarley,+Robert/aharley+robert/-5,-1,0,B/browse -http://www.superdownloads.com.br/linkinvalido.cfm?ID=748 -http://linuz.sns.it/doc/howto/en/html/AI-Alife-HOWTO-6.html -http://www.linux.com/networking/network/market/tools/applications/ -http://www.linux.com/networking/network/market/tools/frame_relay/ -http://www.linux.com/networking/network/market/tools/e-commerce/ -http://opac.lib.ntnu.edu.tw/search*chi/aUnited+Nations.+Dept.+of+Economic+and+Social+Affairs/aunited+nations+dept+of+economic+and+social+affairs/7,-1,0,B/frameset&F=aunited+nations+economic+and+social+commission+for+asia+and+the+pacific&6,,7 -http://www.affiliate.hpstore.hp.co.uk/do/session/380863/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp -http://www.affiliate.hpstore.hp.co.uk/do/session/380863/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry.asp -http://www.shmoo.com/mail/ids/oct99/msg00288.html -http://bsd.sinica.edu.tw/ftp_pub/NetBSD/packages/1.3/hp300/?M=A -http://bsd.sinica.edu.tw/ftp_pub/NetBSD/packages/1.3/hp300/archivers/ -http://www.affiliate.hpstore.hp.co.uk/do/session/380868/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp -http://www.insideneworleans.com/shared/health/adam/ency/imagepage/1562.000872.html -http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/devel/xxgdb/patches/patch-ac -http://genforum.genealogy.com/casey/messages/327.html -http://genforum.genealogy.com/casey/messages/164.html -http://genforum.genealogy.com/casey/messages/337.html -http://genforum.genealogy.com/casey/messages/73.html -http://genforum.genealogy.com/casey/messages/57.html -http://genforum.genealogy.com/casey/messages/50.html -http://genforum.genealogy.com/casey/messages/23.html -http://genforum.genealogy.com/casey/messages/116.html -http://www.msb.malmo.se/search*swe/aNorman,+Karin,+1947-/anorman+karin+1947/-5,-1,0,B/frameset&F=anorman+leslie&1,1 -http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/rnumber/9096335 -http://www.mindspring.com/~arachnid/?S=D -http://www6.freeweb.ne.jp/business/n-bns/hre/ -http://news.swww.com.cn/wccdaily/review/200005/29/html/0908.htm -http://tucows.hom.net/croomnt_rating.html -http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/1AS/A4L/A4D/B1R/ -http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/1AS/A4L/A4D/A5L/ -http://www.5a8.com/book/kh/zg/zpj/h/heju/001.htm -http://www.5a8.com/book/kh/zg/zpj/h/heju/002.htm -http://www.luckyman.de/computer/hpaccess/java_cgi/java_applet/linien/applet_linien_nav1.htm -http://www.secure-me.net/information/kb/POP -http://in.egroups.com/message/BodybuildingContests/2804 -http://in.egroups.com/message/BodybuildingContests/2820 -http://in.egroups.com/message/BodybuildingContests/2822 -http://theconnection.vnunet.com/Analysis/Stfriend/70206 -http://www.yorosiku.net:8080/-_-http://www.nrcse.washington.edu/newsletter/newsletter.pdf -http://www.britishairways.nl/regional/barbados/docs/spec_world_offer.shtml -http://www.xmwb.sh.cn/xmwb/19981117/BIG5/13421^4111719.htm -http://www.z-plus.de/TEXTE/HOMEPAGE/HILFE/HILFE_SURFTIPS201099/text5.html -http://uzgamez.subportal.com/games/previews/0900/westwood/russian_general.html -http://bsd.sinica.edu.tw/ftp_pub/NetBSD/packages/1.3/sun3/?D=A -http://my.egroups.com/messages/dcfwriters/132?expand=1 -http://my.egroups.com/message/dcfwriters/147 -http://my.egroups.com/message/dcfwriters/149 -http://oss.sgi.com/cgi-bin/cvsweb.cgi/projects/failsafe/FailSafe/failsafe/scripts/?only_with_tag=MAIN -http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|8P007|972959615|Warm===and===Dry|user|0|1,0,0,1 -http://www.alsapresse.com/jdj/00/01/13/MA/photo_6.html -http://www.highwired.net/ESchoolDrive/Frameset/0,5592,13577-52,00.html -http://uk.sports.yahoo.com/000922/59/ak705.html -http://universal.eud.com/1999/02/26/26204DD.shtml -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/audio/gkrellmvolume/pkg-descr?only_with_tag=MAIN -http://www3.skolverket.se/kursinfo/99_00/skolform/21/alt_nav/S_52S_10S_36VAV_SVSTEK_1715.HTML -http://www3.skolverket.se/kursinfo/99_00/skolform/21/alt_nav/S_52S_10S_36VAV_SVSTEK_1719.HTML -http://www.wsrn.com/apps/research/history.xpl?s=CMDCD&f=HISTORY -http://www.wsrn.com/apps/charts/?s=CMDCD&data=Z10 -http://pub3.ezboard.com/utherealcharron.showPublicProfile?language=EN -http://ring.shibaura-it.ac.jp/archives/graphics/gimp/gtk/binary/DEBIAN/stable/?S=A -http://209.52.189.2/discussion.cfm/autism/29762/198522 -http://www.affiliate.hpstore.hp.co.uk/do/session/380851/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp -http://www01.sankei.co.jp/advertising/furusato/tokuhain/9810/1018sindou.html -http://kulichki-mac.rambler.ru/abiturient/ak.htm -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,1-20,0+9,0 -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,1-20,0+18,0 -http://ballesta.inrialpes.fr/Infos/Personnes/Christophe.Rippert/ressources/tutorial/security1.2/summary/glossary.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380872/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/main/respect/ -http://www11.cplaza.ne.jp/babyweb/bbs/bdnmp01/no24/99N.html -http://www.homeway.com.cn/lbi-html/news/zhxw/gatxw/20000922/165807.shtml -http://gd.cnread.net/cnread1/yqxs/d/dingqianrou/ssqj/009.htm -http://library.bangor.ac.uk/search/tBiol.+philos/tbiol+philos/-17,-1,0,B/frameset&F=tbioindicators+and+environmental+management&1,1 -http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/peacelink-scuola/70630505/view/1 -http://www.indian-express.com/ie/daily/19980626/17750374.html -http://www.indian-express.com/ie/daily/19980626/17751044.html -http://www.indian-express.com/ie/daily/19980626/17751334.html -http://www.indian-express.com/ie/daily/19980626/17751494.html -http://polygraph.ircache.net:8181/services/define/http_-2www.disney.com/links.html -http://pub10.ezboard.com/fsavings4yousavings4you.subscribeUnregisteredToTopic?topicID=56.topic -http://www8.freeweb.ne.jp/shopping/arthome/arthome/menu.html -http://rainforest.parentsplace.com/dialog/get/medinfo/4/1.html?outline=3 -http://www.emerchandise.com/aboutus/b.TV%20SATNIGHTLIVE/s.afJ7iGE2 -http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/net/arpwatch/pkg/?S=A -http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/net/arpwatch/pkg/DESCR -http://210.178.135.1/netbbs/Bbs.cgi/nhic30872/qry/zka/B2-kBI-o/pno/0/qqo/004A/qqatt/^ -http://yp.gates96.com/8/48/0/54.html -http://yp.gates96.com/8/48/1/98.html -http://yp.gates96.com/8/48/2/23.html -http://yp.gates96.com/8/48/3/13.html -http://yp.gates96.com/8/48/3/14.html -http://yp.gates96.com/8/48/3/23.html -http://yp.gates96.com/8/48/3/84.html -http://yp.gates96.com/8/48/4/5.html -http://yp.gates96.com/8/48/4/72.html -http://yp.gates96.com/8/48/5/4.html -http://yp.gates96.com/8/48/5/49.html -http://yp.gates96.com/8/48/6/38.html -http://yp.gates96.com/8/48/6/89.html -http://yp.gates96.com/8/48/8/10.html -http://yp.gates96.com/8/48/8/41.html -http://yp.gates96.com/8/48/8/87.html -http://news.medscape.com/adis/CDI/2000/v19.n02/cdi1902.02.biel/cdi1902.02.biel-01.html -http://www.parsonstech.com/genealogy/trees/PKINGMAN/d2438.htm -http://www.parsonstech.com/genealogy/trees/PKINGMAN/d2502.htm -http://www.chaos.dk/sexriddle/j/c/b/o/ -http://www.outpersonals.com/cgi-bin/w3com/pws/out/FahI8ikSPIvk79ErK106-87Jy3U1_XgCksR4DWkUOldKaD_pciJBXOOmI2Sr4jXlDCT9Mkz59aBZhyyi3xxBeYROt0IpVObKZD4YcwBAhl9afrfb6y3nWI3SwdRE_Vp3d80RzmrDkPVZYQkJyvOgorzS -http://opac.lib.rpi.edu/search/dchemicals+dictionaries/-5,-1,0,E/frameset&dchemicals+catalogs&3,,0 -http://opac.lib.rpi.edu/search/dchemicals+dictionaries/-5,-1,0,E/frameset&dchemicals+catalogs+periodicals&1,1 -http://opac.lib.rpi.edu/search/dchemicals+dictionaries/-5,-1,0,E/frameset&dchemicals+dictionaries&3,,0 -http://opac.lib.rpi.edu/search/dchemicals+dictionaries/-5,-1,0,E/frameset&dchemicals+economic+aspects+united+states&1,,0 -http://www.jsonline.com/news/state/oct00/lambeau31103000a.asp -http://polygraph.ircache.net:8181/used/http_-2www.scubaring.com/http_-2www.alpinehotel.com/chinese/chine.htm -http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/g/e/ -http://haikou.hainan.gov.cn/ghgl/ghsc/hkfg3020.html -http://variety.studiostore.com/main/VARIETY/s.Fz90iGDh -http://library.cuhk.edu.hk/search*chi/cPN595.C6I18+1993/cpn++595+c6+i18+1993/-5,1,1,E/frameset&F=cpn++595+c6+k6+1997&1,1, -http://library.cuhk.edu.hk/search*chi/cPN595.C6I18+1993/cpn++595+c6+i18+1993/-5,1,1,E/frameset&F=cpn++595+c6+l515&1,1, -http://link.fastpartner.com/do/session/600425/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/learn.htm -http://www.nanyang.com.my/20001020/articles/15-10-2000k16.htm -http://202.99.23.245/rmrb/199912/11/newfiles/col_19991211001063_zhxw.html -http://help.sap.com/saphelp_45b/helpdata/en/a7/2872510a6c11d28a220000e829fbbd/frameset.htm -http://www.s10.sexshare.com/~pornking/hardcore/43.html -http://www.gbnf.com/genealogy/Lawler99/html/d0102/I1772.HTM -http://ring.edogawa-u.ac.jp/pub/linux/RedHat/aic/OLD/aic7xxx-5.0.x/boot_disks/5.0.11/SuSE/?D=A -http://www.t-online.de/sport/inhalte/adispi51.htm -http://ftp.lip6.fr/pub11/FreeBSD/development/FreeBSD-CVS/src/kerberos5/usr.sbin/k5stash/ -http://education.legend-net.com/xinwen/gaokao/zl5/zhsh/3/zhshyk.html -http://www.contractorresource.com/Wyoming/Cody/ -http://213.36.119.69/do/session/152998/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/boutique/ -http://213.36.119.69/do/session/153000/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/hotels.html -http://213.36.119.69/do/session/153000/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www3.travelprice.com/voyages/recherche.phtml -http://ftp.unina.it/pub/TeX/macros/latex/contrib/supported/combine/?D=A -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=178,2,11 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=178,2,233 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=178,2,5 -http://www12.freeweb.ne.jp/novel/urufu24/linkz/ug1.html -http://www12.freeweb.ne.jp/novel/urufu24/linkz/pv.html -http://computers.kharkov.ua/win/43/ -http://www.1001e.net/nk4/022.htm -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=4&discrim=93,164,176 -http://dic.empas.com/show.tsp/?q=revisable&f=B -http://yp.gates96.com/0/28/30/45.html -http://yp.gates96.com/0/28/30/46.html -http://yp.gates96.com/0/28/31/24.html -http://yp.gates96.com/0/28/32/64.html -http://yp.gates96.com/0/28/33/28.html -http://yp.gates96.com/0/28/33/85.html -http://yp.gates96.com/0/28/33/87.html -http://yp.gates96.com/0/28/33/96.html -http://yp.gates96.com/0/28/34/52.html -http://yp.gates96.com/0/28/35/7.html -http://yp.gates96.com/0/28/36/23.html -http://yp.gates96.com/0/28/36/52.html -http://yp.gates96.com/0/28/37/50.html -http://yp.gates96.com/0/28/38/85.html -http://yp.gates96.com/0/28/39/16.html -http://www.fan590.com/JamMoviesReviewsE/earth_king.html -http://www.sportbuecher.de/shop/3-88034-750-6.html -http://www.msb.malmo.se/search*swe/aWhitaker,+Galvin,+Utgivare/awhitaker+galvin/-5,-1,0,B/exact&F=awhitburn+joel&1,2 -http://ftp.sunet.se/pub/security/vendor/microsoft/winnt/frn/nt40/?M=A -http://www.intervoz.com.ar/2000/03/02/op_n04.htm -http://www.ntut.edu.tw/~s7370840/8-19.htm -http://www.back2roots.org/Music/Files/Wondergirl%20-%20You%26Me/ -http://www.private-immobilien-boerse.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/3d-service/IIM-Teil/Startseite/Gemeinsam/Inserieren/IIM-Teil/Startseite/frinfo.htm -http://web.singnet.com.sg/~spirit5/letters/oct2000/frankm1025-3.htm -http://web.singnet.com.sg/~spirit5/letters/oct2000/davidp1025.htm -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=decuplicavamo&l=it -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=decuplichiate&l=it -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=decuplichereste&l=it -http://members.tripod.com/~OZEMU/cgi-bin/ -http://ring.tains.tohoku.ac.jp/archives/pack/dos/hardware/midi/?D=A -http://kutschen.de/Schoner/info-e/info-e/collections/literature/ -http://www.jamba.de/KNet/_KNet-MJJ8j1-DGd-13dgc/showInfo-special1.de/node.0/cde7f1uou -http://www.jamba.de/KNet/_KNet-MJJ8j1-DGd-13dgy/browse.de/node.0/cenv0b09a -http://in.egroups.com/message/sfconsim-l/6415 -http://genforum.genealogy.com/cgi-genforum/forums/vt.cgi?4123 -http://www.linux.com/networking/network/sap/article/price/VA_Linux_Systems/ -http://www.linux.com/networking/network/sap/article/price/regulation/ -http://slacvx.slac.stanford.edu/sldmcwww/mc/MC74BB_98R16B_WIN_ALL.HTML -http://www.xmission.com/~dkenison/cgi/lwgate.cgi/KLR650/archives/v02.n1611/date/article-15.html -http://www.iwon.com/home/movies/movies_filmography_page/0,13178,Macon+McCalman,00.html -http://excite.de/spiele/katalog/26997 -http://www.trax.nilex.co.uk/trax.cgi/A1C/B1S/B2R/A2U/B3S/B1R/ -http://www.power2lead.com/Global/English.nsf/pgWWLocations!OpenPage&ExpandSection=2,6,27,9,26 -http://itcareers.careercast.com/texis/it/itjs/+owwBm1eP0-dzwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewDPwdGpdGwBodDa5dhBiwGna5O5BnManDtoDnnGa5nDodGa5BwhhaidGAanLpnGonDqnaqdMp1BnGamnVncdpaMFqhTfR20Dzme8twwwpBmer+D86e9qwww5rmeZpwwwBrmeZpwww/morelike.html -http://pub4.ezboard.com/fnationoferidinegeneral.showAddReplyScreenFromWeb?topicID=615.topic&index=2 -http://www.chaos.dk/sexriddle/m/i/s/x/ -http://kiasuplanet.subportal.com/sn/Games/Tetris_Clone_Games/5532.html -http://kiasuplanet.subportal.com/sn/Games/Tetris_Clone_Games/11418.html -http://kiasuplanet.subportal.com/sn/Games/Tetris_Clone_Games/676.html -http://www.rge.com/pub/networking/ldap/umich/max500/beta/?M=A -http://my.egroups.com/dir/Health/Fitness/Exercise_Equipment -http://my.egroups.com/messages/prevention -http://pub4.ezboard.com/factiveprodiscussioncommunityactivitiesquestions.showMessage?topicID=12.topic -http://www.look4cranes.com/catalog/AUCTIONRESULT/AGGREGATE+-+CONVEYOR+%2F+FEEDER+%2F+STACKER/POWERSCREEN/ -http://www.fogdog.com/cedroID/ssd3040183344300/cgi-bin/MyFogdog -http://www.fogdog.com/cedroID/ssd3040183344300/nav/products/featured_brands/3b/gloves_mittens/ -http://www.houses-apartment-listings.com/Washington/city_search_criteria.asp?state=WA&City=CONCONULLY -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/c23417.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x12810.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x14250.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x14507.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x15988.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x17214.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x18550.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x19113.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x1949.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x21473.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x31101.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x3585.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x44035.html -http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x4711.html -http://www.online.kokusai.co.jp/Home/V0043638/wrd/G100/ -http://ftp.lip6.fr/pub5/FreeBSD/branches/-current/ports/print/ghostscript5/ -http://ftp.lip6.fr/pub5/FreeBSD/branches/-current/ports/print/texinfo/ -http://ftpsearch.belnet.be/mirrors/ftp.isc.org/pub/usenet/control/ats/?N=D -http://garbo.uwasa.fi/pub/linux/distributions/SuSE/7.0/dosutils/exceed/USER/HOSTEX/SCHEME/?D=A -http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/showNextUnseen/fol/100001/922702 -http://link.fastpartner.com/do/session/600391/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php -http://www.jamba.de/KNet/_KNet-wEF8j1-bGd-13cma/showInfo-datenschutz.de/node.0/cenvptf1i -http://www.jamba.de/KNet/_KNet-wEF8j1-bGd-13cmd/browse.de/node.0/cenv0b09a -http://www-usa6.cricket.org/link_to_database/PLAYERS/RSA/T/THOMPSON_DS_03003252/ -http://sunsite.org.uk/public/public/packages/WWW/emacs-w3/?S=A -http://www.excelsior.com.mx/9811/981129/buh25.html -http://www.anixter.nl/SBJEVE/170699-2155-01.html -http://innopac.lib.tsinghua.edu.cn:2082/search*chi/aBrooks,+Jane+B./abrooks+jane+b/-5,-1,0,B/browse -http://tour.stanford.edu/cgi/options.prl/95.70/gMcto -http://www.cksd.edgate.com/emeraldheightses/elections/students/the_parties/ -http://novel.hichinese.net/comment/comment.php?page=2091&action=write -http://205.161.150.96/cgi-bin/c2k/additem.html&item=204578 -http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31282/qry/zka/B2-kB2-m/pno/0/qqo/004A/qqatt/^ -http://scripts.infoart.ru/magazine/znamia/n4-20/shpakov.htm -http://excite.de/bildung/katalog/19909 -http://911codes.com/games/platform/n64/sect/div/cont/list_cheat/spray/y/id/0000009557/gid/0000003573/_cheats/_walkthroughs/_codes/_pc/_n64/_psx/_gameboy/_playstation/ -http://ftp.jp.debian.org/debian/dists/stable/main/source/web/?M=A -http://www.fogdog.com/cedroID/ssd3040183335913/nav/products/featured_brands/3c/all/ -http://his.luky.org/ML/linux-users.3/msg08073.html -http://yomiuri-1422.excite.co.jp/entertainment/animated_cartoon_comic/each_work_title/ha_line/ha -http://yomiuri-1422.excite.co.jp/entertainment/animated_cartoon_comic/each_work_title/ha_line/hu_he/berserk -http://library.cwu.edu/search/dWorld+War,+1914-1918+--+Diplomatic+history/dworld+war+1914+1918+diplomatic+history/-5,-1,0,B/exact&F=dworld+war+1914+1918+diplomatic+history&1,49 -http://www.utdallas.edu/dept/sci_ed/Caribbean/images/Jennifer%20Jordan/Antigua%20Mangrove/?N=D -http://www.baustoffhandel.de/service/faqs/faq-tapezieren.htm -http://muc-zvs-web1.goethe.de/ms/bud/film/un_f2.htm -http://www.online.kokusai.co.jp/Map/V0043636/wrd/G1000/map/sitemap.html -http://win.www.citycat.ru/funny/fido/2000_05/25.html -http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=9,1,7,13,15,6 -http://yp.gates96.com/11/79/50/1.html -http://yp.gates96.com/11/79/50/92.html -http://yp.gates96.com/11/79/52/64.html -http://yp.gates96.com/11/79/54/79.html -http://yp.gates96.com/11/79/54/81.html -http://yp.gates96.com/11/79/56/28.html -http://yp.gates96.com/11/79/56/30.html -http://yp.gates96.com/11/79/56/46.html -http://yp.gates96.com/11/79/56/83.html -http://yp.gates96.com/11/79/57/10.html -http://yp.gates96.com/11/79/57/33.html -http://yp.gates96.com/11/79/58/1.html -http://yp.gates96.com/11/79/58/48.html -http://yp.gates96.com/11/79/58/82.html -http://yp.gates96.com/11/79/59/62.html -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/ELINKEINO-+JA+YRITYSTOIMINTA/Matkailu+-+maantiede/matkailu/linja-autoliikenne/joukkoliikenne/aikataulut/ -http://cn.egroups.com/message/romtrade/3823 -http://www.idgnet.com/idgns/1999/07/16/SmallFrenchBusinessesMoveSlowlyTo.shtml -http://www-d0.fnal.gov/d0dist/dist/releases/psim01.01.00/Exceptions/?M=A -http://www.4positiveimages.com/4positiveimages/781560892/Catalog -http://dellnet.excite.fr/yellow_pages/annuaire/823 -http://ftp.chg.ru/pub/math/grace/MIRRORS -http://ftp.chg.ru/pub/math/grace/aux/ -http://legalminds.lp.findlaw.com/list/lawlibref-l/mail8.html -http://carriage.de/Schoner/modelle/models/Info-d/Sammlungen/ -http://chunma.yeungnam.ac.kr/~j4390214/경기ìƒìŠ¹.htm -http://members.tripod.co.jp/stpp/?M=A -http://map.ipc.co.jp/asp/onmap/connect/f-525598/g-28/ -http://www.fortunecity.com/business/lerner/101/form.html -http://www.sportskorea.net/BBS/Bbs/db/L019/act/new/bnum/000060/zka/6/o/6/drc/f -http://ftp.jp.debian.org/debian/dists/Debian2.2r0/main/binary-all/hamradio/?M=A -http://admin.afiliando.com/do/session/189476/vsid/1507/tid/1507/cid/23455/mid/1025/rid/1168/chid/1205/parser/yes/imref/eqqLmwlGltt5tkpHrYjLXofLklkKZljLkju5lZa5l0/url/http://www.submarino.com.mx/toy/home.asp -http://www.gasex.com/gay.male.erotica/penis.gay.twink.men.html -http://ftpsearch.belnet.be/mirrors/ftp.isc.org/pub/usenet/control/ak/?S=A -http://gb.toget.com.tw/intro/desktop_wallpaper/desktop_wallpaper_idol/20000417_7747_dl.html -http://yp.gates96.com/13/50/50/27.html -http://yp.gates96.com/13/50/52/20.html -http://yp.gates96.com/13/50/52/31.html -http://yp.gates96.com/13/50/52/44.html -http://yp.gates96.com/13/50/53/33.html -http://yp.gates96.com/13/50/53/45.html -http://yp.gates96.com/13/50/53/72.html -http://yp.gates96.com/13/50/54/34.html -http://yp.gates96.com/13/50/54/62.html -http://yp.gates96.com/13/50/54/83.html -http://yp.gates96.com/13/50/54/84.html -http://yp.gates96.com/13/50/55/5.html -http://yp.gates96.com/13/50/55/61.html -http://yp.gates96.com/13/50/55/75.html -http://yp.gates96.com/13/50/56/0.html -http://yp.gates96.com/13/50/56/15.html -http://yp.gates96.com/13/50/56/21.html -http://yp.gates96.com/13/50/56/29.html -http://yp.gates96.com/13/50/57/2.html -http://yp.gates96.com/13/50/57/54.html -http://yp.gates96.com/13/50/58/9.html -http://yp.gates96.com/13/50/58/34.html -http://yp.gates96.com/13/50/59/64.html -http://yp.gates96.com/13/50/59/70.html -http://yp.gates96.com/13/50/59/75.html -http://yp.gates96.com/13/50/59/85.html -http://www.ilmessaggero.it/hermes/19990419/07_MARCHE/40/AGRI.htm -http://www.ilmessaggero.it/hermes/19990419/07_MARCHE/40/NERA.htm -http://amigos.com/cgi-bin/w3com/pws/ffe/IURImAxosglBgN4t3Iz538S9DOsFp6mHl6tpYJehgGibFrnWNcTM3WIsDckFomPqZ-JB8f_Qj8Aua4sE4AFvcFyidtj2iI6k1zPchuFbLwWMCo3hr8eXPNuxbHPQdRvo8J246667 -http://amigos.com/cgi-bin/w3com/pws/ffe/F3hIBiydr9mPRNSqk-dll3MTqIZCaRN3wRH0-H7o4qF0vlfPBXUV-Vhn028iva56e-GCSyYZKBQxuCJO8Y2JF25fVTkPHzFtrNMoOVhEp2n7Y11PhN9pvFNyqgssdZW8Eay0XJsP0vuD4oCbmJVx -http://home.digitalcity.com/boston/sportsguy/main.dci?page=curse2 -http://ftpsearch.belnet.be/mirror/ftp.funet.fi/pub/Linux/doc/logos/.cap/?S=A -http://ftpsearch.belnet.be/mirror/ftp.funet.fi/pub/Linux/doc/logos/.cap/?D=A -http://my.netian.com/~52tour/kyung1.html -http://aol.weather.com/weather/radar/single_site/us_ny_allegany.html -http://www-usa16.cricket.org/link_to_database/GROUNDS/RSA/CENTURION/ -http://polygraph.ircache.net:8181/prodev/career/http_-2www.getstats.com/http_-2www.shindex.com/in_dex/in_dex.html -http://polygraph.ircache.net:8181/prodev/career/http_-2www.getstats.com/http_-2www.microsoft.com/msoffice -http://www.5a8.com/book/wg/cp/p/puge/zhizhunv/005.htm -http://tukids.raha.com/crafts/preview/52044.html -http://tukids.raha.com/crafts/preview/52401.html -http://buc.co.kr/www.ecs.com.tw/ -http://wap.jamba.de/KNet/_KNet-EDS8j1-KHd-13gbq/showInfo-werbung.de/node.0/cde7f1uou -http://www.launch.com/music/songpage/1,4425,322514,00.html -http://www.emerchandise.com/browse/BUFFYTHEVAMP/CAP/b.TV%20BUFFYTHEVAMP/s.NGdTZGLC -http://www.emerchandise.com/browse/BUFFYTHEVAMP/STICKER/b.TV%20BUFFYTHEVAMP/s.NGdTZGLC -http://www.emerchandise.com/help_security/b.TV%20BUFFYTHEVAMP/s.NGdTZGLC -http://yp.gates96.com/14/70/50/9.html -http://yp.gates96.com/14/70/50/23.html -http://yp.gates96.com/14/70/50/24.html -http://yp.gates96.com/14/70/50/40.html -http://yp.gates96.com/14/70/50/47.html -http://yp.gates96.com/14/70/50/79.html -http://yp.gates96.com/14/70/50/89.html -http://yp.gates96.com/14/70/51/83.html -http://yp.gates96.com/14/70/52/98.html -http://yp.gates96.com/14/70/53/46.html -http://yp.gates96.com/14/70/54/4.html -http://yp.gates96.com/14/70/54/24.html -http://yp.gates96.com/14/70/54/97.html -http://yp.gates96.com/14/70/55/51.html -http://yp.gates96.com/14/70/57/51.html -http://yp.gates96.com/14/70/58/3.html -http://yp.gates96.com/14/70/58/84.html -http://yp.gates96.com/14/70/59/0.html -http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20046027/-5,-1,0,B/frameset&F=bp20046031&1,1 -http://www.free-phone.com/q/001p/ppc2/KtIYye9a8Pw.htm -http://www.1stemlm.com/q/001p/ppc2/7kwUxQYfGMk.htm -http://sports.excite.com/ten/grand_german -http://www.omniseek.com/dir/Arts+%26+Humanities/Fine+Arts/Ceramics/Organizations/Australia/ -http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/dec-axpvms-vms712_usb-v0100--4.pcsi-dcx_axpexe -http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_acrtl-v0100.README -http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_acrtl-v0100.html -http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_dqconfig-v0200.README -http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_ds20e-v0100.html -http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_shadowing-v0300.CVRLET_TXT -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=barrissait&l=fr -http://dk.egroups.com/message/M-1911/4394 -http://www.netsh.com.cn/wwwboardm/526/messages/2116.html -http://www.netsh.com.cn/wwwboardm/526/messages/2270.html -http://www.netsh.com.cn/wwwboardm/526/messages/773.html -http://www.netsh.com.cn/wwwboardm/526/messages/2058.html -http://www.netsh.com.cn/wwwboardm/526/messages/2329.html -http://www.netsh.com.cn/wwwboardm/526/messages/1813.html -http://linux.softhouse.com.cn/linux/knowledge/tech/HOWTO/Java-CGI-HOWTO-7.html -http://news.novgorod.ru/news/2000/9/22/2/12 -http://news.novgorod.ru/news/2000/9/24/2/12 -http://homepage1.nifty.com/sigenyan/nikki9.htm -http://perso.club-internet.fr/guige/ncpc78.htm -http://www.vr-homes.com/usa/California/Cities/Victorville/Travel/Maps_Images/ -http://www.incestpornstories.com/cum-sex-pics/underagecoed/spankingsweating/hardendurance.html -http://www.freeforums.com/forums/Hardball/000008-000007.asp -http://www.freeforums.com/forums/Hardball/000005-000001.asp -http://www.freeforums.com/forums/Hardball/000004-000001.asp -http://rex.skyline.net/html/Internet_Chat_Sites.html?315,computers,video,internet,computers -http://rex.skyline.net/html/Computers_-_Hardware.html?14,computers,video,internet,computers -http://194.128.65.4/pa/cm199899/cmhansrd/vo990216/text/90216w20.htm -http://pub14.ezboard.com/fyamguyskoflastblade.showMessage?topicID=3.topic -http://plant.reedexpo.ca/www.partnership.ca/?S=A -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=168&discrim=109,5,168 -http://www.aelita.net/products/~archive/Download_redirect/solutions/solutions/services/products/default.htm -http://www.jpc-music.com/7041801.htm -http://home.c2i.net/entreprenor/java/ra.html -http://gxschool.beelink.com.cn/mid_edu/midschool/geography3/t4cd7z/4d7z3.3_1.htm -http://ricoh.co.jp/SHOGI/emate/basic/mate3003a.html -http://www.diogenes.ch/4DACTION/web_rd_aut_frlist_az/ID=483385&chr=K -http://www.ebigchina.com/msg_post.phtml?cu=1003 -http://www.bemi-immobilien.de/allgemeine-ib/startseite/Gemeinsam/erreichenPartner/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/immolink/Gemeinsam/MarketingStrategie/Gemeinsam/Inserieren/onlineInserieren.htm -http://ftp.tku.edu.tw/OS/Linux/distributions/RedHat/rawhide/i386/doc/rhinst/stylesheet-images/?S=A -http://www.egroups.com/message/kicken/284 -http://www.guangmingdaily.com.cn/0_gm/1999/12/19991222/big5/gm^18278^2^GM2-2216.htm -http://brightnet.pda.tucows.com/www.psionsite.rcsed.ac.uk/ -http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=9,22,1,11 -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=durereste&l=it -http://click-to.tell-a-friend.boardhost.com/tell-a-friend-confirm.cgi?ylihilseen&msg=25 -http://www.gbgm-umc.org/EllisvilleMO/10-04-00.pdf -http://www.marketingtool.com/contribute/webfirm/b.435.r.2626.g.4134.html -http://www.chaos.dk/sexriddle/h/a/w/l/ -http://www.chaos.dk/sexriddle/h/a/w/t/ -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,5-0,3+( -http://www.guba.net/101/136/125E/index-4.phtml -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,5-0,3+21,0 -http://www.guba.net/101/136/125E/index-7.phtml -http://www.guba.net/101/136/125E/index-15.phtml -http://ftpsearch.belnet.be/ftp/mirror2/ftp.cert.dfn.de/pub/vendor/sun/security-alert/security-alert-108.txt -http://ftpsearch.belnet.be/ftp/mirror2/ftp.cert.dfn.de/pub/vendor/sun/security-alert/security-alert-170.txt -http://www.tente.de/us/produkte/rubriksuche/ad000000699.htm -http://www.angelfire.com/ky/kysweetpea/ -http://yp.gates96.com/7/69/60/1.html -http://www.amulation.com/md-l-archive/199908/frm00208.html -http://yp.gates96.com/7/69/60/4.html -http://yp.gates96.com/7/69/60/33.html -http://yp.gates96.com/7/69/60/49.html -http://yp.gates96.com/7/69/60/71.html -http://nanjingnews.jlonline.com/nanjingnews/njrb/20000226/04tiyu.htm -http://yp.gates96.com/7/69/61/44.html -http://yp.gates96.com/7/69/61/69.html -http://yp.gates96.com/7/69/61/82.html -http://yp.gates96.com/7/69/61/85.html -http://yp.gates96.com/7/69/62/4.html -http://yp.gates96.com/7/69/63/34.html -http://yp.gates96.com/7/69/63/48.html -http://yp.gates96.com/7/69/63/66.html -http://yp.gates96.com/7/69/64/22.html -http://www.bemi-immobilien.de/IIM-Teil/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/Inserieren/Startseite/Gemeinsam/versicherungen/unfall/Gemeinsam/3d-service/info.htm -http://yp.gates96.com/7/69/64/26.html -http://yp.gates96.com/7/69/65/89.html -http://yp.gates96.com/7/69/67/11.html -http://yp.gates96.com/7/69/67/28.html -http://yp.gates96.com/7/69/67/33.html -http://yp.gates96.com/7/69/67/70.html -http://yp.gates96.com/7/69/68/22.html -http://yp.gates96.com/7/69/68/72.html -http://yp.gates96.com/7/69/68/92.html -http://members.tripod.com/~katenleo/fading21.html -http://yp.gates96.com/7/69/69/6.html -http://members.tripod.com/~katenleo/fading26.html -http://yp.gates96.com/7/69/69/36.html -http://yp.gates96.com/7/69/69/91.html -http://yp.gates96.com/7/69/69/98.html -http://www.tribuneindia.com/98oct11/head1.htm -http://fi.egroups.com/message/internet-sig-announce/3 -http://info.verwaltung.uni-freiburg.de/doc/susehilf/pak/paket_inhalt_libxml.html -http://www.planetweb.com/cgi-bin/listmanager.pl/NETLINK-CUST/archives/1998Mar30-Apr05.archive/Date/article-23.html -http://www.maasvlakte-cam.nl/webcams/11/katowice__poland/2000/06/13/ -http://www.eveclub.com/cgi-bin/eveclub.front/972959521459/Home -http://totalsports.aol.com/stats/bbo/int/20000413/nor.at.lou.box.html -http://totalsports.aol.com/stats/bbo/int/20000413/ott.at.buf.game.html -http://fi.egroups.com/message/stccg-badlands/67 -http://www.fogdog.com/cedroID/ssd3040183315704/nav/stores/books_videos/ -http://xf-bbs.hb.cninfo.net/~socrates/sportold/images/football/_vti_cnf/ -http://cisc.tu-graz.ac.at/igi/lehre/semD_ss99/gruppe3/node10.html -http://in.egroups.com/message/sfconsim-l/8643 -http://ftp.cc.chuo-u.ac.jp/home/pub/lang/perl/CPAN/modules/by-authors/Karl_Glazebrook/ExtUtils-F77-1.13.readme -http://ftp.cc.chuo-u.ac.jp/home/pub/lang/perl/CPAN/modules/by-authors/Karl_Glazebrook/PGPLOT-2.17.readme -http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/wopwobaiu2243.html -http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/wopwobaiu2386.html -http://books.hyperlink.co.uk/bookinfo/Travel_Journal/0864427972 -http://dbc.copystar.com.tw/DelphiChat/200001/msg0650.htm -http://dbc.copystar.com.tw/DelphiChat/200001/msg0655.htm -http://dbc.copystar.com.tw/DelphiChat/200001/msg0666.htm -http://dbc.copystar.com.tw/DelphiChat/200001/msg0673.htm -http://dbc.copystar.com.tw/DelphiChat/200001/msg0681.htm -http://dbc.copystar.com.tw/DelphiChat/200001/msg0692.htm -http://www.expage.com/page/cavypigsponser -http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-10-05/13/?S=A -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=210&discrim=214,253 -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=2&discrim=247,212,237 -http://wwwtios.cs.utwente.nl/archive/wilyfans/frm01740.html -http://z-06.land-sbg.gv.at/pressebuero/lpb/unserland/apr00/3.htm -http://z-06.land-sbg.gv.at/pressebuero/lpb/unserland/apr00/52.htm -http://gladstone.uoregon.edu/~sola/Stories/ -http://adetti.iscte.pt/RSI/HowTo/Java/jdk1.2.1/docs/guide/2d/api-jpeg/serialized-form.html -http://ocean.ntou.edu.tw/search*chi/aSloan,+Richard+P.,+jt.+ed./asloan+richard+p/-5,-1,0,E/frameset&F=asloan+irving+j&2,,0 -http://ttzcomputers.subportal.com/sn/Programming/C_and_C___Tools_and_Components/13286.html -http://ttzcomputers.subportal.com/sn/Programming/C_and_C___Tools_and_Components/1551.html -http://ftp.uni-stuttgart.de/pub/unix/tools/system/top/m/?N=D -http://no.egroups.com/message/romtrade/5216 -http://dk.egroups.com/message/Gunsmithing/80 -http://www.msb.malmo.se/search*swe/dMichelsen,+Hans/dmichelsen+hans/-5,-1,0,B/frameset&F=dmichels+robert&1,1 -http://solar.rtd.utk.edu/friends/news/omri/1998/05/980506I.html(opt,mozilla,pc,russian,koi8,default) -http://www.geocities.co.jp/HeartLand/6163/link8.htm -http://tucows.austria.com/sync95_size.html -http://tucows.austria.com/adnload/1082_30337.html -http://www.hotelboulevard.com/fr/paris/standard/html7752b1d358fd6459ebca66776e896614/sessionLang/ANG/prov/browse/cp/75015/resultatSearch.html -http://210.178.135.1/netbbs/Bbs.cgi/nhic30872/qry/zka/B2-kB2-o/pno/0/qqo/000A/qqatt/^ -http://210.178.135.1/netbbs/Bbs.cgi/nhic30872/new/pno/0/pno/0/qqo/000A -http://cometweb01.comet.co.uk/do!tid=20&rtid=2&vsid=700&session=132041&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLlci5XqVLkXsLkao4tloHbmlLoq5 -http://polygraph.ircache.net:8181/http_-2www.webtechs.com/html-val-svc/f-agents.html -http://www.linux.com/networking/network/development/communications/server/distro/ -http://www.linux.com/networking/network/development/communications/server/competition/ -http://www.linux.com/networking/network/development/communications/server/certification/ -http://www.linux.com/networking/network/development/communications/server/future/ -http://www.linux.com/networking/network/development/communications/server/Updates/ -http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/net/epic4/pkg/Attic/ -http://polygraph.ircache.net:8181/mo/mo_links/http_-2www.whowhere.com/tax_cuts.html -http://www.gov.ie/iveagh/angloirish/bloodysunday/summary4.htm -http://polygraph.ircache.net:8181/http_-2www.real-e-video.com/ftp_-2ftp.mpgn.com/Gaming/ADND/Worlds/BirthRight/MailingListArchive/Contents.htm -http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/showNextUnseen/fol/100001/1323398 -http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/folderFrame/100008/0/def/1323639 -http://user.alpha.co.kr/~selly/profile/main2.htm -http://polygraph.ircache.net:8181/company/http_-2www.aaainvestments.com/http_-2triad.cyberserv.com/http_-2207.90.134.3/miami/ -http://ring.htcn.ne.jp/pub/FreeBSD/FreeBSD-current/ports/archivers/zip/ -http://www.medoc-ias.u-psud.fr:81/synoptic/gif/950902/?S=A -http://in.egroups.com/message/GQRP/975 -http://idgnow.uol.com.br/idgnow/pcnews/2000/07/0046 -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdebase/po/Attic/kdmconfig.pot?only_with_tag=beta1-0_2 -http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdebase/po/Attic/kwm.pot?only_with_tag=beta1-0_2 -http://lists.omnipotent.net/mysql/199912/msg02189.html -http://kyoto.cool.ne.jp/ryou_1125/lmax/list2.html -http://www.infodog.com/RESULTS/1998092302/1998092302800.HTM -http://www.infodog.com/RESULTS/1998092302/1998092302575.HTM -http://bedandbreakfast.com/bbc/p618230.asp -http://solaris.license.virginia.edu/os_product_patches/patches/5.5.1/103640-28/SUNWscpu/ -http://www.secinfo.com/d1Z36p.5n.htm -http://cn.egroups.com/messages/conscious_creation/2087 -http://www.brio.de/BRIO.catalog/39fdb4fb08541c02273fd472aa7806a2/UserTemplate/13 -http://www.chaos.dk/sexriddle/o/m/e/z/ -http://cgi.tbs.co.jp/cdtv/songdb/song1897-j.html -http://www.niwl.se/wais/new/12/12116.htm -http://bsdweb.pasta.cs.uit.no/bsdweb.cgi/~checkout~/pkgsrc/editors/vim-xaw/pkg/?sortby=log -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=boguerait&l=fr -http://www.medbulletin.com/scripts/medscape/jobsbystate.pl/diima00001/ND -http://ttz.soyou.edu.cn/tgyd/item/2000-05-31/3214.html -http://ttz.soyou.edu.cn/tgyd/item/2000-05-25/2973.html -http://ttz.soyou.edu.cn/tgyd/item/2000-05-23/2825.html -http://javatest.a-net.nl/servlet/pedit.Main/http://salon.com/tech/feature/2000/02/25/chatscan/ -http://javatest.a-net.nl/servlet/pedit.Main/http://www.wired.com/news/news/technology/story/20734.html -http://www.jps.net/fehlberg/diem9.html -http://chellobe.linux.tucows.com/x11html/adnload/9798_3876.html -http://chellobe.linux.tucows.com/x11html/preview/58190.html -http://internet.exit.de/akpolitik/Extern.htm -http://www.launch.com/music/albumpage/pvn_content/0,5258,163242_track,00.html -http://merumo.ne.jp/backno/i/00005163/20001001060103_024859.html -http://ftpsearch.belnet.be/mirrors/ftp.isc.org/pub/usenet/control/bc/?N=D -http://www-lehre.inf.uos.de/manuals/jdk1.2/docs/api/javax/swing/text/html/parser/class-use/Element.html -http://ftp.tku.edu.tw/OS/FreeBSD/ports/biology/deft/distinfo -http://javatest.a-net.nl/servlet/pedit.Main/http://www.cavejunction.com/phones/gower1.html -http://javatest.a-net.nl/servlet/pedit.Main/http://www.cavejunction.com/phones/contel1.html -http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959966349/Catalog/1000002 -http://yp.gates96.com/5/82/41/1.html -http://yp.gates96.com/5/82/41/52.html -http://yp.gates96.com/5/82/41/59.html -http://yp.gates96.com/5/82/42/40.html -http://yp.gates96.com/5/82/42/73.html -http://yp.gates96.com/5/82/43/4.html -http://yp.gates96.com/5/82/43/20.html -http://yp.gates96.com/5/82/44/60.html -http://yp.gates96.com/5/82/44/95.html -http://yp.gates96.com/5/82/45/36.html -http://yp.gates96.com/5/82/45/43.html -http://yp.gates96.com/5/82/45/90.html -http://yp.gates96.com/5/82/46/37.html -http://yp.gates96.com/5/82/46/83.html -http://yp.gates96.com/5/82/47/22.html -http://yp.gates96.com/5/82/47/53.html -http://yp.gates96.com/5/82/48/8.html -http://yp.gates96.com/5/82/48/23.html -http://yp.gates96.com/5/82/48/41.html -http://yp.gates96.com/5/82/48/76.html -http://yp.gates96.com/5/82/49/5.html -http://yp.gates96.com/5/82/49/22.html -http://yp.gates96.com/5/82/49/37.html -http://yp.gates96.com/5/82/49/39.html -http://yp.gates96.com/5/82/49/65.html -http://yp.gates96.com/5/82/49/90.html -http://www.mirror.kiev.ua:8084/paper/1998/35/1251/power.htm -http://www.science.uva.nl/pub/NetBSD/NetBSD-current/pkgsrc/textproc/html/Makefile -http://www.fiss.at/1Root/Kontinent/6/Staat/7/Bundesland/16/Ort/708/Infrastruktur/7435/Homepage/homepage...1.html -http://linux.tnc.edu.tw/CPAN/authors/id/C/CH/CHOGAN/Apache-SetWWWTheme-1.02.readme -http://linux.tnc.edu.tw/CPAN/authors/id/C/CH/CHOGAN/Apache-SetWWWTheme-1.04.readme -http://linux.tnc.edu.tw/CPAN/authors/id/C/CH/CHOGAN/Apache-SetWWWTheme-1.05.readme -http://wufs.wustl.edu/vlander/vl_0002/browse/html/B0XX/22b090b4.htm -http://www.dnet.org/My_Locality/View_Statement.dnet/OH/43230-1863&SubjectItemID=6406&IssueID=47541&ElectionActivityID=4443&SubjectHolder=3462&type=Office&debate=yes -http://members.tripod.co.jp/suguruE/_private/ -http://members.tripod.lycos.nl/Kreeklaan/id19_cf.htm -http://forums.multimania.fr/general/login/login.phtml?_login=%2Flire%2Fjeuxvideospro%2Findex.phtml%3Fcollapse%3D1 -http://excite.de.netscape.com/jobs/katalog/30434 -http://excite.de.netscape.com/jobs/katalog/27370 -http://excite.de.netscape.com/jobs/katalog/127 -http://yp.gates96.com/2/54/20/79.html -http://yp.gates96.com/2/54/21/27.html -http://yp.gates96.com/2/54/22/14.html -http://yp.gates96.com/2/54/22/48.html -http://yp.gates96.com/2/54/22/78.html -http://yp.gates96.com/2/54/23/20.html -http://yp.gates96.com/2/54/23/62.html -http://yp.gates96.com/2/54/23/69.html -http://yp.gates96.com/2/54/24/1.html -http://yp.gates96.com/2/54/24/61.html -http://yp.gates96.com/2/54/24/95.html -http://yp.gates96.com/2/54/25/2.html -http://yp.gates96.com/2/54/25/16.html -http://yp.gates96.com/2/54/25/53.html -http://yp.gates96.com/2/54/25/67.html -http://yp.gates96.com/2/54/25/94.html -http://yp.gates96.com/2/54/26/3.html -http://yp.gates96.com/2/54/26/30.html -http://yp.gates96.com/2/54/26/65.html -http://yp.gates96.com/2/54/27/31.html -http://yp.gates96.com/2/54/27/41.html -http://yp.gates96.com/2/54/27/53.html -http://yp.gates96.com/2/54/27/71.html -http://yp.gates96.com/2/54/27/79.html -http://yp.gates96.com/2/54/27/80.html -http://yp.gates96.com/2/54/28/13.html -http://yp.gates96.com/2/54/28/14.html -http://yp.gates96.com/2/54/28/24.html -http://yp.gates96.com/2/54/28/34.html -http://yp.gates96.com/2/54/28/96.html -http://yp.gates96.com/2/54/29/49.html -http://ftp.sunet.se/pub/NT/mirror-microsoft/KB/Q134/3/40.TXT -http://members.tripod.com/joellogan/_cranedisc/000001d9.htm -http://members.tripod.com/joellogan/_cranedisc/000001cd.htm -http://www.ualberta.ca/CNS/RESEARCH/Software/SAS/vms/z-inf-zd.htm -http://www1.galaxy.com/galaxy/Leisure-and-Recreation/Games/Computer-Games/Titles/Virtual-Reality/Golf.html -http://www1.galaxy.com/galaxy/Leisure-and-Recreation/Games/Computer-Games/Titles/Virtual-Reality/Red-Planet.html -http://www.uni-duesseldorf.de/ftp/ftp/software/opt/zlib-1.1.2/?N=D -http://acbanks.know-where.com/acbanks/cgi/selection?place=Cavecreek&state=AZ -http://yp.gates96.com/10/26/70/49.html -http://yp.gates96.com/10/26/70/83.html -http://yp.gates96.com/10/26/72/40.html -http://yp.gates96.com/10/26/74/89.html -http://yp.gates96.com/10/26/75/15.html -http://yp.gates96.com/10/26/75/19.html -http://yp.gates96.com/10/26/76/87.html -http://yp.gates96.com/10/26/78/18.html -http://yp.gates96.com/10/26/78/76.html -http://yp.gates96.com/10/26/78/78.html -http://yp.gates96.com/10/26/78/81.html -http://cpan.nitco.com/modules/by-module/Devel/ADESC/Pod-DocBook-0.03.readme -http://www2.el-mundo.es/nuevaeconomia/2000/NE047/NE047-03b.html -http://www.familyeducation.com/whatworks/inappr_material/entry/1,2549,1-10119-1948-3469,00.html -http://ftp.nodomainname.net/pub/linux/daemons/raid/beta/ -http://192.80.57.161/corp/press/vannet.html -http://digilander.iol.it/mirkodeli/Stagioni/CI6_index.html -http://www.world-of-webs.de/magdeburg-in-bildern/_inhalt/_statnif/rechts/035.htm -http://ftpsearch.belnet.be/mirrors/src.doc.ic.ac.uk/usenet/usenet-by-hierarchy/rec/travel/?D=A -http://mirrortucows.technet.it/winme/netmiscme_rating.html -http://my.egroups.com/message/imperiumlarp/3148 -http://ep.com/js/about/c7857/b0/34551.html -http://webcrawler-sports.excite.com/ncaab/matchup/pafmax/ -http://www2.dbusiness.com/Quotes/1,1125,MSP_CORE,00.html?Ticker=CORE -http://tucows.wlink.com.np/regist95_size.html -http://www.babyheirlooms.com/catalog/htmlos.cat/041162.1.5960744054 -http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/71113000008423000000947720000021551/Labels.wo/168310000011551/1.0.1/3/Webobjects1 -http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/71113000008423000000947720000021551/Labels.wo/168310000011551/1.1.3.0.0/3/Webobjects1 -http://www.adcentral.com/cgi-bin/w3com/pws/adsites/vNhIXgVh_sji0rjcKc_GbuSlgBaEnCmKXU4ARmeefaqktCE3zwLsoXKDK_dlzoBzk2Ygr2cAuqN51PKOA0JxjzLEpPe-kic9TtvUJMbXG9Dlw8SggmHugQpwzjo-NiuofbUz4obq -http://ring.omp.ad.jp/archives/NetBSD/NetBSD-current/src/distrib/i386/floppies/ramdisk-big/Makefile -http://unofficial.capital.edu/students/alittle/ -http://213.36.119.69/do/session/153005/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/promotions/promo9.html -http://213.36.119.69/do/session/153005/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/GB_EN/ -http://www.riello-hamburg.de/mSerieRSBLU_130_465kw.htm -http://tucows.knoware.nl/winnt/filesplitnt_license.html -http://www.kaos.dk/sex-riddle/k/a/k/i/n/h/b/b/ -http://www.kaos.dk/sex-riddle/k/a/k/i/n/h/b/c/ -http://caller-times.com/1999/july/13/today/national/3143.html -http://news.fm365.com/jiaoyu/20000804/113896.htm -http://variety.studiostore.com/browse/ILOVELUCY/CAP/b.FAVORITES%20NOSTALGI%20CLASTV%20ILOVELUCY/s.qyPsT2fz -http://www.ferien-immobilien.de/bayern/ingolstadt/Verkauf/Gemeinsam/Immolink/3d-service/Private-IB/Startseite/Gemeinsam/vertriebspartner.htm -http://jefferson.village.virginia.edu/wax/japanese/0front/cd/1/1a2a9a2.html -http://space.tin.it/scuola/ermenegh/thewall/il2.htm -http://www.maasvlakte-cam.nl/webcams/17/kremlin__moscou__russia/2000/02/29/?D=A -http://pub17.ezboard.com/fecilordsoflightgeneral.showMessage?topicID=211.topic -http://pub17.ezboard.com/fecilordsoflightgeneral.showMessage?topicID=214.topic -http://pub17.ezboard.com/fecilordsoflightgeneral.showMessage?topicID=210.topic -http://www.kaos.dk/sexriddle/x/u/e/s/p/ -http://www.kaos.dk/sexriddle/x/u/e/s/q/ -http://amc.hollywood.com/maltin/k/kellysheroes-1970.htm -http://amc.hollywood.com/maltin/k/kidsarealrightthe-1979.htm -http://amc.hollywood.com/maltin/k/killingofsistergeorgethe-1968.htm -http://amc.hollywood.com/maltin/k/kingandcountry-1964.htm -http://amc.hollywood.com/maltin/k/kinglear-1987.htm -http://amc.hollywood.com/maltin/k/kingofthezombies-1941.htm -http://amc.hollywood.com/maltin/k/kingqueenknave-1972.htm -http://amc.hollywood.com/maltin/k/kissthe-1988.htm -http://www.egroups.com/login.cgi?login_target=%2Fgroup%2Ft-ida -http://polygraph.ircache.net:8181/faculty/http_-2www.stopwaste.org/freecontent.html -http://kutschen.de/Schoner/literature/Literatur/models/collections/ -http://www.incestpornstories.com/cum-sex-pics/anal-sexone-night-stand/big-bonedpleasantly-plump/smallwomen/{hardcorelink} -http://www.nytimes.com/library/financial/102897market-turmoil.html -http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/ie/http_-2www.ci.alameda.ca.us/main_left.html -http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/ie/http_-2www.ci.alameda.ca.us/dream.htm -http://www.chiayi.gob.tw/ -http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d77/b77,c,4d,51,51,df1,df1,,4e,2b62,4d,4e,2b62,, -http://citeseer.nj.nec.com/cidcontext/6361 -http://citeseer.nj.nec.com/cidcontext/6456 -http://utenti.tripod.it/Psychozine/Grunge/Creed_MyOwnPrison.htm -http://tucows.multiweb.net/winme/adnload/138210_30315.html -http://tucows.multiweb.net/winme/adnload/138190_29551.html -http://tucows.multiweb.net/winme/adnload/138218_29576.html -http://tucows.multiweb.net/winme/preview/138219.html -http://playsky.home.chinaren.com/star_region/11.htm -http://tucows.phnet.fi/winme/adnload/137614_29054.html -http://www.fortunecity.com/millennium/blyton/118/www.bih.net.ba/~sda -http://www11.informatik.tu-muenchen.de/lehre/lectures/ws2000-01/hypermedia/extension/html-kurz/hm2.2.4.2-navigation.html -http://ads.puntopartenza.com/cgi-bin/redirect.cgi/31033737 -http://www.eud.com/1997/03/20/20324A.shtml -http://ftp.net.uni-c.dk/pub/linux/mandrake/i586/Mandrake/mdkinst/usr/share/locale/gl/?N=D -http://no.sport.yahoo.com/s/snowboard-1.html -http://www.egroups.com/login.cgi?login_target=%2Fmessages%2Fshamanism%2F1311 -http://yp.gates96.com/5/82/70/13.html -http://yp.gates96.com/5/82/70/74.html -http://yp.gates96.com/5/82/71/30.html -http://yp.gates96.com/5/82/71/44.html -http://yp.gates96.com/5/82/72/22.html -http://yp.gates96.com/5/82/72/72.html -http://yp.gates96.com/5/82/72/88.html -http://yp.gates96.com/5/82/73/60.html -http://yp.gates96.com/5/82/73/79.html -http://yp.gates96.com/5/82/74/21.html -http://yp.gates96.com/5/82/74/59.html -http://yp.gates96.com/5/82/74/62.html -http://yp.gates96.com/5/82/74/75.html -http://yp.gates96.com/5/82/74/78.html -http://yp.gates96.com/5/82/75/30.html -http://yp.gates96.com/5/82/75/32.html -http://yp.gates96.com/5/82/75/82.html -http://yp.gates96.com/5/82/76/16.html -http://yp.gates96.com/5/82/76/43.html -http://yp.gates96.com/5/82/76/72.html -http://yp.gates96.com/5/82/77/48.html -http://yp.gates96.com/5/82/77/99.html -http://yp.gates96.com/5/82/78/73.html -http://yp.gates96.com/5/82/79/28.html -http://yp.gates96.com/5/82/79/70.html -http://yp.gates96.com/5/82/79/83.html -http://polygraph.ircache.net:8181/http_-2www.microsoft.com/ie/http_-2www.petrophysics.com/http_-2www.uio.no/~thomas/lists/info.html -http://www.munster-express.ie/000623/sports1.htm -http://cisne.sim.ucm.es/search*spi/aThiollier,+François-Joël,+int./athiollier+francois+joel+int/-5,-1,0,B/marc&F=athion+soriano+molla+dolores&2,,2 -http://www.zjdaily.com.cn/gb/2000/10/05/zjrb0625/guoji/6.htm -http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceStoreCategories-BBC70A38_9815_E7A26CDF19A4AB167DD4B69EFB5B17FC -http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceUserProfile-BBC70A38_9815_E7A26CDF19A4AB167DD4B69EFB5B17FC -http://www.shopworks.com/tools/index.cfm/action/search/userid/0003875B-2E5B-19FE-AF65010C0A0A8CF2 -http://www.doofpot.nl/~lists/bugtraq/October-99/frm00087.html -http://shop.citde.net/b79923.htm -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=divinizzarono&l=it -http://pub8.ezboard.com/fwrestlecarwwf.showAddReplyScreenFromWeb?topicID=38.topic -http://amrr.com/agents/contact.html?Agents_id=4046 -http://www.intellicast.com/LocalWeather/World/UnitedStates/Southeast/NorthCarolina/CarolinaBeach/RAINcast/d1_12/bannerAd.shtml -http://www.ferien-immobilien.de/schleswig-holstein/nordfriesland/Verkauf/Gemeinsam/versicherungen/gebaeude/Allgemeine-IB/IIM-Teil/Startseite/Gemeinsam/Inserieren/inserieren.htm -http://www.ferien-immobilien.de/schleswig-holstein/nordfriesland/Verkauf/Gemeinsam/versicherungen/gebaeude/Allgemeine-IB/IIM-Teil/Startseite/Gemeinsam/feedback.html -http://de.excite.com/jobs/katalog/10349 -http://pub16.ezboard.com/frealitycheck95307youadoreus.showAddReplyScreenFromWeb?topicID=33.topic -http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d2424/b77,e,4d,51,51,df1,df1,,978,,51,978,815,,51,815, -http://dk.egroups.com/message/noholdsbarred/2138 -http://kr.news.yahoo.com/headlines/so/20001029/hankook/2000102919513187338.html -http://www.buybuddy.com/sleuth/27/1/11002/508910/ -http://yp.gates96.com/13/95/50/10.html -http://yp.gates96.com/13/95/50/47.html -http://yp.gates96.com/13/95/51/16.html -http://yp.gates96.com/13/95/51/17.html -http://yp.gates96.com/13/95/51/21.html -http://yp.gates96.com/13/95/51/76.html -http://yp.gates96.com/13/95/53/5.html -http://yp.gates96.com/13/95/54/17.html -http://yp.gates96.com/13/95/54/44.html -http://yp.gates96.com/13/95/54/67.html -http://yp.gates96.com/13/95/54/80.html -http://yp.gates96.com/13/95/55/67.html -http://yp.gates96.com/13/95/56/15.html -http://yp.gates96.com/13/95/56/91.html -http://yp.gates96.com/13/95/57/9.html -http://yp.gates96.com/13/95/57/12.html -http://yp.gates96.com/13/95/57/24.html -http://yp.gates96.com/13/95/57/30.html -http://yp.gates96.com/13/95/57/46.html -http://yp.gates96.com/13/95/58/38.html -http://yp.gates96.com/13/95/58/52.html -http://yp.gates96.com/13/95/58/80.html -http://yp.gates96.com/13/95/59/40.html -http://yp.gates96.com/13/95/59/78.html -http://ftp.net.uni-c.dk/pub/linux/mandrake/i586/Mandrake/mdkinst/usr/share/locale/gv/?S=A -http://home.swipnet.se/~w-10458/sksida.htm -http://www.irishnews.com/k_archive/260799/nnews14.html -http://dennou-q.geo.kyushu-u.ac.jp/library/Linux/debian-jp/dists/potato-jp/contrib/binary-all/admin/?M=A -http://ayasii.virtualspace.net/html/1104/11041141_syuuei_yosimi008.htm -http://ayasii.virtualspace.net/html/1104/11041104_nakamura_yuma_2_027.htm -http://kikakusvr3.city.yokohama.jp/yhspot/ysc/prelaunch.html -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=0,1-20,0-9,1-9,2 -http://209.52.189.2/discussion.cfm/disco_music/7738/79749 -http://www.du-et.net/cgi/mail.cgi?NickName=coota -http://ustlib.ust.hk/search*chi/a%7B214c7d%7D%7B213837%7D%7B213c44%7D%7B213779%7D%7B214267%7D%7B21586d%7D%7B21515b%7D%7B21517c%7D%7B213966%7D/a{214c7d}{213837}{213c44}{213779}{214267}{21586d}{21515b}{21517c}{213966}/7,-1,0,B/browse -http://user.alpha.co.kr/~backspin/CGI-BIN/upload/files/ -http://194.174.50.23/cgi-bin/FisRun/InsertExhibitorIntoNotebook/1/interpack99/e/1217 -http://www.paxcapital.com/news/datacenter/200010/27/20001027180508_01.shtml -http://www.paxcapital.com/news/datacenter/200010/27/20001027175828_07.shtml -http://www.paxcapital.com/news/datacenter/200010/27/20001027173309_53.shtml -http://www.paxcapital.com/news/datacenter/200010/27/20001027165004_52.shtml -http://genforum.genealogy.com/cgi-bin/print.cgi?lantz::325.html -http://mirror.cc.utsunomiya-u.ac.jp/mirror/FreeBSD/ports/alpha/packages-current/x11-toolkits/?D=A -http://hotop.on.net.cn/diguo/club/disp.asp?owner=A205&ID=914 -http://www.babyheirlooms.com/catalog/htmlos.cat/041137.1.3501106310 -http://debian.linux.org.tw/debian/dists/frozen/non-free/binary-m68k/mail/?N=D -http://cafe5.daum.net/Cafe-bin/Cafe.cgi/member?cafe=LOTTEcleaning -http://www-d0.fnal.gov/cgi-bin/cvsweb.cgi/root_gui/data/?sortby=date -http://www.concentric.net/~Psaros/DbzUncensored/editorial/edit06-07-98.html -http://www.jobvillage.com/channel/jobs/travel/travel_guide/b.4897.g.5093.html -http://www.jobvillage.com/channel/jobs/travel/travel_guide/b.4897.g.5070.html -http://www.cricket.org/link_to_database/ARCHIVE/1999/OTHERS+ICC/NL_LOCAL/EERSTEKL/VCC_ASIAN-SHAH_EERSTEKL_16MAY1999.html -http://health.phinfo.sc.cn/navigator/illness_treatment/diseases_conditions/bone_diseases/spinal_column_injury/default.htm -http://cn.egroups.com/message/dfwscan/1412 -http://www.babyheirlooms.com/catalog/htmlos.cat/001255.1.1999922108 -http://ibm1.cicrp.jussieu.fr/ibmc/classref/ref/UFullStopNumber_DSC.htm -http://pda.tucows.fi/palm/adnload/33651_21862.html -http://www.fogdog.com/cedroID/ssd3040183330232/nav/products/nhl/chicago_blackhawks/fan/gender/fashion_polo_shirts/ -http://www.fogdog.com/cedroID/ssd3040183330232/nav/products/nhl/chicago_blackhawks/fan/gender/nylon_jackets/ -http://www.5a8.com/book/wg/zpj/d/delaisai/mgbj/004.htm -http://www.5a8.com/book/wg/zpj/d/delaisai/mgbj/050.htm -http://jars.developer.com//classes/jresout.cgi?resource=1133 -http://dwp.bigplanet.com/billbritton/files/edit.nhtml -http://members.tripod.co.jp/snow4/?D=A -http://www.lanoticia.com.ni/cronologico/2000/julio/15sabado/capital/capital5.html -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1996/4/0/870960/ -http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1996/4/0/870950/ -http://ftp.ccu.edu.tw/pub/packages/dns/bind/src/8.1.1/ -http://www.chez.com/photographies/photos/paysage/page8.htm -http://www.ayto-malaga.es/Organismos/Urbanismo/PGMOM/Hojas/calificacion/3/47/34734.htm -http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=3,24,5,18 -http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=9,24,5,18 -http://variety.studiostore.com/browse/STARWARSTRIL/PHOTO/b.MOVIES%20STARWARSSAGA%20STARWARSTRIL/s.5FhZToe4 -http://www.stud.ntnu.no/~kjonigse/pod/ -http://eastday.com/epublish/gb/paper10/20001025/class001000011/hwz225792.htm -http://eastday.com/epublish/gb/paper10/20001025/class001000011/hwz225253.htm -http://www.jamba.de/KNet/_KNet-KdS8j1-IHd-13g8y/browse.de/node.0/cergpnwyt -http://www.la-verdad.com/pg000828/suscr/primera.htm -http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/listUnseen/fol/100020/20,0/1338881 -http://ftp.du.se/disk4/FreeBSD/ports/ports/japanese/libicq/pkg-comment -http://www.geocities.com/SunsetStrip/Towers/2395/ -http://www.geocities.com/joanna_luo -http://www.geocities.com/eric_wang_tafe -http://www.geocities.com/shsugiharto -http://wynnsystems.com/79I_5ase/seek/modifyUser.html -http://www.uk.cricket.org/link_to_database/INTERACTIVE/REVIEWS/BOOKS/barry14.html -http://perso.wanadoo.fr/alain.falgas/poesie1.htm -http://www.linux.com/networking/network/windows_nt/support/tools/SAP/ -http://www.rdnet.nl/provstaten1999/491ps.html -http://www.thisislancashire.co.uk/lancashire/archive/1998/03/19/FEATURES3VQ.html -http://myhome.naver.com/myclass46 -http://www.bride.ru/htcgi/ladies/in-26-30/index3.html -http://www.internet-verzeichnis.de/branchen/schuhreparaturen/nordrhein-westfalen/ -http://dk.egroups.com/post/SonyMavica?act=reply&messageNum=3370 -http://www.sneezy.org/Databases/Composers/Instrumentation/008889.html -http://www.sneezy.org/Databases/Composers/Instrumentation/009161.html -http://fatema2.math.nat.tu-bs.de/doc/sdb/de/html/keylist.LARGEEBDA.html -http://ssb.no/kommuner/hoyre_side.cgi?region=1931 -http://www.egroups.com/subscribe/mentemalata -http://www.debian.org.cn/Bugs/db/67/67056-b.html -http://dk.egroups.com/message/ssrdistribution/775?source=1 -http://link.fastpartner.com/do/session/600429/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/shopnett.php -http://ftp.uk.debian.org/debian/dists/stable/main/binary-arm/text/?D=A -http://www.bemi-immobilien.de/IIM-Teil/Startseite/Top-Darlehens-Konditionen/Gemeinsam/3d-service/Startseite/Gemeinsam/erreichenPartner/Top-Darlehens-Konditionen/anforderungsformular.htm -http://www.fujian-window.com/Fujian_w/news/mdrb/000816t/1_4.html -http://scholar.lib.vt.edu/VA-news/WDBJ-7/script_archives/98/0798/070498/?D=A -http://polygraph.ircache.net:8181/services/define/html/President.asp -http://old-maps.co.uk/10lancs191/HTML/nav_19034001g.htm -http://www.hanter21.co.kr/NetBBS/Bbs.dll/prdata/lst/qqa/f/qqo/000D/zka/B2-kB2-r -http://w3.webtourist.net/travel/europe/italy/milan/quarkallsuites.htm -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,5+0,0-9,6-0,1 -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=brillantant&l=fr -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=brillantais&l=fr -http://www.mathquest.com/~sarah/HTMLthreads/geopre.descriptions.html -http://www.retrobytes.org/classiccmp/9706/msg00827.html -http://www.retrobytes.org/classiccmp/9706/msg01408.html -http://www.rdnet.nl/provstaten1999/552ps.html -http://retailer.gocollect.com/do/session/1912828/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/checkout/shopping_cart.asp -http://retailer.gocollect.com/do/session/1912828/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/limited_editions.asp -http://retailer.gocollect.com/do/session/1912828/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/privacy_policy.asp -http://de.news.yahoo.com/000322/36/nfqj.html -http://www.kl.gz.cn/~cco/FUNA022K.htm -http://www.launch.com/music/artistpage/pvn_content/0,5219,1013738_videos,00.html -http://www14.freeweb.ne.jp/play/kiryuus/keith-burn1-end.htm -http://variety.studiostore.com/help/b.MOVIES%20STARWARSSAGA%20STARWARSTRIL/s.BmesFhV7 -http://biblioteca.upv.es/bib/doc/doc_siglibros/1828105/26/25/////MLTPAID/Materia%20Lengua%20inglesa%20técnica:%20254/V -http://www.outpersonals.com/cgi-bin/w3com/pws/out/_AhIPkFr0_eq7P6TUMbkQGJgpHJOXqtNLZQ55qFmeZARJaJUKHP9RBX3tPWaLEWVLZ_-PAErnbukTTJzs-x0hew4G_r3S85M8fDFaJcIVi3EA4TxNjTbbGIaSLhr8VdNICuBwhPmgZEt662B -http://www.outpersonals.com/cgi-bin/w3com/pws/out/IxhI6dPotFAZDugwPbV2pjvsgvIvAP-oFtIZfMptEKMo48cUO8RmvG3Akuk2tktzM_RYBY3yIQE6nl7I2moLEV_nScO7wTfWpFfPR7LHZ3ntJxKS8-a_IukWT4q_o6mjhGw8SSwm -http://www.rge.com/pub/languages/perl/clpa/1995-11/171 -http://www.rge.com/pub/languages/perl/clpa/1995-11/186 -http://www.newmgm.com/cgi-bin/c2k/title_talent.html&id=146091&title_star=FOURFEAT -http://www.koreaweekly.co.kr/entertain/book/200009/en20000922185938E701133.htm -http://www.koreaweekly.co.kr/entertain/book/200008/en20000824183337E701112.htm -http://www.genome.wustl.edu:8021/pub/gsc10/nci/wl/wl72/?N=D -http://yp.gates96.com/13/50/70/33.html -http://yp.gates96.com/13/50/70/36.html -http://yp.gates96.com/13/50/70/53.html -http://yp.gates96.com/13/50/71/74.html -http://yp.gates96.com/13/50/72/13.html -http://yp.gates96.com/13/50/72/17.html -http://yp.gates96.com/13/50/72/83.html -http://yp.gates96.com/13/50/73/48.html -http://yp.gates96.com/13/50/73/79.html -http://yp.gates96.com/13/50/73/96.html -http://yp.gates96.com/13/50/74/14.html -http://yp.gates96.com/13/50/74/57.html -http://yp.gates96.com/13/50/75/13.html -http://yp.gates96.com/13/50/75/19.html -http://yp.gates96.com/13/50/75/30.html -http://yp.gates96.com/13/50/75/42.html -http://yp.gates96.com/13/50/75/53.html -http://yp.gates96.com/13/50/75/90.html -http://yp.gates96.com/13/50/77/45.html -http://yp.gates96.com/13/50/77/51.html -http://yp.gates96.com/13/50/77/79.html -http://yp.gates96.com/13/50/78/12.html -http://yp.gates96.com/13/50/78/47.html -http://yp.gates96.com/13/50/78/69.html -http://yp.gates96.com/13/50/78/96.html -http://www.tel.de/s/M/MSS.htm -http://linux.usu.edu/LDP/LDP/LG/issue23/shoham/node4.html -http://www.monaco.gouv.mc/dataweb/gouvmc.nsf/(NewsActu)/d28eaee29b3287d4c1256905004e1ef1!OpenDocument&ExpandSection=9,3,10.1,7,10.4,10.2,5,8,4 -http://fi.egroups.com/post/romtrade?act=reply&messageNum=5198 -http://www.outpersonals.com/cgi-bin/w3com/pws/out/erhIHCd-6X--WwWIQBR9tYYraJWo8ugur0GyAl8pg21sE-lotAURKodv9HAYnRuTT4ZM0aCKsA5ZVLlq8sgiFNqA4DyAY_GVTyPIEARrzArj8JrWabVCSpg03afQ_Xg3DaCQA17080y7T4EZ -http://oneplace.adbureau.net/accipiter/adclick/site=ONEPLACE/area=INDEX/POSITION=BLOCK_1/AAMSZ=120x90/ACC_RANDOM=619055616855 -http://cafe6.daum.net/Cafe-bin/Bbs.cgi/MyLoveNYpds/qry/zka/B2-kB23m/qqatt/^ -http://cafe6.daum.net/Cafe-bin/Bbs.cgi/MyLoveNYpds/qry/zka/B2-kB2-s/qqatt/^ -http://sas.uoregon.edu/sashtml/proc/z0292518.htm -http://www02.geocities.co.jp/PowderRoom-Rose/1346/flower02image.html -http://www02.geocities.co.jp/PowderRoom-Rose/1346/sozaiheart2.html -http://www.jamba.de/KNet/_KNet-sXN8j1-9Hd-13ej3/admLogin.de/node.0/cdn3r3qy3 -http://iccardreader.co.kr/ -http://online.linux.tucows.com/conhtml/ser_irc_size.html -http://www.fogdog.com/cedroID/ssd3040183339940/nav/products/winter_sports/1b/bibs/ -http://www.fogdog.com/cedroID/ssd3040183339940/nav/products/winter_sports/1c/jackets/ -http://www.fogdog.com/cedroID/ssd3040183339940/nav/products/winter_sports/1d/heavyweight_tops/ -http://www.affiliate.hpstore.hp.co.uk/do/session/380883/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp -http://www.kaos.dk/sex-riddle/k/a/k/i/l/y/t/c/ -http://www.kaos.dk/sex-riddle/k/a/k/i/l/y/t/o/ -http://ftp1.se.debian.org/debian/dists/stable/main/disks-alpha/2.2.8-2000-03-08/jensen/ -http://213.36.119.69/do/session/153006/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/contact/recrute.htm -http://www10.freeweb.ne.jp/photo/myukun2/cosplay/000130/0130_40.htm -http://l-infonet.phkk.fi/fi/TIETOPALVELUT/JULKINEN+HALLINTO/tiedonhaku/artikkelit/hakupalvelut/l%E4%E4ketiede/tietokannat/ -http://202.109.72.57/article/20000903/67099.htm -http://www.outpersonals.com/cgi-bin/w3com/pws/out/5xhIsrJ5LBhn_gBogN2-VgQ1DA6WvBlLMjSoxYeQAJ1ig69sK1i1DhQ5hA3iOw7y6Wb_HDA2rkG5aJy9DrUMZxD31cyUqEqg7LeZ3pssb70DsyPc1sGCTVIRFBz1Nb_1ikEcJ3ds -http://ftp.gwdg.de/pub/misc/standards/infomagic/nist/oiw/agreemnt/read_me.txt -http://linuxberg.arrakis.es/conhtml/adnload/8894_17109.html -http://ring.toyama-ix.net/archives/pc/winsock-l/WWW-Browsers/Plug-In/ppp16124.txt -http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20040288/-5,-1,0,B/frameset&F=bp20040286&1,1 -http://ftp.darenet.dk/tucows/winme/adnload/137475_28966.html -http://ftp.darenet.dk/tucows/winme/adnload/137525_29009.html -http://elib.zib.de/pub/UserHome/Mueller/Course/Tutorial/Postscript/US/?M=A -http://greenpeace.lu/Admin/usage/weekly/1999/01/03/ -http://greenpeace.lu/Admin/usage/weekly/1998/04/26/ -http://greenpeace.lu/Admin/usage/weekly/1998/08/16/ -http://greenpeace.lu/Admin/usage/weekly/1997/10/12/ -http://retailer.gocollect.com/do/session/1912819/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/index.asp -http://www.kusastro.kyoto-u.ac.jp/LCs/index/AURAU.html -http://www.linux.com/networking/network/windows_nt/support/microsoft/Red_Hat/ -http://www.linux.com/networking/network/windows_nt/support/microsoft/operating_system/ -http://www.linux.com/networking/network/windows_nt/support/microsoft/SAP/ -http://www.linux.com/networking/network/windows_nt/support/microsoft/Unix/ -http://www.linux.com/networking/network/windows_nt/support/microsoft/pop-3/ -http://www.cs.rit.edu/photo_album/smr3632.html -http://www.cpan.dk/CPAN/modules/by-authors/id/C/CH/CHRMASTO/?D=A -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/misc/unitest/lit/music/midi/ego.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/misc/unitest/lit/music/midi/lit/multiple.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/misc/unitest/lit/music/midi/misc/dissert.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/misc/unitest/lit/music/midi/misc/peanuts.html -http://www.eastsidejournal.com/sited/retr_story.pl/25409 -http://yp.gates96.com/8/46/50/23.html -http://yp.gates96.com/8/46/52/6.html -http://yp.gates96.com/8/46/52/10.html -http://yp.gates96.com/8/46/52/18.html -http://yp.gates96.com/8/46/52/25.html -http://yp.gates96.com/8/46/53/78.html -http://yp.gates96.com/8/46/53/95.html -http://yp.gates96.com/8/46/54/26.html -http://yp.gates96.com/8/46/54/41.html -http://yp.gates96.com/8/46/54/64.html -http://yp.gates96.com/8/46/54/76.html -http://yp.gates96.com/8/46/54/92.html -http://yp.gates96.com/8/46/55/62.html -http://yp.gates96.com/8/46/55/94.html -http://yp.gates96.com/8/46/55/98.html -http://yp.gates96.com/8/46/56/19.html -http://yp.gates96.com/8/46/56/42.html -http://yp.gates96.com/8/46/56/86.html -http://yp.gates96.com/8/46/58/53.html -http://yp.gates96.com/8/46/58/57.html -http://yp.gates96.com/8/46/59/41.html -http://yp.gates96.com/8/46/59/44.html -http://yp.gates96.com/8/46/59/84.html -http://yp.gates96.com/8/46/59/99.html -http://www.158.com.cn/news/2000/09/03/58946.htm -http://www.pobladores.com/territorios/juegos/Shanodin/pagina/2 -http://www.otemachi.ibm.co.jp/pc/vlp/ca20/32l9068/price.html -http://www.gutenberg2000.de/lessing/sinnged/sinna10.htm -http://www.gutenberg2000.de/lessing/sinnged/sinn138.htm -http://www.gutenberg2000.de/lessing/sinnged/sinnc27.htm -http://www.gutenberg2000.de/lessing/sinnged/sinnc06.htm -http://calcul.si.uji.es/Programes/SAS/stat/chap4/sect5.htm -http://calcul.si.uji.es/Programes/SAS/stat/chap4/sect6.htm -http://link.fastpartner.com/do/session/600436/vsid/3194/tid/3194/cid/137201/mid/1060/rid/2105/chid/3194/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/learn.htm -http://www.linux.com/networking/network/red_hat/performance/workstations/business/ -http://ftp.dei.uc.pt/pub/faqs/backrubs/faq/?D=A -http://www2.el-mundo.es/nuevaeconomia/2000/NE022/NE022-16b.html -http://ring.toyama-ix.net/pub/linux/linuxppc-jp/2.0/UsersGuide/?N=D -http://www.egroups.com/message/swchicks-rpg/763 -http://webraft.its.unimelb.edu.au/705195/students/caitlinb/pub/?N=D -http://cn.egroups.com/message/indexinvesting/17 -http://networkdesigner.subportal.com/sn/Programming/Setup_Utilities/11753.html -http://www.imagestation.com/member/?name=Mermaid34v&c=1 -http://crn.com/Components/TalkBack/tb-read.asp?ArticleId=8463 -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/misc/lit/computers/music/linux/misc/thoughts/turingtest.html -http://www.egroups.com/message/house_caliburnus/1479 -http://pub14.ezboard.com/BBSForum.showForumSearch?boardName=bleemtest -http://spaceports.tucows.com/winme/adnload/136943_28461.html -http://www.cerent.com/warp/public/767/spcl/vaccess/req-lab.html -http://www.ualberta.ca/icons/icons/numbers/Big-orange-thin/ -http://www.gencat.es/cgi-bin/bc/drawer.cgi/LD/0004/A00027?98 -http://interhotel.com/romania/en/hoteles/49235.html -http://www.infoscape.com.cn:8171/nf/0001/19/nfzx1908.htm -http://www.hurriyetim.com/akdeniz/turk/00/05/25/akdhab/62akd.htm -http://www.hurriyetim.com/akdeniz/turk/00/05/25/akdhab/38akd.htm -http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/woody-jp/contrib/binary-ia64/misc/?M=A -http://www.angelfire.com/vt/Mystical2 -http://www.indonesiansources.com/HELP/COOKIES.HTM -http://members.nbci.com/cmeadows/gvi/45regt/45gvibat.html -http://members.nbci.com/cmeadows/gvi/45regt/45gvicob.html -http://landview.census.gov/hhes/www/housing/soma/char96/ch96tab5.html -http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPENNSYLVANIAdENERGYdASSISTANCEdANDdCONSERVATIONdACT.HTM -http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPENNSYLVANIAdSEWAGEdFACILITIESdACT.HTM -http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPODIATRYdPRACTICEdACT.HTM -http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPRESIDENT.HTM -http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPRIVATEdMORTGAGEdINSURANCEdACT.HTM -http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPROJECTd500.HTM -http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPUBLICdWORKSdCONTRACTdREGULATIONdLAW.HTM -http://oss.sgi.com/cgi-bin/cvsweb.cgi/inventor/apps/samples/4view/Attic/Imakefile?only_with_tag=MAIN -http://oss.sgi.com/cgi-bin/cvsweb.cgi/inventor/apps/samples/4view/Attic/Imakefile?only_with_tag=HEAD -http://www4.50megs.com/justiceinn/charpages/leaves/707.html -http://www4.50megs.com/justiceinn/charpages/leaves/859.html -http://www4.50megs.com/justiceinn/charpages/leaves/171.html -http://www4.50megs.com/justiceinn/charpages/leaves/114.html -http://megalink.tucows.com/win2k/adnload/38582_28844.html -http://members.tripod.lycos.nl/monthlysports/hello_and_welkom_at_the_new.htm -http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/nbrnberwo4558.html -http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/nbrnberwo4462.html -http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/nbrnberwo4813.html -http://pub4.ezboard.com/factiveprodiscussioncommunityhottopicsresidentsandalcohol.showMessage?topicID=3.topic -http://207.138.41.133/subscribe/IndoVStudio -http://www.biuemountain.com/eng3/karen/EArejoice.html -http://polygraph.ircache.net:8181/wwwboard/capabilities/http_-2www.westnebr.net/http_-2www.excite.com/grservic.htm -http://pub7.ezboard.com/fturonneuemissionennebenwerteundsonstigewerte.showAddReplyScreenFromWeb?topicID=58.topic -http://dk.egroups.com/post/badbart-showdown?act=forward&messageNum=679 -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus62920/eus62921/eus64894/eus170276/eus163832/ -http://www.algonet.se/~d88628/engelsk/various.htm -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=220&discrim=220,215,11 -http://www.z-plus.de/TEXTE/INETCO/AUSG20000524/text7.html -http://www.gbnf.com/genealog2/varner/html/d0059/I11636.HTM -http://www.musiciansfriend.com/ex/ds/live/001030183152064208037007463633 -http://www.musiciansfriend.com/ex/ds/home/001030183152064208037007463633?dbase=info,order_info.html -http://www.musiciansfriend.com/ex/ds/guitar/amps/001030183152064208037007463633?dbase=info,contact.html -http://pix.egroups.com/message/ipe/1642?source=1 -http://213.36.119.69/do/session/153008/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://resa.travelprice.com/CallCenter/InitCommunicationAgence -http://213.36.119.69/do/session/153008/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/DE_DE/ -http://www.egroups.com/message/peninsulaserv/567 -http://www.scifi.com/bboard/browse.cgi/1/5/545/12425?pnum=3 -http://no.egroups.com/post/icc-info?act=reply&messageNum=759 -http://www.chaos.dk/sexriddle/s/e/x/e/c/s/l/ -http://www.chaos.dk/sexriddle/s/e/x/e/c/s/t/ -http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/search/972959630-- -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=6,29,20,36,32 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=7,29,20,36,32 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=27,29,20,36,32 -http://dada.linuxberg.com/gnomehtml/adnload/31471_2540.html -http://augustasports.com/football99/college/box_50347.shtml -http://augustasports.com/football99/college/box_50365.shtml -http://augustasports.com/football99/college/box_50423.shtml -http://www.linux.com/networking/network/enterprise/e-commerce/management/open_source/ -http://usol.pdacentral.com/winnt/preview/1946.html -http://usol.pdacentral.com/winnt/preview/78287.html -http://usol.pdacentral.com/winnt/preview/1338.html -http://usol.pdacentral.com/winnt/preview/12860.html -http://usol.pdacentral.com/winnt/preview/6920.html -http://usol.pdacentral.com/winnt/preview/51381.html -http://ring.htcn.ne.jp/pub/lang/perl/CPAN/authors/id/W/WO/?N=D -http://grybrd.subportal.com/sn/Network_and_Internet/Text_Chat_Clients/index1.html -http://www.gurlpages.com/lacej/part13.html -http://ring.shibaura-it.ac.jp/archives/mac/info-mac/game/com/wolf/?D=A -http://cgi.cnnsi.com/baseball/mlb/nl/gamelog/2000/10/07/mets_giants/ -http://my.egroups.com/messages/not_honyaku/236 -http://members.tripod.com/agran_gassendi/Countdown.htm -http://www.tccomputers.com/cgi-bin/bp/1878637479/showcase/showcase.htm -http://207.138.41.133/message/AikensTrivia/264 -http://207.138.41.133/message/AikensTrivia/276 -http://www.shumway.org/thetree/ped13583.htm -http://link.fastpartner.com/do/session/600421/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/dk/ -http://link.fastpartner.com/do/session/600421/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/politiken.php -http://link.fastpartner.com/do/session/600421/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/jobs.htm -http://in.egroups.com/message/canada/856 -http://in.egroups.com/message/canada/883 -http://debian.tod.net/OpenBSD/src/lib/libssl/README.OPENBSD -http://www.emerchandise.com/main/EMERCH/s.1M38gYrZ -http://www.emerchandise.com/browse/TOYSTORY2/FIGURINE/b.FAVORITES%20COMICS%20ANIMFEAT%20TOYSTORY2/s.1M38gYrZ -http://quotidiano.monrif.net/chan/cronaca_nazionale:410879.1:/1999/12/24 -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=baignes&l=fr -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=baignas&l=fr -http://www.egroups.com/message/swchicks-rpg/93 -http://usuarios.tripod.es/jlgolis/id142_l.htm -http://www9.freeweb.ne.jp/shopping/nossy/baby/200-59.html -http://www9.freeweb.ne.jp/shopping/nossy/baby/305-36.html -http://ftp.tku.edu.tw/OS/NetBSD/NetBSD-1.3.2/alpha/binary/kernel/?D=A -http://www-1.cisco.com/univercd/cc/td/doc/product/wanbu/82/access/fpmpmm12/fpmmappe.pdf -http://pub17.ezboard.com/fartofnorrathfavoritepaintings.threadControl?topicID=56.topic -http://itcareers.careercast.com/texis/it/itjs/+pwwBmew_D86eGrwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyXwotoBwcaMwDwtnanmowcdt1naqconDBaGncwBodD5ropa5BGwBnton5amnVncdpaMwGAnBoDtanMwocaGn51MnaMFqryfHfREIDzmbwwwpBmFe-B-dehxwww5rmXmwwBrmeZpwww/morelike.html -http://www.thestateofcolorado.com/aoubicycling.html -http://www.freespeech.org/DISjak/disnews/maillist.html -http://www.freespeech.org/DISjak/sport/schwimm/bestlist.html -http://www.amigos.com/cgi-bin/w3com/pws/ffe/_MhIXE2wgPJZ1X047wqRwM-olUgaV3vI6fBPmDsoD0c26y7TrHjLUhhhTSIZ2PRmqLmBVyInWJLkLGkKScrdFyX1uyXCZhvaWFvbnSFioewAURJcXQC-hJE5KczVcMUiq3ncgKjQh7nynQEu662C -http://m.home.cern.ch/m/mrashid/www/cuisine/cuisin13.htm -http://m.home.cern.ch/m/mrashid/www/cuisine/cuisin28.htm -http://www.dayoo.com/channel/stock/news/cjzh/09/0921/06.htm -http://webcvs.kde.org/cgi-bin/cvsweb.cgi/KodeKnight/lib/Makefile.am?r1=1.3&sortby=rev -http://www.fogdog.com/cedroID/ssd3040183315779/nav/products/featured_brands/12p/all/ -http://www.fogdog.com/cedroID/ssd3040183315779/nav/stores/baseball/ -http://www.fogdog.com/cedroID/ssd3040183315779/nav/stores/squash/ -http://www9.hmv.co.uk:5555/do/session/1347832/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/newmenu.html -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=9,36,8 -http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=24,36,8 -http://www.hig.se/(append,countdown,set,sqloutput,sqltable)/~jackson/roxen/ -http://ring.jec.ad.jp/archives/linux/kernel.org/kernel/people/mingo/raid-patches/raid-2.2.17-A0 -http://www.wsrn.com/apps/links/?s=BKIRF -http://www.auto.ru/wwwboards/mercedes/0163/ -http://www.auto.ru/wwwboards/mercedes/0142/ -http://www.auto.ru/wwwboards/mercedes/0132/ -http://www.auto.ru/wwwboards/mercedes/0002/ -http://www.auto.ru/wwwboard/mercedes/0014/ -http://www.presa.spb.ru/newspapers/dp/arts/dp-178-art-12.html -http://pub8.ezboard.com/fnirlcomcenterracetalk.showMessage?topicID=8.topic -http://www.allhealth.com/pregnancy/labor/qa/0,3105,599,00.html -http://www3.newstimes.com/archive99/sep0499/lce.htm -http://jupiter.u-3mrs.fr/~msc41www/PSHTM/PS4330.HTM -http://www.gpul.org/ftp/os/linux/cd-images/other/suse/dosutils/pfdisktc/ -http://platsbanken.amv.se/kap/text/88/001025,010050,240907,10,0107051488.shtml -http://www.angel-bastel-zoo.de/detail/detail_811_3.htm -http://members.nbci.com/cmeadows/gvi/3battn/3bgvicob.html -http://www.chaos.dk/sexriddle/s/e/x/x/p/o/r/ -http://www.asiastockwatch.com/sg/Forum/ForumDetails/0,1819,561_1_2:15,00.html -http://mysanantonio.sportshuddle.com/sports/football/health/advisors/workouts/huff12.asp -http://mysanantonio.sportshuddle.com/sports/football/health/advisors/workouts/huff1.asp -http://ring.data-hotel.net/pub/linux/debian/debian-jp/dists/unstable/contrib/source/math/ -http://www.tel.de/s/I/IFG.htm -http://www.tel.de/s/I/IFHV.htm -http://chat.hr-online.de/fs/buecherbuecher/buch/kerr.html -http://mirror.cc.utsunomiya-u.ac.jp/mirror/FreeBSD/branches/2.2-stable/src/sys/dev/ -http://mirror.cc.utsunomiya-u.ac.jp/mirror/FreeBSD/branches/2.2-stable/src/sys/nfs/ -http://www.malaysia.net/lists/sangkancil/1998-12/msg01044.html -http://biblio.cesga.es:81/search*gag/aFerreiro,+Martín/aferreiro+martin/-5,1,1,E/frameset&F=aferreiro+manuel&4,,4 -http://www.ferien-immobilien.de/DominikanischeRep/verkauf/Exklusiv-IB/Startseite/Gemeinsam/MarketingStrategie/Exklusiv-IB/Startseite/Gemeinsam/erreichenPartner/email3d.htm -http://www.ferien-immobilien.de/DominikanischeRep/verkauf/Exklusiv-IB/Startseite/Gemeinsam/MarketingStrategie/Exklusiv-IB/Startseite/Gemeinsam/IIMMitglieder.htm -http://chunma.yeungnam.ac.kr/~home/home13/msgboard/msgboard.cgi?cmd=list&stat=start -http://link.fastpartner.com/do/session/600413/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php -http://www.eyeball.symantec.co.uk/region/se/sepress/20000418111220.htm -http://www.rezel.enst.fr/ftp/linux/distributions/debian/CD-1/dists/frozen/main/binary-all/news/?D=A -http://www.latimes.com/editions/orange/20001028/p000103070_ome0014.html -http://www.chaos.dk/sexriddle/j/c/u/t/ -http://cometweb01.comet.co.uk/do!session=132050&vsid=694&tid=20&cid=37044&mid=1000&rid=1060&chid=1711&url=eqqLmwlGltt5tkkHbqpLZXmLbkZHljlKaltLkilLXalKfkaLbukKeqjLi1 -http://perso.wanadoo.fr/jm.michaud/electronique_index.htm -http://dk.egroups.com/messages/Gunsmithing/1446?viscount=-30 -http://www-d0.fnal.gov/d0dist/dist/releases/psim01.02.00/pmcs_met/VERSION -http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/authors/id/P/PM/?N=D -http://www.movieguide.com/pressroom/events/amcinema96/award_amcinema965.html -http://www.sda.t-online.de/reise/index/aktrex201.htm -http://dic.empas.com/show.tsp/SMASHER -http://www.3w-posters.com/tomlinson.htm -http://www.3w-posters.com/tuttle.htm -http://www.xmission.com/(art,dots,ftp,geek,misc,music,caffiene,art,toys,dots,edge,misc,shopping,ftp,places,privacy,geek,cuseeme,apocalypse,people,stuffiuse,places,stuffiuse)/~bill/links.html -http://www.osiris.978.org/~brianr/mirrors/olga/main/g/gangi_mike/?N=D -http://www.best.com/~workpage/g/57/300g.htm -http://www.cyd.com.cn/zqb/19991109/GB/9677^Q212.htm -http://edu.news.chinaren.com/161/10112157.shtml -http://users.info.unicaen.fr/~jjousset/perso/html/entrainperso/page.html -http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=destituiscono&l=it -http://www.uk.multimap.com/p/browse.cgi?pc=B771AA&cat=loc -http://www.auxerre.culture.gouv.fr/culture/actualites/conferen/bonneuil-duffour.htm -http://www.auxerre.culture.gouv.fr/culture/actualites/communiq/mediaBonneuil-Duffour.htm -http://www.ancientsites.com/~Ftagn_Sithathor -http://biblioteca.upv.es/bib/doc/doc_fisbd/86/127697//C/1820009/0////25/N/MLTPAI -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53930/eus169714/eus169722/eus542057/eus542410/ -http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53930/eus169714/eus169722/eus542057/eus542106/ -http://pub26.ezboard.com/fathanasiafrm1.showMessage?topicID=113.topic -http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=186&discrim=186,226,251 -http://www.linux.com/networking/network/community/future/news/services/ -http://www.linux.com/networking/network/community/future/news/operating_system/ -http://www.linux.com/networking/network/community/future/news/?kw_offset=50 -http://www.linux.com/networking/network/development/unix/open_source/commercial/ -http://ring.shibaura-it.ac.jp/pub/misc/ham/funet/packet/00Index -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+20,0+17,0-( -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+20,0+17,0-9,1 -http://www.vorlesungen.uni-osnabrueck.de/informatik/c98/aufgaben/code/aufg50/ProcessInfo/ProcessInfo.bundle/Resources/?D=A -http://wap.jamba.de/KNet/_KNet-xOQ8j1-xHd-13fk7/showInfo-special1.de/node.0/cde7f1uou -http://nx5.salon.com/books/col/keil/2000/05/02/too_old/index2.html -http://pcmagazin.de/news/artikel/1999/04/29016-wf.htm -http://www.redrival.com/rgrascher/ -http://208.184.36.144/cwi/subscriptions/privacy_policy/0,1323,NAV47-68-85-98_STO52856,00.html -http://www.staroriental.net/nav/soeg_c/ihf,aol,n12,1,TVB香港å°å§2000.html -http://www.staroriental.net/nav/soeg_c/ihf,aol,n12,6,TVB香港å°å§2000.html -http://166.111.104.242/uscode/30/541b.head.html -http://stocks.tradingcharts.com/stocks/charts/fwrx/dchart.php?S=fwrx&T=d -http://genforum.genealogy.com/cgi-bin/print.cgi?plemmons::57.html -http://www.geocities.co.jp/Hollywood-Studio/3572/geodiary.html -http://www.luf.org/~jwills/LufWiki/view.cgi/Tech/ -http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/cs1/labs/Ex01/arr00/?M=A -http://citeseer.nj.nec.com/ps/332798 -http://citeseer.nj.nec.com/addcomment/332798 -http://citeseer.nj.nec.com/cidcontext/4075337 -http://ftp.te.fcu.edu.tw/cpatch/helputil/answerworks/?M=A -http://ftp.te.fcu.edu.tw/cpatch/helputil/answerworks/d2hpro4ethanks.htm -http://link.fastpartner.com/do/session/600423/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php -http://link.fastpartner.com/do/session/600423/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/ -http://library.cuhk.edu.hk/search*chi/dEnglish+language+--+Clauses./denglish+language+clauses/7,-1,0,B/browse -http://www04.u-page.so-net.ne.jp/yd5/yuma/top/home.html -http://www.smartshop.com/cgi-bin/main.cgi?c=1905&ssa=26 -http://www.smartshop.com/cgi-bin/main.cgi?c=1943&ssa=26 -http://se.egroups.com/dir/Business/Management/Project_and_Program_Management/Training?st=10 -http://www.hpl.online.sh.cn/WENXUE/tongsuo/wuxia/gulong/xueying/_vti_cnf/hs~001.htm -http://news.medscape.com/adis/PEON/public/archive/1999/toc-0221.html -http://news.medscape.com/adis/PEON/public/archive/1999/toc-0197.html -http://tucows.hongkong.com/winnt/adnload/4256_29575.html -http://www.etang.com/local/shenzhen/shopping/shop/0318mans02.htm -http://www.etang.com/local/shenzhen/shopping/shop/0319foll.htm -http://www.etang.com/local/shenzhen/shopping/shop/0319jialjs.htm -http://www.staffan.addr.com/cgi-bin/woda/icq.cgi/Edit?_id=2a5e -http://www.linux.com/networking/network/operating_system/kernel/distro/?printable=yes -http://www.linux.com/networking/network/operating_system/kernel/distro/commercial/ -http://www.linux.com/networking/network/operating_system/kernel/distro/white_dwarf/ -http://dir.dig.co.kr/parents/textbook/20301030101.html -http://www.affiliate.hpstore.hp.co.uk/do/session/380895/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/CASHBACK/entry.asp -http://ccuftp.ccu.edu.tw/pub1/chinese/linux/clinux/c1/?N=D -http://cgi.cnnsi.com/basketball/college/women/boxscores/2000/03/07/cbp_rak -http://www.adcentral.com/cgi-bin/w3com/pws/adsites/5BRIztXQWHs_H_kyq8hmyrHpmCLb5RfQ09-DcKP1B6mZibAiJTLy1w3iiFS15WkFiCHMuMtjNK5FtHPDtZ7rxwckgoj0GaicnAZxhJLQ3zWaLoNUq8eTpG7wCxe3TWAb66jt -http://www.varsity.cam.ac.uk/varsity/live/2000/listings.nsf/44bbd1c2a6305036802567fb0081c76b!OpenView&Grid=1&Date=1999-04-06 -http://students.lsu.edu/students/main.nsf/Pages/CSISAJ1!OpenDocument&ExpandSection=15,21,5,4 -http://students.lsu.edu/students/main.nsf/Pages/CSISAJ1!OpenDocument&ExpandSection=18,21,5,4 -http://www.getplus.co.jp/category/catinet.homepagew2.asp -http://www.motorradversand.de/cgi-bin/antrieb/kettensatz_komplett_suzuki/RK82K872/beurteilung.htm -http://202.99.23.245/zdxw/13/20000328/200003281335.html -http://proxy.tiscover.com/1Root/Kontinent/6/Staat/7/Bundesland/22/Ort/120/Infrastruktur/299270/Homepage/homepage...1.html -http://www.jamba.de/KNet/_KNet-RcO8j1-cHd-13eq4/browse.de/node.0/cdel3j591 -http://www.jamba.de/KNet/_KNet-RcO8j1-cHd-13eqf/showInfo-wir.de/node.0/cde7f1uou -http://pub6.ezboard.com/fcrazyassmb47001generalshiznit.threadControl?topicID=685.topic -http://perso.infonie.fr/imagestld/photojyg5/images/alive5/?D=A -http://members.spree.com/sip1/take5planet/videos.htm -http://ae.boston.com/haiku/vote?haiku_id=4484 -http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd129601192 -http://www.digitaldrucke.de/(aktuell,computer,marktplatz,shopping,verkehr)/suche/uebersicht.html -http://www.digitaldrucke.de/(aktuell,computer,hersteller,marktplatz,verkehr)/_fort/html/themen/computer/hard/herstell.htm -http://bbs.kcm.co.kr/NetBBS/Bbs.dll/kcmmission/lst/qqeq/1/zka/B2-kD2-l/qqo/004A -http://bbs.kcm.co.kr/NetBBS/Bbs.dll/kcmmission/rcm/zka/B2-kD2-l/qqo/004A/qqatt/^ -http://ftp.eq.uc.pt/software/lang/tcl/ftp.scriptics.com/nightly-cvs/tk/library/?S=A -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-141.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-165.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-241.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-239.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-150.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-44.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-12.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-4.html -http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-27.html -http://yp.gates96.com/5/88/50/47.html -http://yp.gates96.com/5/88/50/94.html -http://yp.gates96.com/5/88/51/20.html -http://yp.gates96.com/5/88/52/11.html -http://yp.gates96.com/5/88/52/26.html -http://yp.gates96.com/5/88/53/86.html -http://yp.gates96.com/5/88/53/99.html -http://yp.gates96.com/5/88/54/48.html -http://yp.gates96.com/5/88/55/29.html -http://yp.gates96.com/5/88/55/31.html -http://yp.gates96.com/5/88/55/41.html -http://yp.gates96.com/5/88/55/62.html -http://yp.gates96.com/5/88/55/77.html -http://yp.gates96.com/5/88/56/62.html -http://yp.gates96.com/5/88/56/93.html -http://yp.gates96.com/5/88/59/61.html -http://ceu.fi.udc.es:8000/mc/maillist/99-02/2090.918081010.176207534.html -http://ceu.fi.udc.es:8000/mc/maillist/99-02/1123.920140263.921690399.html -http://ceu.fi.udc.es:8000/mc/maillist/99-02/19089.918231855.610311830.html -http://ceu.fi.udc.es:8000/mc/maillist/99-02/16059.919279797.801472096.html -http://ceu.fi.udc.es:8000/mc/maillist/99-02/24001.919906575.275033199.html -http://ceu.fi.udc.es:8000/mc/maillist/99-02/14848.918256026.548154577.html -http://ceu.fi.udc.es:8000/mc/maillist/99-02/10783.918253985.660158806.html -http://ceu.fi.udc.es:8000/mc/maillist/99-02/27581.918670666.1055622954.html -http://www.activedayton.com/sportsticker/stnd/current/BBH.STAT.FSLKISLTRT.html -http://www.teenplatinum.com/barelylegal/japanesewomen/boots/petitesmall/explodingblowjob/eunuchbodyshots/homosexualass.html -http://books.hyperlink.co.uk/xt1/Methodology_for_the_Harmonization_of_European_Occupational_Accident_Statistics/9282641007 -http://www.jpc-music.com/2563637.htm -http://www.jpc-music.com/8168850.htm -http://www.expage.com/sugarshackstablesapryl -http://www.egroups.com/messages/svlug/31105 -http://www.chinawolf.com/~warson/japan/chichuan/bride/mldxn/009.htm -http://www.chinawolf.com/~warson/japan/chichuan/bride/mldxn/011.htm -http://yp.gates96.com/11/78/70/19.html -http://yp.gates96.com/11/78/70/95.html -http://yp.gates96.com/11/78/71/64.html -http://yp.gates96.com/11/78/71/65.html -http://yp.gates96.com/11/78/72/30.html -http://yp.gates96.com/11/78/73/35.html -http://yp.gates96.com/11/78/74/0.html -http://yp.gates96.com/11/78/75/58.html -http://yp.gates96.com/11/78/76/75.html -http://yp.gates96.com/11/78/77/36.html -http://yp.gates96.com/11/78/77/64.html -http://yp.gates96.com/11/78/78/20.html -http://yp.gates96.com/11/78/78/33.html -http://yp.gates96.com/11/78/78/70.html -http://yp.gates96.com/11/78/78/93.html -http://yp.gates96.com/11/78/79/3.html -http://yp.gates96.com/11/78/79/50.html -http://ben.aspads.net/ex/c/190/649604396 -http://www.lifl.fr/PRIVATE/Manuals/java/jdk1.2/docs/api/java/applet/class-use/AudioClip.html -http://dic.empas.com/show.tsp/?q=cea&f=B -http://beautifulthemes.subportal.com/sn/Utilities/Disk_Maintenance_and_Repair_Utilities/5294.html -http://ustlib.ust.hk/search*chi/anational+bureau+of+economic+research/anational+bureau+of+economic+research/-5,-1,0,E/frameset&F=anational+bureau+of+asian+and+soviet+research+u+s&1,,0 -http://www.canlii.org/ca/regl/dors99-120/art5.html -http://www.canlii.org/ca/regl/dors99-120/partie144284.html -http://www.incestpornstories.com/freshmanteen/eggbirth-canal/loverdrag-queen/birth-canalfull-term/stomachvagina.html -http://www.fashion-j.com/bs/013/013/19.html -http://www.fjtcm.edu.cn/Fujian_w/news/fjgsb/990311t/1-3.htm -http://www.kaos.dk/sex-riddle/k/a/k/i/s/z/r/d/ -http://www.kaos.dk/sex-riddle/k/a/k/i/s/z/r/f/ -http://www.tccomputers.com/cgi-bin/bp/41291345/products/specials/mbbundle.htm -http://www.tccomputers.com/cgi-bin/bp/41291345/services/insight.htm -http://www.tccomputers.com/cgi-bin/bp/41291345/products/batterybackups/batterybackups.htm -http://cartografia.comune.modena.it/Ril_Whip/menuogg/001-100/ME0068c.htm -http://library.bangor.ac.uk/search/cWS+5+V196a+2000/cws++++5+v196+a+2000/7,-1,0,B/frameset&F=cws+++21+e84+1989&5,,12 -http://mindit.netmind.com/proxy/http://www.exposure.aust.com/~promote1/auspalaeo/tectonix/tect1.htm -http://ftp.fi.debian.org/debian/dists/unstable/non-free/binary-i386/shells/?S=A -http://excite.de.netscape.com/unterhaltung/katalog/19344 -http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=25,20,21,29 -http://www.burstnet.com/ads/ad7826a-map.cgi/1708189811 -http://dic.empas.com/show.tsp/?s=b&q=CONSIDERABLE -http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/t/c/ -http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/t/h/ -http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/t/n/ -http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/t/x/ -http://www.cbe21.com.cn/xueke/dili/jiaoxuezs/ziliaojn/tupianhc/i0602.htm -http://babycenter.netscape.com/bbs/3788/thread530/message9.html -http://polygraph.ircache.net:8181/http_-2www.harborbay.com/home/webstuff/companyprofile.htm -http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/bibl-uno/512098188/threadconfig -http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/bibl-uno/512098188/newconfig -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=5,1,16,25,13 -http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=28,1,16,25,13 -http://ftp.sunet.se/pub/lang/perl/CPAN/authors/id/R/RH/?D=A -http://www.geocities.co.jp/SilkRoad/1618/nixxki/010799.html -http://genforum.genealogy.com/cgi-genforum/forums/americanrev.cgi?4444 -http://in.egroups.com/message/djgppgames/358 -http://freehost.crazyhost.com/teengallery/apbh/panty.html -http://buffy.acmecity.com/xander/366/EDpt2.htm -http://www.tccomputers.com/cgi-bin/bp/505218695/promotional/deals.htm -http://www.tccomputers.com/cgi-bin/bp/505218695/products/cooling/cooling.htm -http://www.tccomputers.com/cgi-bin/bp/505218695/products/dvds/dvds.htm -http://www.tccomputers.com/cgi-bin/bp/505218695/products/mice/mice.htm -http://www.tccomputers.com/cgi-bin/bp/505218695/services/register.htm -http://www.foxsports.com/nba/scores/2000/000129_playbyplay_clewas.sml -http://pub1.ezboard.com/fcellofuncellistsbynightsemiprooramateur.showAddReplyScreenFromWeb?topicID=513.topic&index=9 -http://yp.gates96.com/0/22/30/81.html -http://yp.gates96.com/0/22/31/89.html -http://yp.gates96.com/0/22/32/1.html -http://yp.gates96.com/0/22/32/12.html -http://yp.gates96.com/0/22/32/48.html -http://yp.gates96.com/0/22/32/78.html -http://yp.gates96.com/0/22/34/48.html -http://yp.gates96.com/0/22/34/75.html -http://yp.gates96.com/0/22/34/85.html -http://yp.gates96.com/0/22/35/38.html -http://yp.gates96.com/0/22/35/73.html -http://yp.gates96.com/0/22/36/40.html -http://yp.gates96.com/0/22/36/92.html -http://yp.gates96.com/0/22/37/0.html -http://yp.gates96.com/0/22/37/61.html -http://yp.gates96.com/0/22/37/96.html -http://yp.gates96.com/0/22/39/13.html -http://yp.gates96.com/0/22/39/94.html -http://www.incestpornstories.com/underageflashing/plus-sizereal-size/beautiesasian/purpleanal-sex/maledomfantasy/high-schoolpretty/cherrybest-friends.html -http://variety.studiostore.com/browse/ELMOINGROU/TOY/s.2vzELAA2 -http://members.tripod.lycos.nl/BOGAERT/off2.htm -http://www.eveclub.com/cgi-bin/eveclub.front/972959555004/Catalog/2000019 -http://genforum.genealogy.com/cgi-genforum/forums/noel.cgi?662 -http://www.affiliate.hpstore.hp.co.uk/do/session/380888/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp -http://yp.gates96.com/5/88/10/35.html -http://yp.gates96.com/5/88/10/44.html -http://yp.gates96.com/5/88/11/36.html -http://yp.gates96.com/5/88/13/1.html -http://yp.gates96.com/5/88/13/23.html -http://yp.gates96.com/5/88/13/77.html -http://yp.gates96.com/5/88/13/86.html -http://yp.gates96.com/5/88/14/47.html -http://yp.gates96.com/5/88/14/83.html -http://yp.gates96.com/5/88/15/11.html -http://yp.gates96.com/5/88/16/43.html -http://yp.gates96.com/5/88/16/86.html -http://yp.gates96.com/5/88/17/6.html -http://yp.gates96.com/5/88/17/12.html -http://yp.gates96.com/5/88/17/73.html -http://yp.gates96.com/5/88/18/1.html -http://yp.gates96.com/5/88/18/38.html -http://yp.gates96.com/5/88/18/47.html -http://yp.gates96.com/5/88/18/79.html -http://newnova.tucows.com/winme/adnload/138430_29763.html -http://yp.gates96.com/8/43/60/48.html -http://yp.gates96.com/8/43/60/55.html -http://yp.gates96.com/8/43/61/22.html -http://yp.gates96.com/8/43/62/40.html -http://yp.gates96.com/8/43/62/52.html -http://yp.gates96.com/8/43/62/94.html -http://yp.gates96.com/8/43/63/79.html -http://yp.gates96.com/8/43/64/73.html -http://yp.gates96.com/8/43/64/80.html -http://yp.gates96.com/8/43/66/26.html -http://yp.gates96.com/8/43/66/70.html -http://yp.gates96.com/8/43/67/16.html -http://yp.gates96.com/8/43/68/11.html -http://yp.gates96.com/8/43/69/74.html -http://www.fogdog.com/cedroID/ssd3040183354487/nav/products/winter_sports/1d/mid-weight_bottoms/ -http://www.fogdog.com/cedroID/ssd3040183354487/nav/products/winter_sports/1r/avalanche_safety/ -http://www.fogdog.com/cedroID/ssd3040183354487/boutique/marmot/ -http://www.affiliate.hpstore.hp.co.uk/do/session/380898/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/Main/acheterhp/ -http://www.nd.edu/~dtl/cheg258/unix/unixhelp1.2/Pages/tasks_rm1.1.1.html -http://se.egroups.com/post/cyclesi?act=reply&messageNum=137 -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=22,0+18,0+22,0+9,4 -http://cidade.subportal.com/sn/Games/Action_Games/8120.html -http://wiem.onet.pl/wiem/0115d9-rp1.html -http://www.ferien-immobilien.de/detmold/Verkauf/Gemeinsam/Inserieren/Allgemeine-IB/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/erreichen.htm -http://retailer.gocollect.com/do/session/1912826/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/products/product_lines.asp -http://retailer.gocollect.com/do/session/1912826/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/halloween/halloween.asp -http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/listUnseen/fol/100001/20,0/2542788 -http://www.dispatch.co.za/1998/06/25/easterncape/BISHO.HTM -http://pub24.ezboard.com/fsosatanfrm1.showMessage?topicID=48.topic -http://ftpsearch.belnet.be/ftp/packages/Linux-docs/howto/other-formats/INDEX -http://www.crosswinds.net/~mluotto/noframe/feedback/form2.htm -http://www.schoolweb.nl/studentensteden/Rotterdam/SVRGaudium/info.cfm -http://www.shopworks.com/index.cfm/action/directory/userid/0000BD9A-2F67-19FE-9038010B0A0ADCF2 -http://findmail.com/messages/masterhuen/802 -http://www.t-dialin.net/navkopf/service/websvkaa.htm -http://gallery2.simplenet.com/lobby/main/videocaps/ebaral/bigvalley/ebbva19.htm -http://gallery2.simplenet.com/lobby/main/videocaps/ebaral/bigvalley/ebbva31.htm -http://www.outpersonals.com/cgi-bin/w3com/pws/out/44hIVEhY5ZrKWoMKb0FtjCXhqcpntVLId5WTaJdeZmonn200jiiswYnK2vORJkjpm-x643ZCeLyy6kJnIAKa5rNx_42I13Ud9N03G9xPob7Hoci92HJhOlbEv4WsB85Au-cLXFlIHPd866jS -http://ftp.debian.org/debian/dists/Debian2.2r0/main/binary-all/editors/?D=A -http://ftp1.support.compaq.com/patches/public/Digital_UNIX/v3.2g/mailworks/2.0/?S=A -http://www.digitalhearth.com/Recipes/World_Cuisines/South_Asian/Indian/index5.html -http://ftp.gigabell.net/pub/Stormix/dists/rain/main/?M=A -http://www.stas.net/1/theparamanor/apartment.htm -http://www.netcom.com/~gfenzil/free.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/misc/misc/thoughts/math/legendes/pages_new.html -http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/misc/misc/thoughts/math/legendes/misc/orders_mag.html -http://dandini.cranfield.ac.uk/vl=-39658948/cl=171/nw=1/rpsv/catchword/routledg/13606719/contp1-1.htm -http://genforum.genealogy.com/cgi-genforum/forums/pugsley.cgi?81 -http://www.users.globalnet.co.uk/~mmayes/pages/cross.htm -http://dic.empas.com/show.tsp/?s=d&q=%C4%A7%BD%C7 -http://www.jamba.de/KNet/_KNet-rHP8j1-lHd-13f16/browse.de/node.0/cde7f1uou -http://library.bangor.ac.uk/search/aHolmgren,+Nils+Fritiof,+1877-1954/aholmgren+nils+fritiof+1877+1954/7,1,1,B/marc&F=aholmlund+chris&1,1, -http://www.spiral.at/Katalog/Artikel/0181030/ -http://www.spiral.at/Katalog/Artikel/0181242/ -http://www.generation-formation.fr/navig.htm---o21zAo06L2o0Ol9A074fo6VJGezMkEeIgI8eOkn2ApvFFo6Td4ezyr6feZJPdspt6dsSAtdsNhJdspt6dsrvrdjlhkfbz.htm -http://www.nextmedia.com.hk/netgirl/sport/images/chelsea/ch-30.htm -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,5-9,0-15,0-17,0 -http://www.realize.com/i82.htm,qt=35665aa9=645a273f-1a-31fa805-1-0-0-0-- -http://www.eud.com/1998/06/21/21121AA.shtml -http://www.eud.com/1998/06/21/21414AA.shtml -http://www.eud.com/1998/06/21/21434AA.shtml -http://chemtech.chinamarket.com.cn/E/Showdetail_company/5569.html -http://chemtech.chinamarket.com.cn/E/Showdetail_company/1095.html -http://www.ferien-immobilien.de/baden-wuertemberg/konstanz/Verkauf/Private-IB/Allgemeine-IB/Startseite/Gemeinsam/Immolink/Gemeinsam/MarketingStrategie/inhalt.htm -http://www.ferien-immobilien.de/baden-wuertemberg/konstanz/Verkauf/Private-IB/Allgemeine-IB/Startseite/Gemeinsam/Immolink/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm -http://retailer.gocollect.com/do/session/1912886/vsid/2312/tid/2312/cid/573127/mid/1020/rid/2147/chid/2210/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlZe5ofpLqjXLpl4/url/http://www.gocollect.com/company_info/terms_and_conditions.asp -http://eagle.synet.edu.cn/mirror/www.tuc.org.uk/ -http://eagle.synet.edu.cn/mirror/dcarolco.lanminds.com/home/ -http://www.chez.com/carabanon/Pagecabanon.htm -http://poetry.lezlisoft.com/kikelet/spiritualitas/lelekszinpad.shtml -http://lateline.muzi.net/ll/fanti/81373.shtml -http://www.egroups.com/message/vacuum/1140 -http://www.egroups.com/message/vacuum/1153 -http://www.egroups.com/message/vacuum/1157 -http://no.egroups.com/message/-1friendsliste/401 -http://no.egroups.com/message/-1friendsliste/411 -http://pike-community.org/(base=/forums/show.html,explode=146,forum=7,t=972959520359311)/forums/show.html -http://pike-community.org/(base=/forums/show.html,explode=512,forum=7,t=972959520359311)/forums/show.html -http://pike-community.org/(base=/forums/show.html,forum=7,show=413,t=972959520359311)/forums/show.html -http://pike-community.org/(base=/forums/show.html,forum=7,show=423,t=972959520359311)/forums/show.html -http://pike-community.org/(base=/forums/show.html,forum=7,show=761,t=972959520359311)/forums/show.html -http://pike-community.org/(base=/forums/show.html,forum=7,show=777,t=972959520359311)/forums/show.html -http://pike-community.org/(base=/forums/show.html,forum=7,show=831,t=972959520359311)/forums/show.html -http://astro1.cnu.ac.kr/NetBBS/Bbs.dll/bulletin/qry/zka/B2-kC2Jo/qqa/r -http://www.gbnf.com/genealog2/brothers/html/d0049/I1011.HTM -http://www.intellicast.com/Golf/World/UnitedStates/Midwest/Ohio/Zanesville/CurrentWinds/ -http://www.nada.kth.se/systemgruppen/docs/javadoc/jdk-1.3/docs/api/javax/swing/text/class-use/TabSet.html -http://www.my-cat.de/hunde/zucht/file24.htm -http://194.128.65.4/pa/cm199899/cmwib/wb981128/edms.htm -http://www.gutenberg2000.de/sagen/austria/tirol/adasbub.htm -http://www1.onelist.com/message/osaki/22 -http://www.highwired.net/ESchoolDrive/JumpPage/1,5565,25179-46,00.html -http://pcmagazin.de/download/library/deADW-wc.htm -http://www.affiliate.hpstore.hp.co.uk/do/session/380873/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-creativeworld.com/creativeworld.asp?lang=f -http://cscns.csc.gifu.gifu.jp/pushcorn-kit/tanigumi/paged/0300214020000147.html -http://cscns.csc.gifu.gifu.jp/pushcorn-kit/tanigumi/paged/0300214020002363.html -http://cscns.csc.gifu.gifu.jp/pushcorn-kit/tanigumi/paged/0300214020001617.html -http://cpan.nitco.com/modules/by-module/String/MLEHMANN/?N=D -http://www.rge.com/pub/tex/language/ethiopia/ethtex/lqh_fonts/ -http://130.158.208.53/WWW/PDB2/PCD4711/htmls/41.html -http://www.thisislancashire.co.uk/lancashire/archive/1997/05/15/LEIGH0VQ.html -http://www.thisislancashire.co.uk/lancashire/archive/1997/05/15/LEIGH10VQ.html -http://southwind.tukids.tucows.com/mac/parents/adnload/72310_26093.html -http://ftp1.support.compaq.com/public/vms/vax/v7.2/dsnlink/2.2/dsnlinke022.a-dcx_vaxexe -http://wynnsystems.com/i.I_5aGd/search/listCompanies.html -http://www.pobladores.com/territorios/juegos/Zhief_Fantasy_World/info -http://www.pobladores.com/territorios/juegos/Zhief_Fantasy_World/pagina/9 -http://www.aebius.com/rpm2html/contrib/libc5/i386/usr_sbin_Tree.html -http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,0-22,0-0,0-9,4 -http://polygraph.ircache.net:8181/services/define/http_-2www.fastcounter.com/noframes/specials.htm -http://polygraph.ircache.net:8181/services/define/http_-2www.fastcounter.com/noframes/sitebuilder.htm -http://www.jamba.nl/KNet/_KNet-7YT8j1-nD4-pxan/browse.nl/node.0/cdmvcam7k -http://www.outdoorwire.com/content/lists/jeepoffroad/200010/msg00234.html?{LoadingFrameset} -http://www-uk8.cricket.org/link_to_database/ARCHIVE/2000-01/ENG_IN_PAK/ENG_IN_PAK_OCT-DEC2000_ENG-SQUAD.html -http://www-uk8.cricket.org/link_to_database/ARCHIVE/CRICKET_NEWS/2000/OCT/057670_CI_25OCT2000.html -http://www.chaos.dk/sexriddle/c/c/e/k/ -http://ben.aspads.net/ex/c/190/608504034 -http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/alpha/2040958 -http://www.teacherformation.org/html/od/facilitators.cfm/task1,help/discussion_id,2/xid,5237/yid,3113916 -http://www.mirror.edu.cn/res/www.isoc.org/inet98/proceedings/7d/ -http://www.sumthin.nu/archives/bugtraq/Nov_1998/msg00058.html -http://proxy.tiscover.com/1Root/Kontinent/6/Staat/7/Bundesland/20/Regionen/regionen_az...2.html -http://www.streetprices.com/products/sortdetailbylowprice/SP142252.html -http://www.streetprices.com/products/sortdetailby1day/SP142252.html -http://pp3.shef.ac.uk:4040/form/path=1,+%3A%22countryName%3DGB%40organizationName%3DUniversity+of+Sheffield%40organizationalUnitName%3DFinance%40commonName%3DS+Green%22 -http://travelocity-dest.excite.com/DestGuides/0,1840,TRAVELOCITY|2662|3|1|239114,00.html -http://www.maastrek.de/maas/4a73999ddfd2d79be20a/1/0/5 -http://aol.weather.com/weather/cities/us_pa_fairview.html -http://aol.weather.com/weather/cities/us_pa_fort_loudon.html -http://javatest.a-net.nl/servlet/pedit.Main/http://www.tigerden.com/junkmail/compladdr.html -http://ftp.dti.ad.jp/pub/windows/forest/file/backup/press1/?M=A -http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0225t_1c.html -http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0225c_3c.html -http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0217c_2c.html -http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0216c_play.html -http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0214co_1c.html -http://preview.egroups.com/messages/decoratingplusnews/6 -http://astro1.chungnam.ac.kr/NetBBS/Bbs.dll/bulletin/rcm/zka/B2-kC23n/qqatt/^ \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/zip/reader.go b/vendor/github.com/klauspost/compress/zip/reader.go deleted file mode 100644 index 27199dde446..00000000000 --- a/vendor/github.com/klauspost/compress/zip/reader.go +++ /dev/null @@ -1,521 +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. - -package zip - -import ( - "bufio" - "encoding/binary" - "errors" - "fmt" - "hash" - "io" - "os" - - "github.com/klauspost/crc32" -) - -var ( - ErrFormat = errors.New("zip: not a valid zip file") - ErrAlgorithm = errors.New("zip: unsupported compression algorithm") - ErrChecksum = errors.New("zip: checksum error") -) - -type Reader struct { - r io.ReaderAt - File []*File - Comment string - decompressors map[uint16]Decompressor -} - -type ReadCloser struct { - f *os.File - Reader -} - -type File struct { - FileHeader - zip *Reader - zipr io.ReaderAt - zipsize int64 - headerOffset int64 -} - -func (f *File) hasDataDescriptor() bool { - return f.Flags&0x8 != 0 -} - -// OpenReader will open the Zip file specified by name and return a ReadCloser. -func OpenReader(name string) (*ReadCloser, error) { - f, err := os.Open(name) - if err != nil { - return nil, err - } - fi, err := f.Stat() - if err != nil { - f.Close() - return nil, err - } - r := new(ReadCloser) - if err := r.init(f, fi.Size()); err != nil { - f.Close() - return nil, err - } - r.f = f - return r, nil -} - -// NewReader returns a new Reader reading from r, which is assumed to -// have the given size in bytes. -func NewReader(r io.ReaderAt, size int64) (*Reader, error) { - zr := new(Reader) - if err := zr.init(r, size); err != nil { - return nil, err - } - return zr, nil -} - -func (z *Reader) init(r io.ReaderAt, size int64) error { - end, err := readDirectoryEnd(r, size) - if err != nil { - return err - } - if end.directoryRecords > uint64(size)/fileHeaderLen { - return fmt.Errorf("archive/zip: TOC declares impossible %d files in %d byte zip", end.directoryRecords, size) - } - z.r = r - z.File = make([]*File, 0, end.directoryRecords) - z.Comment = end.comment - rs := io.NewSectionReader(r, 0, size) - if _, err = rs.Seek(int64(end.directoryOffset), os.SEEK_SET); err != nil { - return err - } - buf := bufio.NewReader(rs) - - // The count of files inside a zip is truncated to fit in a uint16. - // Gloss over this by reading headers until we encounter - // a bad one, and then only report a ErrFormat or UnexpectedEOF if - // the file count modulo 65536 is incorrect. - for { - f := &File{zip: z, zipr: r, zipsize: size} - err = readDirectoryHeader(f, buf) - if err == ErrFormat || err == io.ErrUnexpectedEOF { - break - } - if err != nil { - return err - } - z.File = append(z.File, f) - } - if uint16(len(z.File)) != uint16(end.directoryRecords) { // only compare 16 bits here - // Return the readDirectoryHeader error if we read - // the wrong number of directory entries. - return err - } - return nil -} - -// RegisterDecompressor registers or overrides a custom decompressor for a -// specific method ID. If a decompressor for a given method is not found, -// Reader will default to looking up the decompressor at the package level. -// -// Must not be called concurrently with Open on any Files in the Reader. -func (z *Reader) RegisterDecompressor(method uint16, dcomp Decompressor) { - if z.decompressors == nil { - z.decompressors = make(map[uint16]Decompressor) - } - z.decompressors[method] = dcomp -} - -func (z *Reader) decompressor(method uint16) Decompressor { - dcomp := z.decompressors[method] - if dcomp == nil { - dcomp = decompressor(method) - } - return dcomp -} - -// Close closes the Zip file, rendering it unusable for I/O. -func (rc *ReadCloser) Close() error { - return rc.f.Close() -} - -// DataOffset returns the offset of the file's possibly-compressed -// data, relative to the beginning of the zip file. -// -// Most callers should instead use Open, which transparently -// decompresses data and verifies checksums. -func (f *File) DataOffset() (offset int64, err error) { - bodyOffset, err := f.findBodyOffset() - if err != nil { - return - } - return f.headerOffset + bodyOffset, nil -} - -// Open returns a ReadCloser that provides access to the File's contents. -// Multiple files may be read concurrently. -func (f *File) Open() (rc io.ReadCloser, err error) { - bodyOffset, err := f.findBodyOffset() - if err != nil { - return - } - size := int64(f.CompressedSize64) - r := io.NewSectionReader(f.zipr, f.headerOffset+bodyOffset, size) - dcomp := f.zip.decompressor(f.Method) - if dcomp == nil { - err = ErrAlgorithm - return - } - rc = dcomp(r) - var desr io.Reader - if f.hasDataDescriptor() { - desr = io.NewSectionReader(f.zipr, f.headerOffset+bodyOffset+size, dataDescriptorLen) - } - rc = &checksumReader{ - rc: rc, - hash: crc32.NewIEEE(), - f: f, - desr: desr, - } - return -} - -type checksumReader struct { - rc io.ReadCloser - hash hash.Hash32 - nread uint64 // number of bytes read so far - f *File - desr io.Reader // if non-nil, where to read the data descriptor - err error // sticky error -} - -func (r *checksumReader) Read(b []byte) (n int, err error) { - if r.err != nil { - return 0, r.err - } - n, err = r.rc.Read(b) - r.hash.Write(b[:n]) - r.nread += uint64(n) - if err == nil { - return - } - if err == io.EOF { - if r.nread != r.f.UncompressedSize64 { - return 0, io.ErrUnexpectedEOF - } - if r.desr != nil { - if err1 := readDataDescriptor(r.desr, r.f); err1 != nil { - if err1 == io.EOF { - err = io.ErrUnexpectedEOF - } else { - err = err1 - } - } else if r.hash.Sum32() != r.f.CRC32 { - err = ErrChecksum - } - } else { - // If there's not a data descriptor, we still compare - // the CRC32 of what we've read against the file header - // or TOC's CRC32, if it seems like it was set. - if r.f.CRC32 != 0 && r.hash.Sum32() != r.f.CRC32 { - err = ErrChecksum - } - } - } - r.err = err - return -} - -func (r *checksumReader) Close() error { return r.rc.Close() } - -// findBodyOffset does the minimum work to verify the file has a header -// and returns the file body offset. -func (f *File) findBodyOffset() (int64, error) { - var buf [fileHeaderLen]byte - if _, err := f.zipr.ReadAt(buf[:], f.headerOffset); err != nil { - return 0, err - } - b := readBuf(buf[:]) - if sig := b.uint32(); sig != fileHeaderSignature { - return 0, ErrFormat - } - b = b[22:] // skip over most of the header - filenameLen := int(b.uint16()) - extraLen := int(b.uint16()) - return int64(fileHeaderLen + filenameLen + extraLen), nil -} - -// readDirectoryHeader attempts to read a directory header from r. -// It returns io.ErrUnexpectedEOF if it cannot read a complete header, -// and ErrFormat if it doesn't find a valid header signature. -func readDirectoryHeader(f *File, r io.Reader) error { - var buf [directoryHeaderLen]byte - if _, err := io.ReadFull(r, buf[:]); err != nil { - return err - } - b := readBuf(buf[:]) - if sig := b.uint32(); sig != directoryHeaderSignature { - return ErrFormat - } - f.CreatorVersion = b.uint16() - f.ReaderVersion = b.uint16() - f.Flags = b.uint16() - f.Method = b.uint16() - f.ModifiedTime = b.uint16() - f.ModifiedDate = b.uint16() - f.CRC32 = b.uint32() - f.CompressedSize = b.uint32() - f.UncompressedSize = b.uint32() - f.CompressedSize64 = uint64(f.CompressedSize) - f.UncompressedSize64 = uint64(f.UncompressedSize) - filenameLen := int(b.uint16()) - extraLen := int(b.uint16()) - commentLen := int(b.uint16()) - b = b[4:] // skipped start disk number and internal attributes (2x uint16) - f.ExternalAttrs = b.uint32() - f.headerOffset = int64(b.uint32()) - d := make([]byte, filenameLen+extraLen+commentLen) - if _, err := io.ReadFull(r, d); err != nil { - return err - } - f.Name = string(d[:filenameLen]) - f.Extra = d[filenameLen : filenameLen+extraLen] - f.Comment = string(d[filenameLen+extraLen:]) - - needUSize := f.UncompressedSize == ^uint32(0) - needCSize := f.CompressedSize == ^uint32(0) - needHeaderOffset := f.headerOffset == int64(^uint32(0)) - - if len(f.Extra) > 0 { - // Best effort to find what we need. - // Other zip authors might not even follow the basic format, - // and we'll just ignore the Extra content in that case. - b := readBuf(f.Extra) - for len(b) >= 4 { // need at least tag and size - tag := b.uint16() - size := b.uint16() - if int(size) > len(b) { - break - } - if tag == zip64ExtraId { - // update directory values from the zip64 extra block. - // They should only be consulted if the sizes read earlier - // are maxed out. - // See golang.org/issue/13367. - eb := readBuf(b[:size]) - - if needUSize { - needUSize = false - if len(eb) < 8 { - return ErrFormat - } - f.UncompressedSize64 = eb.uint64() - } - if needCSize { - needCSize = false - if len(eb) < 8 { - return ErrFormat - } - f.CompressedSize64 = eb.uint64() - } - if needHeaderOffset { - needHeaderOffset = false - if len(eb) < 8 { - return ErrFormat - } - f.headerOffset = int64(eb.uint64()) - } - break - } - b = b[size:] - } - } - - if needUSize || needCSize || needHeaderOffset { - return ErrFormat - } - - return nil -} - -func readDataDescriptor(r io.Reader, f *File) error { - var buf [dataDescriptorLen]byte - - // The spec says: "Although not originally assigned a - // signature, the value 0x08074b50 has commonly been adopted - // as a signature value for the data descriptor record. - // Implementers should be aware that ZIP files may be - // encountered with or without this signature marking data - // descriptors and should account for either case when reading - // ZIP files to ensure compatibility." - // - // dataDescriptorLen includes the size of the signature but - // first read just those 4 bytes to see if it exists. - if _, err := io.ReadFull(r, buf[:4]); err != nil { - return err - } - off := 0 - maybeSig := readBuf(buf[:4]) - if maybeSig.uint32() != dataDescriptorSignature { - // No data descriptor signature. Keep these four - // bytes. - off += 4 - } - if _, err := io.ReadFull(r, buf[off:12]); err != nil { - return err - } - b := readBuf(buf[:12]) - if b.uint32() != f.CRC32 { - return ErrChecksum - } - - // The two sizes that follow here can be either 32 bits or 64 bits - // but the spec is not very clear on this and different - // interpretations has been made causing incompatibilities. We - // already have the sizes from the central directory so we can - // just ignore these. - - return nil -} - -func readDirectoryEnd(r io.ReaderAt, size int64) (dir *directoryEnd, err error) { - // look for directoryEndSignature in the last 1k, then in the last 65k - var buf []byte - var directoryEndOffset int64 - for i, bLen := range []int64{1024, 65 * 1024} { - if bLen > size { - bLen = size - } - buf = make([]byte, int(bLen)) - if _, err := r.ReadAt(buf, size-bLen); err != nil && err != io.EOF { - return nil, err - } - if p := findSignatureInBlock(buf); p >= 0 { - buf = buf[p:] - directoryEndOffset = size - bLen + int64(p) - break - } - if i == 1 || bLen == size { - return nil, ErrFormat - } - } - - // read header into struct - b := readBuf(buf[4:]) // skip signature - d := &directoryEnd{ - diskNbr: uint32(b.uint16()), - dirDiskNbr: uint32(b.uint16()), - dirRecordsThisDisk: uint64(b.uint16()), - directoryRecords: uint64(b.uint16()), - directorySize: uint64(b.uint32()), - directoryOffset: uint64(b.uint32()), - commentLen: b.uint16(), - } - l := int(d.commentLen) - if l > len(b) { - return nil, errors.New("zip: invalid comment length") - } - d.comment = string(b[:l]) - - // These values mean that the file can be a zip64 file - if d.directoryRecords == 0xffff || d.directorySize == 0xffff || d.directoryOffset == 0xffffffff { - p, err := findDirectory64End(r, directoryEndOffset) - if err == nil && p >= 0 { - err = readDirectory64End(r, p, d) - } - if err != nil { - return nil, err - } - } - // Make sure directoryOffset points to somewhere in our file. - if o := int64(d.directoryOffset); o < 0 || o >= size { - return nil, ErrFormat - } - return d, nil -} - -// findDirectory64End tries to read the zip64 locator just before the -// directory end and returns the offset of the zip64 directory end if -// found. -func findDirectory64End(r io.ReaderAt, directoryEndOffset int64) (int64, error) { - locOffset := directoryEndOffset - directory64LocLen - if locOffset < 0 { - return -1, nil // no need to look for a header outside the file - } - buf := make([]byte, directory64LocLen) - if _, err := r.ReadAt(buf, locOffset); err != nil { - return -1, err - } - b := readBuf(buf) - if sig := b.uint32(); sig != directory64LocSignature { - return -1, nil - } - if b.uint32() != 0 { // number of the disk with the start of the zip64 end of central directory - return -1, nil // the file is not a valid zip64-file - } - p := b.uint64() // relative offset of the zip64 end of central directory record - if b.uint32() != 1 { // total number of disks - return -1, nil // the file is not a valid zip64-file - } - return int64(p), nil -} - -// readDirectory64End reads the zip64 directory end and updates the -// directory end with the zip64 directory end values. -func readDirectory64End(r io.ReaderAt, offset int64, d *directoryEnd) (err error) { - buf := make([]byte, directory64EndLen) - if _, err := r.ReadAt(buf, offset); err != nil { - return err - } - - b := readBuf(buf) - if sig := b.uint32(); sig != directory64EndSignature { - return ErrFormat - } - - b = b[12:] // skip dir size, version and version needed (uint64 + 2x uint16) - d.diskNbr = b.uint32() // number of this disk - d.dirDiskNbr = b.uint32() // number of the disk with the start of the central directory - d.dirRecordsThisDisk = b.uint64() // total number of entries in the central directory on this disk - d.directoryRecords = b.uint64() // total number of entries in the central directory - d.directorySize = b.uint64() // size of the central directory - d.directoryOffset = b.uint64() // offset of start of central directory with respect to the starting disk number - - return nil -} - -func findSignatureInBlock(b []byte) int { - for i := len(b) - directoryEndLen; i >= 0; i-- { - // defined from directoryEndSignature in struct.go - if b[i] == 'P' && b[i+1] == 'K' && b[i+2] == 0x05 && b[i+3] == 0x06 { - // n is length of comment - n := int(b[i+directoryEndLen-2]) | int(b[i+directoryEndLen-1])<<8 - if n+directoryEndLen+i <= len(b) { - return i - } - } - } - return -1 -} - -type readBuf []byte - -func (b *readBuf) uint16() uint16 { - v := binary.LittleEndian.Uint16(*b) - *b = (*b)[2:] - return v -} - -func (b *readBuf) uint32() uint32 { - v := binary.LittleEndian.Uint32(*b) - *b = (*b)[4:] - return v -} - -func (b *readBuf) uint64() uint64 { - v := binary.LittleEndian.Uint64(*b) - *b = (*b)[8:] - return v -} diff --git a/vendor/github.com/klauspost/compress/zip/register.go b/vendor/github.com/klauspost/compress/zip/register.go deleted file mode 100644 index 90b582d0ecc..00000000000 --- a/vendor/github.com/klauspost/compress/zip/register.go +++ /dev/null @@ -1,111 +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. - -package zip - -import ( - "errors" - "io" - "io/ioutil" - "sync" - - "github.com/klauspost/compress/flate" -) - -// A Compressor returns a compressing writer, writing to the -// provided writer. On Close, any pending data should be flushed. -type Compressor func(io.Writer) (io.WriteCloser, error) - -// Decompressor is a function that wraps a Reader with a decompressing Reader. -// The decompressed ReadCloser is returned to callers who open files from -// within the archive. These callers are responsible for closing this reader -// when they're finished reading. -type Decompressor func(io.Reader) io.ReadCloser - -var flateWriterPool sync.Pool - -func newFlateWriter(w io.Writer) io.WriteCloser { - fw, ok := flateWriterPool.Get().(*flate.Writer) - if ok { - fw.Reset(w) - } else { - fw, _ = flate.NewWriter(w, 5) - } - return &pooledFlateWriter{fw: fw} -} - -type pooledFlateWriter struct { - mu sync.Mutex // guards Close and Write - fw *flate.Writer -} - -func (w *pooledFlateWriter) Write(p []byte) (n int, err error) { - w.mu.Lock() - defer w.mu.Unlock() - if w.fw == nil { - return 0, errors.New("Write after Close") - } - return w.fw.Write(p) -} - -func (w *pooledFlateWriter) Close() error { - w.mu.Lock() - defer w.mu.Unlock() - var err error - if w.fw != nil { - err = w.fw.Close() - flateWriterPool.Put(w.fw) - w.fw = nil - } - return err -} - -var ( - mu sync.RWMutex // guards compressor and decompressor maps - - compressors = map[uint16]Compressor{ - Store: func(w io.Writer) (io.WriteCloser, error) { return &nopCloser{w}, nil }, - Deflate: func(w io.Writer) (io.WriteCloser, error) { return newFlateWriter(w), nil }, - } - - decompressors = map[uint16]Decompressor{ - Store: ioutil.NopCloser, - Deflate: flate.NewReader, - } -) - -// RegisterDecompressor allows custom decompressors for a specified method ID. -func RegisterDecompressor(method uint16, d Decompressor) { - mu.Lock() - defer mu.Unlock() - - if _, ok := decompressors[method]; ok { - panic("decompressor already registered") - } - decompressors[method] = d -} - -// RegisterCompressor registers custom compressors for a specified method ID. -// The common methods Store and Deflate are built in. -func RegisterCompressor(method uint16, comp Compressor) { - mu.Lock() - defer mu.Unlock() - - if _, ok := compressors[method]; ok { - panic("compressor already registered") - } - compressors[method] = comp -} - -func compressor(method uint16) Compressor { - mu.RLock() - defer mu.RUnlock() - return compressors[method] -} - -func decompressor(method uint16) Decompressor { - mu.RLock() - defer mu.RUnlock() - return decompressors[method] -} diff --git a/vendor/github.com/klauspost/compress/zip/struct.go b/vendor/github.com/klauspost/compress/zip/struct.go deleted file mode 100644 index 5ee4f88f803..00000000000 --- a/vendor/github.com/klauspost/compress/zip/struct.go +++ /dev/null @@ -1,313 +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. - -/* -Package zip provides support for reading and writing ZIP archives. - -See: http://www.pkware.com/documents/casestudies/APPNOTE.TXT - -This package does not support disk spanning. - -A note about ZIP64: - -To be backwards compatible the FileHeader has both 32 and 64 bit Size -fields. The 64 bit fields will always contain the correct value and -for normal archives both fields will be the same. For files requiring -the ZIP64 format the 32 bit fields will be 0xffffffff and the 64 bit -fields must be used instead. -*/ -package zip - -import ( - "os" - "path" - "time" -) - -// Compression methods. -const ( - Store uint16 = 0 - Deflate uint16 = 8 -) - -const ( - fileHeaderSignature = 0x04034b50 - directoryHeaderSignature = 0x02014b50 - directoryEndSignature = 0x06054b50 - directory64LocSignature = 0x07064b50 - directory64EndSignature = 0x06064b50 - dataDescriptorSignature = 0x08074b50 // de-facto standard; required by OS X Finder - fileHeaderLen = 30 // + filename + extra - directoryHeaderLen = 46 // + filename + extra + comment - directoryEndLen = 22 // + comment - dataDescriptorLen = 16 // four uint32: descriptor signature, crc32, compressed size, size - dataDescriptor64Len = 24 // descriptor with 8 byte sizes - directory64LocLen = 20 // - directory64EndLen = 56 // + extra - - // Constants for the first byte in CreatorVersion - creatorFAT = 0 - creatorUnix = 3 - creatorNTFS = 11 - creatorVFAT = 14 - creatorMacOSX = 19 - - // version numbers - zipVersion20 = 20 // 2.0 - zipVersion45 = 45 // 4.5 (reads and writes zip64 archives) - - // limits for non zip64 files - uint16max = (1 << 16) - 1 - uint32max = (1 << 32) - 1 - - // extra header id's - zip64ExtraId = 0x0001 // zip64 Extended Information Extra Field -) - -// FileHeader describes a file within a zip file. -// See the zip spec for details. -type FileHeader struct { - // Name is the name of the file. - // It must be a relative path: it must not start with a drive - // letter (e.g. C:) or leading slash, and only forward slashes - // are allowed. - Name string - - CreatorVersion uint16 - ReaderVersion uint16 - Flags uint16 - Method uint16 - ModifiedTime uint16 // MS-DOS time - ModifiedDate uint16 // MS-DOS date - CRC32 uint32 - CompressedSize uint32 // Deprecated: Use CompressedSize64 instead. - UncompressedSize uint32 // Deprecated: Use UncompressedSize64 instead. - CompressedSize64 uint64 - UncompressedSize64 uint64 - Extra []byte - ExternalAttrs uint32 // Meaning depends on CreatorVersion - Comment string -} - -// FileInfo returns an os.FileInfo for the FileHeader. -func (h *FileHeader) FileInfo() os.FileInfo { - return headerFileInfo{h} -} - -// headerFileInfo implements os.FileInfo. -type headerFileInfo struct { - fh *FileHeader -} - -func (fi headerFileInfo) Name() string { return path.Base(fi.fh.Name) } -func (fi headerFileInfo) Size() int64 { - if fi.fh.UncompressedSize64 > 0 { - return int64(fi.fh.UncompressedSize64) - } - return int64(fi.fh.UncompressedSize) -} -func (fi headerFileInfo) IsDir() bool { return fi.Mode().IsDir() } -func (fi headerFileInfo) ModTime() time.Time { return fi.fh.ModTime() } -func (fi headerFileInfo) Mode() os.FileMode { return fi.fh.Mode() } -func (fi headerFileInfo) Sys() interface{} { return fi.fh } - -// FileInfoHeader creates a partially-populated FileHeader from an -// os.FileInfo. -// Because os.FileInfo's Name method returns only the base name of -// the file it describes, it may be necessary to modify the Name field -// of the returned header to provide the full path name of the file. -func FileInfoHeader(fi os.FileInfo) (*FileHeader, error) { - size := fi.Size() - fh := &FileHeader{ - Name: fi.Name(), - UncompressedSize64: uint64(size), - } - fh.SetModTime(fi.ModTime()) - fh.SetMode(fi.Mode()) - if fh.UncompressedSize64 > uint32max { - fh.UncompressedSize = uint32max - } else { - fh.UncompressedSize = uint32(fh.UncompressedSize64) - } - return fh, nil -} - -type directoryEnd struct { - diskNbr uint32 // unused - dirDiskNbr uint32 // unused - dirRecordsThisDisk uint64 // unused - directoryRecords uint64 - directorySize uint64 - directoryOffset uint64 // relative to file - commentLen uint16 - comment string -} - -// msDosTimeToTime converts an MS-DOS date and time into a time.Time. -// The resolution is 2s. -// See: http://msdn.microsoft.com/en-us/library/ms724247(v=VS.85).aspx -func msDosTimeToTime(dosDate, dosTime uint16) time.Time { - return time.Date( - // date bits 0-4: day of month; 5-8: month; 9-15: years since 1980 - int(dosDate>>9+1980), - time.Month(dosDate>>5&0xf), - int(dosDate&0x1f), - - // time bits 0-4: second/2; 5-10: minute; 11-15: hour - int(dosTime>>11), - int(dosTime>>5&0x3f), - int(dosTime&0x1f*2), - 0, // nanoseconds - - time.UTC, - ) -} - -// timeToMsDosTime converts a time.Time to an MS-DOS date and time. -// The resolution is 2s. -// See: http://msdn.microsoft.com/en-us/library/ms724274(v=VS.85).aspx -func timeToMsDosTime(t time.Time) (fDate uint16, fTime uint16) { - t = t.In(time.UTC) - fDate = uint16(t.Day() + int(t.Month())<<5 + (t.Year()-1980)<<9) - fTime = uint16(t.Second()/2 + t.Minute()<<5 + t.Hour()<<11) - return -} - -// ModTime returns the modification time in UTC. -// The resolution is 2s. -func (h *FileHeader) ModTime() time.Time { - return msDosTimeToTime(h.ModifiedDate, h.ModifiedTime) -} - -// SetModTime sets the ModifiedTime and ModifiedDate fields to the given time in UTC. -// The resolution is 2s. -func (h *FileHeader) SetModTime(t time.Time) { - h.ModifiedDate, h.ModifiedTime = timeToMsDosTime(t) -} - -const ( - // Unix constants. The specification doesn't mention them, - // but these seem to be the values agreed on by tools. - s_IFMT = 0xf000 - s_IFSOCK = 0xc000 - s_IFLNK = 0xa000 - s_IFREG = 0x8000 - s_IFBLK = 0x6000 - s_IFDIR = 0x4000 - s_IFCHR = 0x2000 - s_IFIFO = 0x1000 - s_ISUID = 0x800 - s_ISGID = 0x400 - s_ISVTX = 0x200 - - msdosDir = 0x10 - msdosReadOnly = 0x01 -) - -// Mode returns the permission and mode bits for the FileHeader. -func (h *FileHeader) Mode() (mode os.FileMode) { - switch h.CreatorVersion >> 8 { - case creatorUnix, creatorMacOSX: - mode = unixModeToFileMode(h.ExternalAttrs >> 16) - case creatorNTFS, creatorVFAT, creatorFAT: - mode = msdosModeToFileMode(h.ExternalAttrs) - } - if len(h.Name) > 0 && h.Name[len(h.Name)-1] == '/' { - mode |= os.ModeDir - } - return mode -} - -// SetMode changes the permission and mode bits for the FileHeader. -func (h *FileHeader) SetMode(mode os.FileMode) { - h.CreatorVersion = h.CreatorVersion&0xff | creatorUnix<<8 - h.ExternalAttrs = fileModeToUnixMode(mode) << 16 - - // set MSDOS attributes too, as the original zip does. - if mode&os.ModeDir != 0 { - h.ExternalAttrs |= msdosDir - } - if mode&0200 == 0 { - h.ExternalAttrs |= msdosReadOnly - } -} - -// isZip64 reports whether the file size exceeds the 32 bit limit -func (fh *FileHeader) isZip64() bool { - return fh.CompressedSize64 >= uint32max || fh.UncompressedSize64 >= uint32max -} - -func msdosModeToFileMode(m uint32) (mode os.FileMode) { - if m&msdosDir != 0 { - mode = os.ModeDir | 0777 - } else { - mode = 0666 - } - if m&msdosReadOnly != 0 { - mode &^= 0222 - } - return mode -} - -func fileModeToUnixMode(mode os.FileMode) uint32 { - var m uint32 - switch mode & os.ModeType { - default: - m = s_IFREG - case os.ModeDir: - m = s_IFDIR - case os.ModeSymlink: - m = s_IFLNK - case os.ModeNamedPipe: - m = s_IFIFO - case os.ModeSocket: - m = s_IFSOCK - case os.ModeDevice: - if mode&os.ModeCharDevice != 0 { - m = s_IFCHR - } else { - m = s_IFBLK - } - } - if mode&os.ModeSetuid != 0 { - m |= s_ISUID - } - if mode&os.ModeSetgid != 0 { - m |= s_ISGID - } - if mode&os.ModeSticky != 0 { - m |= s_ISVTX - } - return m | uint32(mode&0777) -} - -func unixModeToFileMode(m uint32) os.FileMode { - mode := os.FileMode(m & 0777) - switch m & s_IFMT { - case s_IFBLK: - mode |= os.ModeDevice - case s_IFCHR: - mode |= os.ModeDevice | os.ModeCharDevice - case s_IFDIR: - mode |= os.ModeDir - case s_IFIFO: - mode |= os.ModeNamedPipe - case s_IFLNK: - mode |= os.ModeSymlink - case s_IFREG: - // nothing to do - case s_IFSOCK: - mode |= os.ModeSocket - } - if m&s_ISGID != 0 { - mode |= os.ModeSetgid - } - if m&s_ISUID != 0 { - mode |= os.ModeSetuid - } - if m&s_ISVTX != 0 { - mode |= os.ModeSticky - } - return mode -} diff --git a/vendor/github.com/klauspost/compress/zip/testdata/crc32-not-streamed.zip b/vendor/github.com/klauspost/compress/zip/testdata/crc32-not-streamed.zip deleted file mode 100644 index f268d88732f837723525285c0922231d9c3fcb46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmWIWW@h1H0D;u@42Kn|Ms+MeHVCsb$S|bk=j)YJl!S(GGBDo@jr0fM(h6<{MwYLP zKvg0@Wk4ld0dPaofQG!>yod$akfg*SxFHXK27oY{AwVTSLl~Llm~pv90%#Qj1JF{2 wC5<2!+-0l~m!TPmY#64SkPUMM8U}YE&@e2n3-D%T1KG(0gtLHj7l^|E0B`I%6#xJL diff --git a/vendor/github.com/klauspost/compress/zip/testdata/dd.zip b/vendor/github.com/klauspost/compress/zip/testdata/dd.zip deleted file mode 100644 index e53378b0b0e56203a08c139b83c67a9b918c0b81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmWIWW@Zs#-~hr?8BTT#NPq*#PRqSdnT}#{y)7Fgt?;Lt1{mUP(nsXb39<^S#hW|I!L>21b^z zj6fA4KqWwFE@UkMaKqAohP~Xphy~fOq{Je)VGl4314?rtYYFgXWD;S_DNk{CvHViV`5j72wUzu_D!|js++T!U1?SCM6buGy*BG#+REH zu^==uGKnxC>_j#cWG55r00004XF*Lt007q5 z)K6G40000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!qe(a@st@4BKo_oJPzw>?HIhVm0L#Ej6 zcCguOm(QI#dLysUSQM1xW#7b?WhI9coK{!icDucq@rulkmX=oZy1mWeXsEqpG#cQz z^?utRB)7Nn2_^KAYm5|#yEXazMjH4t8k!0_NeXY&iE#p@M7{5k^WvsIwt5X66u zgMz_u`%zcjR>QW&SS(65Ye^9(fMuCu1-f+|cW+i$cI({q=d?f-4KkbL8H||JduEK zWEsv^R+I=c^Vc^Q6f|YEz%UF)-b=4uIMaXYiY0$xaS0d}!L(ln-P#;bsW@OrfJ(`M zqjL}(Z9R?iQmBps*cDKe=-Au$LmfdmOt7Tycmj$y<|dN@QaA~tlBZF^f-Lp@sesL# z=v+{~^TgRR$*YtpDuIysfOkp+VMc;zEC#y#TrZp+NA%AD{$()=e}R z3@I8(`tF+qL{{dnWNKppLokAoTC?UfF*Tt`)9K%C@(KhS0IXFLXxD~r|ta@O^5g7&dyB3xG)uXH!$3b5r40` zx_Z)TwPycJf*@p8yGZo8%QIme`{s}EJpZ7(yZbY-h4gwoy>wZv{T5&Vs0a;<1LtDu P00000NkvXXu0mjff_q_+ diff --git a/vendor/github.com/klauspost/compress/zip/testdata/readme.notzip b/vendor/github.com/klauspost/compress/zip/testdata/readme.notzip deleted file mode 100644 index 06668c4c1c01901d5738e9583cacb5671a19130b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1905 zcmZ{kc~BEq9LEvsLMiZOwEjm`=(yDN-!kM|m-QZ*H%98ge{d~p@!nJ&*A`}w`YI}`|g!5ivJN$;;SA3EQk zIOoyJH4UHK%^pxaSQ=)8Imurw?x{9R3ON<;wrz5Mp?cA@aZQK$_WtUD?P1YX-N7M8 zJ#ERQl&0sr^Wn7hHRB>5ul1#@Gxg+DWR+}qT->}AwQ3J*>j&)W%36ck+3WhK_p_F< zGg^P&zU}%u-tctlnx`W1xGyHWtvIStk2Fnl%PUV*4&>EmKwgvIf2E`UQ2J}d%2Nkt z?PoR}v~1einYy|^wUe8nIa6}D{#a7JQ0i4T+8&&4T3=A>8fxh)uiO)tksY<`=O5Y% zFPuN|&8{sy-R6zYU42!NIkoV+!Rpx9on6byn_lYmdOFK54)!Z!cg$RQx2Z;NZkQxC zNBq>@(;{h2C%eCGS8f@s6pi+_u=C2zh}|D{)76~6er%(rWo^^J?QjF}pnlHeI?E5CH3Q8{}@ zYwdF5N`B|Z`_{AV$76y!4}9-ipc-C(FXorfEeGywxc%v)!5f2De>JX7Zn<{hPQ~ey z6=90*qtRd6)Az1cm~(?hO;r3JmlH6r6cvQO&1=cO0HwixN}nOroEtovL^BEWEhNV6=UIUA4!2(nPTM&)5}3E&h(cZyEu zKqR9U@eUopxmZNoNJ8DnlUk?fVsRQ!hPwn_XaN=;c?HO8N%b_l2>Cz}(jCrEB7v3W zfQNxzyw^F#3R!s^7cGj=rcwPXy`>EB633AQ4un@hLIUYdpE5IXW}-$#n#V$sjJR-p3N(_xR7I^AOM6D@LmQ>fKMQ3iw{UUB0f2c1VHl;*cd_N8H*%$ zDseVEA2DfOVMc-=ma!19cpeVtu_L@nlp)K;oODBep+P>>a z?l?@_k`Y^x3&VrMF-L(~jDHe|bJNxp053BfE~}FSUME|GA&Vz)jl}WLA~7rm!OkPs z2>t^22LzZ{t%VkxV7dUYBhSznhXp3h2u>uiSS(gRfVRnqVEzKq{XN@=5<09Y)(iPb z7Mze}V+C0f*)Xz^U@7f#voJo;C@d9u+KNe#6~pGp{`#kzl5NT}$b%8yU5vwt-EiZb zC##KE7I_J&ft{npdze6$LYxQq1xwwC7lGd;eIVOYYv#0~Z2c5+O?hetjjHfJWRVXH N7a|BlY#}RX{{#kl!8-r| diff --git a/vendor/github.com/klauspost/compress/zip/testdata/readme.zip b/vendor/github.com/klauspost/compress/zip/testdata/readme.zip deleted file mode 100644 index db3bb900e4e9f30bafa25fec963df4dba21a464d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1885 zcmZ{kdrVVT9LF!V3}{!Ui6aJx9zjJmXxSX1WJM9mLkg{cIvKj%wx{jY+k5JLv@kYN z!5JNo4aFBh<3P!DBFwoztb=VNPNqXQ6{aRQT~vG!dePQq(h46jfkI%g8e zQVuF8O1`*?@=TZJjr;uWq3w!-v;}N_RP?Gf^!Rp8n9Jq|ixOs_FG}=jWzwyBn5iYU=NPvm|7(PkVE$ zn%di$xNlF2X7Iz>ccTV36;$mSJ1(qRz3_GQ#iaMwnGc>DNSyodrP{_%?qmn>Ym_`BcAr;QcBZ%&iP<^W$pOL zM{9j4>rA~l6iev9+|0J$w{5-ljyF7=y6UM& zJm!lDZ!eB&(j!gtyz;8!RfBmA8IafH4_xjXIGFxwvGU}B+54D{2P_-6bfvByNbTZg zYEG9NYB-vdFO+)KO}6`|nkx(HT*IyXr^ zb^HgqOO3wPq2SAXb#rneMv5o4JvP34HlnBI=;Pp$q}mNz<3{4bQ};JSovnWG+B9qA z`L`nMm%5od^-K4rKX)VOUiZCa6BcZ#+EovCv*1kL;g;FHVQ zY{{E$Hhk&TSBEcoFZ1oX<^AJhEn}y}rX+ZV+siLrZ&J?L-d4B5xQgHL@!m?d<5)~^ z*Z%K)3sobPcVm7D-Ms(y`dgnq9J)SqM@h-LjT^3s4&Dr}Qa8&AGwPkgOp5G~&;#m~W^oaxwzIFVP8sfF#}u zffd;x;Gr7{jEML$U`M5NQ(^O z0Bu2%2%N|ZLLLZ-v@NhYw;9PlvE3uwSGR>;chxM)#? zHjV0E@!yEO|7#w6uU}gZ;uP$y07Z?8G>4pr;Som=03MoWXbT>5YL=)&o_wkgjbFGhHGF%Bno!;Md#tTtj<@nk^pZ;COKwYW=Vjo0E7PvK@{9%R*1=HrUrPkvVoK_0--OE_5yJj E01XfzDgXcg diff --git a/vendor/github.com/klauspost/compress/zip/testdata/test-trailing-junk.zip b/vendor/github.com/klauspost/compress/zip/testdata/test-trailing-junk.zip deleted file mode 100644 index 42281b4e3053eec7924b58d234d04e492c3baa38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1184 zcmWIWW@Zs#U|`^2XiQYKJ#hW)VM!oQ3M?YSP?B0)qE}K;5*otEz+CvJ$)^m6ODnh; z7+JnDGBAL3a-Te*6UMN}rFGJkM?wmLfr}l&aaaM)^pwV1FgBTd*)~VY5GrSri z$jrb1!XgYZ4C(m=8L36d`8oMThGrFpW_ksA>0oQD44Qqcff&u2&Hz7mUM?w+fxMm` zE&U=x?Zy@V2qPe0vcxr_Bsf2F!C6nVlf&(QE?5{rm?pSGb*exy9+#I&RurKk- z+m)0yRCPG=d-HHDZeo&8l5*8w*j(kQ)h25CKV`;*MHBS|=I94cI>i2RTbstM*llm) zO8IWizic_XckQR<_w%av+wcEed*5>UK?&z&H{O(96e0boH{+WCE(bu95f2^3EZ4O=VNZ?3)UvtyJg5QDRcf$^EI~Jki zWtQzJsL_x*GnsW)scd27+nNv&O9`(nP~TLZC!C)&dpmb9Gex+~DL%5m{kC!2{41u2r}!o#L;7=ONQ zE-qq{y7hnokNZ9E^>G%L>tA=N)+ZKnN{AiY63=$`mQ27(iv*7buak|7iv?tIZF@fl zt>|OAAsR5{#f{tFon;*@eKst4U%}L6{!DE$Q;-Gc;z`Q`4>jq0{kyW^?3@=d0sB55 zxoLcI^%PC5#tAeEd>m$^DR^;2N$vDP24)a*LyE?_;6T$0ZaWgUlR!) zO)1Y`?`E^OggslIl9kNpY|u0@YV$J_L(}Dqa{cO(OH|YIR<91PW~;8;CG9SvxT%P1 zf&1?rTi;(l9{BL-LFV7-o3%9b_5H&Yx{{nGExEP)?O%T1_U}*5o%1=o!$7pc+~7{P zVEy`CyQ(f_ZB6^{)1;6Rw%g;&&eO(;vcI48f3W$#VE69d#v5C|RN3w=iCp_vEP-JK z2X8m?^Q2e6G|k}Y>gTe~DWNIAn~_P58CTww04Zev=23TwQdKa(&kYWhQ$ShU>qC|zN%!0JcoK%J6 Y{M_8syb`_Q{M=N9y!^c4R3PF40F)}f^8f$< diff --git a/vendor/github.com/klauspost/compress/zip/testdata/test.zip b/vendor/github.com/klauspost/compress/zip/testdata/test.zip deleted file mode 100644 index 03890c05d4c12196086a99b7f6f51276156b4394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1170 zcmWIWW@Zs#U|`^2XiQYKJ#hW)VM!oQ3M?YSP?B0)qE}K;5*otEz+CvJ$)^m6ODnh; z7+JnDGBAL3a-Te*6UMN}rFGJkM?wmLfr}l&aaaM)^pwV1FgBTd*)~VY5GrSri z$jrb1!XgYZ4C(m=8L36d`8oMThGrFpW_ksA>0oQD44Qqcff&u2&Hz7mUM?w+fxMm` zE&U=x?Zy@V2qPe0vcxr_Bsf2F!C6nVlf&(QE?5{rm?pSGb*exy9+#I&RurKk- z+m)0yRCPG=d-HHDZeo&8l5*8w*j(kQ)h25CKV`;*MHBS|=I94cI>i2RTbstM*llm) zO8IWizic_XckQR<_w%av+wcEed*5>UK?&z&H{O(96e0boH{+WCE(bu95f2^3EZ4O=VNZ?3)UvtyJg5QDRcf$^EI~Jki zWtQzJsL_x*GnsW)scd27+nNv&O9`(nP~TLZC!C)&dpmb9Gex+~DL%5m{kC!2{41u2r}!o#L;7=ONQ zE-qq{y7hnokNZ9E^>G%L>tA=N)+ZKnN{AiY63=$`mQ27(iv*7buak|7iv?tIZF@fl zt>|OAAsR5{#f{tFon;*@eKst4U%}L6{!DE$Q;-Gc;z`Q`4>jq0{kyW^?3@=d0sB55 zxoLcI^%PC5#tAeEd>m$^DR^;2N$vDP24)a*LyE?_;6T$0ZaWgUlR!) zO)1Y`?`E^OggslIl9kNpY|u0@YV$J_L(}Dqa{cO(OH|YIR<91PW~;8;CG9SvxT%P1 zf&1?rTi;(l9{BL-LFV7-o3%9b_5H&Yx{{nGExEP)?O%T1_U}*5o%1=o!$7pc+~7{P zVEy`CyQ(f_ZB6^{)1;6Rw%g;&&eO(;vcI48f3W$#VE69d#v5C|RN3w=iCp_vEP-JK z2X8m?^Q2e6G|k}Y>gTe~DWNIAn~_P58CTww04Zev=23TwQdKa(&kYWhQ$ShU>qC|zN%!0JcoK%J6 L{M_8syb?VCG^Dz$ diff --git a/vendor/github.com/klauspost/compress/zip/testdata/unix.zip b/vendor/github.com/klauspost/compress/zip/testdata/unix.zip deleted file mode 100644 index ce1a981b2806d7e7a4026383622bf033aac426a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmWIWW@h1H0D+!>4*T9e!nGVgHVCsa$S`E2=H%puhHx@4ujqc@7dHEWUugw510%}| zW(Ec@QJ!CvlcK=O6#zG8CeWC9v+JtZfJT5YJJ6Vv%p(1y#3Hakhkynd%)&4zEk7T{ z80NqZd!TMO;DQ>Hnp;p(sSh@(t>=Ls2%|X(;glmlr$hT_XGm26ZQ}Xk2 zD#0cQ0Ck_l^i*bUL4Hw5VqOW@MT|^x%(y~G0_;9UAi1p(#DsO=)pfJN@7-m>O3}avrVEFIY2Q>^9azOL2h8n_gnBfL<93z8D<0YVZh)@KY Y1`0(C*Rg`)o`D4j&49t9016@o0NYf3UjP6A diff --git a/vendor/github.com/klauspost/compress/zip/testdata/winxp.zip b/vendor/github.com/klauspost/compress/zip/testdata/winxp.zip deleted file mode 100644 index 3919322f0c5f8be8f1a214af712b6e86b4d04aef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmWIWW@h1H0D+!>4*T9e!nGVgHVCrq~yGK=(+5{uIE^HG#C2X@#4W#Is17f5MpZb3<EG$%FNt?{GyV?yb`dg^b>%*JLMKe)obQ>FfgY#Nc!n~3 zGWsmC$cFihkI1D@-9^IQUv@AAcr!BTGV7w4^dAb?7<7Q*5U`{XL_^GFWDo$`1QG$+ z2m+xYtPIS5f>i@bE4UdLS#~KhF|c$9GXTwJV}qHZ%K)+m0vOTg1SsDFN(1$=gP1Fz Te31G8Z&r}!7+~%L(F_a#G1EK) diff --git a/vendor/github.com/klauspost/compress/zip/testdata/zip64.zip b/vendor/github.com/klauspost/compress/zip/testdata/zip64.zip deleted file mode 100644 index a2ee1fa33dca48e1ec8dfc7507640bfa09bddeb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmWIWW@Zs#U|`^2Feu@2tb6`HQw7KaVKyKRa&>g^b>%*JLMKe)obQ>FfgY#Nc!n~3 zGWsmC$cFihkI1D@-9^IQUv@AAcr!BTGV7w4^dAb?7(g~az>-D~4KbIIK>%zMNCadf u2n2YuvFSjV47xxF1B_4xjP`)?VKh)5J4k2(lDYtIR*)wcVD13X3=9B3ZZ^#T diff --git a/vendor/github.com/klauspost/compress/zip/writer.go b/vendor/github.com/klauspost/compress/zip/writer.go deleted file mode 100644 index 58439586fba..00000000000 --- a/vendor/github.com/klauspost/compress/zip/writer.go +++ /dev/null @@ -1,393 +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 zip - -import ( - "bufio" - "encoding/binary" - "errors" - "hash" - "io" - - "github.com/klauspost/crc32" -) - -// TODO(adg): support zip file comments - -// Writer implements a zip file writer. -type Writer struct { - cw *countWriter - dir []*header - last *fileWriter - closed bool - compressors map[uint16]Compressor -} - -type header struct { - *FileHeader - offset uint64 -} - -// NewWriter returns a new Writer writing a zip file to w. -func NewWriter(w io.Writer) *Writer { - return &Writer{cw: &countWriter{w: bufio.NewWriter(w)}} -} - -// SetOffset sets the offset of the beginning of the zip data within the -// underlying writer. It should be used when the zip data is appended to an -// existing file, such as a binary executable. -// It must be called before any data is written. -func (w *Writer) SetOffset(n int64) { - if w.cw.count != 0 { - panic("zip: SetOffset called after data was written") - } - w.cw.count = n -} - -// Flush flushes any buffered data to the underlying writer. -// Calling Flush is not normally necessary; calling Close is sufficient. -func (w *Writer) Flush() error { - return w.cw.w.(*bufio.Writer).Flush() -} - -// Close finishes writing the zip file by writing the central directory. -// It does not (and can not) close the underlying writer. -func (w *Writer) Close() error { - if w.last != nil && !w.last.closed { - if err := w.last.close(); err != nil { - return err - } - w.last = nil - } - if w.closed { - return errors.New("zip: writer closed twice") - } - w.closed = true - - // write central directory - start := w.cw.count - for _, h := range w.dir { - var buf [directoryHeaderLen]byte - b := writeBuf(buf[:]) - b.uint32(uint32(directoryHeaderSignature)) - b.uint16(h.CreatorVersion) - b.uint16(h.ReaderVersion) - b.uint16(h.Flags) - b.uint16(h.Method) - b.uint16(h.ModifiedTime) - b.uint16(h.ModifiedDate) - b.uint32(h.CRC32) - if h.isZip64() || h.offset >= uint32max { - // the file needs a zip64 header. store maxint in both - // 32 bit size fields (and offset later) to signal that the - // zip64 extra header should be used. - b.uint32(uint32max) // compressed size - b.uint32(uint32max) // uncompressed size - - // append a zip64 extra block to Extra - var buf [28]byte // 2x uint16 + 3x uint64 - eb := writeBuf(buf[:]) - eb.uint16(zip64ExtraId) - eb.uint16(24) // size = 3x uint64 - eb.uint64(h.UncompressedSize64) - eb.uint64(h.CompressedSize64) - eb.uint64(h.offset) - h.Extra = append(h.Extra, buf[:]...) - } else { - b.uint32(h.CompressedSize) - b.uint32(h.UncompressedSize) - } - b.uint16(uint16(len(h.Name))) - b.uint16(uint16(len(h.Extra))) - b.uint16(uint16(len(h.Comment))) - b = b[4:] // skip disk number start and internal file attr (2x uint16) - b.uint32(h.ExternalAttrs) - if h.offset > uint32max { - b.uint32(uint32max) - } else { - b.uint32(uint32(h.offset)) - } - if _, err := w.cw.Write(buf[:]); err != nil { - return err - } - if _, err := io.WriteString(w.cw, h.Name); err != nil { - return err - } - if _, err := w.cw.Write(h.Extra); err != nil { - return err - } - if _, err := io.WriteString(w.cw, h.Comment); err != nil { - return err - } - } - end := w.cw.count - - records := uint64(len(w.dir)) - size := uint64(end - start) - offset := uint64(start) - - if records > uint16max || size > uint32max || offset > uint32max { - var buf [directory64EndLen + directory64LocLen]byte - b := writeBuf(buf[:]) - - // zip64 end of central directory record - b.uint32(directory64EndSignature) - b.uint64(directory64EndLen - 12) // length minus signature (uint32) and length fields (uint64) - b.uint16(zipVersion45) // version made by - b.uint16(zipVersion45) // version needed to extract - b.uint32(0) // number of this disk - b.uint32(0) // number of the disk with the start of the central directory - b.uint64(records) // total number of entries in the central directory on this disk - b.uint64(records) // total number of entries in the central directory - b.uint64(size) // size of the central directory - b.uint64(offset) // offset of start of central directory with respect to the starting disk number - - // zip64 end of central directory locator - b.uint32(directory64LocSignature) - b.uint32(0) // number of the disk with the start of the zip64 end of central directory - b.uint64(uint64(end)) // relative offset of the zip64 end of central directory record - b.uint32(1) // total number of disks - - if _, err := w.cw.Write(buf[:]); err != nil { - return err - } - - // store max values in the regular end record to signal that - // that the zip64 values should be used instead - records = uint16max - size = uint32max - offset = uint32max - } - - // write end record - var buf [directoryEndLen]byte - b := writeBuf(buf[:]) - b.uint32(uint32(directoryEndSignature)) - b = b[4:] // skip over disk number and first disk number (2x uint16) - b.uint16(uint16(records)) // number of entries this disk - b.uint16(uint16(records)) // number of entries total - b.uint32(uint32(size)) // size of directory - b.uint32(uint32(offset)) // start of directory - // skipped size of comment (always zero) - if _, err := w.cw.Write(buf[:]); err != nil { - return err - } - - return w.cw.w.(*bufio.Writer).Flush() -} - -// Create adds a file to the zip file using the provided name. -// It returns a Writer to which the file contents should be written. -// The name must be a relative path: it must not start with a drive -// letter (e.g. C:) or leading slash, and only forward slashes are -// allowed. -// The file's contents must be written to the io.Writer before the next -// call to Create, CreateHeader, or Close. -func (w *Writer) Create(name string) (io.Writer, error) { - header := &FileHeader{ - Name: name, - Method: Deflate, - } - return w.CreateHeader(header) -} - -// CreateHeader adds a file to the zip file using the provided FileHeader -// for the file metadata. -// It returns a Writer to which the file contents should be written. -// -// The file's contents must be written to the io.Writer before the next -// call to Create, CreateHeader, or Close. The provided FileHeader fh -// must not be modified after a call to CreateHeader. -func (w *Writer) CreateHeader(fh *FileHeader) (io.Writer, error) { - if w.last != nil && !w.last.closed { - if err := w.last.close(); err != nil { - return nil, err - } - } - if len(w.dir) > 0 && w.dir[len(w.dir)-1].FileHeader == fh { - // See https://golang.org/issue/11144 confusion. - return nil, errors.New("archive/zip: invalid duplicate FileHeader") - } - - fh.Flags |= 0x8 // we will write a data descriptor - - fh.CreatorVersion = fh.CreatorVersion&0xff00 | zipVersion20 // preserve compatibility byte - fh.ReaderVersion = zipVersion20 - - fw := &fileWriter{ - zipw: w.cw, - compCount: &countWriter{w: w.cw}, - crc32: crc32.NewIEEE(), - } - comp := w.compressor(fh.Method) - if comp == nil { - return nil, ErrAlgorithm - } - var err error - fw.comp, err = comp(fw.compCount) - if err != nil { - return nil, err - } - fw.rawCount = &countWriter{w: fw.comp} - - h := &header{ - FileHeader: fh, - offset: uint64(w.cw.count), - } - w.dir = append(w.dir, h) - fw.header = h - - if err := writeHeader(w.cw, fh); err != nil { - return nil, err - } - - w.last = fw - return fw, nil -} - -func writeHeader(w io.Writer, h *FileHeader) error { - var buf [fileHeaderLen]byte - b := writeBuf(buf[:]) - b.uint32(uint32(fileHeaderSignature)) - b.uint16(h.ReaderVersion) - b.uint16(h.Flags) - b.uint16(h.Method) - b.uint16(h.ModifiedTime) - b.uint16(h.ModifiedDate) - b.uint32(0) // since we are writing a data descriptor crc32, - b.uint32(0) // compressed size, - b.uint32(0) // and uncompressed size should be zero - b.uint16(uint16(len(h.Name))) - b.uint16(uint16(len(h.Extra))) - if _, err := w.Write(buf[:]); err != nil { - return err - } - if _, err := io.WriteString(w, h.Name); err != nil { - return err - } - _, err := w.Write(h.Extra) - return err -} - -// RegisterCompressor registers or overrides a custom compressor for a specific -// method ID. If a compressor for a given method is not found, Writer will -// default to looking up the compressor at the package level. -func (w *Writer) RegisterCompressor(method uint16, comp Compressor) { - if w.compressors == nil { - w.compressors = make(map[uint16]Compressor) - } - w.compressors[method] = comp -} - -func (w *Writer) compressor(method uint16) Compressor { - comp := w.compressors[method] - if comp == nil { - comp = compressor(method) - } - return comp -} - -type fileWriter struct { - *header - zipw io.Writer - rawCount *countWriter - comp io.WriteCloser - compCount *countWriter - crc32 hash.Hash32 - closed bool -} - -func (w *fileWriter) Write(p []byte) (int, error) { - if w.closed { - return 0, errors.New("zip: write to closed file") - } - w.crc32.Write(p) - return w.rawCount.Write(p) -} - -func (w *fileWriter) close() error { - if w.closed { - return errors.New("zip: file closed twice") - } - w.closed = true - if err := w.comp.Close(); err != nil { - return err - } - - // update FileHeader - fh := w.header.FileHeader - fh.CRC32 = w.crc32.Sum32() - fh.CompressedSize64 = uint64(w.compCount.count) - fh.UncompressedSize64 = uint64(w.rawCount.count) - - if fh.isZip64() { - fh.CompressedSize = uint32max - fh.UncompressedSize = uint32max - fh.ReaderVersion = zipVersion45 // requires 4.5 - File uses ZIP64 format extensions - } else { - fh.CompressedSize = uint32(fh.CompressedSize64) - fh.UncompressedSize = uint32(fh.UncompressedSize64) - } - - // Write data descriptor. This is more complicated than one would - // think, see e.g. comments in zipfile.c:putextended() and - // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073588. - // The approach here is to write 8 byte sizes if needed without - // adding a zip64 extra in the local header (too late anyway). - var buf []byte - if fh.isZip64() { - buf = make([]byte, dataDescriptor64Len) - } else { - buf = make([]byte, dataDescriptorLen) - } - b := writeBuf(buf) - b.uint32(dataDescriptorSignature) // de-facto standard, required by OS X - b.uint32(fh.CRC32) - if fh.isZip64() { - b.uint64(fh.CompressedSize64) - b.uint64(fh.UncompressedSize64) - } else { - b.uint32(fh.CompressedSize) - b.uint32(fh.UncompressedSize) - } - _, err := w.zipw.Write(buf) - return err -} - -type countWriter struct { - w io.Writer - count int64 -} - -func (w *countWriter) Write(p []byte) (int, error) { - n, err := w.w.Write(p) - w.count += int64(n) - return n, err -} - -type nopCloser struct { - io.Writer -} - -func (w nopCloser) Close() error { - return nil -} - -type writeBuf []byte - -func (b *writeBuf) uint16(v uint16) { - binary.LittleEndian.PutUint16(*b, v) - *b = (*b)[2:] -} - -func (b *writeBuf) uint32(v uint32) { - binary.LittleEndian.PutUint32(*b, v) - *b = (*b)[4:] -} - -func (b *writeBuf) uint64(v uint64) { - binary.LittleEndian.PutUint64(*b, v) - *b = (*b)[8:] -} diff --git a/vendor/github.com/klauspost/compress/zlib/reader.go b/vendor/github.com/klauspost/compress/zlib/reader.go index 74746959fa6..b78a2c15eb0 100644 --- a/vendor/github.com/klauspost/compress/zlib/reader.go +++ b/vendor/github.com/klauspost/compress/zlib/reader.go @@ -63,7 +63,8 @@ type Resetter interface { // NewReader creates a new ReadCloser. // Reads from the returned ReadCloser read and decompress data from r. -// The implementation buffers input and may read more data than necessary from r. +// If r does not implement io.ByteReader, the decompressor may read more +// data than necessary from r. // It is the caller's responsibility to call Close on the ReadCloser when done. // // The ReadCloser returned by NewReader also implements Resetter. @@ -85,38 +86,41 @@ func NewReaderDict(r io.Reader, dict []byte) (io.ReadCloser, error) { return z, nil } -func (z *reader) Read(p []byte) (n int, err error) { +func (z *reader) Read(p []byte) (int, error) { if z.err != nil { return 0, z.err } - if len(p) == 0 { - return 0, nil - } - n, err = z.decompressor.Read(p) + var n int + n, z.err = z.decompressor.Read(p) z.digest.Write(p[0:n]) - if n != 0 || err != io.EOF { - z.err = err - return + if z.err != io.EOF { + // In the normal case we return here. + return n, z.err } // Finished file; check checksum. if _, err := io.ReadFull(z.r, z.scratch[0:4]); err != nil { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } z.err = err - return 0, err + return n, z.err } // ZLIB (RFC 1950) is big-endian, unlike GZIP (RFC 1952). checksum := uint32(z.scratch[0])<<24 | uint32(z.scratch[1])<<16 | uint32(z.scratch[2])<<8 | uint32(z.scratch[3]) if checksum != z.digest.Sum32() { z.err = ErrChecksum - return 0, z.err + return n, z.err } - return + return n, io.EOF } // Calling Close does not close the wrapped io.Reader originally passed to NewReader. +// In order for the ZLIB checksum to be verified, the reader must be +// fully consumed until the io.EOF. func (z *reader) Close() error { - if z.err != nil { + if z.err != nil && z.err != io.EOF { return z.err } z.err = z.decompressor.Close() @@ -124,30 +128,42 @@ func (z *reader) Close() error { } func (z *reader) Reset(r io.Reader, dict []byte) error { + *z = reader{decompressor: z.decompressor} if fr, ok := r.(flate.Reader); ok { z.r = fr } else { z.r = bufio.NewReader(r) } - _, err := io.ReadFull(z.r, z.scratch[0:2]) - if err != nil { - return err + + // Read the header (RFC 1950 section 2.2.). + _, z.err = io.ReadFull(z.r, z.scratch[0:2]) + if z.err != nil { + if z.err == io.EOF { + z.err = io.ErrUnexpectedEOF + } + return z.err } h := uint(z.scratch[0])<<8 | uint(z.scratch[1]) if (z.scratch[0]&0x0f != zlibDeflate) || (h%31 != 0) { - return ErrHeader + z.err = ErrHeader + return z.err } haveDict := z.scratch[1]&0x20 != 0 if haveDict { - _, err = io.ReadFull(z.r, z.scratch[0:4]) - if err != nil { - return err + _, z.err = io.ReadFull(z.r, z.scratch[0:4]) + if z.err != nil { + if z.err == io.EOF { + z.err = io.ErrUnexpectedEOF + } + return z.err } checksum := uint32(z.scratch[0])<<24 | uint32(z.scratch[1])<<16 | uint32(z.scratch[2])<<8 | uint32(z.scratch[3]) if checksum != adler32.Checksum(dict) { - return ErrDictionary + z.err = ErrDictionary + return z.err } } + if z.decompressor == nil { if haveDict { z.decompressor = flate.NewReaderDict(z.r, dict) diff --git a/vendor/github.com/klauspost/compress/zlib/writer.go b/vendor/github.com/klauspost/compress/zlib/writer.go index 556dee21e9c..605816ba4f3 100644 --- a/vendor/github.com/klauspost/compress/zlib/writer.go +++ b/vendor/github.com/klauspost/compress/zlib/writer.go @@ -21,6 +21,7 @@ const ( BestCompression = flate.BestCompression DefaultCompression = flate.DefaultCompression ConstantCompression = flate.ConstantCompression + HuffmanOnly = flate.HuffmanOnly ) // A Writer takes data written to it and writes the compressed @@ -49,9 +50,9 @@ func NewWriter(w io.Writer) *Writer { // NewWriterLevel is like NewWriter but specifies the compression level instead // of assuming DefaultCompression. // -// The compression level can be DefaultCompression, NoCompression, or any -// integer value between BestSpeed and BestCompression inclusive. The error -// returned will be nil if the level is valid. +// The compression level can be DefaultCompression, NoCompression, HuffmanOnly +// or any integer value between BestSpeed and BestCompression inclusive. +// The error returned will be nil if the level is valid. func NewWriterLevel(w io.Writer, level int) (*Writer, error) { return NewWriterLevelDict(w, level, nil) } @@ -62,7 +63,7 @@ func NewWriterLevel(w io.Writer, level int) (*Writer, error) { // The dictionary may be nil. If not, its contents should not be modified until // the Writer is closed. func NewWriterLevelDict(w io.Writer, level int, dict []byte) (*Writer, error) { - if level < ConstantCompression || level > BestCompression { + if level < HuffmanOnly || level > BestCompression { return nil, fmt.Errorf("zlib: invalid compression level: %d", level) } return &Writer{ diff --git a/vendor/github.com/klauspost/cpuid/private/README.md b/vendor/github.com/klauspost/cpuid/private/README.md deleted file mode 100644 index 57a68f88274..00000000000 --- a/vendor/github.com/klauspost/cpuid/private/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# cpuid private - -This is a specially converted of the cpuid package, so it can be included in -a package without exporting anything. - -Package home: https://github.com/klauspost/cpuid diff --git a/vendor/github.com/klauspost/cpuid/private/cpuid.go b/vendor/github.com/klauspost/cpuid/private/cpuid.go deleted file mode 100644 index be99cb0b70d..00000000000 --- a/vendor/github.com/klauspost/cpuid/private/cpuid.go +++ /dev/null @@ -1,987 +0,0 @@ -// Generated, DO NOT EDIT, -// but copy it to your own project and rename the package. -// See more at http://github.com/klauspost/cpuid - -package cpuid - -import ( - "strings" -) - -// Vendor is a representation of a CPU vendor. -type vendor int - -const ( - other vendor = iota - intel - amd - via - transmeta - nsc - kvm // Kernel-based Virtual Machine - msvm // Microsoft Hyper-V or Windows Virtual PC - vmware - xenhvm -) - -const ( - cmov = 1 << iota // i686 CMOV - nx // NX (No-Execute) bit - amd3dnow // AMD 3DNOW - amd3dnowext // AMD 3DNowExt - mmx // standard MMX - mmxext // SSE integer functions or AMD MMX ext - sse // SSE functions - sse2 // P4 SSE functions - sse3 // Prescott SSE3 functions - ssse3 // Conroe SSSE3 functions - sse4 // Penryn SSE4.1 functions - sse4a // AMD Barcelona microarchitecture SSE4a instructions - sse42 // Nehalem SSE4.2 functions - avx // AVX functions - avx2 // AVX2 functions - fma3 // Intel FMA 3 - fma4 // Bulldozer FMA4 functions - xop // Bulldozer XOP functions - f16c // Half-precision floating-point conversion - bmi1 // Bit Manipulation Instruction Set 1 - bmi2 // Bit Manipulation Instruction Set 2 - tbm // AMD Trailing Bit Manipulation - lzcnt // LZCNT instruction - popcnt // POPCNT instruction - aesni // Advanced Encryption Standard New Instructions - clmul // Carry-less Multiplication - htt // Hyperthreading (enabled) - hle // Hardware Lock Elision - rtm // Restricted Transactional Memory - rdrand // RDRAND instruction is available - rdseed // RDSEED instruction is available - adx // Intel ADX (Multi-Precision Add-Carry Instruction Extensions) - sha // Intel SHA Extensions - avx512f // AVX-512 Foundation - avx512dq // AVX-512 Doubleword and Quadword Instructions - avx512ifma // AVX-512 Integer Fused Multiply-Add Instructions - avx512pf // AVX-512 Prefetch Instructions - avx512er // AVX-512 Exponential and Reciprocal Instructions - avx512cd // AVX-512 Conflict Detection Instructions - avx512bw // AVX-512 Byte and Word Instructions - avx512vl // AVX-512 Vector Length Extensions - avx512vbmi // AVX-512 Vector Bit Manipulation Instructions - mpx // Intel MPX (Memory Protection Extensions) - erms // Enhanced REP MOVSB/STOSB - rdtscp // RDTSCP Instruction - cx16 // CMPXCHG16B Instruction - - // Performance indicators - sse2slow // SSE2 is supported, but usually not faster - sse3slow // SSE3 is supported, but usually not faster - atom // Atom processor, some SSSE3 instructions are slower -) - -var flagNames = map[flags]string{ - cmov: "CMOV", // i686 CMOV - nx: "NX", // NX (No-Execute) bit - amd3dnow: "AMD3DNOW", // AMD 3DNOW - amd3dnowext: "AMD3DNOWEXT", // AMD 3DNowExt - mmx: "MMX", // Standard MMX - mmxext: "MMXEXT", // SSE integer functions or AMD MMX ext - sse: "SSE", // SSE functions - sse2: "SSE2", // P4 SSE2 functions - sse3: "SSE3", // Prescott SSE3 functions - ssse3: "SSSE3", // Conroe SSSE3 functions - sse4: "SSE4.1", // Penryn SSE4.1 functions - sse4a: "SSE4A", // AMD Barcelona microarchitecture SSE4a instructions - sse42: "SSE4.2", // Nehalem SSE4.2 functions - avx: "AVX", // AVX functions - avx2: "AVX2", // AVX functions - fma3: "FMA3", // Intel FMA 3 - fma4: "FMA4", // Bulldozer FMA4 functions - xop: "XOP", // Bulldozer XOP functions - f16c: "F16C", // Half-precision floating-point conversion - bmi1: "BMI1", // Bit Manipulation Instruction Set 1 - bmi2: "BMI2", // Bit Manipulation Instruction Set 2 - tbm: "TBM", // AMD Trailing Bit Manipulation - lzcnt: "LZCNT", // LZCNT instruction - popcnt: "POPCNT", // POPCNT instruction - aesni: "AESNI", // Advanced Encryption Standard New Instructions - clmul: "CLMUL", // Carry-less Multiplication - htt: "HTT", // Hyperthreading (enabled) - hle: "HLE", // Hardware Lock Elision - rtm: "RTM", // Restricted Transactional Memory - rdrand: "RDRAND", // RDRAND instruction is available - rdseed: "RDSEED", // RDSEED instruction is available - adx: "ADX", // Intel ADX (Multi-Precision Add-Carry Instruction Extensions) - sha: "SHA", // Intel SHA Extensions - avx512f: "AVX512F", // AVX-512 Foundation - avx512dq: "AVX512DQ", // AVX-512 Doubleword and Quadword Instructions - avx512ifma: "AVX512IFMA", // AVX-512 Integer Fused Multiply-Add Instructions - avx512pf: "AVX512PF", // AVX-512 Prefetch Instructions - avx512er: "AVX512ER", // AVX-512 Exponential and Reciprocal Instructions - avx512cd: "AVX512CD", // AVX-512 Conflict Detection Instructions - avx512bw: "AVX512BW", // AVX-512 Byte and Word Instructions - avx512vl: "AVX512VL", // AVX-512 Vector Length Extensions - avx512vbmi: "AVX512VBMI", // AVX-512 Vector Bit Manipulation Instructions - mpx: "MPX", // Intel MPX (Memory Protection Extensions) - erms: "ERMS", // Enhanced REP MOVSB/STOSB - rdtscp: "RDTSCP", // RDTSCP Instruction - cx16: "CX16", // CMPXCHG16B Instruction - - // Performance indicators - sse2slow: "SSE2SLOW", // SSE2 supported, but usually not faster - sse3slow: "SSE3SLOW", // SSE3 supported, but usually not faster - atom: "ATOM", // Atom processor, some SSSE3 instructions are slower - -} - -// CPUInfo contains information about the detected system CPU. -type cpuInfo struct { - brandname string // Brand name reported by the CPU - vendorid vendor // Comparable CPU vendor ID - features flags // Features of the CPU - physicalcores int // Number of physical processor cores in your CPU. Will be 0 if undetectable. - threadspercore int // Number of threads per physical core. Will be 1 if undetectable. - logicalcores int // Number of physical cores times threads that can run on each core through the use of hyperthreading. Will be 0 if undetectable. - family int // CPU family number - model int // CPU model number - cacheline int // Cache line size in bytes. Will be 0 if undetectable. - cache struct { - l1i int // L1 Instruction Cache (per core or shared). Will be -1 if undetected - l1d int // L1 Data Cache (per core or shared). Will be -1 if undetected - l2 int // L2 Cache (per core or shared). Will be -1 if undetected - l3 int // L3 Instruction Cache (per core or shared). Will be -1 if undetected - } - maxFunc uint32 - maxExFunc uint32 -} - -var cpuid func(op uint32) (eax, ebx, ecx, edx uint32) -var cpuidex func(op, op2 uint32) (eax, ebx, ecx, edx uint32) -var xgetbv func(index uint32) (eax, edx uint32) -var rdtscpAsm func() (eax, ebx, ecx, edx uint32) - -// CPU contains information about the CPU as detected on startup, -// or when Detect last was called. -// -// Use this as the primary entry point to you data, -// this way queries are -var cpu cpuInfo - -func init() { - initCPU() - detect() -} - -// Detect will re-detect current CPU info. -// This will replace the content of the exported CPU variable. -// -// Unless you expect the CPU to change while you are running your program -// you should not need to call this function. -// If you call this, you must ensure that no other goroutine is accessing the -// exported CPU variable. -func detect() { - cpu.maxFunc = maxFunctionID() - cpu.maxExFunc = maxExtendedFunction() - cpu.brandname = brandName() - cpu.cacheline = cacheLine() - cpu.family, cpu.model = familyModel() - cpu.features = support() - cpu.threadspercore = threadsPerCore() - cpu.logicalcores = logicalCores() - cpu.physicalcores = physicalCores() - cpu.vendorid = vendorID() - cpu.cacheSize() -} - -// Generated here: http://play.golang.org/p/BxFH2Gdc0G - -// Cmov indicates support of CMOV instructions -func (c cpuInfo) cmov() bool { - return c.features&cmov != 0 -} - -// Amd3dnow indicates support of AMD 3DNOW! instructions -func (c cpuInfo) amd3dnow() bool { - return c.features&amd3dnow != 0 -} - -// Amd3dnowExt indicates support of AMD 3DNOW! Extended instructions -func (c cpuInfo) amd3dnowext() bool { - return c.features&amd3dnowext != 0 -} - -// MMX indicates support of MMX instructions -func (c cpuInfo) mmx() bool { - return c.features&mmx != 0 -} - -// MMXExt indicates support of MMXEXT instructions -// (SSE integer functions or AMD MMX ext) -func (c cpuInfo) mmxext() bool { - return c.features&mmxext != 0 -} - -// SSE indicates support of SSE instructions -func (c cpuInfo) sse() bool { - return c.features&sse != 0 -} - -// SSE2 indicates support of SSE 2 instructions -func (c cpuInfo) sse2() bool { - return c.features&sse2 != 0 -} - -// SSE3 indicates support of SSE 3 instructions -func (c cpuInfo) sse3() bool { - return c.features&sse3 != 0 -} - -// SSSE3 indicates support of SSSE 3 instructions -func (c cpuInfo) ssse3() bool { - return c.features&ssse3 != 0 -} - -// SSE4 indicates support of SSE 4 (also called SSE 4.1) instructions -func (c cpuInfo) sse4() bool { - return c.features&sse4 != 0 -} - -// SSE42 indicates support of SSE4.2 instructions -func (c cpuInfo) sse42() bool { - return c.features&sse42 != 0 -} - -// AVX indicates support of AVX instructions -// and operating system support of AVX instructions -func (c cpuInfo) avx() bool { - return c.features&avx != 0 -} - -// AVX2 indicates support of AVX2 instructions -func (c cpuInfo) avx2() bool { - return c.features&avx2 != 0 -} - -// FMA3 indicates support of FMA3 instructions -func (c cpuInfo) fma3() bool { - return c.features&fma3 != 0 -} - -// FMA4 indicates support of FMA4 instructions -func (c cpuInfo) fma4() bool { - return c.features&fma4 != 0 -} - -// XOP indicates support of XOP instructions -func (c cpuInfo) xop() bool { - return c.features&xop != 0 -} - -// F16C indicates support of F16C instructions -func (c cpuInfo) f16c() bool { - return c.features&f16c != 0 -} - -// BMI1 indicates support of BMI1 instructions -func (c cpuInfo) bmi1() bool { - return c.features&bmi1 != 0 -} - -// BMI2 indicates support of BMI2 instructions -func (c cpuInfo) bmi2() bool { - return c.features&bmi2 != 0 -} - -// TBM indicates support of TBM instructions -// (AMD Trailing Bit Manipulation) -func (c cpuInfo) tbm() bool { - return c.features&tbm != 0 -} - -// Lzcnt indicates support of LZCNT instruction -func (c cpuInfo) lzcnt() bool { - return c.features&lzcnt != 0 -} - -// Popcnt indicates support of POPCNT instruction -func (c cpuInfo) popcnt() bool { - return c.features&popcnt != 0 -} - -// HTT indicates the processor has Hyperthreading enabled -func (c cpuInfo) htt() bool { - return c.features&htt != 0 -} - -// SSE2Slow indicates that SSE2 may be slow on this processor -func (c cpuInfo) sse2slow() bool { - return c.features&sse2slow != 0 -} - -// SSE3Slow indicates that SSE3 may be slow on this processor -func (c cpuInfo) sse3slow() bool { - return c.features&sse3slow != 0 -} - -// AesNi indicates support of AES-NI instructions -// (Advanced Encryption Standard New Instructions) -func (c cpuInfo) aesni() bool { - return c.features&aesni != 0 -} - -// Clmul indicates support of CLMUL instructions -// (Carry-less Multiplication) -func (c cpuInfo) clmul() bool { - return c.features&clmul != 0 -} - -// NX indicates support of NX (No-Execute) bit -func (c cpuInfo) nx() bool { - return c.features&nx != 0 -} - -// SSE4A indicates support of AMD Barcelona microarchitecture SSE4a instructions -func (c cpuInfo) sse4a() bool { - return c.features&sse4a != 0 -} - -// HLE indicates support of Hardware Lock Elision -func (c cpuInfo) hle() bool { - return c.features&hle != 0 -} - -// RTM indicates support of Restricted Transactional Memory -func (c cpuInfo) rtm() bool { - return c.features&rtm != 0 -} - -// Rdrand indicates support of RDRAND instruction is available -func (c cpuInfo) rdrand() bool { - return c.features&rdrand != 0 -} - -// Rdseed indicates support of RDSEED instruction is available -func (c cpuInfo) rdseed() bool { - return c.features&rdseed != 0 -} - -// ADX indicates support of Intel ADX (Multi-Precision Add-Carry Instruction Extensions) -func (c cpuInfo) adx() bool { - return c.features&adx != 0 -} - -// SHA indicates support of Intel SHA Extensions -func (c cpuInfo) sha() bool { - return c.features&sha != 0 -} - -// AVX512F indicates support of AVX-512 Foundation -func (c cpuInfo) avx512f() bool { - return c.features&avx512f != 0 -} - -// AVX512DQ indicates support of AVX-512 Doubleword and Quadword Instructions -func (c cpuInfo) avx512dq() bool { - return c.features&avx512dq != 0 -} - -// AVX512IFMA indicates support of AVX-512 Integer Fused Multiply-Add Instructions -func (c cpuInfo) avx512ifma() bool { - return c.features&avx512ifma != 0 -} - -// AVX512PF indicates support of AVX-512 Prefetch Instructions -func (c cpuInfo) avx512pf() bool { - return c.features&avx512pf != 0 -} - -// AVX512ER indicates support of AVX-512 Exponential and Reciprocal Instructions -func (c cpuInfo) avx512er() bool { - return c.features&avx512er != 0 -} - -// AVX512CD indicates support of AVX-512 Conflict Detection Instructions -func (c cpuInfo) avx512cd() bool { - return c.features&avx512cd != 0 -} - -// AVX512BW indicates support of AVX-512 Byte and Word Instructions -func (c cpuInfo) avx512bw() bool { - return c.features&avx512bw != 0 -} - -// AVX512VL indicates support of AVX-512 Vector Length Extensions -func (c cpuInfo) avx512vl() bool { - return c.features&avx512vl != 0 -} - -// AVX512VBMI indicates support of AVX-512 Vector Bit Manipulation Instructions -func (c cpuInfo) avx512vbmi() bool { - return c.features&avx512vbmi != 0 -} - -// MPX indicates support of Intel MPX (Memory Protection Extensions) -func (c cpuInfo) mpx() bool { - return c.features&mpx != 0 -} - -// ERMS indicates support of Enhanced REP MOVSB/STOSB -func (c cpuInfo) erms() bool { - return c.features&erms != 0 -} - -func (c cpuInfo) rdtscp() bool { - return c.features&rdtscp != 0 -} - -func (c cpuInfo) cx16() bool { - return c.features&cx16 != 0 -} - -// Atom indicates an Atom processor -func (c cpuInfo) atom() bool { - return c.features&atom != 0 -} - -// Intel returns true if vendor is recognized as Intel -func (c cpuInfo) intel() bool { - return c.vendorid == intel -} - -// AMD returns true if vendor is recognized as AMD -func (c cpuInfo) amd() bool { - return c.vendorid == amd -} - -// Transmeta returns true if vendor is recognized as Transmeta -func (c cpuInfo) transmeta() bool { - return c.vendorid == transmeta -} - -// NSC returns true if vendor is recognized as National Semiconductor -func (c cpuInfo) nsc() bool { - return c.vendorid == nsc -} - -// VIA returns true if vendor is recognized as VIA -func (c cpuInfo) via() bool { - return c.vendorid == via -} - -// RTCounter returns the 64-bit time-stamp counter -// Uses the RDTSCP instruction. The value 0 is returned -// if the CPU does not support the instruction. -func (c cpuInfo) rtcounter() uint64 { - if !c.rdtscp() { - return 0 - } - a, _, _, d := rdtscpAsm() - return uint64(a) | (uint64(d) << 32) -} - -// Ia32TscAux returns the IA32_TSC_AUX part of the RDTSCP. -// This variable is OS dependent, but on Linux contains information -// about the current cpu/core the code is running on. -// If the RDTSCP instruction isn't supported on the CPU, the value 0 is returned. -func (c cpuInfo) ia32tscaux() uint32 { - if !c.rdtscp() { - return 0 - } - _, _, ecx, _ := rdtscpAsm() - return ecx -} - -// LogicalCPU will return the Logical CPU the code is currently executing on. -// This is likely to change when the OS re-schedules the running thread -// to another CPU. -// If the current core cannot be detected, -1 will be returned. -func (c cpuInfo) logicalcpu() int { - if c.maxFunc < 1 { - return -1 - } - _, ebx, _, _ := cpuid(1) - return int(ebx >> 24) -} - -// VM Will return true if the cpu id indicates we are in -// a virtual machine. This is only a hint, and will very likely -// have many false negatives. -func (c cpuInfo) vm() bool { - switch c.vendorid { - case msvm, kvm, vmware, xenhvm: - return true - } - return false -} - -// Flags contains detected cpu features and caracteristics -type flags uint64 - -// String returns a string representation of the detected -// CPU features. -func (f flags) String() string { - return strings.Join(f.strings(), ",") -} - -// Strings returns and array of the detected features. -func (f flags) strings() []string { - s := support() - r := make([]string, 0, 20) - for i := uint(0); i < 64; i++ { - key := flags(1 << i) - val := flagNames[key] - if s&key != 0 { - r = append(r, val) - } - } - return r -} - -func maxExtendedFunction() uint32 { - eax, _, _, _ := cpuid(0x80000000) - return eax -} - -func maxFunctionID() uint32 { - a, _, _, _ := cpuid(0) - return a -} - -func brandName() string { - if maxExtendedFunction() >= 0x80000004 { - v := make([]uint32, 0, 48) - for i := uint32(0); i < 3; i++ { - a, b, c, d := cpuid(0x80000002 + i) - v = append(v, a, b, c, d) - } - return strings.Trim(string(valAsString(v...)), " ") - } - return "unknown" -} - -func threadsPerCore() int { - mfi := maxFunctionID() - if mfi < 0x4 || vendorID() != intel { - return 1 - } - - if mfi < 0xb { - _, b, _, d := cpuid(1) - if (d & (1 << 28)) != 0 { - // v will contain logical core count - v := (b >> 16) & 255 - if v > 1 { - a4, _, _, _ := cpuid(4) - // physical cores - v2 := (a4 >> 26) + 1 - if v2 > 0 { - return int(v) / int(v2) - } - } - } - return 1 - } - _, b, _, _ := cpuidex(0xb, 0) - if b&0xffff == 0 { - return 1 - } - return int(b & 0xffff) -} - -func logicalCores() int { - mfi := maxFunctionID() - switch vendorID() { - case intel: - // Use this on old Intel processors - if mfi < 0xb { - if mfi < 1 { - return 0 - } - // CPUID.1:EBX[23:16] represents the maximum number of addressable IDs (initial APIC ID) - // that can be assigned to logical processors in a physical package. - // The value may not be the same as the number of logical processors that are present in the hardware of a physical package. - _, ebx, _, _ := cpuid(1) - logical := (ebx >> 16) & 0xff - return int(logical) - } - _, b, _, _ := cpuidex(0xb, 1) - return int(b & 0xffff) - case amd: - _, b, _, _ := cpuid(1) - return int((b >> 16) & 0xff) - default: - return 0 - } -} - -func familyModel() (int, int) { - if maxFunctionID() < 0x1 { - return 0, 0 - } - eax, _, _, _ := cpuid(1) - family := ((eax >> 8) & 0xf) + ((eax >> 20) & 0xff) - model := ((eax >> 4) & 0xf) + ((eax >> 12) & 0xf0) - return int(family), int(model) -} - -func physicalCores() int { - switch vendorID() { - case intel: - return logicalCores() / threadsPerCore() - case amd: - if maxExtendedFunction() >= 0x80000008 { - _, _, c, _ := cpuid(0x80000008) - return int(c&0xff) + 1 - } - } - return 0 -} - -// Except from http://en.wikipedia.org/wiki/CPUID#EAX.3D0:_Get_vendor_ID -var vendorMapping = map[string]vendor{ - "AMDisbetter!": amd, - "AuthenticAMD": amd, - "CentaurHauls": via, - "GenuineIntel": intel, - "TransmetaCPU": transmeta, - "GenuineTMx86": transmeta, - "Geode by NSC": nsc, - "VIA VIA VIA ": via, - "KVMKVMKVMKVM": kvm, - "Microsoft Hv": msvm, - "VMwareVMware": vmware, - "XenVMMXenVMM": xenhvm, -} - -func vendorID() vendor { - _, b, c, d := cpuid(0) - v := valAsString(b, d, c) - vend, ok := vendorMapping[string(v)] - if !ok { - return other - } - return vend -} - -func cacheLine() int { - if maxFunctionID() < 0x1 { - return 0 - } - - _, ebx, _, _ := cpuid(1) - cache := (ebx & 0xff00) >> 5 // cflush size - if cache == 0 && maxExtendedFunction() >= 0x80000006 { - _, _, ecx, _ := cpuid(0x80000006) - cache = ecx & 0xff // cacheline size - } - // TODO: Read from Cache and TLB Information - return int(cache) -} - -func (c *cpuInfo) cacheSize() { - c.cache.l1d = -1 - c.cache.l1i = -1 - c.cache.l2 = -1 - c.cache.l3 = -1 - vendor := vendorID() - switch vendor { - case intel: - if maxFunctionID() < 4 { - return - } - for i := uint32(0); ; i++ { - eax, ebx, ecx, _ := cpuidex(4, i) - cacheType := eax & 15 - if cacheType == 0 { - break - } - cacheLevel := (eax >> 5) & 7 - coherency := int(ebx&0xfff) + 1 - partitions := int((ebx>>12)&0x3ff) + 1 - associativity := int((ebx>>22)&0x3ff) + 1 - sets := int(ecx) + 1 - size := associativity * partitions * coherency * sets - switch cacheLevel { - case 1: - if cacheType == 1 { - // 1 = Data Cache - c.cache.l1d = size - } else if cacheType == 2 { - // 2 = Instruction Cache - c.cache.l1i = size - } else { - if c.cache.l1d < 0 { - c.cache.l1i = size - } - if c.cache.l1i < 0 { - c.cache.l1i = size - } - } - case 2: - c.cache.l2 = size - case 3: - c.cache.l3 = size - } - } - case amd: - // Untested. - if maxExtendedFunction() < 0x80000005 { - return - } - _, _, ecx, edx := cpuid(0x80000005) - c.cache.l1d = int(((ecx >> 24) & 0xFF) * 1024) - c.cache.l1i = int(((edx >> 24) & 0xFF) * 1024) - - if maxExtendedFunction() < 0x80000006 { - return - } - _, _, ecx, _ = cpuid(0x80000006) - c.cache.l2 = int(((ecx >> 16) & 0xFFFF) * 1024) - } - - return -} - -func support() flags { - mfi := maxFunctionID() - vend := vendorID() - if mfi < 0x1 { - return 0 - } - rval := uint64(0) - _, _, c, d := cpuid(1) - if (d & (1 << 15)) != 0 { - rval |= cmov - } - if (d & (1 << 23)) != 0 { - rval |= mmx - } - if (d & (1 << 25)) != 0 { - rval |= mmxext - } - if (d & (1 << 25)) != 0 { - rval |= sse - } - if (d & (1 << 26)) != 0 { - rval |= sse2 - } - if (c & 1) != 0 { - rval |= sse3 - } - if (c & 0x00000200) != 0 { - rval |= ssse3 - } - if (c & 0x00080000) != 0 { - rval |= sse4 - } - if (c & 0x00100000) != 0 { - rval |= sse42 - } - if (c & (1 << 25)) != 0 { - rval |= aesni - } - if (c & (1 << 1)) != 0 { - rval |= clmul - } - if c&(1<<23) != 0 { - rval |= popcnt - } - if c&(1<<30) != 0 { - rval |= rdrand - } - if c&(1<<29) != 0 { - rval |= f16c - } - if c&(1<<13) != 0 { - rval |= cx16 - } - if vend == intel && (d&(1<<28)) != 0 && mfi >= 4 { - if threadsPerCore() > 1 { - rval |= htt - } - } - - // Check XGETBV, OXSAVE and AVX bits - if c&(1<<26) != 0 && c&(1<<27) != 0 && c&(1<<28) != 0 { - // Check for OS support - eax, _ := xgetbv(0) - if (eax & 0x6) == 0x6 { - rval |= avx - if (c & 0x00001000) != 0 { - rval |= fma3 - } - } - } - - // Check AVX2, AVX2 requires OS support, but BMI1/2 don't. - if mfi >= 7 { - _, ebx, ecx, _ := cpuidex(7, 0) - if (rval&avx) != 0 && (ebx&0x00000020) != 0 { - rval |= avx2 - } - if (ebx & 0x00000008) != 0 { - rval |= bmi1 - if (ebx & 0x00000100) != 0 { - rval |= bmi2 - } - } - if ebx&(1<<4) != 0 { - rval |= hle - } - if ebx&(1<<9) != 0 { - rval |= erms - } - if ebx&(1<<11) != 0 { - rval |= rtm - } - if ebx&(1<<14) != 0 { - rval |= mpx - } - if ebx&(1<<18) != 0 { - rval |= rdseed - } - if ebx&(1<<19) != 0 { - rval |= adx - } - if ebx&(1<<29) != 0 { - rval |= sha - } - - // Only detect AVX-512 features if XGETBV is supported - if c&((1<<26)|(1<<27)) == (1<<26)|(1<<27) { - // Check for OS support - eax, _ := xgetbv(0) - - // Verify that XCR0[7:5] = ‘111b’ (OPMASK state, upper 256-bit of ZMM0-ZMM15 and - // ZMM16-ZMM31 state are enabled by OS) - /// and that XCR0[2:1] = ‘11b’ (XMM state and YMM state are enabled by OS). - if (eax>>5)&7 == 7 && (eax>>1)&3 == 3 { - if ebx&(1<<16) != 0 { - rval |= avx512f - } - if ebx&(1<<17) != 0 { - rval |= avx512dq - } - if ebx&(1<<21) != 0 { - rval |= avx512ifma - } - if ebx&(1<<26) != 0 { - rval |= avx512pf - } - if ebx&(1<<27) != 0 { - rval |= avx512er - } - if ebx&(1<<28) != 0 { - rval |= avx512cd - } - if ebx&(1<<30) != 0 { - rval |= avx512bw - } - if ebx&(1<<31) != 0 { - rval |= avx512vl - } - // ecx - if ecx&(1<<1) != 0 { - rval |= avx512vbmi - } - } - } - } - - if maxExtendedFunction() >= 0x80000001 { - _, _, c, d := cpuid(0x80000001) - if (c & (1 << 5)) != 0 { - rval |= lzcnt - rval |= popcnt - } - if (d & (1 << 31)) != 0 { - rval |= amd3dnow - } - if (d & (1 << 30)) != 0 { - rval |= amd3dnowext - } - if (d & (1 << 23)) != 0 { - rval |= mmx - } - if (d & (1 << 22)) != 0 { - rval |= mmxext - } - if (c & (1 << 6)) != 0 { - rval |= sse4a - } - if d&(1<<20) != 0 { - rval |= nx - } - if d&(1<<27) != 0 { - rval |= rdtscp - } - - /* Allow for selectively disabling SSE2 functions on AMD processors - with SSE2 support but not SSE4a. This includes Athlon64, some - Opteron, and some Sempron processors. MMX, SSE, or 3DNow! are faster - than SSE2 often enough to utilize this special-case flag. - AV_CPU_FLAG_SSE2 and AV_CPU_FLAG_SSE2SLOW are both set in this case - so that SSE2 is used unless explicitly disabled by checking - AV_CPU_FLAG_SSE2SLOW. */ - if vendorID() != intel && - rval&sse2 != 0 && (c&0x00000040) == 0 { - rval |= sse2slow - } - - /* XOP and FMA4 use the AVX instruction coding scheme, so they can't be - * used unless the OS has AVX support. */ - if (rval & avx) != 0 { - if (c & 0x00000800) != 0 { - rval |= xop - } - if (c & 0x00010000) != 0 { - rval |= fma4 - } - } - - if vendorID() == intel { - family, model := familyModel() - if family == 6 && (model == 9 || model == 13 || model == 14) { - /* 6/9 (pentium-m "banias"), 6/13 (pentium-m "dothan"), and - * 6/14 (core1 "yonah") theoretically support sse2, but it's - * usually slower than mmx. */ - if (rval & sse2) != 0 { - rval |= sse2slow - } - if (rval & sse3) != 0 { - rval |= sse3slow - } - } - /* The Atom processor has SSSE3 support, which is useful in many cases, - * but sometimes the SSSE3 version is slower than the SSE2 equivalent - * on the Atom, but is generally faster on other processors supporting - * SSSE3. This flag allows for selectively disabling certain SSSE3 - * functions on the Atom. */ - if family == 6 && model == 28 { - rval |= atom - } - } - } - return flags(rval) -} - -func valAsString(values ...uint32) []byte { - r := make([]byte, 4*len(values)) - for i, v := range values { - dst := r[i*4:] - dst[0] = byte(v & 0xff) - dst[1] = byte((v >> 8) & 0xff) - dst[2] = byte((v >> 16) & 0xff) - dst[3] = byte((v >> 24) & 0xff) - switch { - case dst[0] == 0: - return r[:i*4] - case dst[1] == 0: - return r[:i*4+1] - case dst[2] == 0: - return r[:i*4+2] - case dst[3] == 0: - return r[:i*4+3] - } - } - return r -} diff --git a/vendor/github.com/klauspost/cpuid/private/cpuid_386.s b/vendor/github.com/klauspost/cpuid/private/cpuid_386.s deleted file mode 100644 index 4d731711e48..00000000000 --- a/vendor/github.com/klauspost/cpuid/private/cpuid_386.s +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file. - -// +build 386,!gccgo - -// func asmCpuid(op uint32) (eax, ebx, ecx, edx uint32) -TEXT ·asmCpuid(SB), 7, $0 - XORL CX, CX - MOVL op+0(FP), AX - CPUID - MOVL AX, eax+4(FP) - MOVL BX, ebx+8(FP) - MOVL CX, ecx+12(FP) - MOVL DX, edx+16(FP) - RET - -// func asmCpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) -TEXT ·asmCpuidex(SB), 7, $0 - MOVL op+0(FP), AX - MOVL op2+4(FP), CX - CPUID - MOVL AX, eax+8(FP) - MOVL BX, ebx+12(FP) - MOVL CX, ecx+16(FP) - MOVL DX, edx+20(FP) - RET - -// func xgetbv(index uint32) (eax, edx uint32) -TEXT ·asmXgetbv(SB), 7, $0 - MOVL index+0(FP), CX - BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV - MOVL AX, eax+4(FP) - MOVL DX, edx+8(FP) - RET - -// func asmRdtscpAsm() (eax, ebx, ecx, edx uint32) -TEXT ·asmRdtscpAsm(SB), 7, $0 - BYTE $0x0F; BYTE $0x01; BYTE $0xF9 // RDTSCP - MOVL AX, eax+0(FP) - MOVL BX, ebx+4(FP) - MOVL CX, ecx+8(FP) - MOVL DX, edx+12(FP) - RET diff --git a/vendor/github.com/klauspost/cpuid/private/cpuid_amd64.s b/vendor/github.com/klauspost/cpuid/private/cpuid_amd64.s deleted file mode 100644 index 3c1d60e4221..00000000000 --- a/vendor/github.com/klauspost/cpuid/private/cpuid_amd64.s +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file. - -//+build amd64,!gccgo - -// func asmCpuid(op uint32) (eax, ebx, ecx, edx uint32) -TEXT ·asmCpuid(SB), 7, $0 - XORQ CX, CX - MOVL op+0(FP), AX - CPUID - MOVL AX, eax+8(FP) - MOVL BX, ebx+12(FP) - MOVL CX, ecx+16(FP) - MOVL DX, edx+20(FP) - RET - -// func asmCpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) -TEXT ·asmCpuidex(SB), 7, $0 - MOVL op+0(FP), AX - MOVL op2+4(FP), CX - CPUID - MOVL AX, eax+8(FP) - MOVL BX, ebx+12(FP) - MOVL CX, ecx+16(FP) - MOVL DX, edx+20(FP) - RET - -// func asmXgetbv(index uint32) (eax, edx uint32) -TEXT ·asmXgetbv(SB), 7, $0 - MOVL index+0(FP), CX - BYTE $0x0f; BYTE $0x01; BYTE $0xd0 // XGETBV - MOVL AX, eax+8(FP) - MOVL DX, edx+12(FP) - RET - -// func asmRdtscpAsm() (eax, ebx, ecx, edx uint32) -TEXT ·asmRdtscpAsm(SB), 7, $0 - BYTE $0x0F; BYTE $0x01; BYTE $0xF9 // RDTSCP - MOVL AX, eax+0(FP) - MOVL BX, ebx+4(FP) - MOVL CX, ecx+8(FP) - MOVL DX, edx+12(FP) - RET diff --git a/vendor/github.com/klauspost/cpuid/private/cpuid_detect_intel.go b/vendor/github.com/klauspost/cpuid/private/cpuid_detect_intel.go deleted file mode 100644 index a5f04dd6d0a..00000000000 --- a/vendor/github.com/klauspost/cpuid/private/cpuid_detect_intel.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file. - -// +build 386,!gccgo amd64,!gccgo - -package cpuid - -func asmCpuid(op uint32) (eax, ebx, ecx, edx uint32) -func asmCpuidex(op, op2 uint32) (eax, ebx, ecx, edx uint32) -func asmXgetbv(index uint32) (eax, edx uint32) -func asmRdtscpAsm() (eax, ebx, ecx, edx uint32) - -func initCPU() { - cpuid = asmCpuid - cpuidex = asmCpuidex - xgetbv = asmXgetbv - rdtscpAsm = asmRdtscpAsm -} diff --git a/vendor/github.com/klauspost/cpuid/private/cpuid_detect_ref.go b/vendor/github.com/klauspost/cpuid/private/cpuid_detect_ref.go deleted file mode 100644 index 909c5d9a7ae..00000000000 --- a/vendor/github.com/klauspost/cpuid/private/cpuid_detect_ref.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file. - -// +build !amd64,!386 gccgo - -package cpuid - -func initCPU() { - cpuid = func(op uint32) (eax, ebx, ecx, edx uint32) { - return 0, 0, 0, 0 - } - - cpuidex = func(op, op2 uint32) (eax, ebx, ecx, edx uint32) { - return 0, 0, 0, 0 - } - - xgetbv = func(index uint32) (eax, edx uint32) { - return 0, 0 - } - - rdtscpAsm = func() (eax, ebx, ecx, edx uint32) { - return 0, 0, 0, 0 - } -} diff --git a/vendor/github.com/klauspost/cpuid/testdata/cpuid_data.zip b/vendor/github.com/klauspost/cpuid/testdata/cpuid_data.zip deleted file mode 100644 index 509fd710335a56cfce207ad0ee744242601bf9ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201312 zcmZ^Kb8w{V_H}IA_9U4&9ox2@Ol)f=w(W^++qP}nnq+43^||-{>O1G$bGxeFs{W^| zo_DXc_S$$9WxydYKtMoXfL{<0a|bPW4NwpeMKBN$65wwkR~HL2I~Pk6AvsYd;D?=w z$v}qPKtxeZN|e#X!$nVV$!UuT#kc1cSx3Ah0d?FmEnTW0LtCdCGpM_pMUI#2bI6v6 zH5(vsAT6@f7>sdUU}4UsajGIIvHrUd1birb2fX*Y!$AfIi(}ZV3mZ0T##Bwsi#4id zv59uKZN7FP=WCNM$S3-;5U8h~U+-E7v0=L>!@QMkwJk3XiSMXB*c>UuhTbdg8^6Ab z$qzd8=r1;4Qc-BAE(^UFuT5Wr)fiPx4nP^vk*d-WJ*A2?w-D;uc9qW+A4kN?C>_zPO`FF~1x zzDxWgD9ZmcD9nEkN_`F!O1F84`)a!|x@x)8<`zSuF+)&KyorJV*c8FB4`=+=FVk$$ z5{EcvC3o50AFn1l%}qlc35m;#B!NEye`NpI;%i0HBW?qTjW&Nhj8b>Dwk~D>pF!09 z{H#|f71cXa<*WHcj1zPAo40!d0a0Av%M+I-qLKT{d+05nVUVHk8Bw#_+XmpSt1LWC zHma(*X)@?ALfY1qGu7mZBRr(+h)a`N7BfhC$hq1zsnUtcdL2F^CHrSPQGU#TB)Mp7 zeN|P+X#N4iqaL4Z7nn!a%$v4Vul8=DwL8 zhh)=)2Lcdk(INVD{m6I1=K*2I1-El3UmebIawM=nM*0`G->&7qH&q5twxzXS1Rm?2 zP(&TW^L|t~iQnw98fLu#?p#K;Z&Eh<^|z;;c&-LidobLiK>XsV4>Yv zVn`A&hUeuW=uIISGQb`+`Sp+-@ENT)u?xlRRj(JOZ~GXMz>T?x@_EddF0rPL=h!EC z_>J+ljXI-=A-j+&a=vpdM_Ohwof__09mZSPoE*0(U5TnDsR+Gj!LpIjlGHQZw@uX` z!_n<^%Ec3Yc_U0UVQ^Tud@SyxDjk>Fs=%Mm_3#<(Go<1-)OMuB-rubu&vjMJ<+F&m}2$a0sMp&<)ER)=wU^ z-}7ZAJ3p35UM)uwcy-3Ke_|KvcE|nhL4)-RIzot<2$SIQK6emBxf45uVJtmuJ>)?{ z?4`T_xSs8_jDXdq_fX%}NKIBCATtNSIx*2j*P)bLW}GM-@WJHrv~IY8$3 z8TNlLnDSvNweLBv&JMH^4V~v?(_^Zl33``6>-^*Z64Lw^Mn84hJi$hef~oR|U3#J! z-o-|*d5#4Khf6|6AWajlfSP3tS93~K*IXcB8FC1VG;$OR$Gi}?I(N3H)+m_qz~y*w zd4gl}>ywKkxG=f|os_YP;P=vjaE4cch)RdaVXc>A7Q*2#ptx|kjj^EB0xPV9#AoYH#PgpzX zit~__I1x8@q}CfG}|fux#xozDv>#3pZve3RdIMSGYgCNhRWKQv4dIB&3@ znK{n!@y0SdSx4e*cMHC3?b-4F&LFhsb#jL8kuRP|p;mmolheZDCQuZ!*jqXSEiFOq zK&(6Idq^JX!J#*5;!%txV^+wQHW`&$aXfZNV#(3{H>_}U!?pGSvC{v)bb{rtSOMxp z!T}SCkN#UImw3mZTS|I5sw#gl`H89L*~Lsm!8mi1CEK}MEY0a2SWNO5UfJ|+`D7Gg zEaFW@;}_GBmp%YJ;peN*garMB@Q`qIB+QeaK8=K&B+H*iW@hH_AW@i-?kR+V6ieU@x-@v7PJW5oD-j>?_xp#DV>yO^53iC91VH7ZG1pPNx|8vivI+Y7;G^*N zT#D7X-=ls6kM4b%`^FRRND_I36A%`k=EOk^REn~&AwdVBAt%vp^f|{c$@mh~U+?#; zfY+QJ?7JE<`fF%rATBTrRiO+%UoZFZUsh<7H;ntZ4sJG8L~T$iQ(LW-&a};sk;{S} zDFw4$B4i*C$j{k3{ zqE%K>GJ#TYLh##YzJh=>C`ihEW82$+P`%j^6ne0^Ce}16V_h~;pKh268np3cW8*4Yul3oAv6{;@%C>^^pms-FkKGJ34zCLJdb!rl z7$PInyB5PevD`1_YFmyX39EOd39GWUMNk)e8S5spyrw|Xbcv4RQ7e9(0Cq`k{*JdP zF-WA$5BrRek~)#*dTK##Lpy>s`8aQ0=1Nj+(EeB1>H7L!RP$m0JL-uZYB_Im8PO*V zU)&0stZ8#;mk(Fwl%qq7;4VJ-;IpV ztW|W>c8{R?8BO|XHSHOX`HE3r5_$WUHX`O|vJOEnBb8jtbj0xlG!5ed(`IO2N&{(% z7|xln>$poQr#in&%5%}N_?Gv6PhsN@ImD+7>@<+1EKQ)3zMPTX{wxht3pzK!%Av9e z3vg6f?kw~ufSKHN-Le7&Cy4kO+w^&uCj_fRAjbpXs2hq<{p4DK!m4^?>tkmOK9`>K zO&x@L7{l`v|E;d1;=v{<<3rzM_t`2OqXn?<%9sqSSJ!2DI+ir_XJ7fFhmA5q#7g4_zDcjOi$xyWzk+l4>vrbVbqbsw3?=>af` zKUph_Hl%iXvVhNK`x-uKMr2G{!kbH!pESH^!f&i1uhk!bpRl4McAaB{hBs=nCz+?> zq{Y;`O$9!$82-zE_EjQWRB*oC}eLZt~8VA#b8GTMF^SHO&tT@dlf*jQb^6v9_HsnRPRR>hK{9ae!3rC ze-TJI5G~1RtvL~B)mRz&ZT+{E*2Wf^85MTZ&!uq|?~vGCPn8|`a50;282bo1T3MzH zm&chV2+rx8MOqN{GRQ6wS=H!IG#E7G^M$=)ddsZ!_zai?=cEDa% zd)(Mt&=fLLsck*#hmt4+O;TRf_MLW&6fqcf-E{g)5UsX2+AFvPb?aY%%;n`yli0z8 zmwXyHi(d*M`r9|I^llZoJ-O7f64DW^NI!ppPf_ak@6%f-8{2FSmYI#cfeKjPsbB`& zLic%@c}cO194bCcitbcM1Hs1WW`Z(0hQ>Ytsse@dPdE~JCHsIVxX14H7uP5KSseKGtVeN& zK<8*cF_|>ODhX?WIIy+*5Unp)RN5=~>cBFpTtdPXtn64Xb6FGmT{0N$qbi{wS-XcO zo|eQe2OKR5kkmjaO50aBq(>3f3&Hw~9xm^nyLp`C&H^grAu;dtS!iJk$K?9Ezq9l<~zQ4#K zE2YF}I$SS|XG={-f&xEjGT{fw;!63 zVg;FgD;i=+Hd$d@+`0(`sPM8frx>@Xx6)TI!3G5kXMAvOzQ9ct}Owf*gwLS7;U(}I-RsSqLnix z#t-@)jpSsW)9SEPGniLe61=>YltbKq-=SgZ%@p4&qcE?AU5pG({Wj9 zbUi2&@A}eSiac!EL-5VGigSH@+Ux|Iwm6hepanRIZ`;azD!X&fq~i++B5hmb63TjD zqz)jRi`Uf@{(u!dS5x9DIm1aypzMIarBpdP>w&~v24PPhv`>$UDtmxO&jwp(U?UkT z>w_>5j+$%KaEUKOQ zpF_F*m(R{V8f$rP88kb-0a_%517Si9F@b%noov z*+s9RB*Lr}h#}_EAL(s3TGVp07POfP|g z>~riLMKY`ziF!?@|AK4pd_#?ro*ZG5#e!}qjYkL%XG1k{w-W$I7buY%)hf%ah{ar8H1Cq;2Ya&8D@>%IuJ>Sf<+l zQ!*VFXuA@HGE}qvgS!8-T}Ci2KU;v>wgs%)DE~?0gjftD%TLqNM;0x z7ynHoMiPrLhOwM2lVjZa396SK>D!+PvS5RTrE*HqDKD`tuKjn%iK_Wj3uVGiMdI-m zV;&(r-9O_V<9-^|gZdNJ3RT6bFRPTBpB27Jl>OGjyMf1|_c*Odm{MW#0;sfdSB1#% zt|2T_FtG4?CXQ2ivZ&^la3Lg6%DkqThcupYhCi@9e&X+S*82{SGcf9S$3_lqM6aiVwiUB5j>a)^(TZ%cs zlUy5X#_9XUFeejFk&}gM8I7+YMMYaPy#Ysu`$MKlZ6GQAtrnq5`i0!=`(oQmj@yyL zjN>TeEd()-(E{}(J0}Im!{n94QiTolQWLkXzT2#xX~6~lFtye?$tRAgM;%HxV4a`0 zzO`o84;3y%_U{e$e(KC_bpS+7!x1+R7~RC$CeH%`4N?fm^oEjmk@m8nH{+uu6&%-+ z_KC*Y>ZBb)HXyOfRP2)}T2$#|&XwjdUL=bWd{oPfk~*QK7oqWFPXsYa7!y0?TP48H z$NXRlNBOR|$eD=?<7AsLC?jG7Wa~cG57eG-e>kJHNG*!F0MH^N*DTz`p3(BMJwMD{c_IIK!qw|UnTZgQ&B0uK z^pf&hJV<Sb)d%<5tRYj()-V{`{9o>$sa z#ANet(7%Gp5R`NT6$q;2{|PE!3xtE^Z=g~Ef{GjC4^ROz3us6&{GwN&R^)-Gs?0)c z2$C}R#;{?W#tTH%*15VcIzeyq#E?R{*O(!NSfCX;=nhf>(i6 z&LH)KuL+KoTip=!DnmTkbF$ot6JO6Smit%9TL43GwmtzOHR$&4TfNwTk&pUYEg_=! zH#rfV16&`ydQ^8v%&7G+Wjw`9o-pr#`?v-kvUe)F`GZAxMk=?0BC%?>dCI$7i-`8p z<3VB~|%9P~SXhy^YZq3{cbb-_h)&^r%59I7<0#SU^OpWP^)PD&Uw)1Qt(4>r8# z1AOBRWa`+c*e03AqD)k2apevggT!u5%#?>p)OQIU`DjhWxBhT@PU0d>D6&@q`&DB~ zr7_}~0^TzC7qyH$U7c}S`T}0%1>u;RS{Q8JcOQy^r3I1|EGp1^(#C7!hds(vcbGpx zHl7JKC?o3Dh{aNCX(h~AA{Vdl-AydUjkZ5IFTDPz{r-Ov?PRvCoDP)cMW94e{ewhv zFa!H4oCZQp=Js}fQmQyUxB(^v@fYEnU3eJ&vHHWx=ufB1ML>ntK|6^>K!w@9e-u1; zf3Sjma51buKNm|^ZKBno!q>gBJo>u9#p_?E*i#=o&MfLu@;r^;mZ#!QC~y^pGsB%w zDCa(=X65Fq=r0ImZ8}sRJkd8cHq_s6k|-YgM6O61@U52w5~32GfKZ2L zy!RU{7|ccU1LR)`lgSAiL;)mB1duTQcsQ1S9S%qs7yJKzxZot9;gLoO{!kg>X>=B4 z_e6=2UhVGAbk>K9rO<^j#o^%Vf;OVyXaOUfPLI8u+y`k^OOdcl7*JXQ_Kvit=9REy z&v8ANR*5Q+IXL#BnjoxK_K`Ik=~3_1jiAmoq5POkejqnXu9t+Qv|ue3j84bKIU z7i?ItZ3fFif8t+=BT<^rT_E+i5zDq&nbTk)ke0^v0}LxBqYBKSUW_9HRTqW%z45N9JD=Z2?yssZgq$B z2|*r8DvI(Y@-Re-O%eg0g%NZxj9Dix!+r1%DXvgTvQF0X9-R=P9MMBQ_C9|N^dDmq zPA&``CwM4^XrgqIUCHjES5@EsE`&xWpz;kaIVklOmL}D9+M{gsCm$@Mp^98F9sGFc za1`pJYLr3{`VJOY9o0z<95y;d3A@_{pkHT!H~g$jaYQnCvB)MpxqgE3eH!IqQCv45b(0m!@t}Pkb-DaP(YA_fptwVA{oPqNPVjLz9sDQiL zaM^_*jjhpU*+tU${P-1GjZon)oNZy>U?CU8x9OBpq`r27K4nFAD%Zy(b6u#HihDe- z!l+l&kk}7TQR_s3>qBu^5rKUEz z+=Z$T-qs$8pE+dXbN*6oK39Fw3(5tGu&#pG(b7pDBQ?3e`ayoZ&91P}TIsv`!1luk z4-wBGWk(%?d8VjZ1U5ejDv1fdE?h=yG^+!pEjog+%1(%vCqq;T|6W^Jr|yHqvqtK= zqmV1T<0g)tn11szO7l=VLlhNW*UFP#^i80-mc0#rjlY${Ic)2N$FAy^;r=ERSzYKW?2N)i{V!Czg@*(J+7b_kkwrTVL`xT=3K%U?nXXM&^ z_`4Bxy|Sd;HXegXT4ba2dHK#e{9olvAq0EIJQV}G1VTT&P>OT4YEZ>vtR_+r_;&Ep#Bw)s{bgr1SUr{K<;i zMd$4}GriXPRT)j~bzfLJbFPj~_lu83f693E6EgY=-Q#tGWZ(1@rP42k6nKsFXk6?q zC1&>si*%v&H1(UKD@S6g7H$j@+&HAahT8T_ldJ&yNY~)J>cpBcw9zg{IXKNE%V1kGm2n*!`w?6hRoB~Q{~q!n|2v#GvlCAabCks+GJO?*$59kBKQ zXFNibE>*YrsxXLYGj2-aoL3V~M{Y6E8dh%Xc>TAA=L10#4KEOGkdXgF)&3Z{a2hBY z+1T4!+WjekMkgKBZ}6goe0UGP)S9_`F`KAAFqRx5fP4I;ad1vyhgg<}(4v0;qE$mKMzv$RjT+CZpfQ5W!TI6()c)|mjbSzR;;fRxq8LA z8f7x^KbSJb^1>8e%^jTI#Rx(p>HNyV3Ra5q=2{8-W5R}fV!aqCv5FcMV4dlgpK0)! z+($&0tF+sv#dlwk?47ISx~a}aKcEwOTI17cXaPAOp`nz+?GAOAMQc>I^hK)# z)r*BOznm%h`(G80qhnjE8mM#*WM# z9`oMMa7xZ{&8o6p(38E2p@-?Hi#8|YOZGwdSaF}jHod;loYWnq#TgGQJdVw#peJdQJshoC2wgA=6HSd7{Ez5xI7J08vgFTlcT=A2{`UyD zliR;t{x;|S203uV4?HeBkaZ0IbmTwA41b8cy_3DGxrMQl*`HND=_qA`8zcAwxpRQF zpkYvbQwOFEfMa35_CzzAVTI%MCVc>4EA^YXUwij4zNqx|_m^&vA~3tH@@Z&mZfnjQ zE?9)GAOOtbx;*o25fRj92(r^l5@yi7aI9p|-H%)$6Vp|J7Y*D#dBn5j%ZwO7>(Iqkjp|g<7^}R#2pi7I;#-?CgkZ2KmP2LRI`e}_@OEGV{k>JoFb(8D)@ZUkob6y zoNxEXXq1-$q5Nc){L&~J>70kNEk|z4)sN8)4}{xVy!C>ivk#P5s&4G8yPMo0vD<)N z1vqFZeI~9|-HKU@^(?ynlsJwCt^q8Q%BkAil+q1Z7YGC9Jx`6Q@@Zi~O4rP4ope*N zaxzcw1YN2%>;&yrSJZHTprY0q8pFW6|5Vr_$jW{Ki8A&TCc3L1nl#KllwbzN9DLj- zs^i}BLof6ds*u79GRrnbq3X!^AvSa)4rFy%WB$T~*h>srnqngj&1HMA{(6yo=#+%ci`9glmwrl+4Lf>St*b3AqV`nZ-4=GA?-i z!%v)Q-{3KSP~Q^Jv|MC47M%V<>M}VkV^S(JpDvLnw4B+%M_y!y3HBNoVCZ<_d=@_BLbKBPktI9%(N@{Fs z>Ji}Ncuyt;$OD%uKQpO%q83Ym?yQqHs5Gc-cyf=M**Gyl|DN4>^7dUdCye1vOJuAp zQ=XQuDx<*hzS+UQB8Wq}K-oCUZBNLnv`5~Rt53}-S{!+kNDo+GhpxaU@=(j6`V8tE zWO(qz%sT{u1gi2@$zCO%M?aljPp{nL^wcqBFHyfK^Wc$iQ`Bdm)^C-0olG~;Z^|ZB zbEdvSA(pNoq!qiduukQ8dY@WbcXvmrXwS;m`hw=g*F$?h9Eg~%>dit^p?loOxxpRI0x@bg))7CaBGRwmx9uSMsIN z+}!=$mm3Zom;ER7>1ECY4P3nyQV0v&lN~M_x0W+iKbAY;@hXB&6mzVRJj1pt&P$tb zUyy=MlWaCCsB4)fdViX(2ur*-&zL0QSX)A4%t{SeJQqo6m5t*bikval3xT-qwa%LW zS(wY`v{M2=(ngk39w^eBxEHQx-{A3X!l8O%l^jBw@M$zk00}8mJ&rJh5eF<|#w#w` zKt`0cpdNICwbZoU`T(}9oi$ll9KJbs*E5G#M{R|;ky823O_3t`EWzbt!~K?^n~Ty& z#ZOu*p1+!Bq}je}Yq~G+W~u7$z_Y+6jV|>_Q}&_KgEeJWPhD!yeV|W>oK^r-+A41p zvc+qw^T{eB*2+HqjlTaYsn*F9p#D&P@&Bd#LjRIMVIwD(zcePM<=_IDP(t>6^V~-v z!5&h_POGh;+b@cNoeA=ce4(;xehT}XsGAvUxZ1D2dN@nt=H$#qYM* zdw6Hy`)}4ftECUT9NvDdKhVj{;RPP-p1KYlv$Yr3hG>o;mUMc!5_ zu_Qi!Ywtk~+F48kj|&d_&l5p$HX#EUfPsjOk-LSFt?i#@%-JbR2@e1u<5ZH}Pt8=z z8D#4B#SWODQiP7?D7JUkiG1FY_h)}Yq?F0{@)Js3foL`D7?wt|7);8%7F=7ltXEAK zGt({FB!Uws7&&D>zB$bBNbOVoaB34gG>?5=_}+ zzcV)1d^9fBTJuAgGeazSSm{E(<3*wOukEq=YzIr^h8cjc>lrM$FiokoDM+Y1Ih1~3 z)kC>fJoU_48lNaDx5FN?skmgQ53e@-bgJgnHhEHzy&ESAeYHH-SsBq$S-&y6pqA~O zv~TTA?iOKgF7OS}&Zpbsb=UgzDPbwPTAVLpPj>3YPECCav%Pkrqhi=g|0rGSMBMml zW=XcE5&XMG!)HMzrlV08Eyjqgbq4pU8|RKAYb0A4Ehf8`OBCz{d>DB49#C?kQI(hwjvot4NamlqUyzli{4_Bn744$!%-L$<|6Xq78_;Qk+iucuruuRNp%m8 z3Dr4EXRZ1Mqd)l@^Rb}DKe70al(Iq5Izo!AW8T5XT?9&SDZAj_>GlO%H)8P7DbG+c zW{9*uLWbG8#fErad}HV5=TC5=bvmp{^2j(Gwfr^cp zskzzTiE))`8@VosGO`2zHIx>z6&M(1K%Q1urkRYpIoMB=3vE&!j6q` zSTfuS2!kJZ2U5q!&h$0?7ftmwbB`n~BHIOm?nUxn`aLgkwkuk3Y|guWFQ-#oLufgc z7Q1oy{Q-6K0blLu7aR_@cR0172jfD7IYUd;t@34w`1|$V8u_C0hf_ZDz*Z$cf{L?Z z^IyWHC&xqXfdEMRZQjuBWC4DHomG2E1du;yJHw8w7)pc^Mk`Zz2Zin$rxMib5qrkK zZ2GlpX%6kMi!Rie%uK3wI%FQmHbR5Be+y$hZT7K1m772z8gjg|flT@K{JQ%B5*e)F zny>vd9jq01{XL*|)tu$i*j)GOXk%Fay+gEU@Hb+LdL$pO%S^Ji;CnRT^pg!)O3-5c zz^NnWLKfda#q^p7xgL!wlp4b<$TK);OLm1(P7qF8akaOM&ZKewZ+2?taKH!Un|v>mzGe%ZYKa ziPm^obe?7Oueuw~xFu0;uT3v8iVNYwdF_#d>gQ0&eo+6X@yXc0I(p-`G@GU5ewWAW~4yOko#q5y+s|_4J&kNw+|EBxKl+-@(*Of@tDY zF0zD%r6|zC%9$xdBNv7wkFA@{zYD1&TGCXmd>^|`2vfqg*o4e*@!w>OTYV`H!olRmNJwq z^z%A^+_(eYI{Bw!L7e?xDdV5Hk)2{>4YX+?J<#{Wb_lt_G+9T9l{iprbzN8))f8H| zQJ}+0==L#*Yw|1CD>D&RSzkW6U}bSq^I9%N5A(5@_{t9O4?=fksIgUPiE3SrY+f{785 zKz9hrV~4o|8G_>KFN!Vc=HJN}_a;D7KLEYwq<|8Q19=#?KMH`84*>f@g$K*s4O0Ao zJNZb*@JX-pRgnqyVsG^$hTTjFXL$~0PMXTK+qO8_(4qhvZ9h7QoO5mVRM^C|0^Zqr z$TPn{_+#^e*E0Zl7tWqS5@%@to$6~)@b;w(YGy@?Jh`lkdhvVx&O7*Dy`pNZQ0y_# zD<%U==Ko%$VrCK-0eVG%frh1>iG`W7%U_JstdLz069VL{Z_&0tyyjaS;YjVLAjvJ) zg?EFZL?b~4Iy5JW$ez&yYOU^WfeXKtjOV1$PK&V&Nwo?p^!mEes+66b-?@*Xu(qIi zpGQ9BhVDCO>TJXl%XM4!%pGdTRl5*)B-4Gc-LWw>3#j<3O=yK}sapq!_Z2MVQ&TJ$ z&U2d19*~RCC$=&j_=Ds?2B6O$JPD@mMcuPCLfwc|F~7xuMHNZ_$lsR=5gth?dK2|I zl6gk(foe=)*z>J~`5uKBl}%z6O^7{U8O91U2}OuD01!YCz!u;Hp#_l)bFXvyw`)*- z3mM9L|9M^iy~qfBUE=?GUBJGcnUn3G+IrcuP5$6Qz<2dp3Y~l#%(^{VTYTF3p*%Uc z%rc3N*!{bN!Ki_KgSxnMC;~q*y=gcPBioo6;lqPZxD&V`1#_W*xe7^!>I8ImZh zRx9ZDh#7%y+Htn`Hb8qHB2K<|)aHRgufQVM+w2VxbBr5<(9D5QRc)?FA16PGmRHmx z4_+McJ~xG$o5=kNg~(Dmm1_hQjTRO!lqHlPlp&NNlp_=`L>YK4VuAG6`WLLETn80+ z*?AAuT}h|_poHA$9l4)QjX5=u1w^lgpi_r7FauYxFI{!} zr4)Lw=mRN*v>dl$WU*t!tc04N7?Dk!{b)OlJFdEP!RO)~P zvZOzrr2F4mfEY1n(O)I|DQH3CkoC{~O1B{vcD)Rw zne#6wP~ho>9(gdYaoOD`D<`V-x~F>%^w*R3%q$d3Pq!HhHDhLLFiv6=XiQlZBcN6} zxa3s6bz}A&Daw;ZQN`81R<^qL$yw5J5SpG^P-?Pfgdt;z@^)FZTl1h!#6L9~yM!V_ z*yK$HKzMkwt}yQMT&ZWXP*=Bv>HOmMys@!+JovFiBS*DV(ixJuku6JgmXEN@ogQU( z>8Hck9wM|=AZn@Lp{z(2gacC!Q0k^uEj&aLUHL9i9wSas!L+#0)rvjBUZ^2oE%8+2 zF#j%ZCs>^Y2!Hjv;UR_h%Zrp%-SJ}J$uab@L_x2{VKG2-BOwAYS7tp7pgET!#X-Y_ zpH_Sd7Y&j2vVleer73HT;1lO<_Hm3wkI{9W-sIMbJwT!W4>MVOrgEH|-4-QbDKuVM z3tqJP9tRU*VIP2?q*I!+?%#=cO3l-;wt%!h`k0gQJ1OzQI?FAu7Ix7Z>?u<)kV=YoHT1UV zbqq}KV;oEn8FE(<1nEDI8+s54>=OsOYw_pZCfD*t^y$E7FwOJ?Ktx<_>?wt>s5W&& zieb-rI77H0sA5P&uDG0{(a!nX66mt&^J>DRGP?Qk`~2iQ_ARNy*$-vOiq@ZY8N8t~ zta@qmb>{U)Y{EOT_e$w4Is$)daUvxRDf9qc%O23R{I>uBnI!@oECBu(Ec{J?Qcm0& z#DQ~#j?IBW&Z_C!=wO$14a)acnl6W1ZL&NXzl$Y_is-m|*9Mnk-(saPub*J7TaBK2 zO}CkR&aLjP?wgAbR1BOPx1>2k)OTmNx({`Ob>w9Mg6?N~`neT0sC?hL=iUTId}M=p z#1AadDS7!rsh7;U@Q1Q^I&`d7k%+s$i#n7~n5k%xJ5Z3x6739>z}fkeeT7mb`)agy z6Ul4qzIM z)LWsv*}A%Z+GS7Gec7$zaI`Y)kUUNHD*g4s_gvvIm=Xg zg*a#NaD`o71>=nRkR1h8xTW@a>c*|5##g9{PYGwuRrnizh_3lH4^No&7-Y(_!tH=f zR-~8+c$kdFc0cO)ChrJF5dL2?4Npy0N;^aa7d(bVz6JanT{$xso;gKB+*imBFXhEz z@eDOSX+>gRjpSEl=a3#by^-R_kE;Jzx{~-~>1yVPC1oFSbWL4+79m*Di}SRc1UA7G zyo^7g9_|S#e$krDGs2F1h~D_Kgz!1I*hP9P4LL0Yx$2lE6(c1^88vxo4+t|c1uK}p zX_FCSVgS<^jo3<1A*e{mXTi=JqJ)*3P7qk)1c+oU$pl3<_`PE3&=;Q1!cNp^C1GDk zi|@t-Yr+q^MZ6}xL6xzLC6_u@4iPN}Uqo^ZVK9*V^GOwXA*7)Mk&yheNKpvE>PS(D z!NN)72*BDzNS>Hz>IR_uNfnQHsiK@6wqiNzuvVr?0*NiK#JGm~K`1!|&;Npbxj)Mk+wa%L)ye5*_rll_?XN$y&Y53G*ib z4O#!sedMfknAo=qoU{mHZJ!i#Dc`7_F)|s-K@|>L%t&5KqH!x<#X++-5e^5G!RSq! zdSg!%2y6;d@`L))OshR=E*tY@;EE*?X5_eeNUom?xs?_NRV6c0QIk4uZADxW89JVz zS!m;q>~jS7=vmft`dMe+nCFmGQ>8ncR`2gUQN7&NYuTWhE>&aabDF>~CZTwFF$XYa zY#S@uPs8C;L6m9p%8g}VHsUzt$Yz%i`+6^>5)K0TRMc@t0dymCiK3`te6TBO8J!C9 zBy(JO35ue8u;sgHKh>z;VZ0cOO17M}!$@7X^%ol5y?EI0!8}DszQJH1`1g}4vVpKT z!k8lYpQ3~z`oE%#;{8DcJ_x7Z$Pw#%0Yjy>j{KBw?om7#uws!;kU9!1Km9t-vMH#t?zb8DNbG8)Y%<#QiuNx$d z>B=uHD=)^N80>RuiSDZlyb|17Xs{lUf>HHDb{Lb^kL7#F{J6d}YAnRH-&0Rj(>}!P zwEjSV9_Ulk;!V1%fAB}1vvnbyvfoX_ks?qUxr#{K@0ukSsXSnc)nBM@Dy|RbF+ei9e+Vw>ZfR>e?Z+yb z*7XWUt=dnXR-=L*_F5^&J2v0CuJDt4>ZUy3rb|OhcL)2(=^`6@3|bFgX&GwLx=Xw0 z#{kFf5q$ougF}vnYn%Kfnql?D^2_NMD-SB|v>}JL2^O|K*7pydz#qI;RLhf{W4=WF z^wTRZj>gg#jIAN%>L&du+gUcOWo9Yc zmcJ`|(_~VF(I`50;~?2|%lyI(V41$@4dVEHH>d}ab(z{F=fO?jLfO#QvEXF$v)ZHN z-TbQ(Z=qBcyUq{d7X|+5def%oJ&x)5j=fwRM!S$5tt81A%xZEPRN>R^<|R1cOXtaig0}IC`CByp)fkUbj`!06fGyF!Z`W9Fd2q3!uT_!hu1<1xIb&X z^x+*%w~_v7gdbcl%9I(^E%o|xO&m=)@9Fo$Q;fU z2?BTcZqJ@5;yv-t8tqY6O_QP|vaaey7gm5*sK3$*+x3C*8d&m;0W0MHrWHFd+5C%E z3Qjg=Ms|PNNYDOTc`QY+!P+5QyQs(6^`RyWHQtynxtLPv(Kmsd!_U97;a7FNqe8}P zR+SZ&j!#WX!D*IWgfwt5@i~R4vcC((3-=bssRzcYAog0}i+4uVHe=D66rRF{-=YPP z&JR|GozSQ!w*<24wt$oZi}-egc@{Qe%`;i5vVMw&C>Cows6Hx46AA3HcpALHbY01B6E^Cd2IP;54KkPi*|z$>3DnnzyKMxZ6p;d@=)afxIR3Bx z6Lzw6Ha4>RQ;PmWiw-z|)gRPP;^I?EAvu#*QfaK&z^6VtKLE@=n`Z8*&=O0Xww4p6 zC+CKNfpP?J94gep-H1Jb!Z$m~TJw0%L}FQEuq&kDs*c6}bDb|;zBqBC+^0Oj_B%N7 ze&{Qs{?32|b1I-Dfq`UJjwKtSU6OO|$<^QjJTsEZd6R2hzDwHUomCez_NXkv*X_fz zWY6OV%2gsS{U^i;HHe8XiTIwhyL_3T1!1*bFW9<@Sv+8bxG}>N<6NsYz}>Fm;IQHRx;M>YoF`TQ|Bf8;eJTXovn-Ms&ch3tX;P(m+Jj| zILRm)fm^A5W8PbkdB5P!`u`Yv3$Qqn?R^+`8{FN4yF0<%3GNVrySoN=2*F*0Lx2z% z+zArgJ-GXS*v;PEdw=&n-}lteUEOu2rs?WFbv+-(es!WgeMZioZu|K*`XTb=6PP*cDyfQuH7BrP$8F zN*76=o3#(T{yLfSkx}LhT;4kCMywIMh3Bg6y$5ghW$OIKCN^)=v(?J>{#(N|C7sNz zqY|IElEv&T&$h*f)A+6V@clx6eV^7xp?nFiY6l|GNHlVEbtiJ1>i91%Fld5)#H`@r zs0q0-wgd-Wfe6V5WHnk|k)=1tvMX9C6K%85$@J*3fR`xri$LSKjDZQ8j4rGZc8Dm4 z!FWb9j(`@_PrSt9Oc8}U+fd@Plz*M31hFSi>Pha6-{cVBWUlP zY_z|o7c!$S?j=@DUf%Y1+#&}g%$UFp)_8ny6+*~KRx|?0GuC)qNM2J?UKpo-k(F=3 z>h8W6mpfp&FWX?byWkGQV81t~{wM)6_bA7gYMR___Z#Zg82Y@(K0K!qy(lZ~YvA`_~j7a%LEe|@2%Q>~(Z+BLx0x4Z@5G66SEyKlbP zCt0@4EoN7vdo!?O!R3t|+8Qd+`2Pn`H%_NYa`GE_q5|#zJt`76NDch~smNP@F#eml zm_4Cl6C#2Hv-V0hhlY@$P6GN?#0GX=y|T@-XHsU5gDBCcb5|cT?+zd8kz3}DSOKM3 z+E@?(YcX9BDGdFF&TmhmE>d9tsGq}t6UdwQ6FyON8-b6~=L!#@l>VP7h45{aO24x; zo>NBJLvFgUTTQZ5!yT$rTIs`n_}E9I&Nrn~fv}gK#H0!CC@2rJ7&n&R*V3 z2GPMS!Ez0=KTN?J#y({z(;d-~cd{sBKs_HiUe80esw{ea_`+dQ&IUL~f=D1f}Mqs^N!H9rOa*6>^C2bj5_ z%+K#ySn%9?0(yL@>2{)8@en_}eT+fLoanS-UKqw|Pv-o{@o|`whaH-3XKW;ZuWHiD zbP-CNokOq2hBmTc&`Ic>xNvRv6GNo!6>&x_|Cbwr5h_n1)C~BNO>B7z4(hJEmdfD7$UG1;R6TupFHH`#1Rdc5^Luzs`wV4*_SX8xT zjqf-VChfncLrsyZOIxs6b(dkr;=!f$E!)Y1B2sK*>0s@POm9X$Vm>oR;7BTriKmXi zdL1c*gx+lwR}7Prh5!z5f70zV1xHl5`OXprb zJ;>wOnYEb?>`8bO`6|x2O|A+pA`h%RziV)ua$XZoH=QgBT1x%pUSpMTGOl zohaa`pFDs!%{fAT!D;41^0ESsd)F$44){Y|lg|lih1Q6Ug&_WzR=hnlp~iU1chNOi zgc{*$=fE`a=rD?cJegx!T?4MxLf?UT!-iQcVKCPjEgl@A={;@&iOjA%br(qC@4-Ug zUJ&&@3~zsenN}*CSbul7=~QwfLi;VQ2qP9t=lvD!0rMTc_Jd)5? zK)c_iJ~HrzfxqhzL-)HtMu9k1ksoJ(IX0J=_d-Z?fWevD3CrCWnnY?p16MB$9Og7V zeV(2spTO<|wr{C7=TCR5t`SemLccpbRu)%F*C5krjl@DAD{F-=lZ?z=P8Gp|K^QCJ z?ae6aZP)t`1j}EN#4Z{1T2hex7w7$t*Aj$afnG~dOY?uel1DnbPW3#PPbYZaf}6O9 zoi)&Ei3olkaCm#0-(rTl>JQC*_5(!0_m$Z)s#3cj=Q`W*dh8Ug9r%QICR?Z4&f?vR z3cn7uCAqLG70eu?bi@QP2iF_%iO1b3cg4dUCq#Mc^sIBFA63MP^ims2nYFRlcD z_7MNkVUBLD(8is1D7~7^Q1IxJRDJMupW0xcok4zeD#DtndC^R;2JnnWJn46mbk__*gKSgac#6hg>dFF;G6xQQk`GQi zJ1|^yPRVq$C_2p`H7R>QS3VkiC7>ghQNCY1Y4bIi|1`tr6Kx*zcQ7c@!pr>C3LGXC ztv8W~AqMu9&u=dpeL6E}92+XBJ>WB$X>^%3Kb&#hv*}XDO+zjdF^w;N9qI1=()z(M zh<8_rCdhbwK@Y0iCShQv0T+yi2Ml*e8eC7_))F(eyH+yam8OfEh7tWxtj>)Rr6mQ7 zpOm)|jgMkQFvI~Rl+;^o-Z&z7!cu|klP(-Wo0E>#Px3YFrn1_h8Zb3wrI1BRYcgB3 zPSVtsTwp9}s8zyk@U*kdRd>87E_xSVUH~r`boXJQ0=f-Nwy7fcGO?4}8!2E}IL&<*~{TN+CLB8)`;ObmP)4n?a^6Fhm2 zVw)kCH7;WJO3t8MA3TUG@<&npQ;OoiGx*;^uSJT*mV5GJNepS$v(F^Q9<7l$dshVt zZBeQA?J=cb@1C07PTaVNNc0q<%s<rz zE=%lj-$OjRU>x~|V-~`|q<6wbT(Z7Ch}f;^B#g&h?3XNUNgHYNxDwA273}&J3LN+X z`ixqjCdmp$#^;LhExuG^dVj_(KEJRP@sT?H=ywRL59U~clI*PuLmWfV>Zx-9eNGuv zlCvjI|KTX{TC~>-f~LZiBmb8fV}HEZAV&%GV#~Sy(?mI%k&^|ApuwzltP!<~d^e2q z11`(6K_4%9yi}x9v#am}C&e6+MAl&M4-eF>Yj3*SJ(R|qfzB-;&$=m*#->wj&g6ne__ zc3l*N32i9_*Kj{ zN+vo%QsY`ha5FVZU+>&jX2n5gXH$} zxH$=*I!@t)T@_gSjY7|p>^qmXJXgcT{HZ+W!YN!)H7I@Z0muk|D4{62D848*XbjQ` zH1=2y;8>*ze@6FRqItp|{bk>ePhxt6`@UbBzi)wcHulT4lIaoAzk8~?l6}Y`AjWB@ z;QumsK#Yd}ZtxssDcNtl#qB$h_6aZZk|{*;-Ho$EQbmOkSSTe^fQ+Hf6Vx7~be#J+ zozA$ZwECq3mt|gI78YnsXnq;x`Pox&{O5i4$Km&}#4b%yQ)Zz;n%`Xbm&f!|g)G0D z@Q1?;_@ACU?IZc_2!aceTah5U61(t=XNNFvW@S~m1z5%1lu~#rS2i56wLM_y(%rNbk2{rSmPq?LI-Bh|;Vtp&KD{X#>lX51@F?!{MM>XDPsLhrH2KHz0*gX^sO3=V72(=*(J1C?Hi#LZ=KVY!Tg5TM{3bJKZI_d z?EMjj&8iEW>@5{5uJ)94z%mS?{<35Syj_@60y9$rZ-sJ=rnTmdsnbHWLyfT1_P)j& zFf=g9jx@Ux?G0`St90l=3brYy6#`^Kv^Fa!ySgf8_91-+J2D~pQ>Pc8{nRck(uNa- zaL;oqtRo@Q9ONY$aMHB7zQgd=3%MyJIP^`c3(xmY7px$yJej6<+ijgbVCN6g$}M2H zBhuja>C*0{VX~a^4aZQoi;_LSh4fEVk&t$nU9s|ZL=qZ+6C%-;8W`~2GR;tRga@0E z>tKgNQYah=K9ui?2)%ejoB62F>qhW;Dr=w_gMEb`7ZM1gzidrobvp8k1YUnJ>jubk z@SlO_D>uX=vD-c47T^Z(FBLfuN@RalMM@?QsOYx(Lu2P#qf3^Q_kDuEe8C-A!!9PL zIQdDrDx{ZxkDT-_1GhFT)o<6~!QP#Z%d;_(Q1GoQ89}jemSO={u_Hm!YG0vlI$Q&5 z0vGi{ALw83AV~VrN4b!0Mv%1FXSPBE{R>v%>rG@we_{Ede)Ek2dZJolyf(V-ztU#{ z_xQjW6d2>+51 zlY5mCpn@-=%KKMZ$BTDh>yWy+=hfZjd&enELDXw~3$MRaJWn3M40|P&4_jZqzh`Ar z7kgoaC&kD9X^%I{u4GTmmB!G}OAlq}MqviFl(GOF4LF|$M)zh)I6nE^cEFt??Aoy$ zp}RlUw{qI~G&of`H^^{Ecwb3~aP;e@5UnmCC|a7c8aCuBbJ13aSUNj9c}A7Ca3VQM zm;O-W4sLY&i~6kU`kX4xXz!QlWf@P#ZL4EKnWDkC7Gh4-wbfIQ}&8Kp|7?EUk>K|8`i9vgVvFxIkoF&I0$J zmlm|qVrZ)62nh!UQ;1SwjMV65%F`$3m&SOiqbWH4lL0vV{N23Tn*pCsqA30Sg4r>~ zgJ?f}C+TG#eOvE{CYAO@m~Ji?awWrkizufHu_W|ozN*X~C=3mk7d2rljPSFz4S$zz zelOunw{3}&?8_QvCn9tHHr>2E4YwL(G>xla&-#+^iPV?C<72SvlE}ycG+g%?6qZ1^ zud6HF;mO}QS%7g-zHOUbIgBUH0_Q!$2_%@qu%^PT5gUUhy!g-W(I;3R)cf<%h-fVM zkh_OvU8X5~XKj6O#u7b*8{eHt;l% z=26KCI@LNYs^0YPC6LJ6iQ9d22=d!YhvZ{7hDN2velh8~s4mD{|D&FA7#E6B; zrxLY=xRGemZ;jot(tt*z0toIANI-%$hVnQV9Qd! zlwgtgUI%Wik^!G!YX4(P$gfqsc}~8Z#c}Js?seC86G={k^?@dJ8z`*DsMl5pU(&s+ zd@vt%O{~lui%O+wzN>s?Y~&nkBI2b(JrVEn5bUX^)pKRAP6nka^rs@+yiv zC`orY6WEu(*+}Y?_fd^j`d1pS>Z0+^xHZGh`8&M}RC;DR8)OvvJ2gY(Y?yDTY5VB@ zE7?H{Wv4|d^>6(6S8{%HN@qwdRMcDYue7VV_QN;h*5&W27=>2VeU6Dqz9+OISwu!! z9int6(cTQ?Tp!V~yv!E>y_>RzQ7Ce{m8E-q(y=vI(6{GSwC70(DctC!wQn zePZwDBRBW@DNH9AHJfzm3ntBr{NsBb)}*q?r(fbH>VXs7n>s8xoCGib0i9{?J-~>8 z3{z|n3;O@e#`%Xj5;wNBwRZkzID?}Zg;(Pg`nPdfkyCx#!ft`E)Oz-;_ z(=G%G0($GP*wAX_@S%V4GNfkrjt%QvvkKdkt$y%licjed4Rai-R)i%`BpnS*6cWw~ zWSmxi_{eG!T6hB0CRiD75pS;CN(xy8vj@}od4=t)g`%TLAr5?xRxv#sU$i9s($cG{ zghpGl*i*qCT3sPiiP$Vy1SW^?V81Mxx;79~w*hXTKsNAGqvqAd!lZ_mhJah)oR=3M z3J!)bH~p3&};83@sCd$B$;uh z=NcKKu<+UWJ1i!WMN5#PpiIorEaT1oxW+-!@!U*N#^A9Vy4+zJl$G$#lceL-vQ?T` z!^w=N4>;$Op;9=+`W`OpubJl>rbnoMw@}XmJz{M^Ey0cTKU{?09fP#_`+uNuM>F4L zfh-^wp+4wD`82<)OE_bY^2(x_=#)Arj&wuA*S~VHS9Ugqla#hlneW2|=b*?Pck>Om zsr$|8?dAFX>Eo3C2x^;iXFDIizJam3%kp4#lo_ve)KFo0K^?qK&NOv&=th-E7bmEB zVBiMeM3g?AuLXPOb@SouIjGQbaDsq_^gvJaMeMp$*|P*n6$wRzr=g~^oM5hEV;Of@ z%b+yRrdlBdzhYXwsQoQ#Ii^;ba#5kIbxM@RP`P@!YOCy3z0&|&Usr#b(n}hl@Z4$M z&u<#hi*dlyHwgob=#vSnM9(w&1ccQX zlK&5^=68EZnA@3~{G%7w@qfSh7VT+u?S!QW41P3ooI|5o54G%ZK`_s@xYyDocP=g z=jmwYQ1|;`X1D#~p5JF21Perx>d)$_HEWNALhz?kw0>c0LUdONdV!W*008#4M@X9K zARMEJlHy+s3i%3OD{I)U!soxr7MznYYmTn4#pP(|aGD9@0qfKcT@wYlBHqW1%zLw; ztOcex{fgiW0OmK!qE|xMyyx(1W=eKiR;&bHI2r);Z=22dKNwy~KBog!baS4iYz;k< zi_g6HLl-0pHQc6D|TU^Y%+?yG?xw;j&Gf^mySWx(^iypftOyHZC9lbZeM3vmR3j~q!G zY~G2qbiz@Ye8T?6nVLIUEY$l1i!TU>S96-?XIi&-Eyq&=cUi((lZZ>DGrCwRphq`U zB)!5V$(DO_@;5o_FP-5U)9Pjl((z1${{w~ir_NB8x<#QA)?I-)=mMd0+h` zhAef$OHy?#nMu2B?%-R*_?T_I_`?PUE5#<7*BV2*-aLQaAh8hQL!n?=B}83C6e%Kn zZFmq58@r@TG2o>IB?P(^=CUr7vZQc@u3W6#!F(@ zbq*WYb*~3xh&nCb{@4wG&Yu1U7OyM~JJJc#?-v;VL%+XOM*-iqWIfe+{M zTE^}mu~>E7dj?7A+tryg2G$&pIs(p-)jmSqYZj%iU zE;C>>D9Fkpa)WRIN~xCu7G(KTPLH)(393c2ZW_a$*aNMyc8pbQ;4A=8GwF57Y8pTE7ZZeU5gT-`eTjaM#BJ z?0{X!*38Wx6oE?w;!Lftc{P>|9p%?Cjks<**~=Qt_ar?cSkyCXb>%N^)R0sg3B?@- z&(c&V5l^Gf0Y;`~u6gy<7gf`W}z()l02-7(DKD?s6 zL0}1l!Ww&y44Fgh{54DA9>BtTMO=<|$$7*15=3wU&a@^^UcSf61Dps1}v(Ks@RpK9QI*$XB}X zpBmkaBylyo@IJl|Lpq)}Lc$53&MNumzU&X8NXn9U^qWsVf509lJ*I*F4Ci(|eLw$m zW9w({e^swgG^}vrM>aCb{6=pHdz)>PnP&7!^vwecYMg5Q2Ltm%fgjsYzchLl9gIS2 zXEL=&WC*hcYKbT%4(S2mXq2uJ3ur&yl!$ry#EGkiqfM5Jxv3!LqmX@xrsWNht_$aY z?ZFP|g#6AG;)}A5pqd$QNO6_)dG$sAs|$FP}r3t(!@c>!{GvH4fg6fjZrrVA``>Ldb9aG460Y_thr51hCDvm^d0r0U0AUHf2aUG z6NKJIkP5&Cq4xiW-t_7m{Z;{L#-KPM|D-pi?%ExKrcJ*Pobr!cV|#@wBsW#8ypG3F zVfIZLG^ZrrU%rubR7we8fgE?|$rOhZR~7!&qeRVIH{TE-oMqUSZMVyk6XPVPv$ggn z!api*^E(=oS)6H{7jbx3a@!*O2!~+wN~eCUA^2e=v08h$TZv@K>8X?lr(kxK)|YR{ zHM=mH<63Js6u9Yw0yRUbf!h^ovC(PBcw>sthS8x0S4lT?2H(mUmu?P8v>ihwW6ib`!&R5{-EYeuLIAL9ZaO`BKOKa1aUb5;5FZfU&7IIO9xTTqkl1{ zqP&59N51lw5{Ep{?2Sk#g;UyF4gm6JqmZxfp(G`|f4YKKCq@8efO9bpX>VC<-KY_= z2NDu7b~G1hq5xqd&g4{05=&7$PT%PqTd1fK4@k6@5(GA{Dwn1Kfb^eyBKQr}Fg zE5Wl8EnPn)4$mlB>(4aT4Vl%?EuSlUuZiG)ZC#=ohPo*(2Db5=pWxLGS3Lxq@^BSY z(kgV;`}0&63;MJP57T%(&TDmH@?G~eCJ>=?XRE*X=viDiTAbH(8H`o85xs-s)}y#e z1Uh1QMj)flVnh$QLRk|{DiqeKu^0%vX`aUJW$so0L`n5TlPmTixUp+Ts-Mulooa&(b z9S0`dw`gL!0)oE5ulFh`j)aimq-~Guex+Sse;E_N`2t0wYRv$WM^4>A+JKD4JC=`n%tg97=E9S-=Utn)-@;sh_N%(UF0v`{RcsYAfW!669}gD z*83m0$ZNP9Q136}>|$(Z;%fW1p{56zsViW)%*K0OuOvWMJyC-$J#3TV>b3X+U*`9e z-_aaH$enO;K_sNZaF)*!m=h|2DPcTH9-fdpC5rP=sc+Wf1snw#+F0_v>j6tG4cF8W#}Z}us0FgXIVbI#(9kRaU+;05X&yZ1OIaTB-U{a-%Nq6H*-R9KfYnaR+(98 zfZMUFN$8#D%!%)x;!25-#IkOyAJTg+Uri2=XzjoT@} zS$o*HBc~*NuamiO1k#4Y}}LzGk8X z1Bv2xM`_!LosM!fnZ)K23=D?w_k<+ zMQaZvWy)>y^c7eGKFF${8Bn(p=yja0%0ty%XH3Lq^*_|}<(=!rg5l!FPIQTsYsk7-7Jt*Tzy^Qhs8Z_(z=i1+h@V|T-Zk_G^LR}Bb`B;m*r_K=WN z15{i>@a8))#^i?r*hGwSiQv!}Y6fbA?IMNp+{gpvEul+K+z#fF3?}D9% zBZVhOy6jfNxzf2oAa)lJ#P2EuF}y(hF7{IM3BMc&Ct}uQ?>*0)t>;3=9N8sNM7CDX} zR6?190m}U@9+MHWe3f}Eesimr=)?4J(r>}r$~9-XbI-Lu1Xskf_A#MyP=C1rf*tKO31UhPnbKn04xV1P-1 zK|w)jM|fAZS}02QQBUl$kX7ZnkwGeedx^6~@nF=TMn!l7jykNo?GcVL8g`5Qqa##8 z*4o)U4`+>K&^tjkM<7F|D}fc}x)%~hyyaZ=inNZxX*2`W!2*q0LBw@#2kwzMJsX}2 z3^*RC5rOerzfb!kW)Orpq5(W;q+eE4UY;Fz)8Km}G5JR6Cxo)C?>hHm4Is}vVyMjq zK=CsaUg)hVayx?R0&uZ_Sd>_WSY}w$^aF27wUpH-PHvJXoPpoRC*Ipm?Pkp)IzHp* z+dgj&D)HYaK#_u+%n|gCkC-o+%4hwkDhZ6>XMKEU5mEvhfH)6e7UYJ4>mNA^;xo`H zBfzZ4-z60o_Q(;la)%V#EX52|NeHiO=Kbq=?Va4~Kq$cJbi?TV$x7k#5^hF@NM<1%&<`!~A7$ zCiWVOi?Hm!ME-m=a9@{i0QGVT#+G)T;`Xji|1feZXC`fcq-f9+H)1cw{zhxDu?5HP zFxV%WJ1<}Si=cGo@u$L!Ap_-3B|0SP{CxeJ2<}54D5$0qsc4MR6R0Z_8Z0IiempEP z1Nlw5=rIDYph)_Ls>EQ1mtPG;yskTNWm4r&jN<5YG@3Y8nj}MdUrK? zZQo`!-Yyy79YJ4mCuxqh$>bAqSWm@3T+`^n;vbn?sVVxxX1WM6=X)%?DG;oOV~4py z6M=xL{m4SGd^62119qK-7Enh)nn$Ga?C)vo3@9py;EBO9;$2j`!aQR|iyOBRgUFiL z$gsZ3-4V@#&46STh!CXpP`)HR%iR(^5Sf}MF7MSDPlHWc3!AT!9Z{zTIxtYXRh zh;y#=;Hn5kiUuY!f-bBag_1-_Kc>Pj$)}L_3KzBfd!6{#ExP z_87+Br*~U^ON(JMIsSE;LGO<%`x6!EW&G=B9OB;nd8G_y>wxCpsL4P#yWQ{0h!53z zg;f45IQhF`p}#Bk>HiCD8R$m+_veo`P`@q~WMzeL{109A8jTC|{DDHxg62Z}ZDX0K ze77rL!EBcr5+1Q(j+D?253wDN!PFEbpjZD{I#mvv#s`k|YapHLXl~AEl6)pSVLRjI z^Xf>x@Qb5S9UZj&sgXf((mrLv2Bo#2!zmhZ_g9wD(~SkDFGQBEF^p<1eDiFdalZQr zTM6?PhVyN9^`X%s#~IbQ4VGdrK)mvSrmsMvuFG zO%D*{aT7c56oW`8wo{y9n9_jPJQQ`E;3Q6sr6EOjsKkbK$FAlzGz6#GJGPscBLqEY z2ROhYU!k4fDX%9pA96^mh?)6rQs0Eue}k?0y~^Xsm`tIE_!F^~VD*!q1SV;5yWo^w zW1@`5={pUU>LI-oK534P)Y*|oldW#~nTszN6J*6wj!eJN7{`z zC>2cR&E7VXE}a;_pc9642SP|w>T=&WpS+7Nw}9Z)Yaq>p*hh^JZ9>Q;16hmIzeK7J z40P6gByRMYy|tNIK1EjEuw5XQyN_!ut0~7a^rZJ;#hY)BbbAa&LZqZiLTfBj6zGFf zCvt%2L6nIGT1-t@iTAym3G$$>WLrrr0x-I340q6+5{ssWLJWc-#8>1aXVjL|rB;G< z=RiTPK|qPHoQPeYMv~?BnYG>#*)NPwN9QgMAJ$m2w!rZnm$$x59-{Z*f9zmE z=_!X%W3CJ{F8|(!Q*506zV;y06L*#~-P?FM^l-Iz<|w9R(4UdJ=C17`w6J0$!SihY z-I>4>D9pD!Z8&{<_e6`gdzPD>en*u-8gqqt=V$mWL=RzML=4f*^ueQEOC1#|FmuXf zdSX{Wh?c5ayfd==>@8oEt{I9pR#{hT2|dBYBl=1yr0b7j6A`7s7lqH)eo3~? zRhTME1+5dO&m9Rf50!NFL!!E7cMuCYYUYe5b#&?E(aV)pb-HOf5M#iOBc|^fDs^9J z*&`l~5g5jxjLRv(j3YMIY!dQnRHh@03`1@JP?A@0K?o^9NBm-U_m(^p<8iHqyZ$R6 zxcuA3@HN=Ui^lSkpO*)Y``r(@PCvMs4orA7>&^v+Rjysjm*1e#U-P>xz;-mQKr<`A zVE)VeE;dk~`WmzywD_=;leL9~^*@wa_Jo2B5EL`!72!XHhEi$*A^h9@VaILzPc^Db zGGhH1#xU?uackqu9#7AA3xwAhvA{xJnW%0`@~m2zsYHp2zVSGIAdzP-G@94YULFmL znFH4zsWN_CalNyDJOKzkx0U{hjaGDL@qm znuuP!8+d~F_x@n>(IdVd)E{_&R#o^vlh@fn_YTw-$bnXlkheAdXJBY~RSnRZteB6e zOL=K@MsP3l7?m;gBe$}td41}20xtLZgPT!+>A1Fc;=YevmP|uDC{yY11by0;ZGq9=2jywQnyHI#|NE>m%uB8d^Ob;KLaP z7C%fc^e+Z&`c$4)lfRJT5XLr#)#ENim$3#kav*s;@C!7jwgg(^G9UQRM3&j^l3)y- z<9lbtBRM5-;Rx{r0uzpg2 zIc=|j{CTM6_hb}+O2Tz-ykAn4gCTXpQ@O692@N!(YEf3zWZTI2n6X)vg~mA&scH~6 zS&XtP>_RjQcQUx^d97E>Tx)1bQyO8S$%VCYQK9Xvp~Zr<$kJ2{xZ*GW`Thc?I(MYs zxXN+3aTLzOz+J_J%VY*{V?O&H%O&+la&gL(xbGvn;3GxB2L>wmH|1C>=wA!td%AFk z)Sk{*(Led%zVRuhyguRX{^mAnBa?|4(LMM6MA^MUzEA|BW1+9@>)}cD`8DDwlKJu? zRwMmK3#i>q4o%CDJ%keb=z7^?o{Fl;(uP@rm~PqjnK~@?fLfwD2ry(6)%5_dcCkZE zW2|nl{0*oB2i5=&6tgi>WE*8LlAtZ_PYzJ6Y~HQiGa>WNoAVT4xmcEvO=P7Xemb~c z>tzTAE!CS8BY)LKW2rU9K{Q3OVo=WLxGV?0tB^p%&$rq)dm}0zGBDhC0A7d_)5OnQ zLXI4iiWy*Te6|@$t40hVE^Rs_=`sZdRVv3CLK#ChCo2_GtS!Qz7lgtyzsU~~Od`T0 zj&(90BuKv2R5GTn%gt9sCmvV>E`6JN+(Q2%YkPJx0F^X`-Vl<)$I}pgKkCTc?;U{6Wsd z_mnUG6dBZ#Y)@1PA72mWq^lG3K;`Ez+=-s5loufJ*TcWXYsfu4U2*!|!{#6}F`I`` zSM>VFvM~EMtyW%?wvkL>i#u3|!^$8x4boA1mI6JQM@(DzDNg(zRW2r55z~&B1l_$k z7!NDX49`c|PkLYGUOcYmCB?@~+K4CLKW%MZRS!Ni?Js+4ofx!vUQM+we(BBW>M0>s zdOPvXw($YIX;IrVpc;5Z+0}}mQwJjg#vurQOds-@QX*1OW#$0R3;oAoktu` zma!IjO9>95AUqK#x)9T3bl>(_HLKjjhuk|p1vY`lraOEk4ltkV4{>avx^{|XM{Fvp zwAgHrvIyH$YLr|mOR7Biwt0k~Ro`XP(qhJR=;bk3Mwy4I{L;1gwT)<=nlV*dOgkGY z#-15to_C4Ym@HwO*EOFvSFZev%^c`>;kv17bBVx6sIM9=BW3^}p`lC7NO#adbod!6 z&VvHYoeD0QK4^Kl(z$uO#MJ+3*LnTA_1(<|bfwhjFf#Ak6FNGfR-dE(@KKuG>SY1< zhklnsS}yT=A@{4XB5(IZQo;0daq=dK14>~s7-T4G)55SG;Kype-wVq8)n{b2eD$FN z`Rslm7S{h6Xy63tJ(gELjKfgO-o(`SA1gM3*gt>HVf4;BnZSX2jLeY#RaFh+by#%r zLa*(d#>+@fD2XKrTDh;6PqqcYD|*IBNh`8kIx!csi| z35{gG+0z-?$B*H4bGF#+9G8i;r8i^iJRaq@}QT#d=W0lO1{F{crBe~PJXrINh zHvmdjw^fQ8PN(lzW_2s&3c96HDHnnXMt&x~!D9(pKdtntb3XJcKJ0r^I~h{M1&l|N z1DU;{9cm2_zz<~7A3a~3UwJl;)uRdWxZA>*@U zE8=myvaS+DK7yt;CL$fMNwb%lfw*C#Al{Ww@CuuiwlYxM#loLovpsK?ROl_jLP;X|G|0V$6TUy zSRWaGl5tn~0q#zI3n#gxyGo+)L*1JS01E{ozKJI?V<-mH`+BsUXvRJ4ru8g7U)8of zwbZudeZ9JxaX>6F6;z}vOyra*$}P`UO^na1v`#Y#EtLYWh=Fy{?uA2Ga0EJ8S8-OL z<#3b9qhg_>Mp3AS*aXPuanwh4=CKvKXO?Em)QD+#iM;87h_nc-N~+mUarXMSJ}OF@ zz@HM&;0#4!HkfFVD92Hp#ycI9Fe0MRBiI4&gug#oOl##RO5%lxp-bF`|7`$fQY`yiNXg2JTzyM*yn&_73FVPK< zD?AyT2y2c?Pdx20(HFb`$QaE}nBg4sS59h}-cn7HQ()q3ea*a7P_O>S`ZkOon{Orm zf42ksKigqhw&#_5=>6TD)}x@SD`S2>=dzlW=u{DkBrl@*;KB5VTZNr<6eNTg1Y!@h zA=f9c-RHAAV{L&C1_rCbT=pl?i${GMVJE3`S`Y7d^oIGUWU1cAf=F+{P6)|umDbrN z!5$I-78r0e%#Y%MaC{qjUWcRjl>JE}yWude%PJDlW|YW>+maW!B@G07%erISq%2J1MivJ6tqc(+&*41zDU64Fe! zENC~$+2@ZE!JsR@igw+HDpF{H_etVn9nL46Z;zWE;;UcNid^p23!FLgE1^|Hb*{X_ zPc}k65Tsf5o>&uokIDvX;(_K3LP}0auRtLH27~Khu}}{LthPmcB`uOl>zb&yQEd`; zGe5m|svc~me$AZw&ur2BX?p#of>>_{HVi>+A^X2n5ZkNi_18P`&!+hP+7vKrU)T7d z+G%S~$AA6$Rm^S5x26C^A_}ayfByMlA(vpGJ0Kul%t-peygR4s<@EBL$8EgE{v^k+ zh9qbC=vcyC+&$~CVxO7NZ+VBsY61ij<&lyX#P{X;VlUg+plKw7nL>em4C2FNDL_pg zHVW1W_E-sV@Ul|A%yp3nnm~#uiT^w=fvCQ7SsWQAw?A5{fC^mn69$@L|LnVE?_ewG zPd_F!iRvyWj3)&~lxDF}aAw(fMdDoz24zxX73G>@GqqKX>)7Re8u3 zf=Sq9i{N!)PxgXhU&%p6!i@g~Tix?9H31Rw3a+#~A0z90n>nb`UO7V+{>bnV zv%PNq1K#KjBeJS?FwA%{EGoXB)uHH)2ox$gstIZoF(q-bfV3d3xAIx;O7O9u6%ToR zy_Lyu=9X}&jP84c88^MOEgN&7c8kSP)0_zxEUVrnvsmNa>dL zAktyjH^d45^h*o+`jj_COA2&<2-+dqxMS8*=HHX zNczdUGas5^uA=RtC1XpZbUEFEpy?~_h@2<$!&8;cFg;DhlT0y^77a28=O{IlIDrZY zU64Oi%;qV?$qW3{4zCJVM-XsWvn$w?I6B|n?B^V}yQ@;VSvSJ%@bv5gT3@9dcHG6I zY#f=?2d;O9cXN-N^&YbpmWD4@v1)}gaPPB$xr`Eh&O;DJoU_n|1e=nZFH^s&t*F^d zLwE!xmaaHi(a)=h8kp~-a80DTmSQJfridmAq$;9>9gL9kuJP?;81sSZf`XO_--(J# zsy`8<4_RBY0HBDG-`e_mm47Cd#F;k@V&&WDz9MRjWlJB9OD23;+gMdaR4N@STg34DQorT&^Af1FtR3QEK8aHs6 zTKOA1M`D{@|A4n~X=QHyOXQ&i$xP{@`L=W>l@1_h@@;KN9aX{@8C=@YnJmsO+HMMrOAsT^(o+s7(U@D z%uh}1OqvqPJB|5u`k}0{P#rm2-9b|Vw7%%m;(PUGSsxRsX}fpihb#E{Tj89MNfdv3ZjC{d5@t8nV2ays-u^O(w_mmso(6vwNeIUR&cYFJ ztDOm_xv?;-O+ig*ioWNa9&e%C8Xs5;_7wKmPx%~XvvaKr!-#h|kjof+9cUw*A4co~ zId2b~bM5t$w<)LPauD*1mrjvdlz#i8Sl{>rAW904-FxVKhC+DKf!~2qiBkNugZ{l z2XlnyVx~-qMiI;tOc~4(%n&RK;|Vi^WP^9PR1!ei6|-cQ|3zuyA*oMDa!IP@VHymp z_8JR2pjuPOs+}_g{wLTTrxVl~I~z6`h$i9m7$*;Z&sT;5^&F-L?}!oOYN`D4^mxg{ z5y6d*9!S3H5 zW&^Fo!}GDjo$$HFInV6BKOG+WB<*%O{}I(2T*{4774!fpfqIbt`T)JI$;rxTsB8Se z#N5l8OZ*=l2!>SR66tBRRzvA|g6Jk;JlAgfXAcPo#BycrX$=2E?pw&Pgdd(`)IWI7 zZ!g!)IQ#{IhbNaA1!CjuYZL>N`-<%qarud|uOpg+&EP0#4#sk=ZH)2wztZRcIW@WT zWTpM{L@Vl=2jAs7G=%oa8s}+Z<<_oNVc$~hRMJFw6e$P1wJr0~NjH~O%*5A-acQu| z3e0~gf||kCnYe&PVALyN;nWuw_Vc-kLUXts0G!)R@Arpt=&=8GZk2&G20|2tCr^ftp6tJ`J@Qk!DSr*HN(+5m9&!XFd1{j zU|YIRK|^deDjDiVh@IMja{{sW(|f{;b-d&qg1ZkBi`@3ljl0>qmIkH5D#z1ba>sMN zN1wvk-Tyzv-T}O_rRg7yZDV3%VrydCwr$%^Cf3B9*tVTa%!zGJc=tKq|NYLK`M>u* zH@os=?X|jVb#~Y8u2uLIcQM+OX{;)jcdA1A^HmX=4WGf5dBYr+3VK!G_2cF=W?hV9pzYC4=D4~F z`aWCDG=2-$H<*FtAr98cPv=X-KCT7B9FR}$4Y_hh-W?xAM&K?vA;1aRIg5EU>}ebJo@{zWx-`<3+AD@6Dp+> zB2vof7rV)94YgmCl2KI36LR0CKyn71KU$zmZjW_5@rl8Z&*ovk8TIu+0S^0q15fA8tikMQ9#Rhm^5Ph~E?^`(+RgIBd7ru(5`lJ@yt8I5ed~U)oz3<;TW2-g zXF%hheXriR7YL|@VO}uEU~qE%@@s;&tnI?igbTzg_mm$Y7AE8~8F8KSg9CY#87BLO zBNaY%%4CQHGWWgD1I?|UT~gFqecW2LUn0s{+3nA`e1n|#~b#$0u5h>-dypanBGMN1xA2ok*{Pd^x{4idV@tBf4lqztb0*Dj z-z`89@T1K0lT6D&c`ySz0c928FC0kb5B8c5=Y*>u37+}{(w3<#Y5eBENeA7A8N|z~ z!Vi62--Pu`sqe8Z3civN#k|Il9^BEtx_U)w4<^J^t}lNdLw!GWN80d_ug8jd&WGtV zh-|5wuwU9VVPcFD6`q>Fxy-cBGMs6TD|H{ee$<33l_i|dOmPs9pIw`f+DcQMDn+Lv zn)*HW0VZ90%lfcR`+)9i>)2ibmJS5J7q~OsRuM!vU1PT{latCQ8DSf3X>lc}GhM27 zLezQ@liFLohfx3u4A5F$F_Tz`?l>F&{(cSAdljnC`Q6k}P)LS12M{Mze-Ip@avo)o;1 zSpRGmC0RqDG0RF!pp8wLH0qT#0Euf5pwSk%4Z-Fk-C@NLE3|HOuVH(AO z-$cn2unUV@CRDise27-)vVFg`pkawpnoT1pg9e$Ck)e>ZL2`q9LYj% zv_X3n2#SZWS(4w$*BMrYeLaUatuMF0jg~A>w3@xCwJpx8vUnbsV~ELmVw9nNahF88 zh`ad$QknX~D0ZX?s!od1N}XrRGJ%2xL8LD;b(NyX5xBE?%&^g8w!=8VqUa0kWRwS= z0-Pv2(Vy8%-jpNX*JA4UU4{)MaUgCzbJS4h0()?s1tsCqI$hQ+t1}6jEvo~~T1I1g1R%!;%7VW8`LrisPVk`}z$8dJaplRJ<@A%B^ zN5A-UQ^xRuus~Wpl1ousqUX!3C!}Qn8w~QTwXIqS>&2UO&T2$F7ZHi2`{23_*VxJ8 zd(AO$hfh`_&coiWSgGJo&AyV6)EyLw2=mUgmnV8-v8Ql@z^tNuD-#0H?aP5(&I!Y% zW{vp!>p&iSa99xTl}3ZnGl~O43@x1?az4*bD;VOqeDys)-wzvf9oHZX8GtTf?-027 z)nC2MSx)E@CS;tT*`%(k_O3U(y_)+bM2_l%Dz=gu>Ng; zLI=@$0+dFaLdpD4mVqJy00RmQUD#aK7=68NdQHNYxr_v_HSU6dEW)I5JfZ{Xk&@GTlSOX0J8a-*_1(`!9`zl^)N#k#Hy@r?E~kJ&x2bKq zB`N%6MK>>_X4$V>;Q>HUz7~b8+u0v}313rIX15VoB~=UEbw4&gsE;sEoN17qNsfYZ zp)>v=T!B=mwlJ^_DX@*-PeXGN9r10go5Ez|F2(0Ap$Jri$;|vi-;nM!iOmBy1p_xF z!8(yy1W^B%oCRmr{GBL{(gQbz0ym|=I{&!@Xal(F6_E@53WpgKq7uAvY+Ye~YriDPBtVgE)1K~pcvLd?!l*lo#J&*=;-0IbD-=nHn+ z&c}8J-(lFjp82o<4 zJoFuoD@O@_a>i={@NwjIL;rKTzixe(nr8*)^Ey6bgXLL9=&bjiIRh2*8@&ZdYWdEZ zA>rgrBjss9=V=B0b`j8U!xGS3Eqtakc!pQNJXrKMx)7SOq0U2oMgUY(C%VfZWDz9! zjjG9lMUT3Ip*oY1Jf#5ak$9Yjr5Qmhvrf7I1_UF`KId7H#re-=VPb(rX=g$wgerN{HXAo{f3hqtv4{6W~ zni>X3!yO*;ou=WD+n;>t7+Hj>r6y(oT)+Iu)okWhmZf>9Eu+vSS?D|Yzhq@{MlbYT z$Vx{`3`tl3O~!<2W*9;aZWE$z^T2OFUNo7?>Pl1QvK#05;B{phGx{(N0PTG8ba3bR z==kB_r~Ovk@K$(dKwH#Z1L_*7vkUYIEo=yygGx3A)?PsyhkdKKg%#f)a!_a&+Fg-{ zRo5SLP-++6U8#f2HO;^luHE9y|C`|w2N2|7o&$(%q|z>kHd^Wsd<&Irj6tXgkZWr; zuw0KstyKpQ=3w46#5!8ZfB}GAQ7vdTTJsRFy8;i3Y)|G+8RJ9^QzW3{GSwyyVoz^P z<`AmA;u#KokBEbL2Qd2}l>^R}fCJ!e6#aG!se^5RN@t==MQ&+2D?h*Fk5G}nk4;R# z>jd&2AJeR~DUf%zoDH#vi9s!1+;U!SB4+azm2~!+Go8nLtn`&PPTG|_A8a4Ezm2c1 zuu*{*LpFbeAKjX%pb8@Jrd7&_X;~F)w#ZC?`wmX)c)nUco2+JnJ?%EizdKq{p0 zoFY@VpI@8wi&iLM!yg8EoYskYbi#2oDJj`0{e+DPl92RH!!&?Yi!ME-PBx{LRH-uvFKPEWNZ!w2C@(6_Y0B$`^<`yO(<~>5~6mO-EqX1V#jv1y)ROO5bcd+ z$WR0`XK+PI?3vM&DmhdHk3(-Q>$cvf8=oGV%sON2x{qO~*fyzYFb^OHgEpO8e(?_A z&8D{?&+rbd=zH)_i=B2dx^(#wJd&g4ANj{%@w{GHvkZbspchas50ZH|^Pl?n%&PeP zVMsEk~fo*H-I+*nB

{*ybR9B)?&xU?7p=~nJQp&dDlzrsm2%0kKR*Ku= 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

- Template -

-

- Use {x} as a placeholder for each argument. -

- - -

- Arguments (comma separated) -

-

- One block per line -

- - -

- Output -

- - - - - - - - diff --git a/vendor/github.com/stretchr/testify/_codegen/main.go b/vendor/github.com/stretchr/testify/_codegen/main.go deleted file mode 100644 index 328009f84c0..00000000000 --- a/vendor/github.com/stretchr/testify/_codegen/main.go +++ /dev/null @@ -1,287 +0,0 @@ -// This program reads all assertion functions from the assert package and -// automatically generates the corersponding requires and forwarded assertions - -package main - -import ( - "bytes" - "flag" - "fmt" - "go/ast" - "go/build" - "go/doc" - "go/importer" - "go/parser" - "go/token" - "go/types" - "io" - "io/ioutil" - "log" - "os" - "path" - "strings" - "text/template" - - "github.com/ernesto-jimenez/gogen/imports" -) - -var ( - pkg = flag.String("assert-path", "github.com/stretchr/testify/assert", "Path to the assert package") - outputPkg = flag.String("output-package", "", "package for the resulting code") - tmplFile = flag.String("template", "", "What file to load the function template from") - out = flag.String("out", "", "What file to write the source code to") -) - -func main() { - flag.Parse() - - scope, docs, err := parsePackageSource(*pkg) - if err != nil { - log.Fatal(err) - } - - importer, funcs, err := analyzeCode(scope, docs) - if err != nil { - log.Fatal(err) - } - - if err := generateCode(importer, funcs); err != nil { - log.Fatal(err) - } -} - -func generateCode(importer imports.Importer, funcs []testFunc) error { - buff := bytes.NewBuffer(nil) - - tmplHead, tmplFunc, err := parseTemplates() - if err != nil { - return err - } - - // Generate header - if err := tmplHead.Execute(buff, struct { - Name string - Imports map[string]string - }{ - *outputPkg, - importer.Imports(), - }); err != nil { - return err - } - - // Generate funcs - for _, fn := range funcs { - buff.Write([]byte("\n\n")) - if err := tmplFunc.Execute(buff, &fn); err != nil { - return err - } - } - - // Write file - output, err := outputFile() - if err != nil { - return err - } - defer output.Close() - _, err = io.Copy(output, buff) - return err -} - -func parseTemplates() (*template.Template, *template.Template, error) { - tmplHead, err := template.New("header").Parse(headerTemplate) - if err != nil { - return nil, nil, err - } - if *tmplFile != "" { - f, err := ioutil.ReadFile(*tmplFile) - if err != nil { - return nil, nil, err - } - funcTemplate = string(f) - } - tmpl, err := template.New("function").Parse(funcTemplate) - if err != nil { - return nil, nil, err - } - return tmplHead, tmpl, nil -} - -func outputFile() (*os.File, error) { - filename := *out - if filename == "-" || (filename == "" && *tmplFile == "") { - return os.Stdout, nil - } - if filename == "" { - filename = strings.TrimSuffix(strings.TrimSuffix(*tmplFile, ".tmpl"), ".go") + ".go" - } - return os.Create(filename) -} - -// analyzeCode takes the types scope and the docs and returns the import -// information and information about all the assertion functions. -func analyzeCode(scope *types.Scope, docs *doc.Package) (imports.Importer, []testFunc, error) { - testingT := scope.Lookup("TestingT").Type().Underlying().(*types.Interface) - - importer := imports.New(*outputPkg) - var funcs []testFunc - // Go through all the top level functions - for _, fdocs := range docs.Funcs { - // Find the function - obj := scope.Lookup(fdocs.Name) - - fn, ok := obj.(*types.Func) - if !ok { - continue - } - // Check function signatuer has at least two arguments - sig := fn.Type().(*types.Signature) - if sig.Params().Len() < 2 { - continue - } - // Check first argument is of type testingT - first, ok := sig.Params().At(0).Type().(*types.Named) - if !ok { - continue - } - firstType, ok := first.Underlying().(*types.Interface) - if !ok { - continue - } - if !types.Implements(firstType, testingT) { - continue - } - - funcs = append(funcs, testFunc{*outputPkg, fdocs, fn}) - importer.AddImportsFrom(sig.Params()) - } - return importer, funcs, nil -} - -// parsePackageSource returns the types scope and the package documentation from the pa -func parsePackageSource(pkg string) (*types.Scope, *doc.Package, error) { - pd, err := build.Import(pkg, ".", 0) - if err != nil { - return nil, nil, err - } - - fset := token.NewFileSet() - files := make(map[string]*ast.File) - fileList := make([]*ast.File, len(pd.GoFiles)) - for i, fname := range pd.GoFiles { - src, err := ioutil.ReadFile(path.Join(pd.SrcRoot, pd.ImportPath, fname)) - if err != nil { - return nil, nil, err - } - f, err := parser.ParseFile(fset, fname, src, parser.ParseComments|parser.AllErrors) - if err != nil { - return nil, nil, err - } - files[fname] = f - fileList[i] = f - } - - cfg := types.Config{ - Importer: importer.Default(), - } - info := types.Info{ - Defs: make(map[*ast.Ident]types.Object), - } - tp, err := cfg.Check(pkg, fset, fileList, &info) - if err != nil { - return nil, nil, err - } - - scope := tp.Scope() - - ap, _ := ast.NewPackage(fset, files, nil, nil) - docs := doc.New(ap, pkg, 0) - - return scope, docs, nil -} - -type testFunc struct { - CurrentPkg string - DocInfo *doc.Func - TypeInfo *types.Func -} - -func (f *testFunc) Qualifier(p *types.Package) string { - if p == nil || p.Name() == f.CurrentPkg { - return "" - } - return p.Name() -} - -func (f *testFunc) Params() string { - sig := f.TypeInfo.Type().(*types.Signature) - params := sig.Params() - p := "" - comma := "" - to := params.Len() - var i int - - if sig.Variadic() { - to-- - } - for i = 1; i < to; i++ { - param := params.At(i) - p += fmt.Sprintf("%s%s %s", comma, param.Name(), types.TypeString(param.Type(), f.Qualifier)) - comma = ", " - } - if sig.Variadic() { - param := params.At(params.Len() - 1) - p += fmt.Sprintf("%s%s ...%s", comma, param.Name(), types.TypeString(param.Type().(*types.Slice).Elem(), f.Qualifier)) - } - return p -} - -func (f *testFunc) ForwardedParams() string { - sig := f.TypeInfo.Type().(*types.Signature) - params := sig.Params() - p := "" - comma := "" - to := params.Len() - var i int - - if sig.Variadic() { - to-- - } - for i = 1; i < to; i++ { - param := params.At(i) - p += fmt.Sprintf("%s%s", comma, param.Name()) - comma = ", " - } - if sig.Variadic() { - param := params.At(params.Len() - 1) - p += fmt.Sprintf("%s%s...", comma, param.Name()) - } - return p -} - -func (f *testFunc) Comment() string { - return "// " + strings.Replace(strings.TrimSpace(f.DocInfo.Doc), "\n", "\n// ", -1) -} - -func (f *testFunc) CommentWithoutT(receiver string) string { - search := fmt.Sprintf("assert.%s(t, ", f.DocInfo.Name) - replace := fmt.Sprintf("%s.%s(", receiver, f.DocInfo.Name) - return strings.Replace(f.Comment(), search, replace, -1) -} - -var headerTemplate = `/* -* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen -* THIS FILE MUST NOT BE EDITED BY HAND -*/ - -package {{.Name}} - -import ( -{{range $path, $name := .Imports}} - {{$name}} "{{$path}}"{{end}} -) -` - -var funcTemplate = `{{.Comment}} -func (fwd *AssertionsForwarder) {{.DocInfo.Name}}({{.Params}}) bool { - return assert.{{.DocInfo.Name}}({{.ForwardedParams}}) -}` diff --git a/vendor/github.com/tsg/gopacket/bytediff/bytediff.go b/vendor/github.com/tsg/gopacket/bytediff/bytediff.go deleted file mode 100644 index 63addd94d47..00000000000 --- a/vendor/github.com/tsg/gopacket/bytediff/bytediff.go +++ /dev/null @@ -1,217 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// Package bytediff provides a simple diff utility for looking at differences in byte -// slices. It's slow, clunky, and not particularly good by any measure, but -// it does provide very useful visualizations for diffs between small byte -// slices. -// -// Our diff algorithm uses a dynamic programming implementation of longest common -// substring to find matching parts of slices, then recursively calls itself on -// the prefix/suffix of that matching part for each packet. This is a Bad Idea -// (tm) for normal (especially large) input, but for packets where large portions -// repeat frequently and we expect minor changes between results, it's actually -// quite useful. -package bytediff - -import ( - "bytes" - "fmt" -) - -// OutputFormat tells a Differences.String call how to format the set of -// differences into a human-readable string. Its internals are currently -// unexported because we may want to change them drastically in the future. For -// the moment, please just use one of the provided OutputFormats that comes with -// this library. -type OutputFormat struct { - start, finish, add, remove, change, reset string -} - -var ( - // BashOutput uses bash escape sequences to color output. - BashOutput = &OutputFormat{ - reset: "\033[0m", - remove: "\033[32m", - add: "\033[31m", - change: "\033[33m", - } - // HTMLOutput uses a
 to wrap output, and s to color it.
-	// HTMLOutput is pretty experimental, so use at your own risk ;)
-	HTMLOutput = &OutputFormat{
-		start:  "
",
-		finish: "
", - reset: "
", - remove: "", - add: "", - change: "", - } -) - -// longestCommonSubstring uses a O(MN) dynamic programming approach to find the -// longest common substring in a set of slices. It returns the index in each -// slice at which the substring begins, plus the length of the commonality. -func longestCommonSubstring(strA, strB []byte) (indexA, indexB, length int) { - lenA, lenB := len(strA), len(strB) - if lenA == 0 || lenB == 0 { - return 0, 0, 0 - } - arr := make([][]int, lenA) - for i := 0; i < lenA; i++ { - arr[i] = make([]int, lenB) - } - var maxLength int - var maxA, maxB int - for a := 0; a < lenA; a++ { - for b := 0; b < lenB; b++ { - if strA[a] == strB[b] { - length := 1 - if a > 0 && b > 0 { - length = arr[a-1][b-1] + 1 - } - arr[a][b] = length - if length > maxLength { - maxLength = length - maxA = a - maxB = b - } - } - } - } - a, b := maxA, maxB - for a >= 0 && b >= 0 && strA[a] == strB[b] { - indexA = a - indexB = b - a-- - b-- - length++ - } - return -} - -func intMax(a, b int) int { - if a > b { - return a - } - return b -} - -// Difference represents a single part of the data being diffed, containing -// information about both the original and new values. -// From and To are the sets of bytes in the original and the new byte slice. -// !Replace implies From == To (no change) -// len(To) == 0 implies From is being deleted -// len(From) == 0 implies To is being inserted -// else implies From is being replaced by To -type Difference struct { - Replace bool - From, To []byte -} - -// color returns the bash color for a given difference. -func (c *OutputFormat) color(d Difference) string { - switch { - case !d.Replace: - return "" - case len(d.From) == 0: - return c.remove - case len(d.To) == 0: - return c.add - default: - return c.change - } -} - -// Diff diffs strA and strB, returning a list of differences which -// can be used to construct either the original or new string. -// -// Diff is optimized for comparing VERY SHORT slices. It's meant for comparing -// things like packets off the wire, not large files or the like. -// As such, its runtime can be catastrophic if large inputs are passed in. -// You've been warned. -func Diff(strA, strB []byte) Differences { - if len(strA) == 0 && len(strB) == 0 { - return nil - } - ia, ib, l := longestCommonSubstring(strA, strB) - if l == 0 { - return Differences{ - Difference{true, strA, strB}, - } - } - beforeA, match, afterA := strA[:ia], strA[ia:ia+l], strA[ia+l:] - beforeB, afterB := strB[:ib], strB[ib+l:] - var diffs Differences - diffs = append(diffs, Diff(beforeA, beforeB)...) - diffs = append(diffs, Difference{false, match, match}) - diffs = append(diffs, Diff(afterA, afterB)...) - return diffs -} - -// Differences is a set of differences for a given diff'd pair of byte slices. -type Differences []Difference - -// String outputs a previously diff'd set of strings, showing differences -// between them, highlighted by colors. -// -// The output format of this function is NOT guaranteed consistent, and may be -// changed at any time by the library authors. It's meant solely for human -// consumption. -func (c *OutputFormat) String(diffs Differences) string { - var buf bytes.Buffer - count := 0 - fmt.Fprintf(&buf, "%s", c.start) - fmt.Fprintf(&buf, "00000000 ") - for i := 0; i < len(diffs); i++ { - diff := diffs[i] - color := c.color(diff) - reset := "" - if color != "" { - reset = c.reset - } - fmt.Fprint(&buf, color) - for _, b := range diff.From { - fmt.Fprintf(&buf, " %02x", b) - count++ - switch count % 16 { - case 0: - fmt.Fprintf(&buf, "%v\n%08x%v ", reset, count, color) - case 8: - fmt.Fprintf(&buf, " ") - } - } - fmt.Fprint(&buf, reset) - } - fmt.Fprintf(&buf, "\n\n00000000 ") - count = 0 - for i := 0; i < len(diffs); i++ { - diff := diffs[i] - str := diff.From - if diff.Replace { - str = diff.To - } - color := c.color(diff) - reset := "" - if color != "" { - reset = c.reset - } - fmt.Fprint(&buf, color) - for _, b := range str { - fmt.Fprintf(&buf, " %02x", b) - count++ - switch count % 16 { - case 0: - fmt.Fprintf(&buf, "%v\n%08x%v ", reset, count, color) - case 8: - fmt.Fprintf(&buf, " ") - } - } - fmt.Fprint(&buf, reset) - } - fmt.Fprint(&buf, "\n") - fmt.Fprintf(&buf, "%s", c.finish) - return string(buf.Bytes()) -} diff --git a/vendor/github.com/tsg/gopacket/dumpcommand/tcpdump.go b/vendor/github.com/tsg/gopacket/dumpcommand/tcpdump.go deleted file mode 100644 index 90b6cce9f8b..00000000000 --- a/vendor/github.com/tsg/gopacket/dumpcommand/tcpdump.go +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// Package dumpcommand implements a run function for pfdump and pcapdump -// with many similar flags/features to tcpdump. This code is split out seperate -// from data sources (pcap/pfring) so it can be used by both. -package dumpcommand - -import ( - "flag" - "fmt" - "github.com/tsg/gopacket" - _ "github.com/tsg/gopacket/layers" // pulls in all layers decoders - "log" - "os" - "time" -) - -var print = flag.Bool("print", true, "Print out packets, if false only prints out statistics") -var maxcount = flag.Int("c", -1, "Only grab this many packets, then exit") -var decoder = flag.String("decoder", "Ethernet", "Name of the decoder to use") -var dump = flag.Bool("X", false, "If true, dump very verbose info on each packet") -var statsevery = flag.Int("stats", 1000, "Output statistics every N packets") -var printErrors = flag.Bool("errors", false, "Print out packet dumps of decode errors, useful for checking decoders against live traffic") -var lazy = flag.Bool("lazy", false, "If true, do lazy decoding") - -func Run(src gopacket.PacketDataSource) { - if !flag.Parsed() { - log.Fatalln("Run called without flags.Parse() being called") - } - var dec gopacket.Decoder - var ok bool - if dec, ok = gopacket.DecodersByLayerName[*decoder]; !ok { - log.Fatalln("No decoder named", *decoder) - } - source := gopacket.NewPacketSource(src, dec) - source.Lazy = *lazy - source.NoCopy = true - fmt.Fprintln(os.Stderr, "Starting to read packets") - count := 0 - bytes := int64(0) - start := time.Now() - errors := 0 - truncated := 0 - layertypes := map[gopacket.LayerType]int{} - for packet := range source.Packets() { - count++ - bytes += int64(len(packet.Data())) - if *dump { - fmt.Println(packet.Dump()) - } else if *print { - fmt.Println(packet) - } - if !*lazy || *print || *dump { // if we've already decoded all layers... - for _, layer := range packet.Layers() { - layertypes[layer.LayerType()]++ - } - if packet.Metadata().Truncated { - truncated++ - } - if errLayer := packet.ErrorLayer(); errLayer != nil { - errors++ - if *printErrors { - fmt.Println("Error:", errLayer.Error()) - fmt.Println("--- Packet ---") - fmt.Println(packet.Dump()) - } - } - } - done := *maxcount > 0 && count >= *maxcount - if count%*statsevery == 0 || done { - fmt.Fprintf(os.Stderr, "Processed %v packets (%v bytes) in %v, %v errors and %v truncated packets\n", count, bytes, time.Since(start), errors, truncated) - if len(layertypes) > 0 { - fmt.Fprintf(os.Stderr, "Layer types seen: %+v\n", layertypes) - } - } - if done { - break - } - } -} diff --git a/vendor/github.com/tsg/gopacket/examples/arpscan/arpscan.go b/vendor/github.com/tsg/gopacket/examples/arpscan/arpscan.go deleted file mode 100644 index ffadd6ef3e9..00000000000 --- a/vendor/github.com/tsg/gopacket/examples/arpscan/arpscan.go +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// arpscan implements ARP scanning of all interfaces' local networks using -// gopacket and its subpackages. This example shows, among other things: -// * Generating and sending packet data -// * Reading in packet data and interpreting it -// * Use of the 'pcap' subpackage for reading/writing -package main - -import ( - "bytes" - "encoding/binary" - "fmt" - "log" - "net" - "sync" - "time" - - "github.com/tsg/gopacket" - "github.com/tsg/gopacket/layers" - "github.com/tsg/gopacket/pcap" -) - -func main() { - // Get a list of all interfaces. - ifaces, err := net.Interfaces() - if err != nil { - panic(err) - } - - var wg sync.WaitGroup - for _, iface := range ifaces { - wg.Add(1) - // Start up a scan on each interface. - go func(iface net.Interface) { - defer wg.Done() - if err := scan(&iface); err != nil { - log.Printf("interface %v: %v", iface.Name, err) - } - }(iface) - } - // Wait for all interfaces' scans to complete. They'll try to run - // forever, but will stop on an error, so if we get past this Wait - // it means all attempts to write have failed. - wg.Wait() -} - -// scan scans an individual interface's local network for machines using ARP requests/replies. -// -// scan loops forever, sending packets out regularly. It returns an error if -// it's ever unable to write a packet. -func scan(iface *net.Interface) error { - // We just look for IPv4 addresses, so try to find if the interface has one. - var addr *net.IPNet - if addrs, err := iface.Addrs(); err != nil { - return err - } else { - for _, a := range addrs { - if ipnet, ok := a.(*net.IPNet); ok { - if ip4 := ipnet.IP.To4(); ip4 != nil { - addr = &net.IPNet{ - IP: ip4, - Mask: ipnet.Mask[len(ipnet.Mask)-4:], - } - break - } - } - } - } - // Sanity-check that the interface has a good address. - if addr == nil { - return fmt.Errorf("no good IP network found") - } else if addr.IP[0] == 127 { - return fmt.Errorf("skipping localhost") - } else if addr.Mask[0] != 0xff || addr.Mask[1] != 0xff { - return fmt.Errorf("mask means network is too large") - } - log.Printf("Using network range %v for interface %v", addr, iface.Name) - - // Open up a pcap handle for packet reads/writes. - handle, err := pcap.OpenLive(iface.Name, 65536, true, pcap.BlockForever) - if err != nil { - return err - } - defer handle.Close() - - // Start up a goroutine to read in packet data. - stop := make(chan struct{}) - go readARP(handle, iface, stop) - defer close(stop) - for { - // Write our scan packets out to the handle. - if err := writeARP(handle, iface, addr); err != nil { - log.Printf("error writing packets on %v: %v", iface.Name, err) - return err - } - // We don't know exactly how long it'll take for packets to be - // sent back to us, but 10 seconds should be more than enough - // time ;) - time.Sleep(10 * time.Second) - } -} - -// readARP watches a handle for incoming ARP responses we might care about, and prints them. -// -// readARP loops until 'stop' is closed. -func readARP(handle *pcap.Handle, iface *net.Interface, stop chan struct{}) { - src := gopacket.NewPacketSource(handle, layers.LayerTypeEthernet) - in := src.Packets() - for { - var packet gopacket.Packet - select { - case <-stop: - return - case packet = <-in: - arpLayer := packet.Layer(layers.LayerTypeARP) - if arpLayer == nil { - continue - } - arp := arpLayer.(*layers.ARP) - if arp.Operation != layers.ARPReply || bytes.Equal([]byte(iface.HardwareAddr), arp.SourceHwAddress) { - // This is a packet I sent. - continue - } - // Note: we might get some packets here that aren't responses to ones we've sent, - // if for example someone else sends US an ARP request. Doesn't much matter, though... - // all information is good information :) - log.Printf("IP %v is at %v", net.IP(arp.SourceProtAddress), net.HardwareAddr(arp.SourceHwAddress)) - } - } -} - -// writeARP writes an ARP request for each address on our local network to the -// pcap handle. -func writeARP(handle *pcap.Handle, iface *net.Interface, addr *net.IPNet) error { - // Set up all the layers' fields we can. - eth := layers.Ethernet{ - SrcMAC: iface.HardwareAddr, - DstMAC: net.HardwareAddr{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, - EthernetType: layers.EthernetTypeARP, - } - arp := layers.ARP{ - AddrType: layers.LinkTypeEthernet, - Protocol: layers.EthernetTypeIPv4, - HwAddressSize: 6, - ProtAddressSize: 4, - Operation: layers.ARPRequest, - SourceHwAddress: []byte(iface.HardwareAddr), - SourceProtAddress: []byte(addr.IP), - DstHwAddress: []byte{0, 0, 0, 0, 0, 0}, - } - // Set up buffer and options for serialization. - buf := gopacket.NewSerializeBuffer() - opts := gopacket.SerializeOptions{ - FixLengths: true, - ComputeChecksums: true, - } - // Send one packet for every address. - for _, ip := range ips(addr) { - arp.DstProtAddress = []byte(ip) - gopacket.SerializeLayers(buf, opts, ð, &arp) - if err := handle.WritePacketData(buf.Bytes()); err != nil { - return err - } - } - return nil -} - -// ips is a simple and not very good method for getting all IPv4 addresses from a -// net.IPNet. It returns all IPs it can over the channel it sends back, closing -// the channel when done. -func ips(n *net.IPNet) (out []net.IP) { - num := binary.BigEndian.Uint32([]byte(n.IP)) - mask := binary.BigEndian.Uint32([]byte(n.Mask)) - num &= mask - for mask < 0xffffffff { - var buf [4]byte - binary.BigEndian.PutUint32(buf[:], num) - out = append(out, net.IP(buf[:])) - mask += 1 - num += 1 - } - return -} diff --git a/vendor/github.com/tsg/gopacket/examples/bidirectional/main.go b/vendor/github.com/tsg/gopacket/examples/bidirectional/main.go deleted file mode 100644 index a7e9698c629..00000000000 --- a/vendor/github.com/tsg/gopacket/examples/bidirectional/main.go +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// This binary provides an example of connecting up bidirectional streams from -// the unidirectional streams provided by gopacket/tcpassembly. -package main - -import ( - "flag" - "fmt" - "github.com/tsg/gopacket" - "github.com/tsg/gopacket/examples/util" - "github.com/tsg/gopacket/layers" - "github.com/tsg/gopacket/pcap" - "github.com/tsg/gopacket/tcpassembly" - "log" - "time" -) - -var iface = flag.String("i", "eth0", "Interface to get packets from") -var snaplen = flag.Int("s", 16<<10, "SnapLen for pcap packet capture") -var filter = flag.String("f", "tcp", "BPF filter for pcap") -var logAllPackets = flag.Bool("v", false, "Logs every packet in great detail") - -// key is used to map bidirectional streams to each other. -type key struct { - net, transport gopacket.Flow -} - -// String prints out the key in a human-readable fashion. -func (k key) String() string { - return fmt.Sprintf("%v:%v", k.net, k.transport) -} - -// timeout is the length of time to wait befor flushing connections and -// bidirectional stream pairs. -const timeout time.Duration = time.Minute * 5 - -// myStream implements tcpassembly.Stream -type myStream struct { - bytes int64 // total bytes seen on this stream. - bidi *bidi // maps to my bidirectional twin. - done bool // if true, we've seen the last packet we're going to for this stream. -} - -// bidi stores each unidirectional side of a bidirectional stream. -// -// When a new stream comes in, if we don't have an opposite stream, a bidi is -// created with 'a' set to the new stream. If we DO have an opposite stream, -// 'b' is set to the new stream. -type bidi struct { - key key // Key of the first stream, mostly for logging. - a, b *myStream // the two bidirectional streams. - lastPacketSeen time.Time // last time we saw a packet from either stream. -} - -// myFactory implements tcpassmebly.StreamFactory -type myFactory struct { - // bidiMap maps keys to bidirectional stream pairs. - bidiMap map[key]*bidi -} - -// New handles creating a new tcpassembly.Stream. -func (f *myFactory) New(netFlow, tcpFlow gopacket.Flow) tcpassembly.Stream { - // Create a new stream. - s := &myStream{} - - // Find the bidi bidirectional struct for this stream, creating a new one if - // one doesn't already exist in the map. - k := key{netFlow, tcpFlow} - bd := f.bidiMap[k] - if bd == nil { - bd = &bidi{a: s, key: k} - log.Printf("[%v] created first side of bidirectional stream", bd.key) - // Register bidirectional with the reverse key, so the matching stream going - // the other direction will find it. - f.bidiMap[key{netFlow.Reverse(), tcpFlow.Reverse()}] = bd - } else { - log.Printf("[%v] found second side of bidirectional stream", bd.key) - bd.b = s - // Clear out the bidi we're using from the map, just in case. - delete(f.bidiMap, k) - } - s.bidi = bd - return s -} - -// emptyStream is used to finish bidi that only have one stream, in -// collectOldStreams. -var emptyStream = &myStream{done: true} - -// collectOldStreams finds any streams that haven't received a packet within -// 'timeout', and sets/finishes the 'b' stream inside them. The 'a' stream may -// still receive packets after this. -func (f *myFactory) collectOldStreams() { - cutoff := time.Now().Add(-timeout) - for k, bd := range f.bidiMap { - if bd.lastPacketSeen.Before(cutoff) { - log.Printf("[%v] timing out old stream", bd.key) - bd.b = emptyStream // stub out b with an empty stream. - delete(f.bidiMap, k) // remove it from our map. - bd.maybeFinish() // if b was the last stream we were waiting for, finish up. - } - } -} - -// Reassembled handles reassembled TCP stream data. -func (s *myStream) Reassembled(rs []tcpassembly.Reassembly) { - for _, r := range rs { - // For now, we'll simply count the bytes on each side of the TCP stream. - s.bytes += int64(len(r.Bytes)) - if r.Skip > 0 { - s.bytes += int64(r.Skip) - } - // Mark that we've received new packet data. - // We could just use time.Now, but by using r.Seen we handle the case - // where packets are being read from a file and could be very old. - if s.bidi.lastPacketSeen.After(r.Seen) { - s.bidi.lastPacketSeen = r.Seen - } - } -} - -// ReassemblyComplete marks this stream as finished. -func (s *myStream) ReassemblyComplete() { - s.done = true - s.bidi.maybeFinish() -} - -// maybeFinish will wait until both directions are complete, then print out -// stats. -func (bd *bidi) maybeFinish() { - switch { - case bd.a == nil: - log.Fatalf("[%v] a should always be non-nil, since it's set when bidis are created", bd.key) - case !bd.a.done: - log.Printf("[%v] still waiting on first stream", bd.key) - case bd.b == nil: - log.Printf("[%v] no second stream yet", bd.key) - case !bd.b.done: - log.Printf("[%v] still waiting on second stream", bd.key) - default: - log.Printf("[%v] FINISHED, bytes: %d tx, %d rx", bd.key, bd.a.bytes, bd.b.bytes) - } -} - -func main() { - defer util.Run()() - log.Printf("starting capture on interface %q", *iface) - // Set up pcap packet capture - handle, err := pcap.OpenLive(*iface, int32(*snaplen), true, pcap.BlockForever) - if err != nil { - panic(err) - } - if err := handle.SetBPFFilter(*filter); err != nil { - panic(err) - } - - // Set up assembly - streamFactory := &myFactory{bidiMap: make(map[key]*bidi)} - streamPool := tcpassembly.NewStreamPool(streamFactory) - assembler := tcpassembly.NewAssembler(streamPool) - - log.Println("reading in packets") - // Read in packets, pass to assembler. - packetSource := gopacket.NewPacketSource(handle, handle.LinkType()) - packets := packetSource.Packets() - ticker := time.Tick(timeout / 4) - for { - select { - case packet := <-packets: - if *logAllPackets { - log.Println(packet) - } - if packet.NetworkLayer() == nil || packet.TransportLayer() == nil || packet.TransportLayer().LayerType() != layers.LayerTypeTCP { - log.Println("Unusable packet") - continue - } - tcp := packet.TransportLayer().(*layers.TCP) - assembler.AssembleWithTimestamp(packet.NetworkLayer().NetworkFlow(), tcp, packet.Metadata().Timestamp) - - case <-ticker: - // Every minute, flush connections that haven't seen activity in the past minute. - log.Println("---- FLUSHING ----") - assembler.FlushOlderThan(time.Now().Add(-timeout)) - streamFactory.collectOldStreams() - } - } -} diff --git a/vendor/github.com/tsg/gopacket/examples/bytediff/bytediff.png b/vendor/github.com/tsg/gopacket/examples/bytediff/bytediff.png deleted file mode 100644 index 5aa3c8a446797cb3491c6e8cbf47328062d4cf18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47462 zcmbTd2T)UOxGfx-6s3qXDFV`ajWj_J>4=oj2|Y+hO6VvNjnburA|fS(-a$Y}AWAj# z4$=e+(m{$e!5jR(GymMV=ltj1!wl@%o8-x!o%KFtt@TD58fZ~du~Gp50BRlW2gU#Z zi8}y5s!BmjxI#BA_ndGb@;BDH52zeqUn87QKGC-H2LNbaU;Yv?^`PK{i{t@14>ic= zuP_3LMUuB}NfIvI4A8I$Q1|ijf_Mi2)cqh10T5@dAh!TlE-jshhUPFDW&nT-pz}Zt z6#R7)6E+3WfPMq-tVOBXx#oV1eXBZZFE=NK9?A{(OM1{zJnZYZ#77k0F?^Tu?bREP z_w@CDkCFO(k$WWGA;6>fg;^tqWlY}5nbc?~QcSMpWuY2ds-E2%ym4`B=Iq?}^GU*) zaf|zS>DLc~C+D{=T;~@Z(%9vtJ{#<((J@b%ZwH^V+)GqKSzK)Ye<)ZB`ar z0n-IF!pvPZshQfujEctIO-P{y&pTPG=esBB2YNgzT-&@RIwBfn1UBYI_tx$7&%#xY zSy&mV-_cjOdp1g)3IPBV;bo71KWA_69uDfbpJ5stA=+_<(2454D$SO%8A5jF^WH)5 zB7VwvVh%Nrkcor}I{ez`m$`m4Bdba5RV>Hh8bkOLcx;+_G zT*buZQ{+Vv@ceruTlODa(b=)fdsd8&?7r95D?Af;+Fo;Op%X}tv!>3SMU4uWqe9AK`n(_MGbMXlF<6&R3=lF3pK`iP`x6TJSwH zbEHASl-KMJyY|>Owc^hE>CF!xiAtutH*Ufw|;KZazCbFmmezgFX2AvGbUXDHam!q#CYMqfj+*LId)n$;LjAA9hVH1`EBc+ zvgZYyc7Saoj31w{+yPx*%@1E1_|!TInq*A~5o*Bg8eq#r1A((L^q?4x*Qb4zVGAO4 z;nJ_tmACmELIIq zZBX5Tw05q_u`FM76l4aXSqqNK9!=w{Hg$~#dxyj3ND8rqMdCw~IZ&lnsvI2?PbTl7 zO{sJ%#+N@H+_43liFkz^s6#7YT$;38;vYPzu)SVgQ}Eo*u`z}q+amav5CGuR_GfiG zH8=ThrYbem&qVy)yWS~z)Flk%L{1Awj_N&p;TFGF|ABPDVsrl%ngq)&J9f( zNAz{Tn=P&^v#=J5A}jX-)xYHb_-zfzrRLa)TnptPj(oQUY{fBe>#lnnAKRBCo9n{X zH4<23>s{NK)GPI6`#R*pc^J=H9=^Z)D63C4KUl8=oHaOa#L3kR>ZDPEa%znmP4V~Z zM2{u}d`N>Pze*G%9(DrP>24`?soH!eT~xYEodqnOHt?Li;OUQ!@T)iH-U(DYfZ5Yj zRO>}`akDM~;<^nV>PPsW12>w>pyL>G!|xqW#e>xeB_o_P5oRc9n^5T3Pkxv(`3y0J#-Zi<@d7sR|j85#`cx)?1P(9rJ zHjQL%P!6|KDL_W53VkBaq)?FQ5yAjaRXJc?P}B0M!ts8w_`$K&_=~JHspuoMna6weIo5T2 zvYTLF)-@pM;hm9*&S@iMDgc+rsnZ?5fcw;E9JppD)8p{yiF4@5tB0h4i}NDEx?I&Q zHBP*}y}#~TyiXpNCX{iPhx`$l6Uuc~B9?fCxKABj#ZNwE6iEZ`Z(5jJ*0e_)V(-_?smC+68z&= z17hCBtUp@Z7yC;0hdfe|kmRd<7FuoRvVtIu2p!|)dYEGs$C=5-t`s)ntA04E&6tsH zW15U_WGbr_yXqa(I^JkqWkJ_@dTFyMw2VDVmx!?Ztpd=SZ|m5$&sz`hvTI6OUnx-jz5Ig4S>p)mM`SzqUcP?_q}O%o&sBa=tj)B3|HkBljz&)J{$ zQdQeo;M6|w#fP@N@CpzWK%aup3hl4-FAsQJB6v4)_xk0Lg7dOb`>#&`?t>Ba>~Ch) zc%`JAt@ez+p!N>zgTCNzzoGz@S7`znMD)zQtM)#|=WI`U@-s~ZXS7Z2EwXC*4YOq1 zf_+kIyGbIYC^@ely=M%?Z1b1I<<>~Zj$)QH%H1JJVo_;RkE=~;0f%jFJYQROPuU0?dD4sEd=Y=GQjyxwa0!p7W|`+qlgsH5Umny^u$d6gRC_Gay=)(DORN{q)Ff z;v!0@K(q)ooYkZrhw^igL>i2i zg&9?Du1M=hKeR6Sx{j2|j1w(aX;g8H_Lv@aTqK_P;E+oa%%}jd{rSAKqyO&j@Y~(n zA`l*2HySXcaT-6TmABl(?Y7(9{75&&>r{Mals+!JaK+I3=(YtZQ?eC1i8IYN3uh?I z$Vvn62~7e{XbikIg(x0_CWJ&#VW8b+0T;8TexeZXYxzV9&Z@%Xq&kU-|t0Y(rINB(Cop7VUZ zJrb`XpTpl^HNHQ|A5?P`tacCXRS-T|Nr1VmyJEN$N%Zxa<>No^Y3oXgc{@f zZzApuDK_gDqQM}`lPSP{2bQ- zamqikLw-~LIZJ!$wBY>FyR3q@7vRRsGH=o%V)sfkl*yym*4Z+!`HsHm(Ch6}6J|mX z2H-zI9+cG!zR}Sl1*BkKdKjR;ZT|Shy5R9o^2Th`-{lMIO?O)b#(q;$Le%zTPD!Fv zd9s7X7zrWrLsR>t7vly0n7J8or6f=Q_+OQjlsuj6m8=A3nSJaq-%vDgi92t~-?kT0 zo+uMu4gocO^&TSVCK;mEDXrq{Dn?mWwcG&mnhXv&2g5= z;0St0t%@{yC~m>LU3=68;Z8wX>JwJIk@9802#`T~nqlvkPu|X)8mR^S#iyXTNde$O znjfuzr$r#i&LLOL|8$rZIuuO5-2M0hd;76tdn)mGEIUuNYcK2KE!5J!u!AoMxJe8R z$^rm*a~G!Om_t$Q$yCUs7VPe#g1hZ6KLwhnf$Ef9XLr3a^zFH~eVNO|CCNRC!&0Yy zAmQKEIZ38zCyYY2;*K=#0wO(*U3Vh_{IY zTd}u=CK@+Z>w7NmFp`y`-Q9JvzB_#cs9p=QCAoyK^PhiT5NsH>jl>r(>L+VH zGYLwvI{pYj6y1LH+LYO~2Ci$nNIaLbhuM+u@IsT~oJ&1ct?g>jV;dqE>;wlE)$_c} zk^acj#)Sm%bkT|1QShKwf!9(|Exiamw52MR^g?$vH_QCwXk9D3H{fajn*>ZcbDfni zR-~neMxYonqDW-#D65rCLbF&{iLu{@Jl+9VFpeTAyk`&emQ5`4Sd?XB_WDKevr#)} zr`I#VlprC4Cb%?PVV}qiSf+d=xYcuB%AcCZK7TdH{E%I-2^;1jwh`A#T*oos^c}Hh ztUH}J8s>tcCRc->>OU^Z7KoH36Z&&+F8xq6J;$8deD&okbJ-BgqxC@x7~xi^Co*F z?eSuV$Ft@b89Pv$^r3Ug$i?gMR98q+j(o^{?CeV#0DF}2HVgp9ttDc>8*9(5B?P+)$GGPO zWV=rnTrdVEfe*) z((Oz*p+-y%Svn^>pFG@*Y9*2JV=jhbwZ5sceCUyS%750%{TRk=S;l#T=gm6{dzwT1 z@wuf4K0c2dpwBQH@_!CnThelJTK~*ll{L#3=Vz3Edkbtdq21b?Y5X@A-z5wlmxyn~ z)=X|3oqhPBVr3BPrChQnxrO6&<*;87G<+iV;`F*lS{7~Rq-~gKCK#mV;$(VCl{)@f zKmLuCSwLj!O8*1k`d2UImNrTJ4Y}8;k*#I$GSNRSAdBbT-Qniz68ev()3b@K;cxn73%iH&&NKc*k-Ji(u6~}1^3$ru!S1f{IJMrOE$BfBcD3}U+Cpjh z%pnVl?TbO$5A;d~-^P%!Bowx~S7~x*UJEb4tlb_!S!4cw`U}w&Bhs7?2EkfY-qe;T zLuN5}?-Vkg(leG;dln8Mq8kc=1dm0uDZk}5T1E>1Q-Hd&(JdKKIYj^CYz)S+U2O%!(HNglo%SkxEEBF zU~Qg@zn%$nKID6I^8ytcBhZv?j{o+aMZGo@0TGcj-hX6f3(XlUBD|UV$q(QqV*gvV z@}Cz(l3!waAg*8R%UBMs3>sj07lxD;8ALMKR4hU?GqJ-tC+@C)FwLr#Ti-2(77r0w zs?dELX=TOfazMXCQFbi4!S<__hd41I|9WKMt^&SYS7Cw=4iCt+^9JEfpHqTiztjeP zPTXuUBR(Im66$R;UiWP>{V8Z`9z%Kb(8)`vgFT>fI*JOJ%A z;ICd}qd7kFJE6K)7l}*$PS3u|AzjXJRNH7Ow9KmHGVa-_kjDN|2!U-_oV04p9gPt8ulQqPMVuK&8cBTKHUDww zBv4U@T^aP$%WA&(M+P_>P6pe?Z7@yisjFeri&VR{QJuP!jqv7Jm(_hom=RCU+NrCj zm3nR^d^DVplxuf~=eGzUBqd`_$Y@KiGV}(F4SApkZF2Kpq>8_tLUvi?>b;Y#;Pz5{ z9y(e|9L-FGrTL#UAsx#TDZ;eRD}SpUuZ1Ee#a?j6xF}qh2TDJ|t95Xjn~YI1SgRY^ zFPp&byz@S_)J}@m+_GRTH&O(R+#YI-_$X%~ffvbf@9WjbJwJNxQCz<*Q7oEX-m`uQ zpqgMxi#(){@)vr@S2C)Mz*ulNPhB&GPle#IN!zQSieDk0n~Ap&^xo|sbbTnkc*9KE z-VQ#cE$}(>^QjhQ#p&nG_;k<}hf!fRfwutms#P_1w=krlDZEGCioXXG4^_Rq&d=>V zvMOmjlmq)78$Ng$%_4)|2p>7dQbQ45Lj83gBs*{&1w zyo4y2$6SuF3sYnU%CWjp2%(*0(EBW!A5U551ScAM;xVolY;r_g%6%&Ca8?hJ_b;!B zFmQd+llXKK5RhQI+~VSZ;C;n=#Ejov`|@Gnx@PdEJop(Pp6txzxlWbahJw7Nsd}br z4e+y5_lKl$x^MV>@uV0+zx@j}-*=S^v?Dhwpamtf!tsgJib?1?lfO^- zzB&pWJzNM(O<^B=Ep?dV`6xC4-EbEuc6tZWd{IX`oi4sk44I$<#gwOsxtCX*2HAhw z2ygY9Q>eaP@(f-+(|1)Pf!mNy4SuygRnNv*%@zP?*d5kREPj~jtTVo~Q<$9sqS?-z zF!8gpw%5)@iW?fO)IVCU*F+T~=b0R3#le|gjME~#rVPblo=xYL_ca04?f(-Zu%~fU zM_QP6xZ>_+qf~cSkuy$7g|A69fA4xGyBJ#`1IxB#VCH(z3)hgR=wIW(5(&ByAwoB2 z;Dr|lP)nJ~^;!8_>;T#J?$7ZSFTWMG=q%kb`x)ujD=%PXi|P60VERPEC)+I0gSU(U z+Mu{E(>Df4LZP#a!f_v8W#U7s~Xz*}914rl9u<0qSp( z$+ztm*i}{@<+XEUJvBU9Z`k9F*^$n~y**^%YPr*l_|zh5mK$CmTq)wWd1x{RbWOqE zu4;y#Fy91xMJ*U%w0=m^2Y5k4$P&V>vasv#g(Z}(2s6nidN40p+aBtcFj(AtLw059 zr(<`Q@aWgyr7TJ~o3RH|OEyKNQ*Z=p+QL)ofMIPFTEcjcne6wgM!c$6*)w?4HSwd< ztE)8|dKly65YXL4#73`z>xOtogj-8xD?E|*V%TwLv`IpvtY>NRE))ikteg!WrCz2} z>6+P^oPt{IC2x`FF)5wKj38!R)fYs^L^M2}_MnW%`aOhdoA)xqK=#+RjO~QQS&zrF zb&Jw#naLuzji+S}YV=k<`JN`dhl-@9jZ*I4@qXEX%>POUu)j9ds02u8Dh z%uD%Fp@4J}^3TA&ZVjj7y8wOS|E%S&X#b>q*%}RDM<60s{$#v;d;6d6Uf_p3mrjjZA5kl#T7%OhiI0yiR1?K3u*ur89nTt2_VJqX!xr0CR?`OusZy^6h zS*v9n&lzA)EFmldgbCT4ZVZFc={#w1W!@=Eim|$-?K;g+zE)=-02a&7RP52Nx(`nu z5D8>xDOMEPp(c+ssPk=CBs_>UC7UWO(i;N8lXNYE{m#XCmDta#mC}~QDr(-ehki^J zfx-w6MyPeb1+%KZ1`xnon6l^;0x+0R@&E%kmQigZG&Rh%?MGM$q+J(=95t%_oF?(m zY~j7No9*G2uhg%Zms-U}N5wCW!@+Ib+pWT6R~m4Nl%z<2r1xc@gpvv}O@grV*9*X^ zR`^bY_578OCcd);tJc{u?Twgm#F#gI%gCPFOS-E&hjt_F${2_f<_(vtC_jstydDxF z0nitXf@}~tAfbh5o-L3_uhGp4!ejge8}EPCF(kP^WmFzM)}Q*bFRKk3oO0BhBa4V- zZ`#rDB`d5cSf>F1oB&~*Gu(f+r|6>+%BXMh2sB)WMzm75kwtbKtj_~Q!bbFyMUk)1 zOt#N!D^+he95xs<1>e`GZqX~un?nD(IWa-jC0NTurZt`zF%10vAs;SAC96`TX-#@6JRJjXw{xGncvpU%tf8v8Wenr( zG&uVM;>~kob=xyRBaM=jFcCdoTObG7+K&@%`P=t15Qhn0zPlh@aiv2nF~<9wA;=i4 z-lBR&Cr;BdBAbu>WqR_u>fP@M+s!FySi;4Mg?pwffF&$V-1_JAhKe1V3R5AGW>}wo z@~pre(Cr?@lXccoLC(uyGHT%V-IIpYTa1GmJk#9jIp#r|Ox9F{ZV~%tFnp!?{Ol-e zdpqLYnVZ#cp5z<(z*-?C$4vP4VsH~yR@2qIy|@Oc1J!tZ5tw^M40zrD7WnwtNw3}7 zlVb}DYn@TD^jFPl6C?~rFi5_`9FrgzhD4Tl0wyXP#i+%IkzM-8&%KLJt;MYbc;A0# zCpBw+=s^87NDVzg3+exa7b?6(WS?pm(aTnK(y`Fr-+x&1azZ=h2gv3%yglOJr4NM_ zv&BbX1syl_#iGYNsfGcQQW}r;r&zPGsic8VBJj!^u5L87nxp{3?r4Gc$LJr~$K%g1 zuuhK?Iu<8R3p3WV9Ajn+maflaG(o4YJWmo!^Mv|OSD&hyWVZCNO06u8Fes42*0ZWP z$V!_8rT742KRwz`SK3ZDJQNkqEN%)wF%**A58fWG>2kf?CjkV!-M8Ianx3AvUG^xB z5HS_e!TSzqoUr&tic0i~CROf9!w}XVnr|Dj3qvaNbP2L+?8>Mxlq^&kAKU=SR?V#A z3p4_-2(+HIwT}60mTp>?Sm_8?iA|jQY|*598H>E3DD0N;;-J%Ge&Lc}XNJ3OR~cDkmBZ|H)8 z*i_g`>es{akl!Y+c9MS>^?&)C|N5j@`DoZr-+MzR zo|(6plg&1y)f*4KZYv;Tu0mfNzNko5L&g9MkV{Sf90)|G*1HOpL7=d;{g{9|!6?>R zv@=+jpqy8Xj2KJ1ApnxYi%3*mFK@}*d&MVXjdoa;eDuWJLNlw?6{niLKwvnc-lN!W zuR+iCwmLZEP}6zR5R>`%wjsvUiWDcy&}K;lIAB$OHQZ7mt>c#%#-5W*W^BYG1KYDI z?HV1ry%02S)R?wka=@PYh>&$%-bZ6o580|(GlEDX6;J0(BYul}Qrmp0Cl$9!Pf6E{aC4iAo*M3juUFI>(o!G#6JxtnB|8k=>Ve8;4H%5MR6 z4Ior`+Bg~ifL^thSz%u2rrvBm)LX?|)gX_%_-PI;CQ8uDq6Ut_M$h!|Oqzx0qEV+KG z`m^Fw^}8Ynvk75-i^Kdiq5zPy5tGUiVbdB>&;IFvR7tWLJuPd$YyY!io-Ab`6XzSe zl>Q<5d!4f9k9hM4&|M^N5kUtTjg?CTWUw+uZM!2g{l1==s}E&R__dptW{I**aCpg*KY<>uiG? zmQ8LZh&w7QY9xS#zBqQ@1%k9Nt+RUEufyoGxFKS^NdPIT=0_^)w%5dNUF*17 zD^480|MGJ)T=(win}b6)pqE=yxe-m)#nw3^uYyAU@lA)gtau_odmed8%fUR4XY!Vl}=d-4U?i*KC zX)+)7>&>xxQC^eS8%z8I}?v{aA}HN9ou*@15oY$tQD4?q@KJ@e%ltAd-ex@l|h?A zPGgxzdcQO$FI)4QB;BA|d+H(Hk%?W^GsF%Cc3UBkrn~>3_y3hNWs|&hU$m9 zzRz&IRq||q$K?BOK&zVm+J1?<3@x2qXGWiQSQrF-%z0+v!n%d%GV`<~jA5&W_W^aM zi1=1WXEnSMt|03VrG`j+;l9PUTNVuF1L!**TdZnbX*8!^$hr(A%%0=7<1U8r59UJU zqaoUFrX}5r3A~&}V-1?QvxyhnDKAu!WGyo}VmQ05P8xb*>d8j1kJSWB$9%fCGMKZl z<9ai|hnj{n*)(+iKJ6_h0}YNjXnTXEL{&J6`m5ro`ZP|(3G*i4-lQbjv@j%Mub;1! zpqbfBH#uZWxwyDo4h?e#-AqnezI~w9eMM)vZaZ5lM3w!si zXf|^hCy9+-*)gv?DcNgoh+nsRpAWO#DsxpQ^nXmE7DJp-jvdzIvMOwIpaw6Exu!MX zYqL_R`u%U5i^QF#mI9LDQ)RKP5wW8C@mM(B4C^{8f1qb3oV&sp(*uF6&oBZ2n*q>Y zQd0QDTf!|?NB!!}Gs@tu$Tu%5jDQ_Zd8gtcTCl}Cpqm#a-lDPY)JUnQ;#MAoQn+v! zsYni$)cp`0Fdl3)OfX}mU2D8YuM+w~h$G_RV|OBTAuArv8~7@RiwK50qyUL4VVpT3 zE19-)VP23w$vVk+jp=hC#IW9wM;U{HyLLe(yj&PU+&L;~G#KpOOMAnj9fcEhf1NGn zPffrwTx*RmgY&;qr%@ z%!rzAH~zjTJx~Jbkt(9Si(}Z{Kk*RUW>2OBH4YGP`Six5eD ztgX@{QS@MHi0Msn$?EELX(#z2Z^$&~a79FB-)~^tB4|6w!}<!Y=LjcMqYxGkf_!`eWvPR^pD*fycx8hYxVpwjFI6acD4r^WfY z&xWb$$xf3cev9uTR`)Oiz2b(s=w`T-aOe3oFDotiAgog}FS-+K&mH18uIuX)W945Y{_3ofCGrSP|9V`x zV=V}!h9VVP%xXg>YO!>tqnn@N*NbE7-a~QBE^;%}xgw0OF>kg|&q9(EH8(9jj+;uo zcX49_ba97!zFh1IukaodH++-S4CfyhGeGIv;Z3$ldL3xJmr4U{h?vWRCps0Qp1n9j z$30a;f5b=9}&uiQE2?m#>Fn25*r>JmJ*U&zubm#fu&zvAOXKD2E}I}e?;cYrD6>m2 zBS907e{?dD-ojcN=3D17k#6L4R zzkfcPY48ebtEsD=EuC~s<{Q6AJ(U-0O8j*04%S-yLduGg$=vYP^KYX!Y;^B{`_<>A zJ8ir*H_O-Y2l)E%)H%R4t^l4q{*ufS79W9IjW^BY{TTE*X3|S&Kxy6f^Gv?#VUwI@YVJyEj8iYAab5G^7ts_oYh0CUlq&8A%a+Mg1 z#MNeJcxQf>+V%OM`KA@yt?2y{??9943YAB&B;u0hhh(tKv~*^r z>q^2_JeedQZ_;ZA#dPGw@7Ni`j36KPg#2E!UaEMN%HB9)&7AQp;$ynV-N1LM%v%ql#`~=>kM%5j z9dpPdzvTVZrcVtrzfXyE%`;hEH2Q?QD17EY_nc7l<+aYfG7d}PpnW4v&@6r!IFc}z`Im{m3@S!-7C9<)#bX{z2Wi;r@) z5Jzk6Zx|cawc~RKLJWH748df_25txdmJD*l1D`w%2?JlzZ;`UP9kx zK99Zg^zE4&v6tXPwLxxhnPV--cYx$m$+IaM^pN_b9g4p@z7tZANrG(}Dccm;PAceqCByBNvWo?fGcpql5eAv*%_JQS4oz^fh_AH{OS>YOAuUsV)@}%)u)mZ}ymIVW zn)_VA{XeG1Fwv^r`H#NT15&rk!wvZjJ=MV;yiCQ`LV-Z%A{`}nmT|ZgyDBCP+Mo4I z=8>oEv`M%k2_TuEAVUgt=-(mPst#694@ryvO!7|I3)$RFdxKeWZ&{IJR_VffTjKc#;^k9?M z3By?~{zZI+tj% zv&xFzRNraK)fTRKLBqmoNF7Yo{^STbs!$sbnXApqX9f!AIJo8u8WJk4r$uqADm7#v zv*~YyvPCBWeua)2WN&!Z87}vX)YhIr{shu4SWGCemA28KW*=udY?zctbn`(q5?Oz1 z%>AgN`bn4>7QemE6^DA09<7lcf_;-3rui~L=yy z$!R!0wHc-reOK5}eR_NGci0_*LzBQR8?mXdZcJYLl1wFV9Cv|Db|zNo)Mi&p1B!}j zhg7(KqzI7J#`~F~LQF+P%c{1&5&&9=#-Iwys~Xs`;6e@R%=VTRSNMl(0DI1Fr)ia? za|LfOyHd>tbNXUAp*_xuRM$k;BmpBI^7QSsyfQ}ajSq&=GR(w~#9^@7AK1siM7bOP zlOZ%Ahad~D@0inFWw2LRF;7cBpS6eS&mqxZ;ZEf$TvUt5pt4!L1M<&<4|%8_De>fn ztVuZ&W|(cVlagwa^8REsBaHn%4Z&lHTxPVcNzp$?`8&dDZ%sfp$C?WaxMVaRI94%8 zP>cQa@Z)jFMtF1^@c}rC3@Lp zk+2ca3&}Rl_w=QSR233C5f<5eN-yglL~TubNH`M6nRn$=!xoR(ArT(gsz1M#0tLRh z&SMwbeCJV~ww9>kNx!D6d`}055C3>p3^z%s>Z#W>xcypl8Sf)FNs^{&_P@()5*4fw z?fsl_u0bxt7zsg#^8ea}+Y0pQ6WOIvr%5s*R^gPiogTHH1m}Ap>a>+)%EP$)9d%G>|6*E-1`t{|EgfW2=Bu}+k%HN zYv-d3CBKx~62W;nE1Nq?#R<*oG26fx>G8HgOqg?O_3vmQqV8YO4J{6H11^2?6S{@QV zd(xJpxO?Ru6sEbBx}%!tCz@_PUJyX2W-_7ibE~V27D6d;gB(@R?A)_#XhM{36LzZV zFm3g&IyGeFp`}oWdj`KmXNcBZSiUvGRGLw}&$j3GDk}>W=;?RvyOVXhsicW>8V=O4#}} zyl#Ds7m-0gaJ} zi3T$eSoRr8sg!=HRTof6xS7Oh{K_GCH^#`0QkZX@spc9pwUcbICfn($rZj9FW(7Zl zq+^@!0OG8V<-fM@S&)MM6h1IN(bhDS^Vz(;VHOi1ru58tLhxAx>ex5A6TZFDZ)aa% zwzjmt<$h_69vXtQgbUCJiF8(*icD$j=lGCRoaXxxscKejA2!!M)5+w`Vojn1tvSpM zlGjiSas!|_UnnGMn_AINGi}w6it1N%N57*g^E|(bK7$D#j!#^*;3u%M3Zp)o->A;@ zY76euDxF5%|FiKvT|TY!cld{L`0^ORNvC-@!yJ@l5%3!9T=jYgWy}ug+AVG_a=z2Y zE0L)c;#O??y@8Z!Pxnt+@l@UAW*YUPH2yF1W$=R2z=Q3Qgp;q21eiqZjt(QeOQ5l$ zqcWOXMX5q{4%Q)V5noZkfE-q{oS5r6iN~C7Ote-49hntok*vUL^?8o33TK3gxYSme z*3=|Uq34~e+2EJG_Q`zFPFk_56;r;E`c0=m$adqs7CRZ&VMBX|^qiBfgtW2~Qkpl< zP-A)Gk_Dd%Ycw}+zY0qQw?ARyZ%IH*U5}g^28N3s2t~1#T_JpDvicv|m}Vs2h*4bI zaYrT?*N_RrL!~r@g7y^?4z@1?6$D87MtSwJu4~X72_E%4a%tav{}5wJ9GQK^aj5P; zyZ~%I=o%4Ps`hSu*Uh=H?m6~7`q{}@@9PZe`|rR~#wgw=plRxF+1p4ZkewB^m}ZiU z4+3zbSA!WW`}+u=ZZ|(Msc-^M%zn+G73L)o0jHf1yL!r0XKX*WN-r+yY{;BGtYIHQ ztTdx5^;6Eg*uvWPLIn=QJzASEf34NIQOe|I(q0PUqH$pCXdln8RSRa=ForJdJj%@zT(E|j%kCIx`-a4yhttQ??YF*Fs)wQFB zE)N8uJ6O5|Vy2h=s?YPF@U`ia2I-DH~S^p(Hp$rTy zc3z5j6Ole0yVz#JAFb5tTqc=D@~~buAj$1|hHAT+a3|Ovju^@3gm)*@`l0IK1oz@C z#&*``HqRPk06+WmKqszf#OJw9v!{mFv8!%a1VON6?_O4+b^fAv&H?_lrk@SRdzmIk zbCAJ3iXF?Qh-Io$Q=eKG_}xvN8GF_zB4Qppu^Yq1sH{85nx^|@fskC^5t3_!-X(G; zdw8Fk4egXUe?L|*fD?C0k0-{h)l)+;W0+cyJ2#v}5XT^A3?(;Az4;}bf00W7@S5l! zrzh`{NzQ5N4$sRLXLuMpS^hukqq!qqZeH*h3pq%N6>oM8=ykI0h94E{UDk(xMBYfj ze>PbU-L#tB)BbDqAChuz5%|aGuLuvuNuEckEh6#q)2TXLCrq_Cp6(9@qGfmGnvAIJ zVDUNxqD!Lz6oV9ONp`GhCipj1V_CUbuPCbWuY5R0r*p99>@}BbG%i$ca5b&+Jw!e5 zGm6wHe6nXSKzrq7VgmC*r-AfgP=dm|P?6t_bdA@9Rfcd~XHEdlfBnJNzxSDoiS2_i zNWAa{T1BH&LSsJ$5p)nTjR{{TY^GIv85Xvr8@-qhxG}JbAIrSA$`bX9?JRY;%*ceF z+C&|Wd5+a4*)Ql!Xhkfk+_-Towz!yK`%aArm`(*E`$ zQ9(1sNJ+l?q0zRx1u5>1eTmOZOfzktN_(EQvmJi4>b$eEO21EJ=KLLHEdbE;KlxBNzzca#Fd*D0Xvv!Nf06dqVQqE&wrHqOp+JQeCk0Azg1hzQ1zKo} zySq2IL#RQE7K#)oR@~jaxVsYqh2Rh%KnRlDMf-mDIp1^l-ru?B@CWcDizQ^vpNu)i zm;gq3lZ+jelUD!oS!RWBLZDXfVx)rJXNPrRdwDk%-vvKZdYyC}=0@>5=KN?1uG^po z_W)orl>Y^N3M2>PQOB$vLOf9yxEW*<)UCzgEbb9(B3Bya5MOPOg1MdTdR7;=Ow*|(H^!N8)CB^MUt0`TAj`8u7X8l>ONI4Cvej(!;Z1>J;YioxLF<2wdi7m|{ z$t~c;O%#3!9JJ;@yeb@or!?DbKosRi--GfgzXb|(CIr?&fksQ=%UV%* z1nhhpcF`u~y>u}4=3+7|&d|H(40nRZ^;<~^vF#n2m_YSupoyD04Zret`w0T7b#eOkCUp4Bzj?ypwV4f;js#i|%Nr|#hvw0@of zovVbu$Z0`bz&#+k71nzwgL?OYL?P&4zr$SB#di77X*&X^QSkh2ntvfRV<6)Ed#f2m>4?1DT77FyVSp>D&WPykea)W&ri>r(9--hfq z!MidA#wl;PjPTEn1Rz#4o(+2C-) zZuJ7QT@2g(d9g+k>@ASB6S5wLiq&hru!5bwJwh}u?}|Z%I`6!D4*Z7^I8C#Dg#Ry8 zC=a=j??}lEol8GY=Qq73>`@r?Br&eu3~B0BO7V&e!p9#&AiNpH#$5ozM5vmg_eo+|t>bTz{qf%EJ9CL8i- zaB$FnB^@T2a2Tv;=>N+lMeGFQh@7Qx!CF9hI(^rbq{_^?!sFxPq4VbheF%5iq;rpp z)flN7Ow-tF1NQ|l2u~-C?_TSY=$enCk{MoXd;I?4IKVS5y8rZ>%5aiAYjNwxu5i}^5&lue15BxP}rQ_ zma}ggwIS>%NXmQ407K(C{A}&J%drn0jf!wNVF|a1LdL*IseNeqI_naRW7PbD?2@mv zAzIBty5YP~<9wQPZNKK?(`4cphP6c?hjl#G=5RTlvGUsp!K-7&^EBAQc*wuwN8gi( zS|6f{{U_LsF7mYMR-BivuNir^V(Tn6Y)`Zo#L0?LK#$9em79TX5ovlQlkc&Xn;3oKDiEjjX*kSK(DF+<%dEYc|-ljAXb?a)q|mY z^o*_fH31B1 z+_vB%ff1|On2LwqVdgJBKJdLQ^#%EmS2O1NBX^wa0J~Ga3fda;7pf z@TU#2Z2~XFgPypIn6D0GXy_(KVH+~PUkd&*U}>?}JQT2AGQmgnViA zRRmJ!AK0qwIj$DR))a+?ct_G`FW~{V9y?g*P(33Oaau_Cy9znh8oA?k$CoOC5BZz0bG|{&Nm? zLXvx_JeC_h%t_^z-oUu&ymb4RKiHY0^IZ&5Ys{U_L%p=G-4K-tx(A+Uae?+ zF?w(ZBk;aXt8r5UaXMMOsfxaEeL5txe9-+w?`ipV&;xrxTVFQw)izagom`DzeP-^z zWz?EESRQFpA~HTFYVa$~e^TGHdu$#65c5pi>IPpuE-wT`u!EOK5CSp<&T@0on)_iYf#KP0Zt<&HH>KHc^G$!G@mzY5wE zKImp7=lX{4HcJ$8@IG0TAu+6To#D1=yCBu~-e6LUr8!y|+_4*!G=rZW$+m$L@1iwUdmwPtg%ONg~0DOcbcKA2se&h7bHyViHu3*58LZ`X-dN%2i~Q(xN< z5dD%xsYY~?Je|(|+rF!q;s}FaLwLQVg;WeLt2y0Y)nDE4#v+clp9$8dat&kR=wleh zhVx@-r5Y-8BC)@c>WSM7)aRRAB@_$*NM^n|di{3jerzUyG_)icd0#*by^v6hcO&rZ zRJi@l0lUXvoF(>9NKo4(OeK z4dg+$a45Y5u}Uu89IT%-z+fRX!j6l;JvaV(7$b#>Qv*uj3f2S@)dAjYD&AarG9;jsI~8YtB{6+7+}N*3JGCG zb*p5r&R-q!hos(v3lct6&^i6Mkl?)6e-J4aRS{O;tn>5plbjI_@B{6o z8!j#`dV*4Q7U=Z%ct6vwDwEMc<|>r0X}uyBTOP^MBHd+{_@7)!6!(yqBAS*JXY?zf zoR1N)%T||5x?-fjlCC=44?VBx;zipqX@Hi{L*nJG(uN^)AQ!l%rO$8ZNvq0APiG!UVrbjuW zYC?u97T{vZ?vGf11b{>KDGbgN3!X5js~l#RlaXt#}_U~BO5JWNp5%h?GUno9EObZKt`4VP0p(T zWI37f-Os+?t_GoB(l2oeJ(A{Z%e`5DEhf_huE0a(1MY&p6W2>2jb79%nl$U`6{3lg zTQS8_Oo9OOAAQ1~Kl`dh!@X+r0nAS|RJA(u<@eklf#J3vw1TH+RO_tMy)0^lBxACN zf@-WYsp!8t_5im*-T@d$asBdfCtZ_##~t;C$GsnxAhtU$Vjw1^I5vca;#nSW zw}HG}uYsPwpSo?$t&hn?r5-tBX-RSs_NZx2!Q_chq-tmx7*mu@t||>Mwmr z``GumE?p8r0BtkT0jLFsGcCL%jAA42!Koy-e2z=b-on#t3nD<2Spt%rr2ZqLFVm zeGr8i&|FXYqXy3e?dR(~Q1Mm;hLz4Az1&Cl6O{DrLTfkk@Y{w)w%e==WahI&WBzBj(RP;`|VYtAgxoo z%KPyhG55x!10x@d&w@m~6{3-vj)vpPykpy|e68a1B!m|R=7sW!5W{`&X@Vhua7Gxp zo*v=g-$Ri>)_CT0GrzbA_!gIf`;p0v-%gK!g2j)z86#+Y z`bSc5XG8sog!eT{!T1xm%x^TRfL;#ol^)toY#`V-VPV z9r)CbH>Vm_KlUjRL5P0GcWKvf$<>^rt;wX5c{9w;oL%V5;c#0Qolk$0AD-^j8-V6@ zmuPqPXyx5?^o<9>Lgy)ogCc9&8+=2e_WQpie2$xd7K-}ZZ|UcCCGk?1y)!w@LVa8z z)NkuNF4<$dR32Pqz28PEaTljS9P-;}a6|+xo8RQ#MjRp0WLt z4@ycrzW@>wzgWG8rRC}*YTkV|w~vs1waM=+T;lj-W(K}B2|wCU@^fa{9Jf#`ZpNjg z_nRL)*B-<_mLAoo{}ZUM-&n zqnP9keMhi}I;5B$AYN!VDFM3j{oHI$*dcQwVXk5v7l0@kO;a zX@o(D4Y?A)v-;sdxDT2d;kcsG1+?fc$Gh-y`JhuC3%kc zgaq%+9s{u|s6eMU-itZeebz>v)=eLu`u-S&@YtX6T4Nx@O1Tl?!AJtXz3JKej{>piyG7(twzjdgT2j`b8El zn7dT^$VB4{+**14{^MCzDM>2)tpinZ>svKpogzzFt}!7k1g`MTqO_5k{=e!h`+dI`N0?;SNgM)0!vCyYbm{2{Xdyh$JO@u;A#< zoFEiY<#pKACeopz;&Z%RyOw;^e83L%1RnEa%I6IM_oj4m?aY_FlV0-i(uMa#Km64# zAYmXem(5_r1Y`>p2sTDUTD;oEw@rndP7nM1ir*UTaz}Wn1K{(rtzfcn&)B|Z^}!T? z(!umAZ9CA(n0LUX$L=Sh7P<;fA^Ufp#dl8Fb{W-mWzq8`ZC)8`XISFnaU0`a0@i=7 z&&LSW8p=(1n<;I8-h1+xXN@&|1iE{GUo-ju6};K{DzNigVIr8;A8D{!sC9n)4Ol%t z(WMKR&m@l+uVrFDP?@QEj+7&EEi=Bl)epW zi8NgHaWKi{(TOS;)4E4N-8BvPe;4nSt1Nw-d8X5}bfxdcyYZb@t_2WGw)qWAjTLQ? z$*&q_$6hw4T8?Mg-f>a=1m;w;oI~_tpfBJ2%~1O5vr$YBy{7>`%QK8jRc7{Q+CKW( z$2ZxpS%oXMA+tACY1hOiuGbZFicZE|u)b~SwHR9({P0dXE^YQl8oacFJ}Klt&J30Q zi@ZrU;R6Q5N-Ld}Rxh2tkE|>Le0DQFL}YEWtzCOTZv<-J+USk)Lze~VBeh={Sh8QS z2nPg9abmR*7@O~WhI)7T`|oP_ePlnCR=A;z88!Jfrjz2E*2ia%m6Zg955@L?Q09UTu_fmZ)w-7FDtuqtHW zHlcw&y#e-bk6L0(q&wZ$!eNNX4faO08c!=jNTo(Sh8X_jp`aN@{MAc19tg}5wJv7~ zw;IF#dIv*Fb&i|VgEnFltDAN!i$zeGe!tL$C2r_+Aj%um7~=+$>K}3GHu%lO#>c~lV68)! zS6XQF3FXnN78g9Z7!X1<*aEn>R^$4JJY9m{s*Typ259NdAxGm-KyP2!=o88j3w`&u zO)q0Uu_@|_;fk0n? z=j)yJ;;N1%SI>}@jfknn9<2h^MTv4YM!#iV%};3u^k27L7b@{8(hPf(X7GmtOq&_!-jemJ5VfFrHN#*1Rlj!Y$q+CGYM?}-hB5ez|I zgg@Bc-qsm|h;FVg2X0N>0Q(N-!GJ%j~f;-PCbeUHyL&9_7sH$@evyL&aiz$Aj0ttw4Wm zYlmW7lRQ1jj(s!kam2jRcjxE}7noQt9$ZOY%YK!ai%QRH?4ztHF%c+4GivD->3Gi*-|oZ9BR3485fw46Z?%0Z{)O9`$nrTe{~GB>4^d2;MA}Ua0q+~3bhK~J-3Xx{*;k%Zu=RX7+V)?*gP9r}p z6`nQiBAqLiuHF7ePC<4W4ItD-4u>~Bh7TPyvw_1V{U)rnWF9MLoiAcyj1*!u?%&DO zP5H=XyUwNDs2bWCH{}){77|#WQ&YCt%T&H(4xH)*DR>9|CgDjjDaSURn(kTeIIzsg zQp`TE&k8BsqzXIm zIsfI}H>|$EwhR+YrN2GXzr3q`ZNhr<4}{_QZzSHkL9KY;D+BQBzZqb*cmi(gLn&%cXL8SyMbGCPE)OUfhTi#kdr1qR zB9UpIJfnYEAXX4GeJSX8EPG;2+A#V=0B0CWetGDJmOqNz|ENs=j|cqW5`q5w_>V{b z#{>TDbbF~raoj>eLML70 zvB-1xc4yy+M&StTWKi5oB8J!faI}}bJ}0H5rafd68>rNw!4>FD*^4U|MLCpqt6Ye$ z91&i+S^v0^P-e_xcyl5qvW%N47G~&1uZ1iU?r^Rp;;^QGSce;!J7o$FHeb1P^>c-| z(1Q!);|2Py-|p$ED%N^YVr=IyptV^ocougPtxB-Au*t3i0*?h@`_yizBx zR8q*b$K~r0#j+ZGxjQk#YajEO_VEoMOrEa`9dmpPPY1Le^x+DIJ=bD|{8{~(sTtoL zst)1Y96u3nWz_Z+e0|g=3r9z>LY>%JHFeG4i8*dh!laFH1Ny5V5oB-#p9CZGJB70X{bXP#+N6Q@g)IwE9F7eg8= z_-lgAAed&f-%am}=2T=B_-eqd+hF;#$OBqyktgw|bJN>O*N;1PZLO~tgiXslaI?GC z%Mqve^wqXttxe8fz38IyVA{6C2(w6;gxXkn0?>*~@jk8V;c?!}s8F|s5q~?QMQX2v zIpfMzk@3PbL$3Hh)9M~&8D%J=gTZ&&iF6R~2}xNp$}^9bAkqrNG(Qf-S;LLuVAFpa z12*pOvaemKrxuedYp{oWK(gxm!SKvS<80u3`IS)`$!!!b?L%*qhkCK8F}8=h#XJ<7 z*CORG2LN;>f!BjrL5Y~vbY~_HgJcqD96O@lodq64+P5{nk?9XlZMw|80N)N^ev0>;Jbq{bOHy=9f<5Kh5kP zg&si272TE=@^NI6h#$oJFi;8L*^MsRuHt=R`(03ZyV4A1ODjoOqm=kr>3xW(!p5ZY zQ<5*LfR}uCmU<)L@w2A)nM3b8trj%KOpO(o^cS72#SKnPM;SlY^-kW(8he74iUQ4y z?=>NFI7*5T9u!9xA(a|Zv)_o|o?SpL~KYOlGJ6}rL#+JOX7fGpl5|zL%2|b(aN;f{~7VZb@i`*iQii?%TWczXgMrxhb z91Y#3#GL5xq+MBp#{?H#Z16V$7CNk7Iqg3-BfFYX-S4l`sTv;4eQscDbh`WE6LTG} zM@Ah(eix=pFh`8hIx;nx9EeixSz}NpBl1@qO02t2^5+Y4>@wYNJcK*TR;F1b@l-K& zcnNeqVrvB)4n|``0`)qXd`a)Ils9ZADGNa^IrKHtPOcww*d=V>lH3>qUNi&q&E_i( z!krEZ+z<=A4!x?4MH0X2w(udi%fb{h|KQLEXn|U$10!yoR(38(J$dp9>{hGYZ@6+t zo~+BcGD-^>p(Yv-973X~Qp-NLm6S2c!L!Nbn4s(tRWqtgA5J#0rnY(=h%;t@odRK; zP4c@^`pl~zV1jfD!v`s?4&%xOR#$jI>->#%O@ zr~^sP)^00X5~Mriovbl^ZU>L_Dkxl5lN?Yx@m5F13t1Sljg;57m=DY^%-z&if2!Pg zZ^nmOGKm260&qy<)m3tyZ_K8?V6n_#e`P;+mpboz2JH)7lFjR)jwG)wB2(*QlOjSi zCG(4t>%@B6vrw0u%*8*OD*VR+;GY9XFE>^Azc848=?c)qg>;JMY}tEwrDv}PV#arS zr|3hHJE-!=bz+l>h#wH~|ER|S#^YwhvcwjW#S5QAN7y)Tn~&ZjxODFJEv9X3ycB5{ zjU7a9a~fr(O>w+KZL9bGF-s3~T~N_7mYn>wslwa$LFmW1UZ(8Zm!b@yZ!D(h|hkPGM8b z^zP%ftSZ^(egdKV4w|`v(y6CaH|izhw`r~eQH3IZy>;(8)1pd}-;3~jVpl-j>l2M$ zTE_~2=6B)egp^Z^4TX(6y)PGi$sd>fBZjV<9J6I|HS)P94GP*c8pQR|aQIVTAGdWO zcg#ma)}V}^)+=1xzMkO;fX7Do`xLnHyM0L|>ZcF1Kl#je8*s{zO&Ed_EzMZ7Ce2N zljFhMiI41Cw&Dcc(Wh8#F3{coBOgjz;jbAZh;f6ANB(bgkh$ITrW4n73(}&rYA(YT zN{qzmAM^Lq$v6%OV2%zcal7HjTDF+?tzCjTZUz)!bfW!<;`W6z$&1+6!$?+$tC+Il zleGJy>#G{L#?yNUUicMwr(){Mthzv8%Q0l8Az;eBx(Et;r8K#93;`BUti{O z6v8zmf=Iabl6Cq-(~Dc|gU}RSnGMmZ$IFMwIyP<3zNATx&DdBeE`v5Bb(RxNwx|Gk zC}XLa!<0SB+(Hk-anWR)q~2i~3!c)Ev6P9)>z7LSyi@cDn?9z_ISK64q%#pWc}yA- zxJi5OAL}Jv_t5G%-^bZ{tzY}8md-nV=msS#WtpqMAXeS@UPM!bA5Fot?nx1gB+O1X2u zHLA{az}mf&+qZws_49OTNMBCso3Q9rVtv=dJ%Oz^6I!bdGp;6tg9i*<#)JTRIMEoW z>8>6BM4(BAJ^Y5D8e=%ZQ}lNKUZT^?-zuTGre_~=9v1_Gr@D|lp&P#q?jPKEzJV?k zV*my4UUaHtH$;DxiCX@W>%49Te|m8+L-`Ig#lYRB7R1q;FEt^2FhOaw2y%ZbVx6OE z;V_|P`c_0ZK(_5K*R5}HvNA{E&$H-(v?S>I2$(Vc56)6iEur(*ZE5%J3E!3DbPi4F zX@Yj^7(buf>}tRHg!$1o89xz!*rbA&8Bp3jxc+})Ib1P)X*oPrbpCddz%u;G^{Kyd zz@?V8SY_XxO0Ad~*@xzWnwiDYI$_=8H*+myZ#=hIczLb!&1%-BpzK?-nwxiOpUaH| zE?tg=WhLUe|4W1T8;zX+OY}`XV4Nq`zUPBKAh)Kxqi&z`I>AXagN!YXcT3bAXQHg| zwp7oem$x@stJ)+%@;0b5Q1aiS-5EL(e-)4|8=xn1*{TeezuP@Op;Kjz zWH57*Gvhn5hHWM$gbvFvTe-uN(8%==i> z?AE&4+YycB_e~l))muE=4L4K3woLBdTXN;eZ`^H&27G|3?`bq$tsecf$xrtC>Nj=z z({D=JCGCY9!l}v>(ztZ*#FdJGr0sui1?K1a^hN9jQ=i%|$99!eGxansWv1f2?Dl)o zB>R*2sfC%2?J5H|zn!TY4;n}0%-V^*UU~I_J<3n*O=zwJ#j?m*`qNqE4UvNp)qaBD zzn8Dy(zRo|B`Et>X~jn~HI{cfGd|4|H;JDyj1W~t7B77Hi<|!XvzrSPPrMsEMIb{u zV6!lhPS~Kpl(&C#$XCCGqk_^-8kYhQyxm~!DUMeN zk+OsVA-^hS%TD6dg~a%6;kJ;|eF6}X-Wu@{T4ow4$Q^lxte*@mI}w=hcjH)IVu_-%6WK<*KARh(6*@+w38Q zo+<A#$lu%V?G&b`ob>YdY9xb`wO-36_Vi+`H3fo;Cx+9qrhotu0#Qi8q@DxQLBThAdL z%(S8fWU!g)yy$e>E~19dPi7Kf=f=!-pl(NoYnh}Moh^axcMA5K-2J;MkcGC6EZ@7; zUKI!xMaQ!0Le}aZPKvSdf(LJGE*28`s^d+Lvu1i4?F?+{ydJu8WBq$>^ z#|J-W6eO{Nd{G^s(&A+)m>FQtMD7gt8_UI4)_&GZQMy7ngw~Hjm!3vx0sE$beY!jo zpt;n2Vh3f7l@cczb|{?;usPdL@2?Wv zh2=pB2i-|mNvpew{u;arYMB@Tu>iQ zZD_{)sMF+?JsZLj9%Y7^^ifyY-XU20AzWC+ksfF^74&n{XGTpmi$ynH8koBy%O5UTK8HrKzgbH!|opB&$8@6>vv2u2^d!%6dsM>$o=gtIWN` zfexY)9Gm%~LM#=-yt33*WQ0QeEY&?$Z3K@AeGD&wynn{rW=rDlMQhHJc?j$g_P1RN zm*5Qf)!)CCDB=!`ywE0rbT=md*O6*lD(vOp`@tP8Q=Wgr5|(=E9Y1Dl45OL|8n8+) zrOFW`%(mPij^?AY{K;NyaYnXdN%wQFil1c&tNn!!8Em0mc3m4zF0aZu(Bwl3x)B+X zPFx^Ii(U;1wHy?r*u5$$lyf2O_7V}~BUTu+wAahtK@#asPzh5yezmDcr)pJu{*2@X zTdYctxf)Z1(fcweJt(wB*FkMisAO~HOLKf5N@uFMb#|qCs}PP^d5~(DSwZP>=lM$P z(F8BS6Y>Eu4x5=g!UwW9L8jQ7vaj|yo!_6u#8Cf$*Kz9f5mzj?zWE`zY@4}8C|;o6 zp@__bTYo79Ih;VH@M!#UH4G(z-}Xzv42bEEDCR`ef-PNsN5>-Cv{DP<%FS} zSl+IJ7oWv^s0qe>KjXHei0=|Pu4Cw;cg=q>9dfaY!tJg%OYJ{M5xLlx!V)!)ua8MJ zA7F=Yr^WceNTivReWqzx6DMM4hMaRkl~W?xy33JM$Ujf#cJaJ%P16dUX0Wf67lq)j z=1JAe`P&N7OwwkOhZhJ;Rk8P6#Kj!gXEol+e+A+DYXA_WkivciEgWVE`JD$z9v@c& z8Uz1TtA)Kl$VIKuNeAKV{wAp*=5sbmqQF;tLEPA%VQBq)CBNXDFe#+*1Ks3s_);DX z8&nYBkd8X{Z1r(}>%nFs33|Gxj!V9V>gGjLKl8$of~?!7{C32Oii=T*di=?L`V9b(4Eua3*#0ded?4Z^3{j9rtAxi4oo5?ejG#Q{x=7f; zq@At|5#K6&i|!sDj(KMYCY34>D$rs34PM9*NZ$jLGeOCI$1`0@bP}F>jv0?HFIUuz zA%^-cQ#WJYBhXzFHz z;kiR67q?BzCS;b1_>G5I%I4c_|42c7`$KZLGr{BfjlBXxKMkf|++zp2gQWAICs+*C^;4@Oh(V*1= zWB7(k%u@R~lak5kWTmDZlrOT{f2bLT z5o*TD{H`DZifU>7d;w;my0ioQ!c2D4gez4P+aqd;=-HrP@&)Z@Kvn=(x)k~C*C84y&JeiV5!`|$Vkd_ zZ}0TK6x4wK=X(LO}(i4I>DS~1rq5kkKLySlB zDmD}EKeE+)0*IwhiS^!V>~u{hBcx4uMf|zVxZ`)Inmg`d+5oJ2G#O>!szr*0sGA|m zV+o;kIeTw@sx4z_Y9!ccf@i%bYFs(epJ3u97i~q6j8bmS-F`3XlUu1+>r9TX(0pD? zf#Ghz_HIaF`cmMzc$62)g9{6*ob6A7+E;GLoQ;Od^c-9JOoeC0%^7g^Nrc+G)0RV` zierTe+Eddq)n`i$`Jzb2180apJ|=O%2boY#M;GohT~u8fr2D?Kj$M=~_f;Ef-HTa% zM?*Vhf5;l~uDV$4uIyj{14#e7FO9@qA-fydg;hLOn`9vV1_ihfzvV>aEnxT>}Ua126y>`%%d_3!3r}u%u`%;_ z_8#cU9$enZ=()CFDBe(fUKR?+v+GD_g0|m5{M+ITKKSxaCZkT3-v>@h*)Q%7OGU0h z%DPso2!%F|O;bLqdVS*vSuznm2;AFg1qMXDkAa-2kzpUGq}{(6uJ#yw!(|6sL~27h z0LEs2y+djSwc()roaaXvcz0tuW}5#X*0WEC$91u^!FlWHydp{pj%JM@i2&=6`VkK#r^jBegbjyCf6q z*_Bl4^^E#=((|eR2Ak74G(>VZOA@TmO|m%SbSV?#IbwXQsYBr<2TwB%sbe7a%VgIB zmYpi|WCuNpXOGgn6N&@f55kU00h|| z;o`Cci=e$#H-*1!gdjyLUPFLV;3c-SaY0;Pdx|dbatHDoc8ZNt9z*+M_;V)PQVsx_m4nL-l_7CMQZLf5K^quFRV1~^C!P~tjzVfmA>(HMW?iVK~ty- zgTs~fJ5+C@d{~-e8)DBeCF`S&nbyR&7HWe)B_i1qt8I9yXMHlAqc{Z=Q-NR^uCJr_ zAveV_u)E(2&#Omn=(EfpJr5om50gYs%3v#3D(9Pn+~uwpP4LRft19_tr_&O&u!DD= zrU%L7+Z}Aakn8zqinO(H+|aLWr9UN<3%hnVu+$>Bx46>d{cOsFqf)(po!mhx6+ugY z#P2{4`cv)yw~Z+1&pRx}`}Gl>LS|wj=E@si8>+u2zVa6S)Kn~J=Qx2KW$3!oE1@4| z!b>1W&0=*dR-&llFs>hCMvkct;s5jER*0kLL4g}sJw}|W4p1mOU3YFj_7wETI~V! zq0B+&epP6W7jbvdC3!D%!+aBs3wep21oTdL({*wgi0)1=vbLu5Kn;-r$$_J&mK(@=%t z8h$VGF^S}Ih4i!|$GyUVr~(%5)uStP3!%vAe5sGDY~be)Bx#YEwf7pejgfS(&At_+ zPdGcUBoF}q*)a1QxGnP(cZYW_)u{ef8ed@EM2>TZqa?Mqo27CQ?a-Rg)yP^uN~RQ$ zBB4Z(t~ZO8rF-pgIA}Pq(Z6ObW@=O${X!I!=IuxoYG8L<(C?em-lp;XZR-fyHP3+6 z!!Xl5*s@nZz;nx`6D!C%`?+;O;j=};leLj>&|S;8^oa6usd1*~<2#X}<10^C^M0t( zO#)c>J&>+*<*B|{Lf6L9aK-gQVWV^?iGKb%$C{9QsFLTky5MOYPKgRL?PX-BckPH3 zzVN6w$HFVv-PG}BVI(mkMt5hr?BVr*Bxl{7^Q>~ML@-t5n@;@Xnv$ zLYs6R4%l&ntJZ#Q>q|H%rK=?>u-a=u#w${T5a`sA>1j5iA{8-@zj|5|324Nn>~oh4 z=}F1PPB}wu)Rd%s?yRDEXX$#uD;3qXX|IGh%G!bcoTf-~E*cHb7Zq87-c7RVxbw7l zB2^|vo^iuhkvJ_6xiFdq-l1q>Kg-3?y>Y=8&Fgi10cNRjuT67N^^EZJLNA9nhY4o* zt@8j?zvuKzvB0enGe<`#%XUBi=hnhEU(=>oy9a~_id{#p-h@;zf@l;Zsmc{Oi+v=? z(niDII?t5r@{q=PYu38c#Aw+$K8IvQQx_DrY@f4Ixg=11m;CZXqJO?Gur-6rzUoKn z;a>*~b75CqCP9w;*qWZJrEp5cr)hajpMM>48+AH@bFf2CGE9A<2kDb!PsCb`JGy#We@pxrFTu_s8Ea@XVc5r|wP0*dU^_X}*<{zO76J|m7_Ks6 zpv+*cREti!MUeU_e3M}+(3vs z8J_5_&na7m-9%hMZ|-@td|Tgn{Yw1cEkAi{=hh@&R*q{n=E{rZu_1kFm==DN)~*@@_A|MLAUr#U{Tj;%d*n1fwO*o`(p7R}t6z;c`cXy*VXdDBZ}YSC8n&XDIhh1+?jjFteKpqamL<)n1vSP2?cN`MTag%)1;wabCHdhd9HkA-4l=|4= zy@naZ^Tfz6&W3%L4-5D0*o~Gh>yZHNcUi$_q>a8_#174wh|aXX{~o}H({B1!hycLT zD+-zA_Ke;cL0P_$NB)8ha&k7!wp_&pRK(Gfmdj7cKqUVTJN_Hg{cmIb|1F$7z+n-? z?#|YS9}NjY^t8!X=@V5iT)Op*S_#1Jhp2uqt!c zMk3lOy1AR@y`oSJ!ZNdhARr_*B3+_hZorx}=)0)OezY9`<`PDk1WA-WnK>n=bS4#JE#7-1Cw8UfV{cbx zO!&aHt!)ZvOV)20&x{hvi-hj;WoUgv`i&ijIFrt~4&^JUmC{cG$%=J_{TY(Zn~l9W z!1Hvv)1j*0QWr$zr2|ys-Ynp`{CjQQgjdOvSa>=QT2}u?mR>G@BPGbf^8!?J>gtr?c-4YHIEJ4Io$m z(E}Ak5m0Rcg3kluR{f)I*|k|RZ=gLDvqgiwTlbTCR02+dFehzJ1*2_-Zm z?QYIFcjlhC@16PX`&VX?ot>Rz?e(l*dDa5mM6h2~sGmrS&*hZcdz-THM~u%|1};XB zKMqf-U351AYS_{1`1$Y;t+t+RPUBKQP3b+PuV@GMv0B)FKa7<0&MK-2>{U&jUNlop zjjJzO6gd(o;28nV96RbcC7&xexjz&{^;(V+u=^@)o^-O(1(FKqT(xkWtR>m@ydhW)rGdc1sTxdaRpyVhj{#JCG?FhfKqv=5$6G7ru?Y{sjl8#t+1L z|NPt>vV;)!f?HPgd<^Jzg>dy%;RBgHbj^^SXxownYq`**$zCu>DhEbt@LwCZ@#^jb zTA!T$YASAy*3(sui4(QBY7;znN#If)L9%{s`&BFp$p1VwpgyANTaX$nx3H{bC||SS zeblwM!(J~pGd-sBPFg#IM@-MjBVY_z_+cLkyxk0ge(E-9hadjgrB!L#2Oz-b zRP`h$UGeRGnAq*WfXS_;{Dcxsrz?*c6*)GX=oU59*9ak z2Ce5%A`@q#t-M;7PG|pU=l5Kmg{}UB^R&AC`|Q#BkE(ia4czpvDCBM!NEjBPy$!7N zOA&OXVT2WD?SC4Zq!kCc_!i~GO-liPi#<7bE2-4MP2B9-{ah~{_}rTtxtzX};#6e3 zi)o)GADpg0)gtf4+NN#-&)EUF(WkZHP!DQ*2sZ)>W{D6PHb=x*vbgI+mHg5%sAKZl z`q|asQJ34g56xAW{Z)>&s%(Lg-}Z=kae-cSdth9+WG@2&Z1_%;`$AnA#QtZu#)@F#(*Dv-7_eF(1_UB+~h2!{NjeSoJE3IP9h;Zb@@}BWTsD zzVzw6Mq9P%Gt!vCAsD8vFF8F$TG%14yNnea!6xd{om`Kr^?7#&l(EJv_Ue3Dgt<^m zQG!jMocqym@$3Dkfnd?5vFlpqy;WgMULhSgG1a|(nq>j>`jat@B}%oA7-9g(!2TG* z-G6dEbM|a4ZZ_#trRMK6?I5JshPbhGSP@~Oru{_p!7`fQ8Am{gv+v{;=R8h)! zV5Dj08d4VWB;Y{AT? z1rSoBq}xsC-5=Dk@4n%xFzquNy#U%d`!ALBe-^ZZgY_yhqH9&>bJ0Z~w za!$N_JDj4dZIr2s6e?#r_~Ev{EJQkuZ}RqA1Nu)7eeyvy>vC-`7ciF%4IN4V+On^E z_@cG`feu9jOO0`Ih_1OlRU2((EKVd-a^#50nP_vpBt(o_<$3Ir+f!J)xAy~~1O8h= z3GClrOJ3H5dzhm+{sNqk^3B}$P#$o9KzAlEUVS(U9T5yq=KS4^4`&g;4HCq;35qeW zX&d^>vN4BlI5fb3-i&?FkhjsJEch;ge(y*Rc6KZOCht$Aq<_(XHjUq7{=~W8cExR^ zf!ip@vYD+MpoV{)s7Ev{X3JAc&EE~zjSgg^gf5{|M}v$=3nTJrw;hJ|(~7|39_gT+ zBi}qw)_VO*hpz7?8lP&F0Oh?ItB9V@|6wKdSdCGgqfP#SN8yNx+e1>}G|e^6PMR=0 zALHygWVf)7jeh9X!+z!Bw{*#PE@xFf&=v#ls#UiwQ_zwbmC27%#_}yldTF6VqhDj` zLtJ}pRo$;(5Bz*6FwLaiXm|$z1Sb^yS$0kOj>Gi#{#$$soK*AJ0=-}Q2!w+uUimvnE!iLkkBaDfs&uzk{vU{AWT^vIK z+39W#=9p)*9VvxS3XS(yMwO_N%h0}}wNj(`yMekog>*3t*!GSoBvr-Tz=C`HxgcIwEFBTl^#2H(cbS z$2-}rTH_;;k0<2>xBO+nb9|R5-g6<>yz6aQyqrDo@n2>gr@m>{%-AJM%EVrt`t&(v zGtIZ?X@VQ5Lx^_}5@(DZrViQrE@6UtD5q;|{5lzl<73D^+3AU=?$Pn;DT; z1>$cl-|aV-BpdAdvr}qbDTM>W=A9mq#%iCyR6ql;H>+=TDooS%zPu)UEZKr4CvY8< zdYyDcd=b&0m&@SsGc^RHXeuW?h#Ih`7K~cFC#dIo2|ii-oGyB_O>ue71o39$zOB%l zr{`s?o|JK#aa!H4uLRnkPTrJan0KT(A{j^+PkhWa~-FLS6tfO*9r&}R4sq>bfo`kFC(HA8(R zEwO9K&6)?C-k@;`BI>vUZ>;5QyV*3R75d?2X9tmB8XK;Wfj=SGTGnl!CmKch zx_9niWM?CM<2=Y!5iKV$N~wRt4Rn9+I|C8@JoIkP%jOM&!pd}W{JlwCg)M4pByg$m zi&+1@c_hu= z=+ue$wbkoyBHj&*$JOs(wOnyvkfXt>huvyD7x#wD5NnrW%vLhSW3T~@(4VOtD|i^( zJANMACx#5m8>E#lA=+R1u3bwb=ywf`LYXdlZ>@))1w~MSCI)M|YOoS+gwmR-JDO{B zcQgv6LN*}HTwGt|wPsC3n}2zgr$7mPQWQ^EHZb)Yb|6O zyLi8Cp-1{x(v}3-$EQ3)och(?q(BCh$~|*7aA`M~9dGMaj{LoEbxIG!xiO+IZgBML z0-N1*L-=&C)A&)Hu{7mp_;_R@&&L*FgTg55-hN2jxV>*j~V2Wp;Kj zG)>bc3Z6xsau8udB!9NF@#wx6$~vFRJX92~v~R$%ITV#H9TON00&y9l4DdmL)dPjb z)}e>d*+({EllPl(5nny``dmUxYjH*vw;7d?`|$UHYzIuaD;?w$rUY+9lfi-dIM8~3`Ce_T(ViU;Nqc9tMcGy&sP8u^ZQQUdVfuZMq89RJo`{`f0( zuh$;)dR{eRY^nJ3@MI^PE$%NF-x3_JEI!ZbhVs= zRu)x{&rx zG)dpqIm&Diw@?~!kb*W`s=Om9e@_=~TL z7}N#=xUjQ^ZhY%xeW#_-_xKZ{<3p+>R zgBQcqw*@B6CD-?-b#deF#h~x@K>P|VHCtd*WHh_EDXiV3;QpGMI`6qEAH4fi-NXUYuxr_!L#yoTFjc!*l>uqcjidQWFs z+6bj(E#Gy}V4(bpg>0oK5J*LW_@QFeOekq?;7V-k+wzE|nx=wGI;3xj(K% znBn@c)=v1_z;zlK@9oy?)fnIq$Ly-pID>EkrWiJ3tIsxAI=Ap3P?mJFF;i+Z5eM$= zshS9zMG7_Hp)W3m+kilv8M>OcP0eVnqE+Idu}b-`H@O579VU*2roV^^T-iZtOOv49 z2hv8`IN!!P4&{Aw^aT?|p!Vss|ILU^eSd60c$Uo(Q?6pWLxfM-W^z197+APZlLNPm zWdlYFuiuQ=2p=!GCSQR1P4K9Hy$Kr1L*d;9hCkh})tF1Kdlapen>B`IEk17vDfb79 zU=Ja`^sJ^6><(pdda``SK-i_XKyvN!j=#v#<{Th4n)#)NN8s-oANjPIY48t*{=?4s zoV|cS&OO3r^w{AZknWwM7T%w%*y6iGX8$SXlo|D+M1G0LJG%O|jnpbq%<6Qc$OgJZ z|6ky_wNU`ieQ2O&AAG1Gt+;gQ1UZcd=3SULt#Q~{UlI|kFD?VY;*rzko#{fP-RiQj z1)(>JC0mso@5-h%LbZDz+1frh_G=t-a%EFqFn7yuy#3$O2PDcyjIzAUw(n2<80=E7 z_Lxex=&IGc0VHR)vIN#23$s6P`at@SD8&=TW&X#&2+MJ+NXyK9?mka=$m;ZNF!rbCp~Y~*~Wh1PVWZ(hhu2B zJsUX_grWv~TKMys>hp7B=U9bZus8Q7Qo9_2>y^@r^nKk!QY(#@p=^m662RI;*3ZGD zTHy|znr>iV=cmY21qaTQ;(#ov%1VFAn7z~_6xLPSr~dqzXigDe_*Pc2wxa@57gS6Xb@qpP7gCpJEd|D)M8^ z+ps!5D?E?f<~e}KI1nNiyh-QgH`ALCjuA#XUvk$^Aw%c~&`Htv7+7HocEw8Rq-*CTI zt}po}c(hv250;FENoI3Z4DW&S(Wg(v9kS|?P^goMu3W_Mj~=k>kRJ{es?%^D`dbY- z=GGUF`uGSM#qTKlCyQgMNGqaqfs8DMeHV^55ahi=mVJ+8BT7zxu@@~?8h(ZSxY9+9 ze*^Vr;ve$8`^S|v2TFHsI1T~W@iT7nQo4!;3h~>jbHz1GP`KFACFG{~<>#!pyyVjr z>&4S>Ny}bWg$oBw-BB_}2EjfN6h1AYfsQ(m9GRc~7w(O5$G>Z1iMCXcqpuV)##KF& z+)^}T-^H3ZIr5tz7n2rC*1hXi(zAjZ!N9`U@qapayOHpLX{%S4*-WLhL<9h&VW;*= z&If`K8aT_^w--HWy~)MoWD~bJ--P2VYqJ5YzOih=zq6XV99T}4H z`t^>O2*%b6VW;h_9~mxi5x=0OI@s?h$eSDKj#>DfmVlI1YA>3j-Un4SYB$q?5N=hx zs~(LqZrf1F+y+v3#lz9<;wA4QZZD2WTd66Hq+DXMTh%)BQYMJ1=aFxm%XtC-xqK&1 zb{$=Z*ZNj%6l<}m9ylZ~tsnOvG^{k|)zFbP7&uGgP2B{_h-64kBmqmytJth)fu)XH zRP<>1F0{YnsI7NaF<+43M^S?OysN`XT$L5bd|RWg>iqo*?gS_P z4y0^h3Y7|gLDOrXiRz`}cBud(bnLhNm+bv7X5(MViK};?Ml^h>b<*e+O3miFjAd`= zlGW20&4v7^?Cq=7wV%m4i5A#quV^2sFKZ6Q=-vlGI~<`Ax~pGGVB+UmnJ}V8#-I-z zGzHIBfc#ynaTwD-@rME5ujfo&3bUa}79uj$LOC^P$NtCC(bPQ4JYyW+B|Nk?9%*bx zYnIC26!TKN{I|2ix)pGC07RQ!{Z(5}rQE#`+TN3v+l`yb!ted3jhjO@W0;6Neu!|i zEKbk|xB$J-u)1>MKnfSAiTD-mmRo0q%1t@y#^vd%z2bx!Sv#k}rX^nd)Nu+}pVcgR zfTf16TPt*Ii~PW1rks*U7%l)OER#*)k&-E}Tq2ny=+Mfq6Tmxn8?)FlV=OClJ0Po=8I z96-FIlphDG)t)lRL~N5p!Y$03GKg^;7K0?fDhJ5MuYyS>vgJ67d5Ylh1xm((C#zX& zit&`1J_86qd|tSEJpl3TT|jqU-9l>~`B8`0^NE)g0DH<+$M~xB6Qs(h=!5CAW`0HC z+Py2N9h=EQV4!&ssQQ5+$|pbSLgUU**+#Bv!&jQWzS3UPMo_MKfnAd5h@FyG82ZVx zRL-p+(`0D3plgBgmD_NGpue2omlaQ|i1O6Fgl0o-`JU@N1w#Edft%;k2Qa&NCmo{cT-A$| z_af%;BEJW}cz-SYZ5x)b4p!!Mh3z)Z6e{qt!mHfcF{MUF>%1Xr<}C=nsz4m=g8qyI zOQkK!AOf9tLEm`EDi1RHpt8gFCYAL(X$BzT0oP((H=)eN_qgErB3{_11>QpE=$9EI;BNxMi0xAVO#rM zJVg)>g}DxAyaVnKi${0y? zav^2D)QJA+M}oc+{C>j@%X_^|1D%V0F_1xVZVB0KIni*7agT-ZJI|#(g}C1R5ML`a zms!d_zgNR9c?JYePRtss9l$*QV&pgnn{1W@52LwQkM z{;4Y?D0>v?3JlBz;HC4IpC@a)h!@^&P~y>0OKigO)g_&KF~kr>;vDOz>aredk8X!K z)|F*?&E5rSGNvQ@X3Xt9=m4otO~ihvhc;p0{Mfz0JCyC@u;=RmKOkcAk7YwSg!xp( z1m+{9eE&`seT>FcnnVK3A+jHeC)kCZFTFeRBC(6(?G7|Bn)-VLEE>kHb?5?bM1=O; z1y~e^|HA60ItB3CL{+wrOmUe9n*K@oDA!G1)tyU|^9!Cy`d9!m`nb=Pr}_t1Fh!+s zBLBEzXLooDzgZoSq-z|e2k=nc! zs3(M(ozU=!z}$P{U$A5CY?5lg44C!s$Y;kAIkB+wa!5Q^D$C=3xn`~6Q`>b;6h8e* zGk7Vv2bG| zUf$|6YLyr_Evlcw<)xgj8<~d4yWI2ln-jtxUdUMDb4|Het-WjIECsna4?j66p1HXpD%tZ$ng4Dg|CUoZc{3eeQqnjmGBmf0Phyp`c6EWq>HvG zF9GwIOK}<+0}wK}X-`;6=nTmJ1Z^Taa;AQxWVzix{f~nD3io&1xpsa4875(&pIBHs z5YVSlW2@;{UH>yx2YWUWS72tJ+#`nsLbD00lT(Cy#X7Ne7PlfOh zERsSjgn%RL{Yhie)+&rUy$Ll+qi+JPRdK6k3~B4~&<+7Y0rVuIr@QFDGTXqe(h##Z zBf->f>f|vROivBd)ozPo11c^16MnY9tT$Vt=s*(~K@y@K<{zs`1t$%ax0?^34OW!Q zka_LvxG&e|hqSZ~9|NfeDADAHPSP&bZ4v@Lv<$!BNm9>40Ple>d7A$r)_OQiy`SW` zt{^`Cs{RIUHvZxRrpguZ_Ydyc6x;@mT7Lwkbb;-x}(3SqKWbE<4D|34e4 z|KF;@KSk&NTjKpc>Dqr>nE%s4HK)FHA7~vabugc+9J0Tp6g6F;5E|v{Wa5n6s@O^5 zwW;y^%r*Syi}A8)@U~g%U2U^2&(N^#sdmn^%)zo-5ojj8Kz(}9Ejy~@wQKS0yHjpC z@Ktdwas@caP8D?<&pG@jqo*#!3|Up;MMKR`KT{#-Z^SdoJ+MPP6;9v>qR4^T^nmhs zlo$THeKV;rJIXGw%Hxy7#cx1{>i;@Uwh9eJbJI6yS*lHb-2VLG8mJ>Cr)j%C^EM>C zv<|nIH_5ATQaIkKu|#8M=x+8^`Ir7VI8)q3D-%9=UXUr@;00oUoM}%2e5cHMShHPc zV}i--&2qgvhWD=Hw<2yj&`le)o68K%ezs7;h3u;~7bNqJPlPzg;-)z`D2-T}TI`+Y zJBJOQpo|Wdn6*W2&c8Z@?uhjG@PZkh-T_*?cwgal64}5qFD1;z$J~N;3HUe841lZ7 z6ysFA3%KKMO2QkF`fL{YxygeP5uV*(ZLoY82y`+v5q0pOFVB^oQbuBCOA$~`h|;G_ z7*&FOx5DL5b3G`W)pRwhuKPvuiLw~0}u6N0JdvGMRc zVdj=(byaygyRInwx@}9G7pXD{a^Ef+ zYULq2*ORgiq#m^Ge! zu{2bPV`76DL=!aE!a85l%=FoFF9m^=!jYv%&v=OQL69HI3`1MXp36f6%eB@-FoNtQ z;P-Kv1N(DsVmW41V}34hnHCsUm=xevQlVyT#8~ub<+D`=y~n(afGcyM2T$M8#|`jWSV(=oGZ*4yxhG}iaq@aRrG6I2l0&RYE$JEmv+z?vH?1on zx^=`9!n%Zc9^%q=UQjrW5_5Ftsh(tfj}Gj>$4`_x@CQ%9$uS*(jl(^dmMBvnRe)j?t0%xpsfl^x z{2A0KS_t;dCQ5S7#s8@gk55uuq^l;DT`&=%<#YcRdT^p2O3_QQ>&t45>`ZOhUSQJS zw3<@jk2s}+U5h%bWJ!hMe}qD_i>`a6z-jwh!Dc%5iy2R4yixS}d19xY3Y_zBA4S z1rv|=A(O3!*cr-B{eAcU!@UIm!uGCIJ^tlL-apO}e 0 { - bpffilter := strings.Join(flag.Args(), " ") - fmt.Fprintf(os.Stderr, "Using BPF filter %q\n", bpffilter) - if err = handle.SetBPFFilter(bpffilter); err != nil { - log.Fatal("BPF filter error:", err) - } - } - } - dumpcommand.Run(handle) -} diff --git a/vendor/github.com/tsg/gopacket/examples/pfdump/main.go b/vendor/github.com/tsg/gopacket/examples/pfdump/main.go deleted file mode 100644 index acedc9bd332..00000000000 --- a/vendor/github.com/tsg/gopacket/examples/pfdump/main.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// The pfdump binary implements a tcpdump-like command line tool with gopacket -// using pfring as a backend data collection mechanism. -package main - -import ( - "flag" - "fmt" - "github.com/tsg/gopacket/dumpcommand" - "github.com/tsg/gopacket/examples/util" - "github.com/tsg/gopacket/pfring" - "log" - "os" - "strings" -) - -var iface = flag.String("i", "eth0", "Interface to read packets from") -var snaplen = flag.Int("s", 65536, "Snap length (number of bytes max to read per packet") -var cluster = flag.Int("cluster", -1, "If >= 0, sets the pfring cluster to this value") -var clustertype = flag.Int("clustertype", int(pfring.ClusterPerFlow), "Cluster type") - -func main() { - defer util.Run()() - var ring *pfring.Ring - var err error - if ring, err = pfring.NewRing(*iface, uint32(*snaplen), pfring.FlagPromisc); err != nil { - log.Fatalln("pfring ring creation error:", err) - } - if len(flag.Args()) > 0 { - bpffilter := strings.Join(flag.Args(), " ") - fmt.Fprintf(os.Stderr, "Using BPF filter %q\n", bpffilter) - if err = ring.SetBPFFilter(bpffilter); err != nil { - log.Fatalln("BPF filter error:", err) - } - } - if *cluster >= 0 { - if err = ring.SetCluster(*cluster, pfring.ClusterType(*clustertype)); err != nil { - log.Fatalln("pfring SetCluster error:", err) - } - } - if err = ring.SetSocketMode(pfring.ReadOnly); err != nil { - log.Fatalln("pfring SetSocketMode error:", err) - } else if err = ring.Enable(); err != nil { - log.Fatalln("pfring Enable error:", err) - } - dumpcommand.Run(ring) -} diff --git a/vendor/github.com/tsg/gopacket/examples/statsassembly/main.go b/vendor/github.com/tsg/gopacket/examples/statsassembly/main.go deleted file mode 100644 index 00393e5355a..00000000000 --- a/vendor/github.com/tsg/gopacket/examples/statsassembly/main.go +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// This binary provides sample code for using the gopacket TCP assembler raw, -// without the help of the tcpreader library. It watches TCP streams and -// reports statistics on completed streams. -// -// It also uses gopacket.DecodingLayerParser instead of the normal -// gopacket.PacketSource, to highlight the methods, pros, and cons of this -// approach. -package main - -import ( - "flag" - "github.com/tsg/gopacket" - "github.com/tsg/gopacket/examples/util" - "github.com/tsg/gopacket/layers" - "github.com/tsg/gopacket/pcap" - "github.com/tsg/gopacket/tcpassembly" - "log" - "time" -) - -var iface = flag.String("i", "eth0", "Interface to get packets from") -var snaplen = flag.Int("s", 65536, "SnapLen for pcap packet capture") -var filter = flag.String("f", "tcp", "BPF filter for pcap") -var logAllPackets = flag.Bool("v", false, "Log whenever we see a packet") -var bufferedPerConnection = flag.Int("connection_max_buffer", 0, ` -Max packets to buffer for a single connection before skipping over a gap in data -and continuing to stream the connection after the buffer. If zero or less, this -is infinite.`) -var bufferedTotal = flag.Int("total_max_buffer", 0, ` -Max packets to buffer total before skipping over gaps in connections and -continuing to stream connection data. If zero or less, this is infinite`) -var flushAfter = flag.String("flush_after", "2m", ` -Connections which have buffered packets (they've gotten packets out of order and -are waiting for old packets to fill the gaps) are flushed after they're this old -(their oldest gap is skipped). Any string parsed by time.ParseDuration is -acceptable here`) -var packetCount = flag.Int("c", -1, ` -Quit after processing this many packets, flushing all currently buffered -connections. If negative, this is infinite`) - -// simpleStreamFactory implements tcpassembly.StreamFactory -type statsStreamFactory struct{} - -// statsStream will handle the actual decoding of stats requests. -type statsStream struct { - net, transport gopacket.Flow - bytes, packets, outOfOrder, skipped int64 - start, end time.Time - sawStart, sawEnd bool -} - -// New creates a new stream. It's called whenever the assembler sees a stream -// it isn't currently following. -func (factory *statsStreamFactory) New(net, transport gopacket.Flow) tcpassembly.Stream { - log.Printf("new stream %v:%v started", net, transport) - s := &statsStream{ - net: net, - transport: transport, - start: time.Now(), - } - s.end = s.start - // ReaderStream implements tcpassembly.Stream, so we can return a pointer to it. - return s -} - -// Reassembled is called whenever new packet data is available for reading. -// Reassembly objects contain stream data IN ORDER. -func (s *statsStream) Reassembled(reassemblies []tcpassembly.Reassembly) { - for _, reassembly := range reassemblies { - if reassembly.Seen.Before(s.end) { - s.outOfOrder++ - } else { - s.end = reassembly.Seen - } - s.bytes += int64(len(reassembly.Bytes)) - s.packets += 1 - if reassembly.Skip > 0 { - s.skipped += int64(reassembly.Skip) - } - s.sawStart = s.sawStart || reassembly.Start - s.sawEnd = s.sawEnd || reassembly.End - } -} - -// ReassemblyComplete is called when the TCP assembler believes a stream has -// finished. -func (s *statsStream) ReassemblyComplete() { - diffSecs := float64(s.end.Sub(s.start)) / float64(time.Second) - log.Printf("Reassembly of stream %v:%v complete - start:%v end:%v bytes:%v packets:%v ooo:%v bps:%v pps:%v skipped:%v", - s.net, s.transport, s.start, s.end, s.bytes, s.packets, s.outOfOrder, - float64(s.bytes)/diffSecs, float64(s.packets)/diffSecs, s.skipped) -} - -func main() { - defer util.Run()() - - flushDuration, err := time.ParseDuration(*flushAfter) - if err != nil { - log.Fatal("invalid flush duration: ", *flushAfter) - } - - log.Printf("starting capture on interface %q", *iface) - // Set up pcap packet capture - handle, err := pcap.OpenLive(*iface, int32(*snaplen), true, flushDuration/2) - if err != nil { - log.Fatal("error opening pcap handle: ", err) - } - if err := handle.SetBPFFilter(*filter); err != nil { - log.Fatal("error setting BPF filter: ", err) - } - - // Set up assembly - streamFactory := &statsStreamFactory{} - streamPool := tcpassembly.NewStreamPool(streamFactory) - assembler := tcpassembly.NewAssembler(streamPool) - assembler.MaxBufferedPagesPerConnection = *bufferedPerConnection - assembler.MaxBufferedPagesTotal = *bufferedTotal - - log.Println("reading in packets") - - // We use a DecodingLayerParser here instead of a simpler PacketSource. - // This approach should be measurably faster, but is also more rigid. - // PacketSource will handle any known type of packet safely and easily, - // but DecodingLayerParser will only handle those packet types we - // specifically pass in. This trade-off can be quite useful, though, in - // high-throughput situations. - var eth layers.Ethernet - var dot1q layers.Dot1Q - var ip4 layers.IPv4 - var ip6 layers.IPv6 - var ip6extensions layers.IPv6ExtensionSkipper - var tcp layers.TCP - var payload gopacket.Payload - parser := gopacket.NewDecodingLayerParser(layers.LayerTypeEthernet, - ð, &dot1q, &ip4, &ip6, &ip6extensions, &tcp, &payload) - decoded := make([]gopacket.LayerType, 0, 4) - - nextFlush := time.Now().Add(flushDuration / 2) - - var byteCount int64 - start := time.Now() - -loop: - for ; *packetCount != 0; *packetCount-- { - // Check to see if we should flush the streams we have - // that haven't seen any new data in a while. Note we set a - // timeout on our PCAP handle, so this should happen even if we - // never see packet data. - if time.Now().After(nextFlush) { - stats, _ := handle.Stats() - log.Printf("flushing all streams that haven't seen packets in the last 2 minutes, pcap stats: %+v", stats) - assembler.FlushOlderThan(time.Now().Add(flushDuration)) - nextFlush = time.Now().Add(flushDuration / 2) - } - - // To speed things up, we're also using the ZeroCopy method for - // reading packet data. This method is faster than the normal - // ReadPacketData, but the returned bytes in 'data' are - // invalidated by any subsequent ZeroCopyReadPacketData call. - // Note that tcpassembly is entirely compatible with this packet - // reading method. This is another trade-off which might be - // appropriate for high-throughput sniffing: it avoids a packet - // copy, but its cost is much more careful handling of the - // resulting byte slice. - data, ci, err := handle.ZeroCopyReadPacketData() - - if err != nil { - log.Printf("error getting packet: %v", err) - continue - } - err = parser.DecodeLayers(data, &decoded) - if err != nil { - log.Printf("error decoding packet: %v", err) - continue - } - if *logAllPackets { - log.Printf("decoded the following layers: %v", decoded) - } - byteCount += int64(len(data)) - // Find either the IPv4 or IPv6 address to use as our network - // layer. - foundNetLayer := false - var netFlow gopacket.Flow - for _, typ := range decoded { - switch typ { - case layers.LayerTypeIPv4: - netFlow = ip4.NetworkFlow() - foundNetLayer = true - case layers.LayerTypeIPv6: - netFlow = ip6.NetworkFlow() - foundNetLayer = true - case layers.LayerTypeTCP: - if foundNetLayer { - assembler.AssembleWithTimestamp(netFlow, &tcp, ci.Timestamp) - } else { - log.Println("could not find IPv4 or IPv6 layer, inoring") - } - continue loop - } - } - log.Println("could not find TCP layer") - } - assembler.FlushAll() - log.Printf("processed %d bytes in %v", byteCount, time.Since(start)) -} diff --git a/vendor/github.com/tsg/gopacket/examples/synscan/main.go b/vendor/github.com/tsg/gopacket/examples/synscan/main.go deleted file mode 100644 index dbecfaeebb3..00000000000 --- a/vendor/github.com/tsg/gopacket/examples/synscan/main.go +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// synscan implements a TCP syn scanner on top of pcap. -// It's more complicated than arpscan, since it has to handle sending packets -// outside the local network, requiring some routing and ARP work. -// -// Since this is just an example program, it aims for simplicity over -// performance. It doesn't handle sending packets very quickly, it scans IPs -// serially instead of in parallel, and uses gopacket.Packet instead of -// gopacket.DecodingLayerParser for packet processing. We also make use of very -// simple timeout logic with time.Since. -// -// Making it blazingly fast is left as an exercise to the reader. -package main - -import ( - "bytes" - "flag" - "fmt" - "log" - "net" - "time" - - "github.com/tsg/gopacket" - "github.com/tsg/gopacket/examples/util" - "github.com/tsg/gopacket/layers" - "github.com/tsg/gopacket/pcap" - "github.com/tsg/gopacket/routing" -) - -// scanner handles scanning a single IP address. -type scanner struct { - // iface is the interface to send packets on. - iface *net.Interface - // destination, gateway (if applicable), and soruce IP addresses to use. - dst, gw, src net.IP - - handle *pcap.Handle - - // opts and buf allow us to easily serialize packets in the send() - // method. - opts gopacket.SerializeOptions - buf gopacket.SerializeBuffer -} - -// newScanner creates a new scanner for a given destination IP address, using -// router to determine how to route packets to that IP. -func newScanner(ip net.IP, router routing.Router) (*scanner, error) { - s := &scanner{ - dst: ip, - opts: gopacket.SerializeOptions{ - FixLengths: true, - ComputeChecksums: true, - }, - buf: gopacket.NewSerializeBuffer(), - } - // Figure out the route to the IP. - iface, gw, src, err := router.Route(ip) - if err != nil { - return nil, err - } - log.Printf("scanning ip %v with interface %v, gateway %v, src %v", ip, iface.Name, gw, src) - s.gw, s.src, s.iface = gw, src, iface - - // Open the handle for reading/writing. - // Note we could very easily add some BPF filtering here to greatly - // decrease the number of packets we have to look at when getting back - // scan results. - handle, err := pcap.OpenLive(iface.Name, 65536, true, pcap.BlockForever) - if err != nil { - return nil, err - } - s.handle = handle - return s, nil -} - -// close cleans up the handle. -func (s *scanner) close() { - s.handle.Close() -} - -// getHwAddr is a hacky but effective way to get the destination hardware -// address for our packets. It does an ARP request for our gateway (if there is -// one) or destination IP (if no gateway is necessary), then waits for an ARP -// reply. This is pretty slow right now, since it blocks on the ARP -// request/reply. -func (s *scanner) getHwAddr() (net.HardwareAddr, error) { - start := time.Now() - arpDst := s.dst - if s.gw != nil { - arpDst = s.gw - } - // Prepare the layers to send for an ARP request. - eth := layers.Ethernet{ - SrcMAC: s.iface.HardwareAddr, - DstMAC: net.HardwareAddr{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, - EthernetType: layers.EthernetTypeARP, - } - arp := layers.ARP{ - AddrType: layers.LinkTypeEthernet, - Protocol: layers.EthernetTypeIPv4, - HwAddressSize: 6, - ProtAddressSize: 4, - Operation: layers.ARPRequest, - SourceHwAddress: []byte(s.iface.HardwareAddr), - SourceProtAddress: []byte(s.src), - DstHwAddress: []byte{0, 0, 0, 0, 0, 0}, - DstProtAddress: []byte(arpDst), - } - // Send a single ARP request packet (we never retry a send, since this - // is just an example ;) - if err := s.send(ð, &arp); err != nil { - return nil, err - } - // Wait 3 seconds for an ARP reply. - for { - if time.Since(start) > time.Second*3 { - return nil, fmt.Errorf("timeout getting ARP reply") - } - data, _, err := s.handle.ReadPacketData() - if err == pcap.NextErrorTimeoutExpired { - continue - } else if err != nil { - return nil, err - } - packet := gopacket.NewPacket(data, layers.LayerTypeEthernet, gopacket.NoCopy) - if arpLayer := packet.Layer(layers.LayerTypeARP); arpLayer != nil { - arp := arpLayer.(*layers.ARP) - if bytes.Equal(arp.SourceProtAddress, arpDst) { - return net.HardwareAddr(arp.SourceHwAddress), nil - } - } - } -} - -// scan scans the dst IP address of this scanner. -func (s *scanner) scan() error { - // First off, get the MAC address we should be sending packets to. - hwaddr, err := s.getHwAddr() - if err != nil { - return err - } - // Construct all the network layers we need. - eth := layers.Ethernet{ - SrcMAC: s.iface.HardwareAddr, - DstMAC: hwaddr, - EthernetType: layers.EthernetTypeIPv4, - } - ip4 := layers.IPv4{ - SrcIP: s.src, - DstIP: s.dst, - Version: 4, - TTL: 64, - Protocol: layers.IPProtocolTCP, - } - tcp := layers.TCP{ - SrcPort: 54321, - DstPort: 0, // will be incremented during the scan - SYN: true, - } - tcp.SetNetworkLayerForChecksum(&ip4) - - // Create the flow we expect returning packets to have, so we can check - // against it and discard useless packets. - ipFlow := gopacket.NewFlow(layers.EndpointIPv4, s.dst, s.src) - start := time.Now() - for { - // Send one packet per loop iteration until we've sent packets - // to all of ports [1, 65535]. - if tcp.DstPort < 65535 { - start = time.Now() - tcp.DstPort++ - if err := s.send(ð, &ip4, &tcp); err != nil { - log.Printf("error sending to port %v: %v", tcp.DstPort, err) - } - } - // Time out 5 seconds after the last packet we sent. - if time.Since(start) > time.Second*5 { - log.Printf("timed out for %v, assuming we've seen all we can", s.dst) - return nil - } - - // Read in the next packet. - data, _, err := s.handle.ReadPacketData() - if err == pcap.NextErrorTimeoutExpired { - continue - } else if err != nil { - log.Printf("error reading packet: %v", err) - continue - } - - // Parse the packet. We'd use DecodingLayerParser here if we - // wanted to be really fast. - packet := gopacket.NewPacket(data, layers.LayerTypeEthernet, gopacket.NoCopy) - - // Find the packets we care about, and print out logging - // information about them. All others are ignored. - if net := packet.NetworkLayer(); net == nil { - // log.Printf("packet has no network layer") - } else if net.NetworkFlow() != ipFlow { - // log.Printf("packet does not match our ip src/dst") - } else if tcpLayer := packet.Layer(layers.LayerTypeTCP); tcpLayer == nil { - // log.Printf("packet has not tcp layer") - } else if tcp, ok := tcpLayer.(*layers.TCP); !ok { - // We panic here because this is guaranteed to never - // happen. - panic("tcp layer is not tcp layer :-/") - } else if tcp.DstPort != 54321 { - // log.Printf("dst port %v does not match", tcp.DstPort) - } else if tcp.RST { - log.Printf(" port %v closed", tcp.SrcPort) - } else if tcp.SYN && tcp.ACK { - log.Printf(" port %v open", tcp.SrcPort) - } else { - // log.Printf("ignoring useless packet") - } - } -} - -// send sends the given layers as a single packet on the network. -func (s *scanner) send(l ...gopacket.SerializableLayer) error { - if err := gopacket.SerializeLayers(s.buf, s.opts, l...); err != nil { - return err - } - return s.handle.WritePacketData(s.buf.Bytes()) -} - -func main() { - defer util.Run()() - router, err := routing.New() - if err != nil { - log.Fatal("routing error:", err) - } - for _, arg := range flag.Args() { - var ip net.IP - if ip = net.ParseIP(arg); ip == nil { - log.Printf("non-ip target: %q", arg) - continue - } else if ip = ip.To4(); ip == nil { - log.Printf("non-ipv4 target: %q", arg) - continue - } - // Note: newScanner creates and closes a pcap Handle once for - // every scan target. We could do much better, were this not an - // example ;) - s, err := newScanner(ip, router) - if err != nil { - log.Printf("unable to create scanner for %v: %v", ip, err) - continue - } - if err := s.scan(); err != nil { - log.Printf("unable to scan %v: %v", ip, err) - } - s.close() - } -} diff --git a/vendor/github.com/tsg/gopacket/examples/util/util.go b/vendor/github.com/tsg/gopacket/examples/util/util.go deleted file mode 100644 index 0f698fb92c1..00000000000 --- a/vendor/github.com/tsg/gopacket/examples/util/util.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// Package util provides shared utilities for all gopacket examples. -package util - -import ( - "flag" - "log" - "os" - "runtime/pprof" -) - -var cpuprofile = flag.String("cpuprofile", "", "Where to write CPU profile") - -// Run starts up stuff at the beginning of a main function, and returns a -// function to defer until the function completes. It should be used like this: -// -// func main() { -// defer util.Run()() -// ... stuff ... -// } -func Run() func() { - flag.Parse() - if *cpuprofile != "" { - f, err := os.Create(*cpuprofile) - if err != nil { - log.Fatalf("could not open cpu profile file %q", *cpuprofile) - } - pprof.StartCPUProfile(f) - return func() { - pprof.StopCPUProfile() - f.Close() - } - } - return func() {} -} diff --git a/vendor/github.com/tsg/gopacket/layers/test_creator.py b/vendor/github.com/tsg/gopacket/layers/test_creator.py index 3a506ff189e..c92d2765a22 100755 --- a/vendor/github.com/tsg/gopacket/layers/test_creator.py +++ b/vendor/github.com/tsg/gopacket/layers/test_creator.py @@ -13,91 +13,91 @@ class Packet(object): - """Helper class encapsulating packet from a pcap file.""" - - def __init__(self, packet_lines): - self.packet_lines = packet_lines - self.data = self._DecodeText(packet_lines) - - @classmethod - def _DecodeText(cls, packet_lines): - packet_bytes = [] - # First line is timestamp and stuff, skip it. - # Format: 0x0010: 0000 0020 3aff 3ffe 0000 0000 0000 0000 ....:.?......... - - for line in packet_lines[1:]: - m = re.match(r'\s+0x[a-f\d]+:\s+((?:[\da-f]{2,4}\s)*)', line, re.IGNORECASE) - if m is None: - continue - for hexpart in m.group(1).split(): - packet_bytes.append(base64.b16decode(hexpart.upper())) - return ''.join(packet_bytes) - - def Test(self, name, link_type): - """Yields a test using this packet, as a set of lines.""" - yield '// testPacket%s is the packet:' % name - for line in self.packet_lines: - yield '// ' + line - yield 'var testPacket%s = []byte{' % name - data = list(self.data) - while data: - linebytes, data = data[:16], data[16:] - yield ''.join(['\t'] + ['0x%02x, ' % ord(c) for c in linebytes]) - yield '}' - yield 'func TestPacket%s(t *testing.T) {' % name - yield '\tp := gopacket.NewPacket(testPacket%s, LinkType%s, gopacket.Default)' % (name, link_type) - yield '\tif p.ErrorLayer() != nil {' - yield '\t\tt.Error("Failed to decode packet:", p.ErrorLayer().Error())' - yield '\t}' - yield '\tcheckLayers(p, []gopacket.LayerType{LayerType%s, FILL_ME_IN_WITH_ACTUAL_LAYERS}, t)' % link_type - yield '}' - yield 'func BenchmarkDecodePacket%s(b *testing.B) {' % name - yield '\tfor i := 0; i < b.N; i++ {' - yield '\t\tgopacket.NewPacket(testPacket%s, LinkType%s, gopacket.NoCopy)' % (name, link_type) - yield '\t}' - yield '}' + """Helper class encapsulating packet from a pcap file.""" + + def __init__(self, packet_lines): + self.packet_lines = packet_lines + self.data = self._DecodeText(packet_lines) + + @classmethod + def _DecodeText(cls, packet_lines): + packet_bytes = [] + # First line is timestamp and stuff, skip it. + # Format: 0x0010: 0000 0020 3aff 3ffe 0000 0000 0000 0000 ....:.?......... + + for line in packet_lines[1:]: + m = re.match(r'\s+0x[a-f\d]+:\s+((?:[\da-f]{2,4}\s)*)', line, re.IGNORECASE) + if m is None: continue + for hexpart in m.group(1).split(): + packet_bytes.append(base64.b16decode(hexpart.upper())) + return ''.join(packet_bytes) + + def Test(self, name, link_type): + """Yields a test using this packet, as a set of lines.""" + yield '// testPacket%s is the packet:' % name + for line in self.packet_lines: + yield '// ' + line + yield 'var testPacket%s = []byte{' % name + data = list(self.data) + while data: + linebytes, data = data[:16], data[16:] + yield ''.join(['\t'] + ['0x%02x, ' % ord(c) for c in linebytes]) + yield '}' + yield 'func TestPacket%s(t *testing.T) {' % name + yield '\tp := gopacket.NewPacket(testPacket%s, LinkType%s, gopacket.Default)' % (name, link_type) + yield '\tif p.ErrorLayer() != nil {' + yield '\t\tt.Error("Failed to decode packet:", p.ErrorLayer().Error())' + yield '\t}' + yield '\tcheckLayers(p, []gopacket.LayerType{LayerType%s, FILL_ME_IN_WITH_ACTUAL_LAYERS}, t)' % link_type + yield '}' + yield 'func BenchmarkDecodePacket%s(b *testing.B) {' % name + yield '\tfor i := 0; i < b.N; i++ {' + yield '\t\tgopacket.NewPacket(testPacket%s, LinkType%s, gopacket.NoCopy)' % (name, link_type) + yield '\t}' + yield '}' + def GetTcpdumpOutput(filename): - """Runs tcpdump on the given file, returning output as string.""" - return subprocess.check_output( - ['tcpdump', '-XX', '-s', '0', '-n', '-r', filename]) + """Runs tcpdump on the given file, returning output as string.""" + return subprocess.check_output( + ['tcpdump', '-XX', '-s', '0', '-n', '-r', filename]) def TcpdumpOutputToPackets(output): - """Reads a pcap file with TCPDump, yielding Packet objects.""" - pdata = [] - for line in output.splitlines(): - if line[0] not in string.whitespace and pdata: - yield Packet(pdata) - pdata = [] - pdata.append(line) - if pdata: - yield Packet(pdata) + """Reads a pcap file with TCPDump, yielding Packet objects.""" + pdata = [] + for line in output.splitlines(): + if line[0] not in string.whitespace and pdata: + yield Packet(pdata) + pdata = [] + pdata.append(line) + if pdata: + yield Packet(pdata) def main(): - class CustomHelpFormatter(argparse.ArgumentDefaultsHelpFormatter): - - def _format_usage(self, usage, actions, groups, prefix=None): - header = ('TestCreator creates gopacket tests using a pcap file.\n\n' - 'Tests are written to standard out... they can then be \n' - 'copied into the file of your choice and modified as \n' - 'you see.\n\n') - return header + argparse.ArgumentDefaultsHelpFormatter._format_usage( - self, usage, actions, groups, prefix) - - parser = argparse.ArgumentParser(formatter_class=CustomHelpFormatter) - parser.add_argument('--link_type', default='Ethernet', help='the link type (default: %(default)s)') - parser.add_argument('--name', default='Packet%d', help='the layer type, must have "%d" inside it') - parser.add_argument('files', metavar='file.pcap', type=str, nargs='+', help='the files to process') - - args = parser.parse_args() - - for arg in args.files: - for path in glob.glob(arg): - for i, packet in enumerate(TcpdumpOutputToPackets(GetTcpdumpOutput(path))): - print('\n'.join(packet.Test(args.name % i, args.link_type))) + class CustomHelpFormatter(argparse.ArgumentDefaultsHelpFormatter): + def _format_usage(self, usage, actions, groups, prefix=None): + header =('TestCreator creates gopacket tests using a pcap file.\n\n' + 'Tests are written to standard out... they can then be \n' + 'copied into the file of your choice and modified as \n' + 'you see.\n\n') + return header + argparse.ArgumentDefaultsHelpFormatter._format_usage( + self, usage, actions, groups, prefix) + + parser = argparse.ArgumentParser(formatter_class=CustomHelpFormatter) + parser.add_argument('--link_type', default='Ethernet', help='the link type (default: %(default)s)') + parser.add_argument('--name', default='Packet%d', help='the layer type, must have "%d" inside it') + parser.add_argument('files', metavar='file.pcap', type=str, nargs='+', help='the files to process') + + args = parser.parse_args() + + for arg in args.files: + for path in glob.glob(arg): + for i, packet in enumerate(TcpdumpOutputToPackets(GetTcpdumpOutput(path))): + print '\n'.join(packet.Test( + args.name % i, args.link_type)) if __name__ == '__main__': main() diff --git a/vendor/github.com/tsg/gopacket/macs/doc.go b/vendor/github.com/tsg/gopacket/macs/doc.go deleted file mode 100644 index c0d32a8c08d..00000000000 --- a/vendor/github.com/tsg/gopacket/macs/doc.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// Package macs provides an in-memory mapping of all valid Ethernet MAC address -// prefixes to their associated organization. -// -// The ValidMACPrefixMap map maps 3-byte prefixes to organization strings. It -// can be updated using 'go run gen.go' in this directory. -package macs diff --git a/vendor/github.com/tsg/gopacket/macs/gen.go b/vendor/github.com/tsg/gopacket/macs/gen.go deleted file mode 100644 index 97776e044dc..00000000000 --- a/vendor/github.com/tsg/gopacket/macs/gen.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// +build ignore - -// This binary pulls the list of known MAC -// prefixes from IEEE and writes them out to a go file which is compiled -// into gopacket. It should be run as follows: -// -// go run gen.go | gofmt > valid_mac_prefixes.go -package main - -import ( - "bufio" - "encoding/hex" - "flag" - "fmt" - "io" - "net/http" - "os" - "regexp" - "time" -) - -const header = `// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -package macs - -// Created by gen.go, don't edit manually -// Generated at %s -// Fetched from %q - -// ValidMACPrefixMap maps a valid MAC address prefix to the name of the -// organization that owns the rights to use it. We map it to a hidden -// variable so it won't show up in godoc, since it's a very large map. -var ValidMACPrefixMap map[[3]byte]string= validMACPrefixMap -var validMACPrefixMap = map[[3]byte]string{ -` - -var url = flag.String("url", "http://standards.ieee.org/develop/regauth/oui/oui.txt", "URL to fetch MACs from") - -func main() { - fmt.Fprintf(os.Stderr, "Fetching MACs from %q\n", *url) - resp, err := http.Get(*url) - if err != nil { - panic(err) - } - defer resp.Body.Close() - buffered := bufio.NewReader(resp.Body) - finder := regexp.MustCompile(`^\s*([0-9A-F]{6})\s+\(base 16\)\s+(.*)`) - fmt.Fprintln(os.Stderr, "Starting write to standard output") - fmt.Printf(header, time.Now(), *url) - for { - line, err := buffered.ReadString('\n') - if err == io.EOF { - break - } else if err != nil { - panic(err) - } - if matches := finder.FindStringSubmatch(line); matches != nil { - bytes := make([]byte, 3) - hex.Decode(bytes, []byte(matches[1])) - company := matches[2] - if company == "" { - company = "PRIVATE" - } - fmt.Printf("\t[3]byte{%d, %d, %d}: %q,\n", bytes[0], bytes[1], bytes[2], company) - } - } - fmt.Println("}") -} diff --git a/vendor/github.com/tsg/gopacket/macs/valid_mac_prefixes.go b/vendor/github.com/tsg/gopacket/macs/valid_mac_prefixes.go deleted file mode 100644 index 4afee40f4f1..00000000000 --- a/vendor/github.com/tsg/gopacket/macs/valid_mac_prefixes.go +++ /dev/null @@ -1,19791 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -package macs - -// Created by gen.go, don't edit manually -// Generated at 2014-09-09 10:01:58.097553511 -0600 MDT -// Fetched from "http://standards.ieee.org/develop/regauth/oui/oui.txt" - -// ValidMACPrefixMap maps a valid MAC address prefix to the name of the -// organization that owns the rights to use it. We map it to a hidden -// variable so it won't show up in godoc, since it's a very large map. -var ValidMACPrefixMap map[[3]byte]string = validMACPrefixMap -var validMACPrefixMap = map[[3]byte]string{ - [3]byte{0, 0, 0}: "XEROX CORPORATION", - [3]byte{0, 0, 1}: "XEROX CORPORATION", - [3]byte{0, 0, 2}: "XEROX CORPORATION", - [3]byte{0, 0, 3}: "XEROX CORPORATION", - [3]byte{0, 0, 4}: "XEROX CORPORATION", - [3]byte{0, 0, 5}: "XEROX CORPORATION", - [3]byte{0, 0, 6}: "XEROX CORPORATION", - [3]byte{0, 0, 7}: "XEROX CORPORATION", - [3]byte{0, 0, 8}: "XEROX CORPORATION", - [3]byte{0, 0, 9}: "XEROX CORPORATION", - [3]byte{0, 0, 10}: "OMRON TATEISI ELECTRONICS CO.", - [3]byte{0, 0, 11}: "MATRIX CORPORATION", - [3]byte{0, 0, 12}: "CISCO SYSTEMS, INC.", - [3]byte{0, 0, 13}: "FIBRONICS LTD.", - [3]byte{0, 0, 14}: "FUJITSU LIMITED", - [3]byte{0, 0, 15}: "NEXT, INC.", - [3]byte{0, 0, 16}: "SYTEK INC.", - [3]byte{0, 0, 17}: "NORMEREL SYSTEMES", - [3]byte{0, 0, 18}: "INFORMATION TECHNOLOGY LIMITED", - [3]byte{0, 0, 19}: "CAMEX", - [3]byte{0, 0, 20}: "NETRONIX", - [3]byte{0, 0, 21}: "DATAPOINT CORPORATION", - [3]byte{0, 0, 22}: "DU PONT PIXEL SYSTEMS .", - [3]byte{0, 0, 23}: "Oracle", - [3]byte{0, 0, 24}: "WEBSTER COMPUTER CORPORATION", - [3]byte{0, 0, 25}: "APPLIED DYNAMICS INTERNATIONAL", - [3]byte{0, 0, 26}: "ADVANCED MICRO DEVICES", - [3]byte{0, 0, 27}: "NOVELL INC.", - [3]byte{0, 0, 28}: "BELL TECHNOLOGIES", - [3]byte{0, 0, 29}: "CABLETRON SYSTEMS, INC.", - [3]byte{0, 0, 30}: "TELSIST INDUSTRIA ELECTRONICA", - [3]byte{0, 0, 31}: "Telco Systems, Inc.", - [3]byte{0, 0, 32}: "DATAINDUSTRIER DIAB AB", - [3]byte{0, 0, 33}: "SUREMAN COMP. & COMMUN. CORP.", - [3]byte{0, 0, 34}: "VISUAL TECHNOLOGY INC.", - [3]byte{0, 0, 35}: "ABB INDUSTRIAL SYSTEMS AB", - [3]byte{0, 0, 36}: "CONNECT AS", - [3]byte{0, 0, 37}: "RAMTEK CORP.", - [3]byte{0, 0, 38}: "SHA-KEN CO., LTD.", - [3]byte{0, 0, 39}: "JAPAN RADIO COMPANY", - [3]byte{0, 0, 40}: "PRODIGY SYSTEMS CORPORATION", - [3]byte{0, 0, 41}: "IMC NETWORKS CORP.", - [3]byte{0, 0, 42}: "TRW - SEDD/INP", - [3]byte{0, 0, 43}: "CRISP AUTOMATION, INC", - [3]byte{0, 0, 44}: "AUTOTOTE LIMITED", - [3]byte{0, 0, 45}: "CHROMATICS INC", - [3]byte{0, 0, 46}: "SOCIETE EVIRA", - [3]byte{0, 0, 47}: "TIMEPLEX INC.", - [3]byte{0, 0, 48}: "VG LABORATORY SYSTEMS LTD", - [3]byte{0, 0, 49}: "QPSX COMMUNICATIONS PTY LTD", - [3]byte{0, 0, 50}: "Marconi plc", - [3]byte{0, 0, 51}: "EGAN MACHINERY COMPANY", - [3]byte{0, 0, 52}: "NETWORK RESOURCES CORPORATION", - [3]byte{0, 0, 53}: "SPECTRAGRAPHICS CORPORATION", - [3]byte{0, 0, 54}: "ATARI CORPORATION", - [3]byte{0, 0, 55}: "OXFORD METRICS LIMITED", - [3]byte{0, 0, 56}: "CSS LABS", - [3]byte{0, 0, 57}: "TOSHIBA CORPORATION", - [3]byte{0, 0, 58}: "CHYRON CORPORATION", - [3]byte{0, 0, 59}: "i Controls, Inc.", - [3]byte{0, 0, 60}: "AUSPEX SYSTEMS INC.", - [3]byte{0, 0, 61}: "UNISYS", - [3]byte{0, 0, 62}: "SIMPACT", - [3]byte{0, 0, 63}: "SYNTREX, INC.", - [3]byte{0, 0, 64}: "APPLICON, INC.", - [3]byte{0, 0, 65}: "ICE CORPORATION", - [3]byte{0, 0, 66}: "METIER MANAGEMENT SYSTEMS LTD.", - [3]byte{0, 0, 67}: "MICRO TECHNOLOGY", - [3]byte{0, 0, 68}: "CASTELLE CORPORATION", - [3]byte{0, 0, 69}: "FORD AEROSPACE & COMM. CORP.", - [3]byte{0, 0, 70}: "OLIVETTI NORTH AMERICA", - [3]byte{0, 0, 71}: "NICOLET INSTRUMENTS CORP.", - [3]byte{0, 0, 72}: "SEIKO EPSON CORPORATION", - [3]byte{0, 0, 73}: "APRICOT COMPUTERS, LTD", - [3]byte{0, 0, 74}: "ADC CODENOLL TECHNOLOGY CORP.", - [3]byte{0, 0, 75}: "ICL DATA OY", - [3]byte{0, 0, 76}: "NEC CORPORATION", - [3]byte{0, 0, 77}: "DCI CORPORATION", - [3]byte{0, 0, 78}: "AMPEX CORPORATION", - [3]byte{0, 0, 79}: "LOGICRAFT, INC.", - [3]byte{0, 0, 80}: "RADISYS CORPORATION", - [3]byte{0, 0, 81}: "HOB ELECTRONIC GMBH & CO. KG", - [3]byte{0, 0, 82}: "Intrusion.com, Inc.", - [3]byte{0, 0, 83}: "COMPUCORP", - [3]byte{0, 0, 84}: "Schnieder Electric", - [3]byte{0, 0, 85}: "COMMISSARIAT A L`ENERGIE ATOM.", - [3]byte{0, 0, 86}: "DR. B. STRUCK", - [3]byte{0, 0, 87}: "SCITEX CORPORATION LTD.", - [3]byte{0, 0, 88}: "RACORE COMPUTER PRODUCTS INC.", - [3]byte{0, 0, 89}: "HELLIGE GMBH", - [3]byte{0, 0, 90}: "SysKonnect GmbH", - [3]byte{0, 0, 91}: "ELTEC ELEKTRONIK AG", - [3]byte{0, 0, 92}: "TELEMATICS INTERNATIONAL INC.", - [3]byte{0, 0, 93}: "CS TELECOM", - [3]byte{0, 0, 94}: "ICANN, IANA Department", - [3]byte{0, 0, 95}: "SUMITOMO ELECTRIC IND., LTD.", - [3]byte{0, 0, 96}: "KONTRON ELEKTRONIK GMBH", - [3]byte{0, 0, 97}: "GATEWAY COMMUNICATIONS", - [3]byte{0, 0, 98}: "BULL HN INFORMATION SYSTEMS", - [3]byte{0, 0, 99}: "BARCO CONTROL ROOMS GMBH", - [3]byte{0, 0, 100}: "Yokogawa Electric Corporation", - [3]byte{0, 0, 101}: "Network General Corporation", - [3]byte{0, 0, 102}: "TALARIS SYSTEMS, INC.", - [3]byte{0, 0, 103}: "SOFT * RITE, INC.", - [3]byte{0, 0, 104}: "ROSEMOUNT CONTROLS", - [3]byte{0, 0, 105}: "CONCORD COMMUNICATIONS INC", - [3]byte{0, 0, 106}: "COMPUTER CONSOLES INC.", - [3]byte{0, 0, 107}: "SILICON GRAPHICS INC./MIPS", - [3]byte{0, 0, 108}: "PRIVATE", - [3]byte{0, 0, 109}: "CRAY COMMUNICATIONS, LTD.", - [3]byte{0, 0, 110}: "ARTISOFT, INC.", - [3]byte{0, 0, 111}: "Madge Ltd.", - [3]byte{0, 0, 112}: "HCL LIMITED", - [3]byte{0, 0, 113}: "ADRA SYSTEMS INC.", - [3]byte{0, 0, 114}: "MINIWARE TECHNOLOGY", - [3]byte{0, 0, 115}: "SIECOR CORPORATION", - [3]byte{0, 0, 116}: "RICOH COMPANY LTD.", - [3]byte{0, 0, 117}: "Nortel Networks", - [3]byte{0, 0, 118}: "ABEKAS VIDEO SYSTEM", - [3]byte{0, 0, 119}: "INTERPHASE CORPORATION", - [3]byte{0, 0, 120}: "LABTAM LIMITED", - [3]byte{0, 0, 121}: "NETWORTH INCORPORATED", - [3]byte{0, 0, 122}: "DANA COMPUTER INC.", - [3]byte{0, 0, 123}: "RESEARCH MACHINES", - [3]byte{0, 0, 124}: "AMPERE INCORPORATED", - [3]byte{0, 0, 125}: "Oracle Corporation", - [3]byte{0, 0, 126}: "CLUSTRIX CORPORATION", - [3]byte{0, 0, 127}: "LINOTYPE-HELL AG", - [3]byte{0, 0, 128}: "CRAY COMMUNICATIONS A/S", - [3]byte{0, 0, 129}: "BAY NETWORKS", - [3]byte{0, 0, 130}: "LECTRA SYSTEMES SA", - [3]byte{0, 0, 131}: "TADPOLE TECHNOLOGY PLC", - [3]byte{0, 0, 132}: "SUPERNET", - [3]byte{0, 0, 133}: "CANON INC.", - [3]byte{0, 0, 134}: "MEGAHERTZ CORPORATION", - [3]byte{0, 0, 135}: "HITACHI, LTD.", - [3]byte{0, 0, 136}: "Brocade Communications Systems, Inc.", - [3]byte{0, 0, 137}: "CAYMAN SYSTEMS INC.", - [3]byte{0, 0, 138}: "DATAHOUSE INFORMATION SYSTEMS", - [3]byte{0, 0, 139}: "INFOTRON", - [3]byte{0, 0, 140}: "Alloy Computer Products (Australia) Pty Ltd", - [3]byte{0, 0, 141}: "Cryptek Inc.", - [3]byte{0, 0, 142}: "SOLBOURNE COMPUTER, INC.", - [3]byte{0, 0, 143}: "Raytheon", - [3]byte{0, 0, 144}: "MICROCOM", - [3]byte{0, 0, 145}: "ANRITSU CORPORATION", - [3]byte{0, 0, 146}: "COGENT DATA TECHNOLOGIES", - [3]byte{0, 0, 147}: "PROTEON INC.", - [3]byte{0, 0, 148}: "ASANTE TECHNOLOGIES", - [3]byte{0, 0, 149}: "SONY TEKTRONIX CORP.", - [3]byte{0, 0, 150}: "MARCONI ELECTRONICS LTD.", - [3]byte{0, 0, 151}: "EMC Corporation", - [3]byte{0, 0, 152}: "CROSSCOMM CORPORATION", - [3]byte{0, 0, 153}: "MTX, INC.", - [3]byte{0, 0, 154}: "RC COMPUTER A/S", - [3]byte{0, 0, 155}: "INFORMATION INTERNATIONAL, INC", - [3]byte{0, 0, 156}: "ROLM MIL-SPEC COMPUTERS", - [3]byte{0, 0, 157}: "LOCUS COMPUTING CORPORATION", - [3]byte{0, 0, 158}: "MARLI S.A.", - [3]byte{0, 0, 159}: "AMERISTAR TECHNOLOGIES INC.", - [3]byte{0, 0, 160}: "SANYO Electric Co., Ltd.", - [3]byte{0, 0, 161}: "MARQUETTE ELECTRIC CO.", - [3]byte{0, 0, 162}: "BAY NETWORKS", - [3]byte{0, 0, 163}: "NETWORK APPLICATION TECHNOLOGY", - [3]byte{0, 0, 164}: "ACORN COMPUTERS LIMITED", - [3]byte{0, 0, 165}: "Tattile SRL", - [3]byte{0, 0, 166}: "NETWORK GENERAL CORPORATION", - [3]byte{0, 0, 167}: "NETWORK COMPUTING DEVICES INC.", - [3]byte{0, 0, 168}: "STRATUS COMPUTER INC.", - [3]byte{0, 0, 169}: "NETWORK SYSTEMS CORP.", - [3]byte{0, 0, 170}: "XEROX CORPORATION", - [3]byte{0, 0, 171}: "LOGIC MODELING CORPORATION", - [3]byte{0, 0, 172}: "CONWARE COMPUTER CONSULTING", - [3]byte{0, 0, 173}: "BRUKER INSTRUMENTS INC.", - [3]byte{0, 0, 174}: "DASSAULT ELECTRONIQUE", - [3]byte{0, 0, 175}: "NUCLEAR DATA INSTRUMENTATION", - [3]byte{0, 0, 176}: "RND-RAD NETWORK DEVICES", - [3]byte{0, 0, 177}: "ALPHA MICROSYSTEMS INC.", - [3]byte{0, 0, 178}: "TELEVIDEO SYSTEMS, INC.", - [3]byte{0, 0, 179}: "CIMLINC INCORPORATED", - [3]byte{0, 0, 180}: "EDIMAX COMPUTER COMPANY", - [3]byte{0, 0, 181}: "DATABILITY SOFTWARE SYS. INC.", - [3]byte{0, 0, 182}: "MICRO-MATIC RESEARCH", - [3]byte{0, 0, 183}: "DOVE COMPUTER CORPORATION", - [3]byte{0, 0, 184}: "SEIKOSHA CO., LTD.", - [3]byte{0, 0, 185}: "MCDONNELL DOUGLAS COMPUTER SYS", - [3]byte{0, 0, 186}: "SIIG, INC.", - [3]byte{0, 0, 187}: "TRI-DATA", - [3]byte{0, 0, 188}: "Rockwell Automation", - [3]byte{0, 0, 189}: "MITSUBISHI CABLE COMPANY", - [3]byte{0, 0, 190}: "THE NTI GROUP", - [3]byte{0, 0, 191}: "SYMMETRIC COMPUTER SYSTEMS", - [3]byte{0, 0, 192}: "WESTERN DIGITAL CORPORATION", - [3]byte{0, 0, 193}: "Madge Ltd.", - [3]byte{0, 0, 194}: "INFORMATION PRESENTATION TECH.", - [3]byte{0, 0, 195}: "HARRIS CORP COMPUTER SYS DIV", - [3]byte{0, 0, 196}: "WATERS DIV. OF MILLIPORE", - [3]byte{0, 0, 197}: "FARALLON COMPUTING/NETOPIA", - [3]byte{0, 0, 198}: "EON SYSTEMS", - [3]byte{0, 0, 199}: "ARIX CORPORATION", - [3]byte{0, 0, 200}: "ALTOS COMPUTER SYSTEMS", - [3]byte{0, 0, 201}: "Emulex Corporation", - [3]byte{0, 0, 202}: "ARRIS International", - [3]byte{0, 0, 203}: "COMPU-SHACK ELECTRONIC GMBH", - [3]byte{0, 0, 204}: "DENSAN CO., LTD.", - [3]byte{0, 0, 205}: "Allied Telesis Labs Ltd", - [3]byte{0, 0, 206}: "MEGADATA CORP.", - [3]byte{0, 0, 207}: "HAYES MICROCOMPUTER PRODUCTS", - [3]byte{0, 0, 208}: "DEVELCON ELECTRONICS LTD.", - [3]byte{0, 0, 209}: "ADAPTEC INCORPORATED", - [3]byte{0, 0, 210}: "SBE, INC.", - [3]byte{0, 0, 211}: "WANG LABORATORIES INC.", - [3]byte{0, 0, 212}: "PURE DATA LTD.", - [3]byte{0, 0, 213}: "MICROGNOSIS INTERNATIONAL", - [3]byte{0, 0, 214}: "PUNCH LINE HOLDING", - [3]byte{0, 0, 215}: "DARTMOUTH COLLEGE", - [3]byte{0, 0, 216}: "NOVELL, INC.", - [3]byte{0, 0, 217}: "NIPPON TELEGRAPH & TELEPHONE", - [3]byte{0, 0, 218}: "ATEX", - [3]byte{0, 0, 219}: "British Telecommunications plc", - [3]byte{0, 0, 220}: "HAYES MICROCOMPUTER PRODUCTS", - [3]byte{0, 0, 221}: "TCL INCORPORATED", - [3]byte{0, 0, 222}: "CETIA", - [3]byte{0, 0, 223}: "BELL & HOWELL PUB SYS DIV", - [3]byte{0, 0, 224}: "QUADRAM CORP.", - [3]byte{0, 0, 225}: "GRID SYSTEMS", - [3]byte{0, 0, 226}: "ACER TECHNOLOGIES CORP.", - [3]byte{0, 0, 227}: "INTEGRATED MICRO PRODUCTS LTD", - [3]byte{0, 0, 228}: "IN2 GROUPE INTERTECHNIQUE", - [3]byte{0, 0, 229}: "SIGMEX LTD.", - [3]byte{0, 0, 230}: "APTOR PRODUITS DE COMM INDUST", - [3]byte{0, 0, 231}: "STAR GATE TECHNOLOGIES", - [3]byte{0, 0, 232}: "ACCTON TECHNOLOGY CORP.", - [3]byte{0, 0, 233}: "ISICAD, INC.", - [3]byte{0, 0, 234}: "UPNOD AB", - [3]byte{0, 0, 235}: "MATSUSHITA COMM. IND. CO. LTD.", - [3]byte{0, 0, 236}: "MICROPROCESS", - [3]byte{0, 0, 237}: "APRIL", - [3]byte{0, 0, 238}: "NETWORK DESIGNERS, LTD.", - [3]byte{0, 0, 239}: "KTI", - [3]byte{0, 0, 240}: "SAMSUNG ELECTRONICS CO., LTD.", - [3]byte{0, 0, 241}: "MAGNA COMPUTER CORPORATION", - [3]byte{0, 0, 242}: "SPIDER COMMUNICATIONS", - [3]byte{0, 0, 243}: "GANDALF DATA LIMITED", - [3]byte{0, 0, 244}: "Allied Telesis", - [3]byte{0, 0, 245}: "DIAMOND SALES LIMITED", - [3]byte{0, 0, 246}: "APPLIED MICROSYSTEMS CORP.", - [3]byte{0, 0, 247}: "YOUTH KEEP ENTERPRISE CO LTD", - [3]byte{0, 0, 248}: "DIGITAL EQUIPMENT CORPORATION", - [3]byte{0, 0, 249}: "QUOTRON SYSTEMS INC.", - [3]byte{0, 0, 250}: "MICROSAGE COMPUTER SYSTEMS INC", - [3]byte{0, 0, 251}: "RECHNER ZUR KOMMUNIKATION", - [3]byte{0, 0, 252}: "MEIKO", - [3]byte{0, 0, 253}: "HIGH LEVEL HARDWARE", - [3]byte{0, 0, 254}: "ANNAPOLIS MICRO SYSTEMS", - [3]byte{0, 0, 255}: "CAMTEC ELECTRONICS LTD.", - [3]byte{0, 1, 0}: "EQUIP'TRANS", - [3]byte{0, 1, 1}: "PRIVATE", - [3]byte{0, 1, 2}: "3COM CORPORATION", - [3]byte{0, 1, 3}: "3COM CORPORATION", - [3]byte{0, 1, 4}: "DVICO Co., Ltd.", - [3]byte{0, 1, 5}: "Beckhoff Automation GmbH", - [3]byte{0, 1, 6}: "Tews Datentechnik GmbH", - [3]byte{0, 1, 7}: "Leiser GmbH", - [3]byte{0, 1, 8}: "AVLAB Technology, Inc.", - [3]byte{0, 1, 9}: "Nagano Japan Radio Co., Ltd.", - [3]byte{0, 1, 10}: "CIS TECHNOLOGY INC.", - [3]byte{0, 1, 11}: "Space CyberLink, Inc.", - [3]byte{0, 1, 12}: "System Talks Inc.", - [3]byte{0, 1, 13}: "CORECO, INC.", - [3]byte{0, 1, 14}: "Bri-Link Technologies Co., Ltd", - [3]byte{0, 1, 15}: "Brocade Communications Systems, Inc.", - [3]byte{0, 1, 16}: "Gotham Networks", - [3]byte{0, 1, 17}: "iDigm Inc.", - [3]byte{0, 1, 18}: "Shark Multimedia Inc.", - [3]byte{0, 1, 19}: "OLYMPUS CORPORATION", - [3]byte{0, 1, 20}: "KANDA TSUSHIN KOGYO CO., LTD.", - [3]byte{0, 1, 21}: "EXTRATECH CORPORATION", - [3]byte{0, 1, 22}: "Netspect Technologies, Inc.", - [3]byte{0, 1, 23}: "CANAL +", - [3]byte{0, 1, 24}: "EZ Digital Co., Ltd.", - [3]byte{0, 1, 25}: "RTUnet (Australia)", - [3]byte{0, 1, 26}: "Hoffmann und Burmeister GbR", - [3]byte{0, 1, 27}: "Unizone Technologies, Inc.", - [3]byte{0, 1, 28}: "Universal Talkware Corporation", - [3]byte{0, 1, 29}: "Centillium Communications", - [3]byte{0, 1, 30}: "Precidia Technologies, Inc.", - [3]byte{0, 1, 31}: "RC Networks, Inc.", - [3]byte{0, 1, 32}: "OSCILLOQUARTZ S.A.", - [3]byte{0, 1, 33}: "Watchguard Technologies, Inc.", - [3]byte{0, 1, 34}: "Trend Communications, Ltd.", - [3]byte{0, 1, 35}: "DIGITAL ELECTRONICS CORP.", - [3]byte{0, 1, 36}: "Acer Incorporated", - [3]byte{0, 1, 37}: "YAESU MUSEN CO., LTD.", - [3]byte{0, 1, 38}: "PAC Labs", - [3]byte{0, 1, 39}: "OPEN Networks Pty Ltd", - [3]byte{0, 1, 40}: "EnjoyWeb, Inc.", - [3]byte{0, 1, 41}: "DFI Inc.", - [3]byte{0, 1, 42}: "Telematica Sistems Inteligente", - [3]byte{0, 1, 43}: "TELENET Co., Ltd.", - [3]byte{0, 1, 44}: "Aravox Technologies, Inc.", - [3]byte{0, 1, 45}: "Komodo Technology", - [3]byte{0, 1, 46}: "PC Partner Ltd.", - [3]byte{0, 1, 47}: "Twinhead International Corp", - [3]byte{0, 1, 48}: "Extreme Networks", - [3]byte{0, 1, 49}: "Bosch Security Systems, Inc.", - [3]byte{0, 1, 50}: "Dranetz - BMI", - [3]byte{0, 1, 51}: "KYOWA Electronic Instruments C", - [3]byte{0, 1, 52}: "Selectron Systems AG", - [3]byte{0, 1, 53}: "KDC Corp.", - [3]byte{0, 1, 54}: "CyberTAN Technology, Inc.", - [3]byte{0, 1, 55}: "IT Farm Corporation", - [3]byte{0, 1, 56}: "XAVi Technologies Corp.", - [3]byte{0, 1, 57}: "Point Multimedia Systems", - [3]byte{0, 1, 58}: "SHELCAD COMMUNICATIONS, LTD.", - [3]byte{0, 1, 59}: "BNA SYSTEMS", - [3]byte{0, 1, 60}: "TIW SYSTEMS", - [3]byte{0, 1, 61}: "RiscStation Ltd.", - [3]byte{0, 1, 62}: "Ascom Tateco AB", - [3]byte{0, 1, 63}: "Neighbor World Co., Ltd.", - [3]byte{0, 1, 64}: "Sendtek Corporation", - [3]byte{0, 1, 65}: "CABLE PRINT", - [3]byte{0, 1, 66}: "CISCO SYSTEMS, INC.", - [3]byte{0, 1, 67}: "CISCO SYSTEMS, INC.", - [3]byte{0, 1, 68}: "EMC Corporation", - [3]byte{0, 1, 69}: "WINSYSTEMS, INC.", - [3]byte{0, 1, 70}: "Tesco Controls, Inc.", - [3]byte{0, 1, 71}: "Zhone Technologies", - [3]byte{0, 1, 72}: "X-traWeb Inc.", - [3]byte{0, 1, 73}: "T.D.T. Transfer Data Test GmbH", - [3]byte{0, 1, 74}: "Sony Corporation", - [3]byte{0, 1, 75}: "Ennovate Networks, Inc.", - [3]byte{0, 1, 76}: "Berkeley Process Control", - [3]byte{0, 1, 77}: "Shin Kin Enterprises Co., Ltd", - [3]byte{0, 1, 78}: "WIN Enterprises, Inc.", - [3]byte{0, 1, 79}: "ADTRAN INC", - [3]byte{0, 1, 80}: "GILAT COMMUNICATIONS, LTD.", - [3]byte{0, 1, 81}: "Ensemble Communications", - [3]byte{0, 1, 82}: "CHROMATEK INC.", - [3]byte{0, 1, 83}: "ARCHTEK TELECOM CORPORATION", - [3]byte{0, 1, 84}: "G3M Corporation", - [3]byte{0, 1, 85}: "Promise Technology, Inc.", - [3]byte{0, 1, 86}: "FIREWIREDIRECT.COM, INC.", - [3]byte{0, 1, 87}: "SYSWAVE CO., LTD", - [3]byte{0, 1, 88}: "Electro Industries/Gauge Tech", - [3]byte{0, 1, 89}: "S1 Corporation", - [3]byte{0, 1, 90}: "Digital Video Broadcasting", - [3]byte{0, 1, 91}: "ITALTEL S.p.A/RF-UP-I", - [3]byte{0, 1, 92}: "CADANT INC.", - [3]byte{0, 1, 93}: "Oracle Corporation", - [3]byte{0, 1, 94}: "BEST TECHNOLOGY CO., LTD.", - [3]byte{0, 1, 95}: "DIGITAL DESIGN GmbH", - [3]byte{0, 1, 96}: "ELMEX Co., LTD.", - [3]byte{0, 1, 97}: "Meta Machine Technology", - [3]byte{0, 1, 98}: "Cygnet Technologies, Inc.", - [3]byte{0, 1, 99}: "CISCO SYSTEMS, INC.", - [3]byte{0, 1, 100}: "CISCO SYSTEMS, INC.", - [3]byte{0, 1, 101}: "AirSwitch Corporation", - [3]byte{0, 1, 102}: "TC GROUP A/S", - [3]byte{0, 1, 103}: "HIOKI E.E. CORPORATION", - [3]byte{0, 1, 104}: "VITANA CORPORATION", - [3]byte{0, 1, 105}: "Celestix Networks Pte Ltd.", - [3]byte{0, 1, 106}: "ALITEC", - [3]byte{0, 1, 107}: "LightChip, Inc.", - [3]byte{0, 1, 108}: "FOXCONN", - [3]byte{0, 1, 109}: "CarrierComm Inc.", - [3]byte{0, 1, 110}: "Conklin Corporation", - [3]byte{0, 1, 111}: "Inkel Corp.", - [3]byte{0, 1, 112}: "ESE Embedded System Engineer'g", - [3]byte{0, 1, 113}: "Allied Data Technologies", - [3]byte{0, 1, 114}: "TechnoLand Co., LTD.", - [3]byte{0, 1, 115}: "AMCC", - [3]byte{0, 1, 116}: "CyberOptics Corporation", - [3]byte{0, 1, 117}: "Radiant Communications Corp.", - [3]byte{0, 1, 118}: "Orient Silver Enterprises", - [3]byte{0, 1, 119}: "EDSL", - [3]byte{0, 1, 120}: "MARGI Systems, Inc.", - [3]byte{0, 1, 121}: "WIRELESS TECHNOLOGY, INC.", - [3]byte{0, 1, 122}: "Chengdu Maipu Electric Industrial Co., Ltd.", - [3]byte{0, 1, 123}: "Heidelberger Druckmaschinen AG", - [3]byte{0, 1, 124}: "AG-E GmbH", - [3]byte{0, 1, 125}: "ThermoQuest", - [3]byte{0, 1, 126}: "ADTEK System Science Co., Ltd.", - [3]byte{0, 1, 127}: "Experience Music Project", - [3]byte{0, 1, 128}: "AOpen, Inc.", - [3]byte{0, 1, 129}: "Nortel Networks", - [3]byte{0, 1, 130}: "DICA TECHNOLOGIES AG", - [3]byte{0, 1, 131}: "ANITE TELECOMS", - [3]byte{0, 1, 132}: "SIEB & MEYER AG", - [3]byte{0, 1, 133}: "Hitachi Aloka Medical, Ltd.", - [3]byte{0, 1, 134}: "Uwe Disch", - [3]byte{0, 1, 135}: "I2SE GmbH", - [3]byte{0, 1, 136}: "LXCO Technologies ag", - [3]byte{0, 1, 137}: "Refraction Technology, Inc.", - [3]byte{0, 1, 138}: "ROI COMPUTER AG", - [3]byte{0, 1, 139}: "NetLinks Co., Ltd.", - [3]byte{0, 1, 140}: "Mega Vision", - [3]byte{0, 1, 141}: "AudeSi Technologies", - [3]byte{0, 1, 142}: "Logitec Corporation", - [3]byte{0, 1, 143}: "Kenetec, Inc.", - [3]byte{0, 1, 144}: "SMK-M", - [3]byte{0, 1, 145}: "SYRED Data Systems", - [3]byte{0, 1, 146}: "Texas Digital Systems", - [3]byte{0, 1, 147}: "Hanbyul Telecom Co., Ltd.", - [3]byte{0, 1, 148}: "Capital Equipment Corporation", - [3]byte{0, 1, 149}: "Sena Technologies, Inc.", - [3]byte{0, 1, 150}: "CISCO SYSTEMS, INC.", - [3]byte{0, 1, 151}: "CISCO SYSTEMS, INC.", - [3]byte{0, 1, 152}: "Darim Vision", - [3]byte{0, 1, 153}: "HeiSei Electronics", - [3]byte{0, 1, 154}: "LEUNIG GmbH", - [3]byte{0, 1, 155}: "Kyoto Microcomputer Co., Ltd.", - [3]byte{0, 1, 156}: "JDS Uniphase Inc.", - [3]byte{0, 1, 157}: "E-Control Systems, Inc.", - [3]byte{0, 1, 158}: "ESS Technology, Inc.", - [3]byte{0, 1, 159}: "ReadyNet", - [3]byte{0, 1, 160}: "Infinilink Corporation", - [3]byte{0, 1, 161}: "Mag-Tek, Inc.", - [3]byte{0, 1, 162}: "Logical Co., Ltd.", - [3]byte{0, 1, 163}: "GENESYS LOGIC, INC.", - [3]byte{0, 1, 164}: "Microlink Corporation", - [3]byte{0, 1, 165}: "Nextcomm, Inc.", - [3]byte{0, 1, 166}: "Scientific-Atlanta Arcodan A/S", - [3]byte{0, 1, 167}: "UNEX TECHNOLOGY CORPORATION", - [3]byte{0, 1, 168}: "Welltech Computer Co., Ltd.", - [3]byte{0, 1, 169}: "BMW AG", - [3]byte{0, 1, 170}: "Airspan Communications, Ltd.", - [3]byte{0, 1, 171}: "Main Street Networks", - [3]byte{0, 1, 172}: "Sitara Networks, Inc.", - [3]byte{0, 1, 173}: "Coach Master International d.b.a. CMI Worldwide, Inc.", - [3]byte{0, 1, 174}: "Trex Enterprises", - [3]byte{0, 1, 175}: "Artesyn Embedded Technologies", - [3]byte{0, 1, 176}: "Fulltek Technology Co., Ltd.", - [3]byte{0, 1, 177}: "General Bandwidth", - [3]byte{0, 1, 178}: "Digital Processing Systems, Inc.", - [3]byte{0, 1, 179}: "Precision Electronic Manufacturing", - [3]byte{0, 1, 180}: "Wayport, Inc.", - [3]byte{0, 1, 181}: "Turin Networks, Inc.", - [3]byte{0, 1, 182}: "SAEJIN T&M Co., Ltd.", - [3]byte{0, 1, 183}: "Centos, Inc.", - [3]byte{0, 1, 184}: "Netsensity, Inc.", - [3]byte{0, 1, 185}: "SKF Condition Monitoring", - [3]byte{0, 1, 186}: "IC-Net, Inc.", - [3]byte{0, 1, 187}: "Frequentis", - [3]byte{0, 1, 188}: "Brains Corporation", - [3]byte{0, 1, 189}: "Peterson Electro-Musical Products, Inc.", - [3]byte{0, 1, 190}: "Gigalink Co., Ltd.", - [3]byte{0, 1, 191}: "Teleforce Co., Ltd.", - [3]byte{0, 1, 192}: "CompuLab, Ltd.", - [3]byte{0, 1, 193}: "Vitesse Semiconductor Corporation", - [3]byte{0, 1, 194}: "ARK Research Corp.", - [3]byte{0, 1, 195}: "Acromag, Inc.", - [3]byte{0, 1, 196}: "NeoWave, Inc.", - [3]byte{0, 1, 197}: "Simpler Networks", - [3]byte{0, 1, 198}: "Quarry Technologies", - [3]byte{0, 1, 199}: "CISCO SYSTEMS, INC.", - [3]byte{0, 1, 200}: "THOMAS CONRAD CORP.", - [3]byte{0, 1, 200}: "CONRAD CORP.", - [3]byte{0, 1, 201}: "CISCO SYSTEMS, INC.", - [3]byte{0, 1, 202}: "Geocast Network Systems, Inc.", - [3]byte{0, 1, 203}: "EVR", - [3]byte{0, 1, 204}: "Japan Total Design Communication Co., Ltd.", - [3]byte{0, 1, 205}: "ARtem", - [3]byte{0, 1, 206}: "Custom Micro Products, Ltd.", - [3]byte{0, 1, 207}: "Alpha Data Parallel Systems, Ltd.", - [3]byte{0, 1, 208}: "VitalPoint, Inc.", - [3]byte{0, 1, 209}: "CoNet Communications, Inc.", - [3]byte{0, 1, 210}: "inXtron, Inc.", - [3]byte{0, 1, 211}: "PAXCOMM, Inc.", - [3]byte{0, 1, 212}: "Leisure Time, Inc.", - [3]byte{0, 1, 213}: "HAEDONG INFO & COMM CO., LTD", - [3]byte{0, 1, 214}: "manroland AG", - [3]byte{0, 1, 215}: "F5 Networks, Inc.", - [3]byte{0, 1, 216}: "Teltronics, Inc.", - [3]byte{0, 1, 217}: "Sigma, Inc.", - [3]byte{0, 1, 218}: "WINCOMM Corporation", - [3]byte{0, 1, 219}: "Freecom Technologies GmbH", - [3]byte{0, 1, 220}: "Activetelco", - [3]byte{0, 1, 221}: "Avail Networks", - [3]byte{0, 1, 222}: "Trango Systems, Inc.", - [3]byte{0, 1, 223}: "ISDN Communications, Ltd.", - [3]byte{0, 1, 224}: "Fast Systems, Inc.", - [3]byte{0, 1, 225}: "Kinpo Electronics, Inc.", - [3]byte{0, 1, 226}: "Ando Electric Corporation", - [3]byte{0, 1, 227}: "Siemens AG", - [3]byte{0, 1, 228}: "Sitera, Inc.", - [3]byte{0, 1, 229}: "Supernet, Inc.", - [3]byte{0, 1, 230}: "Hewlett-Packard Company", - [3]byte{0, 1, 231}: "Hewlett-Packard Company", - [3]byte{0, 1, 232}: "Force10 Networks, Inc.", - [3]byte{0, 1, 233}: "Litton Marine Systems B.V.", - [3]byte{0, 1, 234}: "Cirilium Corp.", - [3]byte{0, 1, 235}: "C-COM Corporation", - [3]byte{0, 1, 236}: "Ericsson Group", - [3]byte{0, 1, 237}: "SETA Corp.", - [3]byte{0, 1, 238}: "Comtrol Europe, Ltd.", - [3]byte{0, 1, 239}: "Camtel Technology Corp.", - [3]byte{0, 1, 240}: "Tridium, Inc.", - [3]byte{0, 1, 241}: "Innovative Concepts, Inc.", - [3]byte{0, 1, 242}: "Mark of the Unicorn, Inc.", - [3]byte{0, 1, 243}: "QPS, Inc.", - [3]byte{0, 1, 244}: "Enterasys Networks", - [3]byte{0, 1, 245}: "ERIM S.A.", - [3]byte{0, 1, 246}: "Association of Musical Electronics Industry", - [3]byte{0, 1, 247}: "Image Display Systems, Inc.", - [3]byte{0, 1, 248}: "Texio Technology Corporation", - [3]byte{0, 1, 249}: "TeraGlobal Communications Corp.", - [3]byte{0, 1, 250}: "HOROSCAS", - [3]byte{0, 1, 251}: "DoTop Technology, Inc.", - [3]byte{0, 1, 252}: "Keyence Corporation", - [3]byte{0, 1, 253}: "Digital Voice Systems, Inc.", - [3]byte{0, 1, 254}: "DIGITAL EQUIPMENT CORPORATION", - [3]byte{0, 1, 255}: "Data Direct Networks, Inc.", - [3]byte{0, 2, 0}: "Net & Sys Co., Ltd.", - [3]byte{0, 2, 1}: "IFM Electronic gmbh", - [3]byte{0, 2, 2}: "Amino Communications, Ltd.", - [3]byte{0, 2, 3}: "Woonsang Telecom, Inc.", - [3]byte{0, 2, 4}: "Bodmann Industries Elektronik GmbH", - [3]byte{0, 2, 5}: "Hitachi Denshi, Ltd.", - [3]byte{0, 2, 6}: "Telital R&D Denmark A/S", - [3]byte{0, 2, 7}: "VisionGlobal Network Corp.", - [3]byte{0, 2, 8}: "Unify Networks, Inc.", - [3]byte{0, 2, 9}: "Shenzhen SED Information Technology Co., Ltd.", - [3]byte{0, 2, 10}: "Gefran Spa", - [3]byte{0, 2, 11}: "Native Networks, Inc.", - [3]byte{0, 2, 12}: "Metro-Optix", - [3]byte{0, 2, 13}: "Micronpc.com", - [3]byte{0, 2, 14}: "ECI Telecom, Ltd", - [3]byte{0, 2, 15}: "AATR", - [3]byte{0, 2, 16}: "Fenecom", - [3]byte{0, 2, 17}: "Nature Worldwide Technology Corp.", - [3]byte{0, 2, 18}: "SierraCom", - [3]byte{0, 2, 19}: "S.D.E.L.", - [3]byte{0, 2, 20}: "DTVRO", - [3]byte{0, 2, 21}: "Cotas Computer Technology A/B", - [3]byte{0, 2, 22}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 23}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 24}: "Advanced Scientific Corp", - [3]byte{0, 2, 25}: "Paralon Technologies", - [3]byte{0, 2, 26}: "Zuma Networks", - [3]byte{0, 2, 27}: "Kollmorgen-Servotronix", - [3]byte{0, 2, 28}: "Network Elements, Inc.", - [3]byte{0, 2, 29}: "Data General Communication Ltd.", - [3]byte{0, 2, 30}: "SIMTEL S.R.L.", - [3]byte{0, 2, 31}: "Aculab PLC", - [3]byte{0, 2, 32}: "CANON FINETECH INC.", - [3]byte{0, 2, 33}: "DSP Application, Ltd.", - [3]byte{0, 2, 34}: "Chromisys, Inc.", - [3]byte{0, 2, 35}: "ClickTV", - [3]byte{0, 2, 36}: "C-COR", - [3]byte{0, 2, 37}: "One Stop Systems", - [3]byte{0, 2, 38}: "XESystems, Inc.", - [3]byte{0, 2, 39}: "ESD Electronic System Design GmbH", - [3]byte{0, 2, 40}: "Necsom, Ltd.", - [3]byte{0, 2, 41}: "Adtec Corporation", - [3]byte{0, 2, 42}: "Asound Electronic", - [3]byte{0, 2, 43}: "SAXA, Inc.", - [3]byte{0, 2, 44}: "ABB Bomem, Inc.", - [3]byte{0, 2, 45}: "Agere Systems", - [3]byte{0, 2, 46}: "TEAC Corp. R& D", - [3]byte{0, 2, 47}: "P-Cube, Ltd.", - [3]byte{0, 2, 48}: "Intersoft Electronics", - [3]byte{0, 2, 49}: "Ingersoll-Rand", - [3]byte{0, 2, 50}: "Avision, Inc.", - [3]byte{0, 2, 51}: "Mantra Communications, Inc.", - [3]byte{0, 2, 52}: "Imperial Technology, Inc.", - [3]byte{0, 2, 53}: "Paragon Networks International", - [3]byte{0, 2, 54}: "INIT GmbH", - [3]byte{0, 2, 55}: "Cosmo Research Corp.", - [3]byte{0, 2, 56}: "Serome Technology, Inc.", - [3]byte{0, 2, 57}: "Visicom", - [3]byte{0, 2, 58}: "ZSK Stickmaschinen GmbH", - [3]byte{0, 2, 59}: "Ericsson", - [3]byte{0, 2, 60}: "Creative Technology, Ltd.", - [3]byte{0, 2, 61}: "Cisco Systems, Inc.", - [3]byte{0, 2, 62}: "Selta Telematica S.p.a", - [3]byte{0, 2, 63}: "Compal Electronics, Inc.", - [3]byte{0, 2, 64}: "Seedek Co., Ltd.", - [3]byte{0, 2, 65}: "Amer.com", - [3]byte{0, 2, 66}: "Videoframe Systems", - [3]byte{0, 2, 67}: "Raysis Co., Ltd.", - [3]byte{0, 2, 68}: "SURECOM Technology Co.", - [3]byte{0, 2, 69}: "Lampus Co, Ltd.", - [3]byte{0, 2, 70}: "All-Win Tech Co., Ltd.", - [3]byte{0, 2, 71}: "Great Dragon Information Technology (Group) Co., Ltd.", - [3]byte{0, 2, 72}: "Pilz GmbH & Co.", - [3]byte{0, 2, 73}: "Aviv Infocom Co, Ltd.", - [3]byte{0, 2, 74}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 75}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 76}: "SiByte, Inc.", - [3]byte{0, 2, 77}: "Mannesman Dematic Colby Pty. Ltd.", - [3]byte{0, 2, 78}: "Datacard Group", - [3]byte{0, 2, 79}: "IPM Datacom S.R.L.", - [3]byte{0, 2, 80}: "Geyser Networks, Inc.", - [3]byte{0, 2, 81}: "Soma Networks, Inc.", - [3]byte{0, 2, 82}: "Carrier Corporation", - [3]byte{0, 2, 83}: "Televideo, Inc.", - [3]byte{0, 2, 84}: "WorldGate", - [3]byte{0, 2, 85}: "IBM Corp", - [3]byte{0, 2, 86}: "Alpha Processor, Inc.", - [3]byte{0, 2, 87}: "Microcom Corp.", - [3]byte{0, 2, 88}: "Flying Packets Communications", - [3]byte{0, 2, 89}: "Tsann Kuen China (Shanghai)Enterprise Co., Ltd. IT Group", - [3]byte{0, 2, 90}: "Catena Networks", - [3]byte{0, 2, 91}: "Cambridge Silicon Radio", - [3]byte{0, 2, 92}: "SCI Systems (Kunshan) Co., Ltd.", - [3]byte{0, 2, 93}: "Calix Networks", - [3]byte{0, 2, 94}: "High Technology Ltd", - [3]byte{0, 2, 95}: "Nortel Networks", - [3]byte{0, 2, 96}: "Accordion Networks, Inc.", - [3]byte{0, 2, 97}: "Tilgin AB", - [3]byte{0, 2, 98}: "Soyo Group Soyo Com Tech Co., Ltd", - [3]byte{0, 2, 99}: "UPS Manufacturing SRL", - [3]byte{0, 2, 100}: "AudioRamp.com", - [3]byte{0, 2, 101}: "Virditech Co. Ltd.", - [3]byte{0, 2, 102}: "Thermalogic Corporation", - [3]byte{0, 2, 103}: "NODE RUNNER, INC.", - [3]byte{0, 2, 104}: "Harris Government Communications", - [3]byte{0, 2, 105}: "Nadatel Co., Ltd", - [3]byte{0, 2, 106}: "Cocess Telecom Co., Ltd.", - [3]byte{0, 2, 107}: "BCM Computers Co., Ltd.", - [3]byte{0, 2, 108}: "Philips CFT", - [3]byte{0, 2, 109}: "Adept Telecom", - [3]byte{0, 2, 110}: "NeGeN Access, Inc.", - [3]byte{0, 2, 111}: "Senao International Co., Ltd.", - [3]byte{0, 2, 112}: "Crewave Co., Ltd.", - [3]byte{0, 2, 113}: "Zhone Technologies", - [3]byte{0, 2, 114}: "CC&C Technologies, Inc.", - [3]byte{0, 2, 115}: "Coriolis Networks", - [3]byte{0, 2, 116}: "Tommy Technologies Corp.", - [3]byte{0, 2, 117}: "SMART Technologies, Inc.", - [3]byte{0, 2, 118}: "Primax Electronics Ltd.", - [3]byte{0, 2, 119}: "Cash Systemes Industrie", - [3]byte{0, 2, 120}: "Samsung Electro-Mechanics Co., Ltd.", - [3]byte{0, 2, 121}: "Control Applications, Ltd.", - [3]byte{0, 2, 122}: "IOI Technology Corporation", - [3]byte{0, 2, 123}: "Amplify Net, Inc.", - [3]byte{0, 2, 124}: "Trilithic, Inc.", - [3]byte{0, 2, 125}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 126}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 127}: "ask-technologies.com", - [3]byte{0, 2, 128}: "Mu Net, Inc.", - [3]byte{0, 2, 129}: "Madge Ltd.", - [3]byte{0, 2, 130}: "ViaClix, Inc.", - [3]byte{0, 2, 131}: "Spectrum Controls, Inc.", - [3]byte{0, 2, 132}: "AREVA T&D", - [3]byte{0, 2, 133}: "Riverstone Networks", - [3]byte{0, 2, 134}: "Occam Networks", - [3]byte{0, 2, 135}: "Adapcom", - [3]byte{0, 2, 136}: "GLOBAL VILLAGE COMMUNICATION", - [3]byte{0, 2, 137}: "DNE Technologies", - [3]byte{0, 2, 138}: "Ambit Microsystems Corporation", - [3]byte{0, 2, 139}: "VDSL Systems OY", - [3]byte{0, 2, 140}: "Micrel-Synergy Semiconductor", - [3]byte{0, 2, 141}: "Movita Technologies, Inc.", - [3]byte{0, 2, 142}: "Rapid 5 Networks, Inc.", - [3]byte{0, 2, 143}: "Globetek, Inc.", - [3]byte{0, 2, 144}: "Woorigisool, Inc.", - [3]byte{0, 2, 145}: "Open Network Co., Ltd.", - [3]byte{0, 2, 146}: "Logic Innovations, Inc.", - [3]byte{0, 2, 147}: "Solid Data Systems", - [3]byte{0, 2, 148}: "Tokyo Sokushin Co., Ltd.", - [3]byte{0, 2, 149}: "IP.Access Limited", - [3]byte{0, 2, 150}: "Lectron Co,. Ltd.", - [3]byte{0, 2, 151}: "C-COR.net", - [3]byte{0, 2, 152}: "Broadframe Corporation", - [3]byte{0, 2, 153}: "Apex, Inc.", - [3]byte{0, 2, 154}: "Storage Apps", - [3]byte{0, 2, 155}: "Kreatel Communications AB", - [3]byte{0, 2, 156}: "3COM", - [3]byte{0, 2, 157}: "Merix Corp.", - [3]byte{0, 2, 158}: "Information Equipment Co., Ltd.", - [3]byte{0, 2, 159}: "L-3 Communication Aviation Recorders", - [3]byte{0, 2, 160}: "Flatstack Ltd.", - [3]byte{0, 2, 161}: "World Wide Packets", - [3]byte{0, 2, 162}: "Hilscher GmbH", - [3]byte{0, 2, 163}: "ABB Switzerland Ltd, Power Systems", - [3]byte{0, 2, 164}: "AddPac Technology Co., Ltd.", - [3]byte{0, 2, 165}: "Hewlett-Packard Company", - [3]byte{0, 2, 166}: "Effinet Systems Co., Ltd.", - [3]byte{0, 2, 167}: "Vivace Networks", - [3]byte{0, 2, 168}: "Air Link Technology", - [3]byte{0, 2, 169}: "RACOM, s.r.o.", - [3]byte{0, 2, 170}: "PLcom Co., Ltd.", - [3]byte{0, 2, 171}: "CTC Union Technologies Co., Ltd.", - [3]byte{0, 2, 172}: "3PAR data", - [3]byte{0, 2, 173}: "HOYA Corporation", - [3]byte{0, 2, 174}: "Scannex Electronics Ltd.", - [3]byte{0, 2, 175}: "TeleCruz Technology, Inc.", - [3]byte{0, 2, 176}: "Hokubu Communication & Industrial Co., Ltd.", - [3]byte{0, 2, 177}: "Anritsu, Ltd.", - [3]byte{0, 2, 178}: "Cablevision", - [3]byte{0, 2, 179}: "Intel Corporation", - [3]byte{0, 2, 180}: "DAPHNE", - [3]byte{0, 2, 181}: "Avnet, Inc.", - [3]byte{0, 2, 182}: "Acrosser Technology Co., Ltd.", - [3]byte{0, 2, 183}: "Watanabe Electric Industry Co., Ltd.", - [3]byte{0, 2, 184}: "WHI KONSULT AB", - [3]byte{0, 2, 185}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 186}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 187}: "Continuous Computing Corp", - [3]byte{0, 2, 188}: "LVL 7 Systems, Inc.", - [3]byte{0, 2, 189}: "Bionet Co., Ltd.", - [3]byte{0, 2, 190}: "Totsu Engineering, Inc.", - [3]byte{0, 2, 191}: "dotRocket, Inc.", - [3]byte{0, 2, 192}: "Bencent Tzeng Industry Co., Ltd.", - [3]byte{0, 2, 193}: "Innovative Electronic Designs, Inc.", - [3]byte{0, 2, 194}: "Net Vision Telecom", - [3]byte{0, 2, 195}: "Arelnet Ltd.", - [3]byte{0, 2, 196}: "Vector International BVBA", - [3]byte{0, 2, 197}: "Evertz Microsystems Ltd.", - [3]byte{0, 2, 198}: "Data Track Technology PLC", - [3]byte{0, 2, 199}: "ALPS ELECTRIC Co., Ltd.", - [3]byte{0, 2, 200}: "Technocom Communications Technology (pte) Ltd", - [3]byte{0, 2, 201}: "Mellanox Technologies", - [3]byte{0, 2, 202}: "EndPoints, Inc.", - [3]byte{0, 2, 203}: "TriState Ltd.", - [3]byte{0, 2, 204}: "M.C.C.I", - [3]byte{0, 2, 205}: "TeleDream, Inc.", - [3]byte{0, 2, 206}: "FoxJet, Inc.", - [3]byte{0, 2, 207}: "ZyGate Communications, Inc.", - [3]byte{0, 2, 208}: "Comdial Corporation", - [3]byte{0, 2, 209}: "Vivotek, Inc.", - [3]byte{0, 2, 210}: "Workstation AG", - [3]byte{0, 2, 211}: "NetBotz, Inc.", - [3]byte{0, 2, 212}: "PDA Peripherals, Inc.", - [3]byte{0, 2, 213}: "ACR", - [3]byte{0, 2, 214}: "NICE Systems", - [3]byte{0, 2, 215}: "EMPEG Ltd", - [3]byte{0, 2, 216}: "BRECIS Communications Corporation", - [3]byte{0, 2, 217}: "Reliable Controls", - [3]byte{0, 2, 218}: "ExiO Communications, Inc.", - [3]byte{0, 2, 219}: "NETSEC", - [3]byte{0, 2, 220}: "Fujitsu General Limited", - [3]byte{0, 2, 221}: "Bromax Communications, Ltd.", - [3]byte{0, 2, 222}: "Astrodesign, Inc.", - [3]byte{0, 2, 223}: "Net Com Systems, Inc.", - [3]byte{0, 2, 224}: "ETAS GmbH", - [3]byte{0, 2, 225}: "Integrated Network Corporation", - [3]byte{0, 2, 226}: "NDC Infared Engineering", - [3]byte{0, 2, 227}: "LITE-ON Communications, Inc.", - [3]byte{0, 2, 228}: "JC HYUN Systems, Inc.", - [3]byte{0, 2, 229}: "Timeware Ltd.", - [3]byte{0, 2, 230}: "Gould Instrument Systems, Inc.", - [3]byte{0, 2, 231}: "CAB GmbH & Co KG", - [3]byte{0, 2, 232}: "E.D.&A.", - [3]byte{0, 2, 233}: "CS Systemes De Securite - C3S", - [3]byte{0, 2, 234}: "Focus Enhancements", - [3]byte{0, 2, 235}: "Pico Communications", - [3]byte{0, 2, 236}: "Maschoff Design Engineering", - [3]byte{0, 2, 237}: "DXO Telecom Co., Ltd.", - [3]byte{0, 2, 238}: "Nokia Danmark A/S", - [3]byte{0, 2, 239}: "CCC Network Systems Group Ltd.", - [3]byte{0, 2, 240}: "AME Optimedia Technology Co., Ltd.", - [3]byte{0, 2, 241}: "Pinetron Co., Ltd.", - [3]byte{0, 2, 242}: "eDevice, Inc.", - [3]byte{0, 2, 243}: "Media Serve Co., Ltd.", - [3]byte{0, 2, 244}: "PCTEL, Inc.", - [3]byte{0, 2, 245}: "VIVE Synergies, Inc.", - [3]byte{0, 2, 246}: "Equipe Communications", - [3]byte{0, 2, 247}: "ARM", - [3]byte{0, 2, 248}: "SEAKR Engineering, Inc.", - [3]byte{0, 2, 249}: "MIMOS Berhad", - [3]byte{0, 2, 250}: "DX Antenna Co., Ltd.", - [3]byte{0, 2, 251}: "Baumuller Aulugen-Systemtechnik GmbH", - [3]byte{0, 2, 252}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 253}: "CISCO SYSTEMS, INC.", - [3]byte{0, 2, 254}: "Viditec, Inc.", - [3]byte{0, 2, 255}: "Handan BroadInfoCom", - [3]byte{0, 3, 0}: "Barracuda Networks, Inc.", - [3]byte{0, 3, 1}: "EXFO", - [3]byte{0, 3, 2}: "Charles Industries, Ltd.", - [3]byte{0, 3, 3}: "JAMA Electronics Co., Ltd.", - [3]byte{0, 3, 4}: "Pacific Broadband Communications", - [3]byte{0, 3, 5}: "MSC Vertriebs GmbH", - [3]byte{0, 3, 6}: "Fusion In Tech Co., Ltd.", - [3]byte{0, 3, 7}: "Secure Works, Inc.", - [3]byte{0, 3, 8}: "AM Communications, Inc.", - [3]byte{0, 3, 9}: "Texcel Technology PLC", - [3]byte{0, 3, 10}: "Argus Technologies", - [3]byte{0, 3, 11}: "Hunter Technology, Inc.", - [3]byte{0, 3, 12}: "Telesoft Technologies Ltd.", - [3]byte{0, 3, 13}: "Uniwill Computer Corp.", - [3]byte{0, 3, 14}: "Core Communications Co., Ltd.", - [3]byte{0, 3, 15}: "Digital China (Shanghai) Networks Ltd.", - [3]byte{0, 3, 16}: "E-Globaledge Corporation", - [3]byte{0, 3, 17}: "Micro Technology Co., Ltd.", - [3]byte{0, 3, 18}: "TR-Systemtechnik GmbH", - [3]byte{0, 3, 19}: "Access Media SPA", - [3]byte{0, 3, 20}: "Teleware Network Systems", - [3]byte{0, 3, 21}: "Cidco Incorporated", - [3]byte{0, 3, 22}: "Nobell Communications, Inc.", - [3]byte{0, 3, 23}: "Merlin Systems, Inc.", - [3]byte{0, 3, 24}: "Cyras Systems, Inc.", - [3]byte{0, 3, 25}: "Infineon AG", - [3]byte{0, 3, 26}: "Beijing Broad Telecom Ltd., China", - [3]byte{0, 3, 27}: "Cellvision Systems, Inc.", - [3]byte{0, 3, 28}: "Svenska Hardvarufabriken AB", - [3]byte{0, 3, 29}: "Taiwan Commate Computer, Inc.", - [3]byte{0, 3, 30}: "Optranet, Inc.", - [3]byte{0, 3, 31}: "Condev Ltd.", - [3]byte{0, 3, 32}: "Xpeed, Inc.", - [3]byte{0, 3, 33}: "Reco Research Co., Ltd.", - [3]byte{0, 3, 34}: "IDIS Co., Ltd.", - [3]byte{0, 3, 35}: "Cornet Technology, Inc.", - [3]byte{0, 3, 36}: "SANYO Consumer Electronics Co., Ltd.", - [3]byte{0, 3, 37}: "Arima Computer Corp.", - [3]byte{0, 3, 38}: "Iwasaki Information Systems Co., Ltd.", - [3]byte{0, 3, 39}: "ACT'L", - [3]byte{0, 3, 40}: "Mace Group, Inc.", - [3]byte{0, 3, 41}: "F3, Inc.", - [3]byte{0, 3, 42}: "UniData Communication Systems, Inc.", - [3]byte{0, 3, 43}: "GAI Datenfunksysteme GmbH", - [3]byte{0, 3, 44}: "ABB Switzerland Ltd", - [3]byte{0, 3, 45}: "IBASE Technology, Inc.", - [3]byte{0, 3, 46}: "Scope Information Management, Ltd.", - [3]byte{0, 3, 47}: "Global Sun Technology, Inc.", - [3]byte{0, 3, 48}: "Imagenics, Co., Ltd.", - [3]byte{0, 3, 49}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 50}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 51}: "Digitel Co., Ltd.", - [3]byte{0, 3, 52}: "Newport Electronics", - [3]byte{0, 3, 53}: "Mirae Technology", - [3]byte{0, 3, 54}: "Zetes Technologies", - [3]byte{0, 3, 55}: "Vaone, Inc.", - [3]byte{0, 3, 56}: "Oak Technology", - [3]byte{0, 3, 57}: "Eurologic Systems, Ltd.", - [3]byte{0, 3, 58}: "Silicon Wave, Inc.", - [3]byte{0, 3, 59}: "TAMI Tech Co., Ltd.", - [3]byte{0, 3, 60}: "Daiden Co., Ltd.", - [3]byte{0, 3, 61}: "ILSHin Lab", - [3]byte{0, 3, 62}: "Tateyama System Laboratory Co., Ltd.", - [3]byte{0, 3, 63}: "BigBand Networks, Ltd.", - [3]byte{0, 3, 64}: "Floware Wireless Systems, Ltd.", - [3]byte{0, 3, 65}: "Axon Digital Design", - [3]byte{0, 3, 66}: "Nortel Networks", - [3]byte{0, 3, 67}: "Martin Professional A/S", - [3]byte{0, 3, 68}: "Tietech.Co., Ltd.", - [3]byte{0, 3, 69}: "Routrek Networks Corporation", - [3]byte{0, 3, 70}: "Hitachi Kokusai Electric, Inc.", - [3]byte{0, 3, 71}: "Intel Corporation", - [3]byte{0, 3, 72}: "Norscan Instruments, Ltd.", - [3]byte{0, 3, 73}: "Vidicode Datacommunicatie B.V.", - [3]byte{0, 3, 74}: "RIAS Corporation", - [3]byte{0, 3, 75}: "Nortel Networks", - [3]byte{0, 3, 76}: "Shanghai DigiVision Technology Co., Ltd.", - [3]byte{0, 3, 77}: "Chiaro Networks, Ltd.", - [3]byte{0, 3, 78}: "Pos Data Company, Ltd.", - [3]byte{0, 3, 79}: "Sur-Gard Security", - [3]byte{0, 3, 80}: "BTICINO SPA", - [3]byte{0, 3, 81}: "Diebold, Inc.", - [3]byte{0, 3, 82}: "Colubris Networks", - [3]byte{0, 3, 83}: "Mitac, Inc.", - [3]byte{0, 3, 84}: "Fiber Logic Communications", - [3]byte{0, 3, 85}: "TeraBeam Internet Systems", - [3]byte{0, 3, 86}: "Wincor Nixdorf International GmbH", - [3]byte{0, 3, 87}: "Intervoice-Brite, Inc.", - [3]byte{0, 3, 88}: "Hanyang Digitech Co., Ltd.", - [3]byte{0, 3, 89}: "DigitalSis", - [3]byte{0, 3, 90}: "Photron Limited", - [3]byte{0, 3, 91}: "BridgeWave Communications", - [3]byte{0, 3, 92}: "Saint Song Corp.", - [3]byte{0, 3, 93}: "Bosung Hi-Net Co., Ltd.", - [3]byte{0, 3, 94}: "Metropolitan Area Networks, Inc.", - [3]byte{0, 3, 95}: "Prüftechnik Condition Monitoring GmbH & Co. KG", - [3]byte{0, 3, 96}: "PAC Interactive Technology, Inc.", - [3]byte{0, 3, 97}: "Widcomm, Inc.", - [3]byte{0, 3, 98}: "Vodtel Communications, Inc.", - [3]byte{0, 3, 99}: "Miraesys Co., Ltd.", - [3]byte{0, 3, 100}: "Scenix Semiconductor, Inc.", - [3]byte{0, 3, 101}: "Kira Information & Communications, Ltd.", - [3]byte{0, 3, 102}: "ASM Pacific Technology", - [3]byte{0, 3, 103}: "Jasmine Networks, Inc.", - [3]byte{0, 3, 104}: "Embedone Co., Ltd.", - [3]byte{0, 3, 105}: "Nippon Antenna Co., Ltd.", - [3]byte{0, 3, 106}: "Mainnet, Ltd.", - [3]byte{0, 3, 107}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 108}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 109}: "Runtop, Inc.", - [3]byte{0, 3, 110}: "Nicon Systems (Pty) Limited", - [3]byte{0, 3, 111}: "Telsey SPA", - [3]byte{0, 3, 112}: "NXTV, Inc.", - [3]byte{0, 3, 113}: "Acomz Networks Corp.", - [3]byte{0, 3, 114}: "ULAN", - [3]byte{0, 3, 115}: "Aselsan A.S", - [3]byte{0, 3, 116}: "Control Microsystems", - [3]byte{0, 3, 117}: "NetMedia, Inc.", - [3]byte{0, 3, 118}: "Graphtec Technology, Inc.", - [3]byte{0, 3, 119}: "Gigabit Wireless", - [3]byte{0, 3, 120}: "HUMAX Co., Ltd.", - [3]byte{0, 3, 121}: "Proscend Communications, Inc.", - [3]byte{0, 3, 122}: "Taiyo Yuden Co., Ltd.", - [3]byte{0, 3, 123}: "IDEC IZUMI Corporation", - [3]byte{0, 3, 124}: "Coax Media", - [3]byte{0, 3, 125}: "Stellcom", - [3]byte{0, 3, 126}: "PORTech Communications, Inc.", - [3]byte{0, 3, 127}: "Atheros Communications, Inc.", - [3]byte{0, 3, 128}: "SSH Communications Security Corp.", - [3]byte{0, 3, 129}: "Ingenico International", - [3]byte{0, 3, 130}: "A-One Co., Ltd.", - [3]byte{0, 3, 131}: "Metera Networks, Inc.", - [3]byte{0, 3, 132}: "AETA", - [3]byte{0, 3, 133}: "Actelis Networks, Inc.", - [3]byte{0, 3, 134}: "Ho Net, Inc.", - [3]byte{0, 3, 135}: "Blaze Network Products", - [3]byte{0, 3, 136}: "Fastfame Technology Co., Ltd.", - [3]byte{0, 3, 137}: "Plantronics", - [3]byte{0, 3, 138}: "America Online, Inc.", - [3]byte{0, 3, 139}: "PLUS-ONE I&T, Inc.", - [3]byte{0, 3, 140}: "Total Impact", - [3]byte{0, 3, 141}: "PCS Revenue Control Systems, Inc.", - [3]byte{0, 3, 142}: "Atoga Systems, Inc.", - [3]byte{0, 3, 143}: "Weinschel Corporation", - [3]byte{0, 3, 144}: "Digital Video Communications, Inc.", - [3]byte{0, 3, 145}: "Advanced Digital Broadcast, Ltd.", - [3]byte{0, 3, 146}: "Hyundai Teletek Co., Ltd.", - [3]byte{0, 3, 147}: "Apple", - [3]byte{0, 3, 148}: "Connect One", - [3]byte{0, 3, 149}: "California Amplifier", - [3]byte{0, 3, 150}: "EZ Cast Co., Ltd.", - [3]byte{0, 3, 151}: "Watchfront Limited", - [3]byte{0, 3, 152}: "WISI", - [3]byte{0, 3, 153}: "Dongju Informations & Communications Co., Ltd.", - [3]byte{0, 3, 154}: "SiConnect", - [3]byte{0, 3, 155}: "NetChip Technology, Inc.", - [3]byte{0, 3, 156}: "OptiMight Communications, Inc.", - [3]byte{0, 3, 157}: "Qisda Corporation", - [3]byte{0, 3, 158}: "Tera System Co., Ltd.", - [3]byte{0, 3, 159}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 160}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 161}: "HIPER Information & Communication, Inc.", - [3]byte{0, 3, 162}: "Catapult Communications", - [3]byte{0, 3, 163}: "MAVIX, Ltd.", - [3]byte{0, 3, 164}: "Imation Corp.", - [3]byte{0, 3, 165}: "Medea Corporation", - [3]byte{0, 3, 166}: "Traxit Technology, Inc.", - [3]byte{0, 3, 167}: "Unixtar Technology, Inc.", - [3]byte{0, 3, 168}: "IDOT Computers, Inc.", - [3]byte{0, 3, 169}: "AXCENT Media AG", - [3]byte{0, 3, 170}: "Watlow", - [3]byte{0, 3, 171}: "Bridge Information Systems", - [3]byte{0, 3, 172}: "Fronius Schweissmaschinen", - [3]byte{0, 3, 173}: "Emerson Energy Systems AB", - [3]byte{0, 3, 174}: "Allied Advanced Manufacturing Pte, Ltd.", - [3]byte{0, 3, 175}: "Paragea Communications", - [3]byte{0, 3, 176}: "Xsense Technology Corp.", - [3]byte{0, 3, 177}: "Hospira Inc.", - [3]byte{0, 3, 178}: "Radware", - [3]byte{0, 3, 179}: "IA Link Systems Co., Ltd.", - [3]byte{0, 3, 180}: "Macrotek International Corp.", - [3]byte{0, 3, 181}: "Entra Technology Co.", - [3]byte{0, 3, 182}: "QSI Corporation", - [3]byte{0, 3, 183}: "ZACCESS Systems", - [3]byte{0, 3, 184}: "NetKit Solutions, LLC", - [3]byte{0, 3, 185}: "Hualong Telecom Co., Ltd.", - [3]byte{0, 3, 186}: "Oracle Corporation", - [3]byte{0, 3, 187}: "Signal Communications Limited", - [3]byte{0, 3, 188}: "COT GmbH", - [3]byte{0, 3, 189}: "OmniCluster Technologies, Inc.", - [3]byte{0, 3, 190}: "Netility", - [3]byte{0, 3, 191}: "Centerpoint Broadband Technologies, Inc.", - [3]byte{0, 3, 192}: "RFTNC Co., Ltd.", - [3]byte{0, 3, 193}: "Packet Dynamics Ltd", - [3]byte{0, 3, 194}: "Solphone K.K.", - [3]byte{0, 3, 195}: "Micronik Multimedia", - [3]byte{0, 3, 196}: "Tomra Systems ASA", - [3]byte{0, 3, 197}: "Mobotix AG", - [3]byte{0, 3, 198}: "ICUE Systems, Inc.", - [3]byte{0, 3, 199}: "hopf Elektronik GmbH", - [3]byte{0, 3, 200}: "CML Emergency Services", - [3]byte{0, 3, 201}: "TECOM Co., Ltd.", - [3]byte{0, 3, 202}: "MTS Systems Corp.", - [3]byte{0, 3, 203}: "Nippon Systems Development Co., Ltd.", - [3]byte{0, 3, 204}: "Momentum Computer, Inc.", - [3]byte{0, 3, 205}: "Clovertech, Inc.", - [3]byte{0, 3, 206}: "ETEN Technologies, Inc.", - [3]byte{0, 3, 207}: "Muxcom, Inc.", - [3]byte{0, 3, 208}: "KOANKEISO Co., Ltd.", - [3]byte{0, 3, 209}: "Takaya Corporation", - [3]byte{0, 3, 210}: "Crossbeam Systems, Inc.", - [3]byte{0, 3, 211}: "Internet Energy Systems, Inc.", - [3]byte{0, 3, 212}: "Alloptic, Inc.", - [3]byte{0, 3, 213}: "Advanced Communications Co., Ltd.", - [3]byte{0, 3, 214}: "RADVision, Ltd.", - [3]byte{0, 3, 215}: "NextNet Wireless, Inc.", - [3]byte{0, 3, 216}: "iMPath Networks, Inc.", - [3]byte{0, 3, 217}: "Secheron SA", - [3]byte{0, 3, 218}: "Takamisawa Cybernetics Co., Ltd.", - [3]byte{0, 3, 219}: "Apogee Electronics Corp.", - [3]byte{0, 3, 220}: "Lexar Media, Inc.", - [3]byte{0, 3, 221}: "Comark Corp.", - [3]byte{0, 3, 222}: "OTC Wireless", - [3]byte{0, 3, 223}: "Desana Systems", - [3]byte{0, 3, 224}: "ARRIS Group, Inc.", - [3]byte{0, 3, 225}: "Winmate Communication, Inc.", - [3]byte{0, 3, 226}: "Comspace Corporation", - [3]byte{0, 3, 227}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 228}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 229}: "Hermstedt SG", - [3]byte{0, 3, 230}: "Entone, Inc.", - [3]byte{0, 3, 231}: "Logostek Co. Ltd.", - [3]byte{0, 3, 232}: "Wavelength Digital Limited", - [3]byte{0, 3, 233}: "Akara Canada, Inc.", - [3]byte{0, 3, 234}: "Mega System Technologies, Inc.", - [3]byte{0, 3, 235}: "Atrica", - [3]byte{0, 3, 236}: "ICG Research, Inc.", - [3]byte{0, 3, 237}: "Shinkawa Electric Co., Ltd.", - [3]byte{0, 3, 238}: "MKNet Corporation", - [3]byte{0, 3, 239}: "Oneline AG", - [3]byte{0, 3, 240}: "Redfern Broadband Networks", - [3]byte{0, 3, 241}: "Cicada Semiconductor, Inc.", - [3]byte{0, 3, 242}: "Seneca Networks", - [3]byte{0, 3, 243}: "Dazzle Multimedia, Inc.", - [3]byte{0, 3, 244}: "NetBurner", - [3]byte{0, 3, 245}: "Chip2Chip", - [3]byte{0, 3, 246}: "Allegro Networks, Inc.", - [3]byte{0, 3, 247}: "Plast-Control GmbH", - [3]byte{0, 3, 248}: "SanCastle Technologies, Inc.", - [3]byte{0, 3, 249}: "Pleiades Communications, Inc.", - [3]byte{0, 3, 250}: "TiMetra Networks", - [3]byte{0, 3, 251}: "ENEGATE Co.,Ltd.", - [3]byte{0, 3, 252}: "Intertex Data AB", - [3]byte{0, 3, 253}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 254}: "CISCO SYSTEMS, INC.", - [3]byte{0, 3, 255}: "Microsoft Corporation", - [3]byte{0, 4, 0}: "LEXMARK INTERNATIONAL, INC.", - [3]byte{0, 4, 1}: "Osaki Electric Co., Ltd.", - [3]byte{0, 4, 2}: "Nexsan Technologies, Ltd.", - [3]byte{0, 4, 3}: "Nexsi Corporation", - [3]byte{0, 4, 4}: "Makino Milling Machine Co., Ltd.", - [3]byte{0, 4, 5}: "ACN Technologies", - [3]byte{0, 4, 6}: "Fa. Metabox AG", - [3]byte{0, 4, 7}: "Topcon Positioning Systems, Inc.", - [3]byte{0, 4, 8}: "Sanko Electronics Co., Ltd.", - [3]byte{0, 4, 9}: "Cratos Networks", - [3]byte{0, 4, 10}: "Sage Systems", - [3]byte{0, 4, 11}: "3com Europe Ltd.", - [3]byte{0, 4, 12}: "Kanno Works, Ltd.", - [3]byte{0, 4, 13}: "Avaya, Inc.", - [3]byte{0, 4, 14}: "AVM GmbH", - [3]byte{0, 4, 15}: "Asus Network Technologies, Inc.", - [3]byte{0, 4, 16}: "Spinnaker Networks, Inc.", - [3]byte{0, 4, 17}: "Inkra Networks, Inc.", - [3]byte{0, 4, 18}: "WaveSmith Networks, Inc.", - [3]byte{0, 4, 19}: "SNOM Technology AG", - [3]byte{0, 4, 20}: "Umezawa Musen Denki Co., Ltd.", - [3]byte{0, 4, 21}: "Rasteme Systems Co., Ltd.", - [3]byte{0, 4, 22}: "Parks S/A Comunicacoes Digitais", - [3]byte{0, 4, 23}: "ELAU AG", - [3]byte{0, 4, 24}: "Teltronic S.A.U.", - [3]byte{0, 4, 25}: "Fibercycle Networks, Inc.", - [3]byte{0, 4, 26}: "Ines Test and Measurement GmbH & CoKG", - [3]byte{0, 4, 27}: "Bridgeworks Ltd.", - [3]byte{0, 4, 28}: "ipDialog, Inc.", - [3]byte{0, 4, 29}: "Corega of America", - [3]byte{0, 4, 30}: "Shikoku Instrumentation Co., Ltd.", - [3]byte{0, 4, 31}: "Sony Computer Entertainment, Inc.", - [3]byte{0, 4, 32}: "Slim Devices, Inc.", - [3]byte{0, 4, 33}: "Ocular Networks", - [3]byte{0, 4, 34}: "Gordon Kapes, Inc.", - [3]byte{0, 4, 35}: "Intel Corporation", - [3]byte{0, 4, 36}: "TMC s.r.l.", - [3]byte{0, 4, 37}: "Atmel Corporation", - [3]byte{0, 4, 38}: "Autosys", - [3]byte{0, 4, 39}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 40}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 41}: "Pixord Corporation", - [3]byte{0, 4, 42}: "Wireless Networks, Inc.", - [3]byte{0, 4, 43}: "IT Access Co., Ltd.", - [3]byte{0, 4, 44}: "Minet, Inc.", - [3]byte{0, 4, 45}: "Sarian Systems, Ltd.", - [3]byte{0, 4, 46}: "Netous Technologies, Ltd.", - [3]byte{0, 4, 47}: "International Communications Products, Inc.", - [3]byte{0, 4, 48}: "Netgem", - [3]byte{0, 4, 49}: "GlobalStreams, Inc.", - [3]byte{0, 4, 50}: "Voyetra Turtle Beach, Inc.", - [3]byte{0, 4, 51}: "Cyberboard A/S", - [3]byte{0, 4, 52}: "Accelent Systems, Inc.", - [3]byte{0, 4, 53}: "Comptek International, Inc.", - [3]byte{0, 4, 54}: "ELANsat Technologies, Inc.", - [3]byte{0, 4, 55}: "Powin Information Technology, Inc.", - [3]byte{0, 4, 56}: "Nortel Networks", - [3]byte{0, 4, 57}: "Rosco Entertainment Technology, Inc.", - [3]byte{0, 4, 58}: "Intelligent Telecommunications, Inc.", - [3]byte{0, 4, 59}: "Lava Computer Mfg., Inc.", - [3]byte{0, 4, 60}: "SONOS Co., Ltd.", - [3]byte{0, 4, 61}: "INDEL AG", - [3]byte{0, 4, 62}: "Telencomm", - [3]byte{0, 4, 63}: "ESTeem Wireless Modems, Inc", - [3]byte{0, 4, 64}: "cyberPIXIE, Inc.", - [3]byte{0, 4, 65}: "Half Dome Systems, Inc.", - [3]byte{0, 4, 66}: "NACT", - [3]byte{0, 4, 67}: "Agilent Technologies, Inc.", - [3]byte{0, 4, 68}: "Western Multiplex Corporation", - [3]byte{0, 4, 69}: "LMS Skalar Instruments GmbH", - [3]byte{0, 4, 70}: "CYZENTECH Co., Ltd.", - [3]byte{0, 4, 71}: "Acrowave Systems Co., Ltd.", - [3]byte{0, 4, 72}: "Polaroid Corporation", - [3]byte{0, 4, 73}: "Mapletree Networks", - [3]byte{0, 4, 74}: "iPolicy Networks, Inc.", - [3]byte{0, 4, 75}: "NVIDIA", - [3]byte{0, 4, 76}: "JENOPTIK", - [3]byte{0, 4, 77}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 78}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 79}: "Leukhardt Systemelektronik GmbH", - [3]byte{0, 4, 80}: "DMD Computers SRL", - [3]byte{0, 4, 81}: "Medrad, Inc.", - [3]byte{0, 4, 82}: "RocketLogix, Inc.", - [3]byte{0, 4, 83}: "YottaYotta, Inc.", - [3]byte{0, 4, 84}: "Quadriga UK", - [3]byte{0, 4, 85}: "ANTARA.net", - [3]byte{0, 4, 86}: "Cambium Networks Limited", - [3]byte{0, 4, 87}: "Universal Access Technology, Inc.", - [3]byte{0, 4, 88}: "Fusion X Co., Ltd.", - [3]byte{0, 4, 89}: "Veristar Corporation", - [3]byte{0, 4, 90}: "The Linksys Group, Inc.", - [3]byte{0, 4, 91}: "Techsan Electronics Co., Ltd.", - [3]byte{0, 4, 92}: "Mobiwave Pte Ltd", - [3]byte{0, 4, 93}: "BEKA Elektronik", - [3]byte{0, 4, 94}: "PolyTrax Information Technology AG", - [3]byte{0, 4, 95}: "Avalue Technology, Inc.", - [3]byte{0, 4, 96}: "Knilink Technology, Inc.", - [3]byte{0, 4, 97}: "EPOX Computer Co., Ltd.", - [3]byte{0, 4, 98}: "DAKOS Data & Communication Co., Ltd.", - [3]byte{0, 4, 99}: "Bosch Security Systems", - [3]byte{0, 4, 100}: "Pulse-Link Inc", - [3]byte{0, 4, 101}: "i.s.t isdn-support technik GmbH", - [3]byte{0, 4, 102}: "ARMITEL Co.", - [3]byte{0, 4, 103}: "Wuhan Research Institute of MII", - [3]byte{0, 4, 104}: "Vivity, Inc.", - [3]byte{0, 4, 105}: "Innocom, Inc.", - [3]byte{0, 4, 106}: "Navini Networks", - [3]byte{0, 4, 107}: "Palm Wireless, Inc.", - [3]byte{0, 4, 108}: "Cyber Technology Co., Ltd.", - [3]byte{0, 4, 109}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 110}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 111}: "Digitel S/A Industria Eletronica", - [3]byte{0, 4, 112}: "ipUnplugged AB", - [3]byte{0, 4, 113}: "IPrad", - [3]byte{0, 4, 114}: "Telelynx, Inc.", - [3]byte{0, 4, 115}: "Photonex Corporation", - [3]byte{0, 4, 116}: "LEGRAND", - [3]byte{0, 4, 117}: "3 Com Corporation", - [3]byte{0, 4, 118}: "3 Com Corporation", - [3]byte{0, 4, 119}: "Scalant Systems, Inc.", - [3]byte{0, 4, 120}: "G. Star Technology Corporation", - [3]byte{0, 4, 121}: "Radius Co., Ltd.", - [3]byte{0, 4, 122}: "AXXESSIT ASA", - [3]byte{0, 4, 123}: "Schlumberger", - [3]byte{0, 4, 124}: "Skidata AG", - [3]byte{0, 4, 125}: "Pelco", - [3]byte{0, 4, 126}: "Siqura B.V.", - [3]byte{0, 4, 127}: "Chr. Mayr GmbH & Co. KG", - [3]byte{0, 4, 128}: "Brocade Communications Systems, Inc", - [3]byte{0, 4, 129}: "Econolite Control Products, Inc.", - [3]byte{0, 4, 130}: "Medialogic Corp.", - [3]byte{0, 4, 131}: "Deltron Technology, Inc.", - [3]byte{0, 4, 132}: "Amann GmbH", - [3]byte{0, 4, 133}: "PicoLight", - [3]byte{0, 4, 134}: "ITTC, University of Kansas", - [3]byte{0, 4, 135}: "Cogency Semiconductor, Inc.", - [3]byte{0, 4, 136}: "Eurotherm Controls", - [3]byte{0, 4, 137}: "YAFO Networks, Inc.", - [3]byte{0, 4, 138}: "Temia Vertriebs GmbH", - [3]byte{0, 4, 139}: "Poscon Corporation", - [3]byte{0, 4, 140}: "Nayna Networks, Inc.", - [3]byte{0, 4, 141}: "Tone Commander Systems, Inc.", - [3]byte{0, 4, 142}: "Ohm Tech Labs, Inc.", - [3]byte{0, 4, 143}: "TD Systems Corporation", - [3]byte{0, 4, 144}: "Optical Access", - [3]byte{0, 4, 145}: "Technovision, Inc.", - [3]byte{0, 4, 146}: "Hive Internet, Ltd.", - [3]byte{0, 4, 147}: "Tsinghua Unisplendour Co., Ltd.", - [3]byte{0, 4, 148}: "Breezecom, Ltd.", - [3]byte{0, 4, 149}: "Tejas Networks India Limited", - [3]byte{0, 4, 150}: "Extreme Networks", - [3]byte{0, 4, 151}: "MacroSystem Digital Video AG", - [3]byte{0, 4, 152}: "Mahi Networks", - [3]byte{0, 4, 153}: "Chino Corporation", - [3]byte{0, 4, 154}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 155}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 156}: "Surgient Networks, Inc.", - [3]byte{0, 4, 157}: "Ipanema Technologies", - [3]byte{0, 4, 158}: "Wirelink Co., Ltd.", - [3]byte{0, 4, 159}: "Freescale Semiconductor", - [3]byte{0, 4, 160}: "Verity Instruments, Inc.", - [3]byte{0, 4, 161}: "Pathway Connectivity", - [3]byte{0, 4, 162}: "L.S.I. Japan Co., Ltd.", - [3]byte{0, 4, 163}: "Microchip Technology, Inc.", - [3]byte{0, 4, 164}: "NetEnabled, Inc.", - [3]byte{0, 4, 165}: "Barco Projection Systems NV", - [3]byte{0, 4, 166}: "SAF Tehnika Ltd.", - [3]byte{0, 4, 167}: "FabiaTech Corporation", - [3]byte{0, 4, 168}: "Broadmax Technologies, Inc.", - [3]byte{0, 4, 169}: "SandStream Technologies, Inc.", - [3]byte{0, 4, 170}: "Jetstream Communications", - [3]byte{0, 4, 171}: "Comverse Network Systems, Inc.", - [3]byte{0, 4, 172}: "IBM Corp", - [3]byte{0, 4, 173}: "Malibu Networks", - [3]byte{0, 4, 174}: "Sullair Corporation", - [3]byte{0, 4, 175}: "Digital Fountain, Inc.", - [3]byte{0, 4, 176}: "ELESIGN Co., Ltd.", - [3]byte{0, 4, 177}: "Signal Technology, Inc.", - [3]byte{0, 4, 178}: "ESSEGI SRL", - [3]byte{0, 4, 179}: "Videotek, Inc.", - [3]byte{0, 4, 180}: "CIAC", - [3]byte{0, 4, 181}: "Equitrac Corporation", - [3]byte{0, 4, 182}: "Stratex Networks, Inc.", - [3]byte{0, 4, 183}: "AMB i.t. Holding", - [3]byte{0, 4, 184}: "Kumahira Co., Ltd.", - [3]byte{0, 4, 185}: "S.I. Soubou, Inc.", - [3]byte{0, 4, 186}: "KDD Media Will Corporation", - [3]byte{0, 4, 187}: "Bardac Corporation", - [3]byte{0, 4, 188}: "Giantec, Inc.", - [3]byte{0, 4, 189}: "ARRIS Group, Inc.", - [3]byte{0, 4, 190}: "OptXCon, Inc.", - [3]byte{0, 4, 191}: "VersaLogic Corp.", - [3]byte{0, 4, 192}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 193}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 194}: "Magnipix, Inc.", - [3]byte{0, 4, 195}: "CASTOR Informatique", - [3]byte{0, 4, 196}: "Allen & Heath Limited", - [3]byte{0, 4, 197}: "ASE Technologies, USA", - [3]byte{0, 4, 198}: "Yamaha Motor Co., Ltd.", - [3]byte{0, 4, 199}: "NetMount", - [3]byte{0, 4, 200}: "LIBA Maschinenfabrik GmbH", - [3]byte{0, 4, 201}: "Micro Electron Co., Ltd.", - [3]byte{0, 4, 202}: "FreeMs Corp.", - [3]byte{0, 4, 203}: "Tdsoft Communication, Ltd.", - [3]byte{0, 4, 204}: "Peek Traffic B.V.", - [3]byte{0, 4, 205}: "Extenway Solutions Inc", - [3]byte{0, 4, 206}: "Patria Ailon", - [3]byte{0, 4, 207}: "Seagate Technology", - [3]byte{0, 4, 208}: "Softlink s.r.o.", - [3]byte{0, 4, 209}: "Drew Technologies, Inc.", - [3]byte{0, 4, 210}: "Adcon Telemetry GmbH", - [3]byte{0, 4, 211}: "Toyokeiki Co., Ltd.", - [3]byte{0, 4, 212}: "Proview Electronics Co., Ltd.", - [3]byte{0, 4, 213}: "Hitachi Information & Communication Engineering, Ltd.", - [3]byte{0, 4, 214}: "Takagi Industrial Co., Ltd.", - [3]byte{0, 4, 215}: "Omitec Instrumentation Ltd.", - [3]byte{0, 4, 216}: "IPWireless, Inc.", - [3]byte{0, 4, 217}: "Titan Electronics, Inc.", - [3]byte{0, 4, 218}: "Relax Technology, Inc.", - [3]byte{0, 4, 219}: "Tellus Group Corp.", - [3]byte{0, 4, 220}: "Nortel Networks", - [3]byte{0, 4, 221}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 222}: "CISCO SYSTEMS, INC.", - [3]byte{0, 4, 223}: "Teracom Telematica Ltda.", - [3]byte{0, 4, 224}: "Procket Networks", - [3]byte{0, 4, 225}: "Infinior Microsystems", - [3]byte{0, 4, 226}: "SMC Networks, Inc.", - [3]byte{0, 4, 227}: "Accton Technology Corp.", - [3]byte{0, 4, 228}: "Daeryung Ind., Inc.", - [3]byte{0, 4, 229}: "Glonet Systems, Inc.", - [3]byte{0, 4, 230}: "Banyan Network Private Limited", - [3]byte{0, 4, 231}: "Lightpointe Communications, Inc", - [3]byte{0, 4, 232}: "IER, Inc.", - [3]byte{0, 4, 233}: "Infiniswitch Corporation", - [3]byte{0, 4, 234}: "Hewlett-Packard Company", - [3]byte{0, 4, 235}: "Paxonet Communications, Inc.", - [3]byte{0, 4, 236}: "Memobox SA", - [3]byte{0, 4, 237}: "Billion Electric Co., Ltd.", - [3]byte{0, 4, 238}: "Lincoln Electric Company", - [3]byte{0, 4, 239}: "Polestar Corp.", - [3]byte{0, 4, 240}: "International Computers, Ltd", - [3]byte{0, 4, 241}: "WhereNet", - [3]byte{0, 4, 242}: "Polycom", - [3]byte{0, 4, 243}: "FS FORTH-SYSTEME GmbH", - [3]byte{0, 4, 244}: "Infinite Electronics Inc.", - [3]byte{0, 4, 245}: "SnowShore Networks, Inc.", - [3]byte{0, 4, 246}: "Amphus", - [3]byte{0, 4, 247}: "Omega Band, Inc.", - [3]byte{0, 4, 248}: "QUALICABLE TV Industria E Com., Ltda", - [3]byte{0, 4, 249}: "Xtera Communications, Inc.", - [3]byte{0, 4, 250}: "NBS Technologies Inc.", - [3]byte{0, 4, 251}: "Commtech, Inc.", - [3]byte{0, 4, 252}: "Stratus Computer (DE), Inc.", - [3]byte{0, 4, 253}: "Japan Control Engineering Co., Ltd.", - [3]byte{0, 4, 254}: "Pelago Networks", - [3]byte{0, 4, 255}: "Acronet Co., Ltd.", - [3]byte{0, 5, 0}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 1}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 2}: "Apple", - [3]byte{0, 5, 3}: "ICONAG", - [3]byte{0, 5, 4}: "Naray Information & Communication Enterprise", - [3]byte{0, 5, 5}: "Systems Integration Solutions, Inc.", - [3]byte{0, 5, 6}: "Reddo Networks AB", - [3]byte{0, 5, 7}: "Fine Appliance Corp.", - [3]byte{0, 5, 8}: "Inetcam, Inc.", - [3]byte{0, 5, 9}: "AVOC Nishimura Ltd.", - [3]byte{0, 5, 10}: "ICS Spa", - [3]byte{0, 5, 11}: "SICOM Systems, Inc.", - [3]byte{0, 5, 12}: "Network Photonics, Inc.", - [3]byte{0, 5, 13}: "Midstream Technologies, Inc.", - [3]byte{0, 5, 14}: "3ware, Inc.", - [3]byte{0, 5, 15}: "Tanaka S/S Ltd.", - [3]byte{0, 5, 16}: "Infinite Shanghai Communication Terminals Ltd.", - [3]byte{0, 5, 17}: "Complementary Technologies Ltd", - [3]byte{0, 5, 18}: "MeshNetworks, Inc.", - [3]byte{0, 5, 19}: "VTLinx Multimedia Systems, Inc.", - [3]byte{0, 5, 20}: "KDT Systems Co., Ltd.", - [3]byte{0, 5, 21}: "Nuark Co., Ltd.", - [3]byte{0, 5, 22}: "SMART Modular Technologies", - [3]byte{0, 5, 23}: "Shellcomm, Inc.", - [3]byte{0, 5, 24}: "Jupiters Technology", - [3]byte{0, 5, 25}: "Siemens Building Technologies AG,", - [3]byte{0, 5, 26}: "3Com Europe Ltd.", - [3]byte{0, 5, 27}: "Magic Control Technology Corporation", - [3]byte{0, 5, 28}: "Xnet Technology Corp.", - [3]byte{0, 5, 29}: "Airocon, Inc.", - [3]byte{0, 5, 30}: "Brocade Communications Systems, Inc.", - [3]byte{0, 5, 31}: "Taijin Media Co., Ltd.", - [3]byte{0, 5, 32}: "Smartronix, Inc.", - [3]byte{0, 5, 33}: "Control Microsystems", - [3]byte{0, 5, 34}: "LEA*D Corporation, Inc.", - [3]byte{0, 5, 35}: "AVL List GmbH", - [3]byte{0, 5, 36}: "BTL System (HK) Limited", - [3]byte{0, 5, 37}: "Puretek Industrial Co., Ltd.", - [3]byte{0, 5, 38}: "IPAS GmbH", - [3]byte{0, 5, 39}: "SJ Tek Co. Ltd", - [3]byte{0, 5, 40}: "New Focus, Inc.", - [3]byte{0, 5, 41}: "Shanghai Broadan Communication Technology Co., Ltd", - [3]byte{0, 5, 42}: "Ikegami Tsushinki Co., Ltd.", - [3]byte{0, 5, 43}: "HORIBA, Ltd.", - [3]byte{0, 5, 44}: "Supreme Magic Corporation", - [3]byte{0, 5, 45}: "Zoltrix International Limited", - [3]byte{0, 5, 46}: "Cinta Networks", - [3]byte{0, 5, 47}: "Leviton Network Solutions", - [3]byte{0, 5, 48}: "Andiamo Systems, Inc.", - [3]byte{0, 5, 49}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 50}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 51}: "Brocade Communications Systems, Inc.", - [3]byte{0, 5, 52}: "Northstar Engineering Ltd.", - [3]byte{0, 5, 53}: "Chip PC Ltd.", - [3]byte{0, 5, 54}: "Danam Communications, Inc.", - [3]byte{0, 5, 55}: "Nets Technology Co., Ltd.", - [3]byte{0, 5, 56}: "Merilus, Inc.", - [3]byte{0, 5, 57}: "A Brand New World in Sweden AB", - [3]byte{0, 5, 58}: "Willowglen Services Pte Ltd", - [3]byte{0, 5, 59}: "Harbour Networks Ltd., Co. Beijing", - [3]byte{0, 5, 60}: "Xircom", - [3]byte{0, 5, 61}: "Agere Systems", - [3]byte{0, 5, 62}: "KID Systeme GmbH", - [3]byte{0, 5, 63}: "VisionTek, Inc.", - [3]byte{0, 5, 64}: "FAST Corporation", - [3]byte{0, 5, 65}: "Advanced Systems Co., Ltd.", - [3]byte{0, 5, 66}: "Otari, Inc.", - [3]byte{0, 5, 67}: "IQ Wireless GmbH", - [3]byte{0, 5, 68}: "Valley Technologies, Inc.", - [3]byte{0, 5, 69}: "Internet Photonics", - [3]byte{0, 5, 70}: "KDDI Network & Solultions Inc.", - [3]byte{0, 5, 71}: "Starent Networks", - [3]byte{0, 5, 72}: "Disco Corporation", - [3]byte{0, 5, 73}: "Salira Optical Network Systems", - [3]byte{0, 5, 74}: "Ario Data Networks, Inc.", - [3]byte{0, 5, 75}: "Eaton Automation AG", - [3]byte{0, 5, 76}: "RF Innovations Pty Ltd", - [3]byte{0, 5, 77}: "Brans Technologies, Inc.", - [3]byte{0, 5, 78}: "Philips", - [3]byte{0, 5, 79}: "PRIVATE", - [3]byte{0, 5, 80}: "Vcomms Connect Limited", - [3]byte{0, 5, 81}: "F & S Elektronik Systeme GmbH", - [3]byte{0, 5, 82}: "Xycotec Computer GmbH", - [3]byte{0, 5, 83}: "DVC Company, Inc.", - [3]byte{0, 5, 84}: "Rangestar Wireless", - [3]byte{0, 5, 85}: "Japan Cash Machine Co., Ltd.", - [3]byte{0, 5, 86}: "360 Systems", - [3]byte{0, 5, 87}: "Agile TV Corporation", - [3]byte{0, 5, 88}: "Synchronous, Inc.", - [3]byte{0, 5, 89}: "Intracom S.A.", - [3]byte{0, 5, 90}: "Power Dsine Ltd.", - [3]byte{0, 5, 91}: "Charles Industries, Ltd.", - [3]byte{0, 5, 92}: "Kowa Company, Ltd.", - [3]byte{0, 5, 93}: "D-Link Systems, Inc.", - [3]byte{0, 5, 94}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 95}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 96}: "LEADER COMM.CO., LTD", - [3]byte{0, 5, 97}: "nac Image Technology, Inc.", - [3]byte{0, 5, 98}: "Digital View Limited", - [3]byte{0, 5, 99}: "J-Works, Inc.", - [3]byte{0, 5, 100}: "Tsinghua Bitway Co., Ltd.", - [3]byte{0, 5, 101}: "Tailyn Communication Company Ltd.", - [3]byte{0, 5, 102}: "Secui.com Corporation", - [3]byte{0, 5, 103}: "Etymonic Design, Inc.", - [3]byte{0, 5, 104}: "Piltofish Networks AB", - [3]byte{0, 5, 105}: "VMware, Inc.", - [3]byte{0, 5, 106}: "Heuft Systemtechnik GmbH", - [3]byte{0, 5, 107}: "C.P. Technology Co., Ltd.", - [3]byte{0, 5, 108}: "Hung Chang Co., Ltd.", - [3]byte{0, 5, 109}: "Pacific Corporation", - [3]byte{0, 5, 110}: "National Enhance Technology, Inc.", - [3]byte{0, 5, 111}: "Innomedia Technologies Pvt. Ltd.", - [3]byte{0, 5, 112}: "Baydel Ltd.", - [3]byte{0, 5, 113}: "Seiwa Electronics Co.", - [3]byte{0, 5, 114}: "Deonet Co., Ltd.", - [3]byte{0, 5, 115}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 116}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 117}: "CDS-Electronics BV", - [3]byte{0, 5, 118}: "NSM Technology Ltd.", - [3]byte{0, 5, 119}: "SM Information & Communication", - [3]byte{0, 5, 120}: "PRIVATE", - [3]byte{0, 5, 121}: "Universal Control Solution Corp.", - [3]byte{0, 5, 122}: "Overture Networks", - [3]byte{0, 5, 123}: "Chung Nam Electronic Co., Ltd.", - [3]byte{0, 5, 124}: "RCO Security AB", - [3]byte{0, 5, 125}: "Sun Communications, Inc.", - [3]byte{0, 5, 126}: "Eckelmann Steuerungstechnik GmbH", - [3]byte{0, 5, 127}: "Acqis Technology", - [3]byte{0, 5, 128}: "FibroLAN Ltd.", - [3]byte{0, 5, 129}: "Snell", - [3]byte{0, 5, 130}: "ClearCube Technology", - [3]byte{0, 5, 131}: "ImageCom Limited", - [3]byte{0, 5, 132}: "AbsoluteValue Systems, Inc.", - [3]byte{0, 5, 133}: "Juniper Networks, Inc.", - [3]byte{0, 5, 134}: "Lucent Technologies", - [3]byte{0, 5, 135}: "Locus, Incorporated", - [3]byte{0, 5, 136}: "Sensoria Corp.", - [3]byte{0, 5, 137}: "National Datacomputer", - [3]byte{0, 5, 138}: "Netcom Co., Ltd.", - [3]byte{0, 5, 139}: "IPmental, Inc.", - [3]byte{0, 5, 140}: "Opentech Inc.", - [3]byte{0, 5, 141}: "Lynx Photonic Networks, Inc.", - [3]byte{0, 5, 142}: "Flextronics International GmbH & Co. Nfg. KG", - [3]byte{0, 5, 143}: "CLCsoft co.", - [3]byte{0, 5, 144}: "Swissvoice Ltd.", - [3]byte{0, 5, 145}: "Active Silicon Ltd", - [3]byte{0, 5, 146}: "Pultek Corp.", - [3]byte{0, 5, 147}: "Grammar Engine Inc.", - [3]byte{0, 5, 148}: "IXXAT Automation GmbH", - [3]byte{0, 5, 149}: "Alesis Corporation", - [3]byte{0, 5, 150}: "Genotech Co., Ltd.", - [3]byte{0, 5, 151}: "Eagle Traffic Control Systems", - [3]byte{0, 5, 152}: "CRONOS S.r.l.", - [3]byte{0, 5, 153}: "DRS Test and Energy Management or DRS-TEM", - [3]byte{0, 5, 154}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 155}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 156}: "Kleinknecht GmbH, Ing. Büro", - [3]byte{0, 5, 157}: "Daniel Computing Systems, Inc.", - [3]byte{0, 5, 158}: "Zinwell Corporation", - [3]byte{0, 5, 159}: "Yotta Networks, Inc.", - [3]byte{0, 5, 160}: "MOBILINE Kft.", - [3]byte{0, 5, 161}: "Zenocom", - [3]byte{0, 5, 162}: "CELOX Networks", - [3]byte{0, 5, 163}: "QEI, Inc.", - [3]byte{0, 5, 164}: "Lucid Voice Ltd.", - [3]byte{0, 5, 165}: "KOTT", - [3]byte{0, 5, 166}: "Extron Electronics", - [3]byte{0, 5, 167}: "Hyperchip, Inc.", - [3]byte{0, 5, 168}: "WYLE ELECTRONICS", - [3]byte{0, 5, 169}: "Princeton Networks, Inc.", - [3]byte{0, 5, 170}: "Moore Industries International Inc.", - [3]byte{0, 5, 171}: "Cyber Fone, Inc.", - [3]byte{0, 5, 172}: "Northern Digital, Inc.", - [3]byte{0, 5, 173}: "Topspin Communications, Inc.", - [3]byte{0, 5, 174}: "Mediaport USA", - [3]byte{0, 5, 175}: "InnoScan Computing A/S", - [3]byte{0, 5, 176}: "Korea Computer Technology Co., Ltd.", - [3]byte{0, 5, 177}: "ASB Technology BV", - [3]byte{0, 5, 178}: "Medison Co., Ltd.", - [3]byte{0, 5, 179}: "Asahi-Engineering Co., Ltd.", - [3]byte{0, 5, 180}: "Aceex Corporation", - [3]byte{0, 5, 181}: "Broadcom Technologies", - [3]byte{0, 5, 182}: "INSYS Microelectronics GmbH", - [3]byte{0, 5, 183}: "Arbor Technology Corp.", - [3]byte{0, 5, 184}: "Electronic Design Associates, Inc.", - [3]byte{0, 5, 185}: "Airvana, Inc.", - [3]byte{0, 5, 186}: "Area Netwoeks, Inc.", - [3]byte{0, 5, 187}: "Myspace AB", - [3]byte{0, 5, 188}: "Resource Data Management Ltd", - [3]byte{0, 5, 189}: "ROAX BV", - [3]byte{0, 5, 190}: "Kongsberg Seatex AS", - [3]byte{0, 5, 191}: "JustEzy Technology, Inc.", - [3]byte{0, 5, 192}: "Digital Network Alacarte Co., Ltd.", - [3]byte{0, 5, 193}: "A-Kyung Motion, Inc.", - [3]byte{0, 5, 194}: "Soronti, Inc.", - [3]byte{0, 5, 195}: "Pacific Instruments, Inc.", - [3]byte{0, 5, 196}: "Telect, Inc.", - [3]byte{0, 5, 197}: "Flaga HF", - [3]byte{0, 5, 198}: "Triz Communications", - [3]byte{0, 5, 199}: "I/F-COM A/S", - [3]byte{0, 5, 200}: "VERYTECH", - [3]byte{0, 5, 201}: "LG Innotek Co., Ltd.", - [3]byte{0, 5, 202}: "Hitron Technology, Inc.", - [3]byte{0, 5, 203}: "ROIS Technologies, Inc.", - [3]byte{0, 5, 204}: "Sumtel Communications, Inc.", - [3]byte{0, 5, 205}: "Denon, Ltd.", - [3]byte{0, 5, 206}: "Prolink Microsystems Corporation", - [3]byte{0, 5, 207}: "Thunder River Technologies, Inc.", - [3]byte{0, 5, 208}: "Solinet Systems", - [3]byte{0, 5, 209}: "Metavector Technologies", - [3]byte{0, 5, 210}: "DAP Technologies", - [3]byte{0, 5, 211}: "eProduction Solutions, Inc.", - [3]byte{0, 5, 212}: "FutureSmart Networks, Inc.", - [3]byte{0, 5, 213}: "Speedcom Wireless", - [3]byte{0, 5, 214}: "L-3 Linkabit", - [3]byte{0, 5, 215}: "Vista Imaging, Inc.", - [3]byte{0, 5, 216}: "Arescom, Inc.", - [3]byte{0, 5, 217}: "Techno Valley, Inc.", - [3]byte{0, 5, 218}: "Apex Automationstechnik", - [3]byte{0, 5, 219}: "PSI Nentec GmbH", - [3]byte{0, 5, 220}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 221}: "CISCO SYSTEMS, INC.", - [3]byte{0, 5, 222}: "Gi Fone Korea, Inc.", - [3]byte{0, 5, 223}: "Electronic Innovation, Inc.", - [3]byte{0, 5, 224}: "Empirix Corp.", - [3]byte{0, 5, 225}: "Trellis Photonics, Ltd.", - [3]byte{0, 5, 226}: "Creativ Network Technologies", - [3]byte{0, 5, 227}: "LightSand Communications, Inc.", - [3]byte{0, 5, 228}: "Red Lion Controls Inc.", - [3]byte{0, 5, 229}: "Renishaw PLC", - [3]byte{0, 5, 230}: "Egenera, Inc.", - [3]byte{0, 5, 231}: "Netrake an AudioCodes Company", - [3]byte{0, 5, 232}: "TurboWave, Inc.", - [3]byte{0, 5, 233}: "Unicess Network, Inc.", - [3]byte{0, 5, 234}: "Rednix", - [3]byte{0, 5, 235}: "Blue Ridge Networks, Inc.", - [3]byte{0, 5, 236}: "Mosaic Systems Inc.", - [3]byte{0, 5, 237}: "Technikum Joanneum GmbH", - [3]byte{0, 5, 238}: "Siemens AB, Infrastructure & Cities, Building Technologies Division, IC BT SSP SP BA PR", - [3]byte{0, 5, 239}: "ADOIR Digital Technology", - [3]byte{0, 5, 240}: "SATEC", - [3]byte{0, 5, 241}: "Vrcom, Inc.", - [3]byte{0, 5, 242}: "Power R, Inc.", - [3]byte{0, 5, 243}: "Webyn", - [3]byte{0, 5, 244}: "System Base Co., Ltd.", - [3]byte{0, 5, 245}: "Geospace Technologies", - [3]byte{0, 5, 246}: "Young Chang Co. Ltd.", - [3]byte{0, 5, 247}: "Analog Devices, Inc.", - [3]byte{0, 5, 248}: "Real Time Access, Inc.", - [3]byte{0, 5, 249}: "TOA Corporation", - [3]byte{0, 5, 250}: "IPOptical, Inc.", - [3]byte{0, 5, 251}: "ShareGate, Inc.", - [3]byte{0, 5, 252}: "Schenck Pegasus Corp.", - [3]byte{0, 5, 253}: "PacketLight Networks Ltd.", - [3]byte{0, 5, 254}: "Traficon N.V.", - [3]byte{0, 5, 255}: "SNS Solutions, Inc.", - [3]byte{0, 6, 0}: "Toshiba Teli Corporation", - [3]byte{0, 6, 1}: "Otanikeiki Co., Ltd.", - [3]byte{0, 6, 2}: "Cirkitech Electronics Co.", - [3]byte{0, 6, 3}: "Baker Hughes Inc.", - [3]byte{0, 6, 4}: "@Track Communications, Inc.", - [3]byte{0, 6, 5}: "Inncom International, Inc.", - [3]byte{0, 6, 6}: "RapidWAN, Inc.", - [3]byte{0, 6, 7}: "Omni Directional Control Technology Inc.", - [3]byte{0, 6, 8}: "At-Sky SAS", - [3]byte{0, 6, 9}: "Crossport Systems", - [3]byte{0, 6, 10}: "Blue2space", - [3]byte{0, 6, 11}: "Artesyn Embedded Technologies", - [3]byte{0, 6, 12}: "Melco Industries, Inc.", - [3]byte{0, 6, 13}: "Wave7 Optics", - [3]byte{0, 6, 14}: "IGYS Systems, Inc.", - [3]byte{0, 6, 15}: "Narad Networks Inc", - [3]byte{0, 6, 16}: "Abeona Networks Inc", - [3]byte{0, 6, 17}: "Zeus Wireless, Inc.", - [3]byte{0, 6, 18}: "Accusys, Inc.", - [3]byte{0, 6, 19}: "Kawasaki Microelectronics Incorporated", - [3]byte{0, 6, 20}: "Prism Holdings", - [3]byte{0, 6, 21}: "Kimoto Electric Co., Ltd.", - [3]byte{0, 6, 22}: "Tel Net Co., Ltd.", - [3]byte{0, 6, 23}: "Redswitch Inc.", - [3]byte{0, 6, 24}: "DigiPower Manufacturing Inc.", - [3]byte{0, 6, 25}: "Connection Technology Systems", - [3]byte{0, 6, 26}: "Zetari Inc.", - [3]byte{0, 6, 27}: "Notebook Development Lab. Lenovo Japan Ltd.", - [3]byte{0, 6, 28}: "Hoshino Metal Industries, Ltd.", - [3]byte{0, 6, 29}: "MIP Telecom, Inc.", - [3]byte{0, 6, 30}: "Maxan Systems", - [3]byte{0, 6, 31}: "Vision Components GmbH", - [3]byte{0, 6, 32}: "Serial System Ltd.", - [3]byte{0, 6, 33}: "Hinox, Co., Ltd.", - [3]byte{0, 6, 34}: "Chung Fu Chen Yeh Enterprise Corp.", - [3]byte{0, 6, 35}: "MGE UPS Systems France", - [3]byte{0, 6, 36}: "Gentner Communications Corp.", - [3]byte{0, 6, 37}: "The Linksys Group, Inc.", - [3]byte{0, 6, 38}: "MWE GmbH", - [3]byte{0, 6, 39}: "Uniwide Technologies, Inc.", - [3]byte{0, 6, 40}: "CISCO SYSTEMS, INC.", - [3]byte{0, 6, 41}: "IBM Corp", - [3]byte{0, 6, 42}: "CISCO SYSTEMS, INC.", - [3]byte{0, 6, 43}: "INTRASERVER TECHNOLOGY", - [3]byte{0, 6, 44}: "Bivio Networks", - [3]byte{0, 6, 45}: "TouchStar Technologies, L.L.C.", - [3]byte{0, 6, 46}: "Aristos Logic Corp.", - [3]byte{0, 6, 47}: "Pivotech Systems Inc.", - [3]byte{0, 6, 48}: "Adtranz Sweden", - [3]byte{0, 6, 49}: "Calix", - [3]byte{0, 6, 50}: "Mesco Engineering GmbH", - [3]byte{0, 6, 51}: "Cross Match Technologies GmbH", - [3]byte{0, 6, 52}: "GTE Airfone Inc.", - [3]byte{0, 6, 53}: "PacketAir Networks, Inc.", - [3]byte{0, 6, 54}: "Jedai Broadband Networks", - [3]byte{0, 6, 55}: "Toptrend-Meta Information (ShenZhen) Inc.", - [3]byte{0, 6, 56}: "Sungjin C&C Co., Ltd.", - [3]byte{0, 6, 57}: "Newtec", - [3]byte{0, 6, 58}: "Dura Micro, Inc.", - [3]byte{0, 6, 59}: "Arcturus Networks Inc.", - [3]byte{0, 6, 60}: "Intrinsyc Software International Inc.", - [3]byte{0, 6, 61}: "Microwave Data Systems Inc.", - [3]byte{0, 6, 62}: "Opthos Inc.", - [3]byte{0, 6, 63}: "Everex Communications Inc.", - [3]byte{0, 6, 64}: "White Rock Networks", - [3]byte{0, 6, 65}: "ITCN", - [3]byte{0, 6, 66}: "Genetel Systems Inc.", - [3]byte{0, 6, 67}: "SONO Computer Co., Ltd.", - [3]byte{0, 6, 68}: "Neix,Inc", - [3]byte{0, 6, 69}: "Meisei Electric Co. Ltd.", - [3]byte{0, 6, 70}: "ShenZhen XunBao Network Technology Co Ltd", - [3]byte{0, 6, 71}: "Etrali S.A.", - [3]byte{0, 6, 72}: "Seedsware, Inc.", - [3]byte{0, 6, 73}: "3M Deutschland GmbH", - [3]byte{0, 6, 74}: "Honeywell Co., Ltd. (KOREA)", - [3]byte{0, 6, 75}: "Alexon Co., Ltd.", - [3]byte{0, 6, 76}: "Invicta Networks, Inc.", - [3]byte{0, 6, 77}: "Sencore", - [3]byte{0, 6, 78}: "Broad Net Technology Inc.", - [3]byte{0, 6, 79}: "PRO-NETS Technology Corporation", - [3]byte{0, 6, 80}: "Tiburon Networks, Inc.", - [3]byte{0, 6, 81}: "Aspen Networks Inc.", - [3]byte{0, 6, 82}: "CISCO SYSTEMS, INC.", - [3]byte{0, 6, 83}: "CISCO SYSTEMS, INC.", - [3]byte{0, 6, 84}: "Winpresa Building Automation Technologies GmbH", - [3]byte{0, 6, 85}: "Yipee, Inc.", - [3]byte{0, 6, 86}: "Tactel AB", - [3]byte{0, 6, 87}: "Market Central, Inc.", - [3]byte{0, 6, 88}: "Helmut Fischer GmbH Institut für Elektronik und Messtechnik", - [3]byte{0, 6, 89}: "EAL (Apeldoorn) B.V.", - [3]byte{0, 6, 90}: "Strix Systems", - [3]byte{0, 6, 91}: "Dell Computer Corp.", - [3]byte{0, 6, 92}: "Malachite Technologies, Inc.", - [3]byte{0, 6, 93}: "Heidelberg Web Systems", - [3]byte{0, 6, 94}: "Photuris, Inc.", - [3]byte{0, 6, 95}: "ECI Telecom - NGTS Ltd.", - [3]byte{0, 6, 96}: "NADEX Co., Ltd.", - [3]byte{0, 6, 97}: "NIA Home Technologies Corp.", - [3]byte{0, 6, 98}: "MBM Technology Ltd.", - [3]byte{0, 6, 99}: "Human Technology Co., Ltd.", - [3]byte{0, 6, 100}: "Fostex Corporation", - [3]byte{0, 6, 101}: "Sunny Giken, Inc.", - [3]byte{0, 6, 102}: "Roving Networks", - [3]byte{0, 6, 103}: "Tripp Lite", - [3]byte{0, 6, 104}: "Vicon Industries Inc.", - [3]byte{0, 6, 105}: "Datasound Laboratories Ltd", - [3]byte{0, 6, 106}: "InfiniCon Systems, Inc.", - [3]byte{0, 6, 107}: "Sysmex Corporation", - [3]byte{0, 6, 108}: "Robinson Corporation", - [3]byte{0, 6, 109}: "Compuprint S.P.A.", - [3]byte{0, 6, 110}: "Delta Electronics, Inc.", - [3]byte{0, 6, 111}: "Korea Data Systems", - [3]byte{0, 6, 112}: "Upponetti Oy", - [3]byte{0, 6, 113}: "Softing AG", - [3]byte{0, 6, 114}: "Netezza", - [3]byte{0, 6, 115}: "TKH Security Solutions USA", - [3]byte{0, 6, 116}: "Spectrum Control, Inc.", - [3]byte{0, 6, 117}: "Banderacom, Inc.", - [3]byte{0, 6, 118}: "Novra Technologies Inc.", - [3]byte{0, 6, 119}: "SICK AG", - [3]byte{0, 6, 120}: "Marantz Brand Company", - [3]byte{0, 6, 121}: "Konami Corporation", - [3]byte{0, 6, 122}: "JMP Systems", - [3]byte{0, 6, 123}: "Toplink C&C Corporation", - [3]byte{0, 6, 124}: "CISCO SYSTEMS, INC.", - [3]byte{0, 6, 125}: "Takasago Ltd.", - [3]byte{0, 6, 126}: "WinCom Systems, Inc.", - [3]byte{0, 6, 127}: "Digeo, Inc.", - [3]byte{0, 6, 128}: "Card Access, Inc.", - [3]byte{0, 6, 129}: "Goepel Electronic GmbH", - [3]byte{0, 6, 130}: "Convedia", - [3]byte{0, 6, 131}: "Bravara Communications, Inc.", - [3]byte{0, 6, 132}: "Biacore AB", - [3]byte{0, 6, 133}: "NetNearU Corporation", - [3]byte{0, 6, 134}: "ZARDCOM Co., Ltd.", - [3]byte{0, 6, 135}: "Omnitron Systems Technology, Inc.", - [3]byte{0, 6, 136}: "Telways Communication Co., Ltd.", - [3]byte{0, 6, 137}: "yLez Technologies Pte Ltd", - [3]byte{0, 6, 138}: "NeuronNet Co. Ltd. R&D Center", - [3]byte{0, 6, 139}: "AirRunner Technologies, Inc.", - [3]byte{0, 6, 140}: "3Com Corporation", - [3]byte{0, 6, 141}: "SEPATON, Inc.", - [3]byte{0, 6, 142}: "HID Corporation", - [3]byte{0, 6, 143}: "Telemonitor, Inc.", - [3]byte{0, 6, 144}: "Euracom Communication GmbH", - [3]byte{0, 6, 145}: "PT Inovacao", - [3]byte{0, 6, 146}: "Intruvert Networks, Inc.", - [3]byte{0, 6, 147}: "Flexus Computer Technology, Inc.", - [3]byte{0, 6, 148}: "Mobillian Corporation", - [3]byte{0, 6, 149}: "Ensure Technologies, Inc.", - [3]byte{0, 6, 150}: "Advent Networks", - [3]byte{0, 6, 151}: "R & D Center", - [3]byte{0, 6, 152}: "egnite GmbH", - [3]byte{0, 6, 153}: "Vida Design Co.", - [3]byte{0, 6, 154}: "e & Tel", - [3]byte{0, 6, 155}: "AVT Audio Video Technologies GmbH", - [3]byte{0, 6, 156}: "Transmode Systems AB", - [3]byte{0, 6, 157}: "Petards Ltd", - [3]byte{0, 6, 158}: "UNIQA, Inc.", - [3]byte{0, 6, 159}: "Kuokoa Networks", - [3]byte{0, 6, 160}: "Mx Imaging", - [3]byte{0, 6, 161}: "Celsian Technologies, Inc.", - [3]byte{0, 6, 162}: "Microtune, Inc.", - [3]byte{0, 6, 163}: "Bitran Corporation", - [3]byte{0, 6, 164}: "INNOWELL Corp.", - [3]byte{0, 6, 165}: "PINON Corp.", - [3]byte{0, 6, 166}: "Artistic Licence Engineering Ltd", - [3]byte{0, 6, 167}: "Primarion", - [3]byte{0, 6, 168}: "KC Technology, Inc.", - [3]byte{0, 6, 169}: "Universal Instruments Corp.", - [3]byte{0, 6, 170}: "VT Miltope", - [3]byte{0, 6, 171}: "W-Link Systems, Inc.", - [3]byte{0, 6, 172}: "Intersoft Co.", - [3]byte{0, 6, 173}: "KB Electronics Ltd.", - [3]byte{0, 6, 174}: "Himachal Futuristic Communications Ltd", - [3]byte{0, 6, 175}: "Xalted Networks", - [3]byte{0, 6, 176}: "Comtech EF Data Corp.", - [3]byte{0, 6, 177}: "Sonicwall", - [3]byte{0, 6, 178}: "Linxtek Co.", - [3]byte{0, 6, 179}: "Diagraph Corporation", - [3]byte{0, 6, 180}: "Vorne Industries, Inc.", - [3]byte{0, 6, 181}: "Source Photonics, Inc.", - [3]byte{0, 6, 182}: "Nir-Or Israel Ltd.", - [3]byte{0, 6, 183}: "TELEM GmbH", - [3]byte{0, 6, 184}: "Bandspeed Pty Ltd", - [3]byte{0, 6, 185}: "A5TEK Corp.", - [3]byte{0, 6, 186}: "Westwave Communications", - [3]byte{0, 6, 187}: "ATI Technologies Inc.", - [3]byte{0, 6, 188}: "Macrolink, Inc.", - [3]byte{0, 6, 189}: "BNTECHNOLOGY Co., Ltd.", - [3]byte{0, 6, 190}: "Baumer Optronic GmbH", - [3]byte{0, 6, 191}: "Accella Technologies Co., Ltd.", - [3]byte{0, 6, 192}: "United Internetworks, Inc.", - [3]byte{0, 6, 193}: "CISCO SYSTEMS, INC.", - [3]byte{0, 6, 194}: "Smartmatic Corporation", - [3]byte{0, 6, 195}: "Schindler Elevator Ltd.", - [3]byte{0, 6, 196}: "Piolink Inc.", - [3]byte{0, 6, 197}: "INNOVI Technologies Limited", - [3]byte{0, 6, 198}: "lesswire AG", - [3]byte{0, 6, 199}: "RFNET Technologies Pte Ltd (S)", - [3]byte{0, 6, 200}: "Sumitomo Metal Micro Devices, Inc.", - [3]byte{0, 6, 201}: "Technical Marketing Research, Inc.", - [3]byte{0, 6, 202}: "American Computer & Digital Components, Inc. (ACDC)", - [3]byte{0, 6, 203}: "Jotron Electronics A/S", - [3]byte{0, 6, 204}: "JMI Electronics Co., Ltd.", - [3]byte{0, 6, 205}: "Leaf Imaging Ltd.", - [3]byte{0, 6, 206}: "DATENO", - [3]byte{0, 6, 207}: "Thales Avionics In-Flight Systems, LLC", - [3]byte{0, 6, 208}: "Elgar Electronics Corp.", - [3]byte{0, 6, 209}: "Tahoe Networks, Inc.", - [3]byte{0, 6, 210}: "Tundra Semiconductor Corp.", - [3]byte{0, 6, 211}: "Alpha Telecom, Inc. U.S.A.", - [3]byte{0, 6, 212}: "Interactive Objects, Inc.", - [3]byte{0, 6, 213}: "Diamond Systems Corp.", - [3]byte{0, 6, 214}: "CISCO SYSTEMS, INC.", - [3]byte{0, 6, 215}: "CISCO SYSTEMS, INC.", - [3]byte{0, 6, 216}: "Maple Optical Systems", - [3]byte{0, 6, 217}: "IPM-Net S.p.A.", - [3]byte{0, 6, 218}: "ITRAN Communications Ltd.", - [3]byte{0, 6, 219}: "ICHIPS Co., Ltd.", - [3]byte{0, 6, 220}: "Syabas Technology (Amquest)", - [3]byte{0, 6, 221}: "AT & T Laboratories - Cambridge Ltd", - [3]byte{0, 6, 222}: "Flash Technology", - [3]byte{0, 6, 223}: "AIDONIC Corporation", - [3]byte{0, 6, 224}: "MAT Co., Ltd.", - [3]byte{0, 6, 225}: "Techno Trade s.a", - [3]byte{0, 6, 226}: "Ceemax Technology Co., Ltd.", - [3]byte{0, 6, 227}: "Quantitative Imaging Corporation", - [3]byte{0, 6, 228}: "Citel Technologies Ltd.", - [3]byte{0, 6, 229}: "Fujian Newland Computer Ltd. Co.", - [3]byte{0, 6, 230}: "DongYang Telecom Co., Ltd.", - [3]byte{0, 6, 231}: "Bit Blitz Communications Inc.", - [3]byte{0, 6, 232}: "Optical Network Testing, Inc.", - [3]byte{0, 6, 233}: "Intime Corp.", - [3]byte{0, 6, 234}: "ELZET80 Mikrocomputer GmbH&Co. KG", - [3]byte{0, 6, 235}: "Global Data", - [3]byte{0, 6, 236}: "Harris Corporation", - [3]byte{0, 6, 237}: "Inara Networks", - [3]byte{0, 6, 238}: "Shenyang Neu-era Information & Technology Stock Co., Ltd", - [3]byte{0, 6, 239}: "Maxxan Systems, Inc.", - [3]byte{0, 6, 240}: "Digeo, Inc.", - [3]byte{0, 6, 241}: "Optillion", - [3]byte{0, 6, 242}: "Platys Communications", - [3]byte{0, 6, 243}: "AcceLight Networks", - [3]byte{0, 6, 244}: "Prime Electronics & Satellitics Inc.", - [3]byte{0, 6, 245}: "ALPS Co,. Ltd.", - [3]byte{0, 6, 246}: "CISCO SYSTEMS, INC.", - [3]byte{0, 6, 247}: "ALPS Co,. Ltd.", - [3]byte{0, 6, 248}: "The Boeing Company", - [3]byte{0, 6, 249}: "Mitsui Zosen Systems Research Inc.", - [3]byte{0, 6, 250}: "IP SQUARE Co, Ltd.", - [3]byte{0, 6, 251}: "Hitachi Printing Solutions, Ltd.", - [3]byte{0, 6, 252}: "Fnet Co., Ltd.", - [3]byte{0, 6, 253}: "Comjet Information Systems Corp.", - [3]byte{0, 6, 254}: "Ambrado, Inc", - [3]byte{0, 6, 255}: "Sheba Systems Co., Ltd.", - [3]byte{0, 7, 0}: "Zettamedia Korea", - [3]byte{0, 7, 1}: "RACAL-DATACOM", - [3]byte{0, 7, 2}: "Varian Medical Systems", - [3]byte{0, 7, 3}: "CSEE Transport", - [3]byte{0, 7, 4}: "ALPS Co,. Ltd.", - [3]byte{0, 7, 5}: "Endress & Hauser GmbH & Co", - [3]byte{0, 7, 6}: "Sanritz Corporation", - [3]byte{0, 7, 7}: "Interalia Inc.", - [3]byte{0, 7, 8}: "Bitrage Inc.", - [3]byte{0, 7, 9}: "Westerstrand Urfabrik AB", - [3]byte{0, 7, 10}: "Unicom Automation Co., Ltd.", - [3]byte{0, 7, 11}: "Novabase SGPS, SA", - [3]byte{0, 7, 12}: "SVA-Intrusion.com Co. Ltd.", - [3]byte{0, 7, 13}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 14}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 15}: "Fujant, Inc.", - [3]byte{0, 7, 16}: "Adax, Inc.", - [3]byte{0, 7, 17}: "Acterna", - [3]byte{0, 7, 18}: "JAL Information Technology", - [3]byte{0, 7, 19}: "IP One, Inc.", - [3]byte{0, 7, 20}: "Brightcom", - [3]byte{0, 7, 21}: "General Research of Electronics, Inc.", - [3]byte{0, 7, 22}: "J & S Marine Ltd.", - [3]byte{0, 7, 23}: "Wieland Electric GmbH", - [3]byte{0, 7, 24}: "iCanTek Co., Ltd.", - [3]byte{0, 7, 25}: "Mobiis Co., Ltd.", - [3]byte{0, 7, 26}: "Finedigital Inc.", - [3]byte{0, 7, 27}: "CDVI Americas Ltd", - [3]byte{0, 7, 28}: "AT&T Fixed Wireless Services", - [3]byte{0, 7, 29}: "Satelsa Sistemas Y Aplicaciones De Telecomunicaciones, S.A.", - [3]byte{0, 7, 30}: "Tri-M Engineering / Nupak Dev. Corp.", - [3]byte{0, 7, 31}: "European Systems Integration", - [3]byte{0, 7, 32}: "Trutzschler GmbH & Co. KG", - [3]byte{0, 7, 33}: "Formac Elektronik GmbH", - [3]byte{0, 7, 34}: "The Nielsen Company", - [3]byte{0, 7, 35}: "ELCON Systemtechnik GmbH", - [3]byte{0, 7, 36}: "Telemax Co., Ltd.", - [3]byte{0, 7, 37}: "Bematech International Corp.", - [3]byte{0, 7, 38}: "Shenzhen Gongjin Electronics Co., Ltd.", - [3]byte{0, 7, 39}: "Zi Corporation (HK) Ltd.", - [3]byte{0, 7, 40}: "Neo Telecom", - [3]byte{0, 7, 41}: "Kistler Instrumente AG", - [3]byte{0, 7, 42}: "Innovance Networks", - [3]byte{0, 7, 43}: "Jung Myung Telecom Co., Ltd.", - [3]byte{0, 7, 44}: "Fabricom", - [3]byte{0, 7, 45}: "CNSystems", - [3]byte{0, 7, 46}: "North Node AB", - [3]byte{0, 7, 47}: "Intransa, Inc.", - [3]byte{0, 7, 48}: "Hutchison OPTEL Telecom Technology Co., Ltd.", - [3]byte{0, 7, 49}: "Ophir-Spiricon LLC", - [3]byte{0, 7, 50}: "AAEON Technology Inc.", - [3]byte{0, 7, 51}: "DANCONTROL Engineering", - [3]byte{0, 7, 52}: "ONStor, Inc.", - [3]byte{0, 7, 53}: "Flarion Technologies, Inc.", - [3]byte{0, 7, 54}: "Data Video Technologies Co., Ltd.", - [3]byte{0, 7, 55}: "Soriya Co. Ltd.", - [3]byte{0, 7, 56}: "Young Technology Co., Ltd.", - [3]byte{0, 7, 57}: "Scotty Group Austria Gmbh", - [3]byte{0, 7, 58}: "Inventel Systemes", - [3]byte{0, 7, 59}: "Tenovis GmbH & Co KG", - [3]byte{0, 7, 60}: "Telecom Design", - [3]byte{0, 7, 61}: "Nanjing Postel Telecommunications Co., Ltd.", - [3]byte{0, 7, 62}: "China Great-Wall Computer Shenzhen Co., Ltd.", - [3]byte{0, 7, 63}: "Woojyun Systec Co., Ltd.", - [3]byte{0, 7, 64}: "Buffalo Inc.", - [3]byte{0, 7, 65}: "Sierra Automated Systems", - [3]byte{0, 7, 66}: "Current Technologies, LLC", - [3]byte{0, 7, 67}: "Chelsio Communications", - [3]byte{0, 7, 68}: "Unico, Inc.", - [3]byte{0, 7, 69}: "Radlan Computer Communications Ltd.", - [3]byte{0, 7, 70}: "TURCK, Inc.", - [3]byte{0, 7, 71}: "Mecalc", - [3]byte{0, 7, 72}: "The Imaging Source Europe", - [3]byte{0, 7, 73}: "CENiX Inc.", - [3]byte{0, 7, 74}: "Carl Valentin GmbH", - [3]byte{0, 7, 75}: "Daihen Corporation", - [3]byte{0, 7, 76}: "Beicom Inc.", - [3]byte{0, 7, 77}: "Zebra Technologies Corp.", - [3]byte{0, 7, 78}: "IPFRONT Inc", - [3]byte{0, 7, 79}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 80}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 81}: "m-u-t AG", - [3]byte{0, 7, 82}: "Rhythm Watch Co., Ltd.", - [3]byte{0, 7, 83}: "Beijing Qxcomm Technology Co., Ltd.", - [3]byte{0, 7, 84}: "Xyterra Computing, Inc.", - [3]byte{0, 7, 85}: "Lafon", - [3]byte{0, 7, 86}: "Juyoung Telecom", - [3]byte{0, 7, 87}: "Topcall International AG", - [3]byte{0, 7, 88}: "Dragonwave", - [3]byte{0, 7, 89}: "Boris Manufacturing Corp.", - [3]byte{0, 7, 90}: "Air Products and Chemicals, Inc.", - [3]byte{0, 7, 91}: "Gibson Guitars", - [3]byte{0, 7, 92}: "Eastman Kodak Company", - [3]byte{0, 7, 93}: "Celleritas Inc.", - [3]byte{0, 7, 94}: "Ametek Power Instruments", - [3]byte{0, 7, 95}: "VCS Video Communication Systems AG", - [3]byte{0, 7, 96}: "TOMIS Information & Telecom Corp.", - [3]byte{0, 7, 97}: "Logitech Europe SA", - [3]byte{0, 7, 98}: "Group Sense Limited", - [3]byte{0, 7, 99}: "Sunniwell Cyber Tech. Co., Ltd.", - [3]byte{0, 7, 100}: "YoungWoo Telecom Co. Ltd.", - [3]byte{0, 7, 101}: "Jade Quantum Technologies, Inc.", - [3]byte{0, 7, 102}: "Chou Chin Industrial Co., Ltd.", - [3]byte{0, 7, 103}: "Yuxing Electronics Company Limited", - [3]byte{0, 7, 104}: "Danfoss A/S", - [3]byte{0, 7, 105}: "Italiana Macchi SpA", - [3]byte{0, 7, 106}: "NEXTEYE Co., Ltd.", - [3]byte{0, 7, 107}: "Stralfors AB", - [3]byte{0, 7, 108}: "Daehanet, Inc.", - [3]byte{0, 7, 109}: "Flexlight Networks", - [3]byte{0, 7, 110}: "Sinetica Corporation Limited", - [3]byte{0, 7, 111}: "Synoptics Limited", - [3]byte{0, 7, 112}: "Ubiquoss Inc", - [3]byte{0, 7, 113}: "Embedded System Corporation", - [3]byte{0, 7, 114}: "Alcatel Shanghai Bell Co., Ltd.", - [3]byte{0, 7, 115}: "Ascom Powerline Communications Ltd.", - [3]byte{0, 7, 116}: "GuangZhou Thinker Technology Co. Ltd.", - [3]byte{0, 7, 117}: "Valence Semiconductor, Inc.", - [3]byte{0, 7, 118}: "Federal APD", - [3]byte{0, 7, 119}: "Motah Ltd.", - [3]byte{0, 7, 120}: "GERSTEL GmbH & Co. KG", - [3]byte{0, 7, 121}: "Sungil Telecom Co., Ltd.", - [3]byte{0, 7, 122}: "Infoware System Co., Ltd.", - [3]byte{0, 7, 123}: "Millimetrix Broadband Networks", - [3]byte{0, 7, 124}: "Westermo Teleindustri AB", - [3]byte{0, 7, 125}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 126}: "Elrest GmbH", - [3]byte{0, 7, 127}: "J Communications Co., Ltd.", - [3]byte{0, 7, 128}: "Bluegiga Technologies OY", - [3]byte{0, 7, 129}: "Itron Inc.", - [3]byte{0, 7, 130}: "Oracle Corporation", - [3]byte{0, 7, 131}: "SynCom Network, Inc.", - [3]byte{0, 7, 132}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 133}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 134}: "Wireless Networks Inc.", - [3]byte{0, 7, 135}: "Idea System Co., Ltd.", - [3]byte{0, 7, 136}: "Clipcomm, Inc.", - [3]byte{0, 7, 137}: "DONGWON SYSTEMS", - [3]byte{0, 7, 138}: "Mentor Data System Inc.", - [3]byte{0, 7, 139}: "Wegener Communications, Inc.", - [3]byte{0, 7, 140}: "Elektronikspecialisten i Borlange AB", - [3]byte{0, 7, 141}: "NetEngines Ltd.", - [3]byte{0, 7, 142}: "Garz & Friche GmbH", - [3]byte{0, 7, 143}: "Emkay Innovative Products", - [3]byte{0, 7, 144}: "Tri-M Technologies (s) Limited", - [3]byte{0, 7, 145}: "International Data Communications, Inc.", - [3]byte{0, 7, 146}: "Sütron Electronic GmbH", - [3]byte{0, 7, 147}: "Shin Satellite Public Company Limited", - [3]byte{0, 7, 148}: "Simple Devices, Inc.", - [3]byte{0, 7, 149}: "Elitegroup Computer System Co. (ECS)", - [3]byte{0, 7, 150}: "LSI Systems, Inc.", - [3]byte{0, 7, 151}: "Netpower Co., Ltd.", - [3]byte{0, 7, 152}: "Selea SRL", - [3]byte{0, 7, 153}: "Tipping Point Technologies, Inc.", - [3]byte{0, 7, 154}: "Verint Systems Inc", - [3]byte{0, 7, 155}: "Aurora Networks", - [3]byte{0, 7, 156}: "Golden Electronics Technology Co., Ltd.", - [3]byte{0, 7, 157}: "Musashi Co., Ltd.", - [3]byte{0, 7, 158}: "Ilinx Co., Ltd.", - [3]byte{0, 7, 159}: "Action Digital Inc.", - [3]byte{0, 7, 160}: "e-Watch Inc.", - [3]byte{0, 7, 161}: "VIASYS Healthcare GmbH", - [3]byte{0, 7, 162}: "Opteon Corporation", - [3]byte{0, 7, 163}: "Ositis Software, Inc.", - [3]byte{0, 7, 164}: "GN Netcom Ltd.", - [3]byte{0, 7, 165}: "Y.D.K Co. Ltd.", - [3]byte{0, 7, 166}: "Home Automation, Inc.", - [3]byte{0, 7, 167}: "A-Z Inc.", - [3]byte{0, 7, 168}: "Haier Group Technologies Ltd.", - [3]byte{0, 7, 169}: "Novasonics", - [3]byte{0, 7, 170}: "Quantum Data Inc.", - [3]byte{0, 7, 171}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 7, 172}: "Eolring", - [3]byte{0, 7, 173}: "Pentacon GmbH Foto-und Feinwerktechnik", - [3]byte{0, 7, 174}: "Britestream Networks, Inc.", - [3]byte{0, 7, 175}: "N-TRON Corporation", - [3]byte{0, 7, 176}: "Office Details, Inc.", - [3]byte{0, 7, 177}: "Equator Technologies", - [3]byte{0, 7, 178}: "Transaccess S.A.", - [3]byte{0, 7, 179}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 180}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 181}: "Any One Wireless Ltd.", - [3]byte{0, 7, 182}: "Telecom Technology Ltd.", - [3]byte{0, 7, 183}: "Samurai Ind. Prods Eletronicos Ltda", - [3]byte{0, 7, 184}: "Corvalent Corporation", - [3]byte{0, 7, 185}: "Ginganet Corporation", - [3]byte{0, 7, 186}: "UTStarcom, Inc.", - [3]byte{0, 7, 187}: "Candera Inc.", - [3]byte{0, 7, 188}: "Identix Inc.", - [3]byte{0, 7, 189}: "Radionet Ltd.", - [3]byte{0, 7, 190}: "DataLogic SpA", - [3]byte{0, 7, 191}: "Armillaire Technologies, Inc.", - [3]byte{0, 7, 192}: "NetZerver Inc.", - [3]byte{0, 7, 193}: "Overture Networks, Inc.", - [3]byte{0, 7, 194}: "Netsys Telecom", - [3]byte{0, 7, 195}: "Thomson", - [3]byte{0, 7, 196}: "JEAN Co. Ltd.", - [3]byte{0, 7, 197}: "Gcom, Inc.", - [3]byte{0, 7, 198}: "VDS Vosskuhler GmbH", - [3]byte{0, 7, 199}: "Synectics Systems Limited", - [3]byte{0, 7, 200}: "Brain21, Inc.", - [3]byte{0, 7, 201}: "Technol Seven Co., Ltd.", - [3]byte{0, 7, 202}: "Creatix Polymedia Ges Fur Kommunikaitonssysteme", - [3]byte{0, 7, 203}: "Freebox SA", - [3]byte{0, 7, 204}: "Kaba Benzing GmbH", - [3]byte{0, 7, 205}: "Kumoh Electronic Co, Ltd", - [3]byte{0, 7, 206}: "Cabletime Limited", - [3]byte{0, 7, 207}: "Anoto AB", - [3]byte{0, 7, 208}: "Automat Engenharia de Automação Ltda.", - [3]byte{0, 7, 209}: "Spectrum Signal Processing Inc.", - [3]byte{0, 7, 210}: "Logopak Systeme GmbH & Co. KG", - [3]byte{0, 7, 211}: "SPGPrints B.V.", - [3]byte{0, 7, 212}: "Zhejiang Yutong Network Communication Co Ltd.", - [3]byte{0, 7, 213}: "3e Technologies Int;., Inc.", - [3]byte{0, 7, 214}: "Commil Ltd.", - [3]byte{0, 7, 215}: "Caporis Networks AG", - [3]byte{0, 7, 216}: "Hitron Systems Inc.", - [3]byte{0, 7, 217}: "Splicecom", - [3]byte{0, 7, 218}: "Neuro Telecom Co., Ltd.", - [3]byte{0, 7, 219}: "Kirana Networks, Inc.", - [3]byte{0, 7, 220}: "Atek Co, Ltd.", - [3]byte{0, 7, 221}: "Cradle Technologies", - [3]byte{0, 7, 222}: "eCopilt AB", - [3]byte{0, 7, 223}: "Vbrick Systems Inc.", - [3]byte{0, 7, 224}: "Palm Inc.", - [3]byte{0, 7, 225}: "WIS Communications Co. Ltd.", - [3]byte{0, 7, 226}: "Bitworks, Inc.", - [3]byte{0, 7, 227}: "Navcom Technology, Inc.", - [3]byte{0, 7, 228}: "SoftRadio Co., Ltd.", - [3]byte{0, 7, 229}: "Coup Corporation", - [3]byte{0, 7, 230}: "edgeflow Canada Inc.", - [3]byte{0, 7, 231}: "FreeWave Technologies", - [3]byte{0, 7, 232}: "EdgeWave", - [3]byte{0, 7, 233}: "Intel Corporation", - [3]byte{0, 7, 234}: "Massana, Inc.", - [3]byte{0, 7, 235}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 236}: "CISCO SYSTEMS, INC.", - [3]byte{0, 7, 237}: "Altera Corporation", - [3]byte{0, 7, 238}: "telco Informationssysteme GmbH", - [3]byte{0, 7, 239}: "Lockheed Martin Tactical Systems", - [3]byte{0, 7, 240}: "LogiSync LLC", - [3]byte{0, 7, 241}: "TeraBurst Networks Inc.", - [3]byte{0, 7, 242}: "IOA Corporation", - [3]byte{0, 7, 243}: "Thinkengine Networks", - [3]byte{0, 7, 244}: "Eletex Co., Ltd.", - [3]byte{0, 7, 245}: "Bridgeco Co AG", - [3]byte{0, 7, 246}: "Qqest Software Systems", - [3]byte{0, 7, 247}: "Galtronics", - [3]byte{0, 7, 248}: "ITDevices, Inc.", - [3]byte{0, 7, 249}: "Sensaphone", - [3]byte{0, 7, 250}: "ITT Co., Ltd.", - [3]byte{0, 7, 251}: "Giga Stream UMTS Technologies GmbH", - [3]byte{0, 7, 252}: "Adept Systems Inc.", - [3]byte{0, 7, 253}: "LANergy Ltd.", - [3]byte{0, 7, 254}: "Rigaku Corporation", - [3]byte{0, 7, 255}: "Gluon Networks", - [3]byte{0, 8, 0}: "MULTITECH SYSTEMS, INC.", - [3]byte{0, 8, 1}: "HighSpeed Surfing Inc.", - [3]byte{0, 8, 2}: "Hewlett-Packard Company", - [3]byte{0, 8, 3}: "Cos Tron", - [3]byte{0, 8, 4}: "ICA Inc.", - [3]byte{0, 8, 5}: "Techno-Holon Corporation", - [3]byte{0, 8, 6}: "Raonet Systems, Inc.", - [3]byte{0, 8, 7}: "Access Devices Limited", - [3]byte{0, 8, 8}: "PPT Vision, Inc.", - [3]byte{0, 8, 9}: "Systemonic AG", - [3]byte{0, 8, 10}: "Espera-Werke GmbH", - [3]byte{0, 8, 11}: "Birka BPA Informationssystem AB", - [3]byte{0, 8, 12}: "VDA Elettronica spa", - [3]byte{0, 8, 13}: "Toshiba", - [3]byte{0, 8, 14}: "ARRIS Group, Inc.", - [3]byte{0, 8, 15}: "Proximion Fiber Optics AB", - [3]byte{0, 8, 16}: "Key Technology, Inc.", - [3]byte{0, 8, 17}: "VOIX Corporation", - [3]byte{0, 8, 18}: "GM-2 Corporation", - [3]byte{0, 8, 19}: "Diskbank, Inc.", - [3]byte{0, 8, 20}: "TIL Technologies", - [3]byte{0, 8, 21}: "CATS Co., Ltd.", - [3]byte{0, 8, 22}: "Bluelon ApS", - [3]byte{0, 8, 23}: "EmergeCore Networks LLC", - [3]byte{0, 8, 24}: "Pixelworks, Inc.", - [3]byte{0, 8, 25}: "Banksys", - [3]byte{0, 8, 26}: "Sanrad Intelligence Storage Communications (2000) Ltd.", - [3]byte{0, 8, 27}: "Windigo Systems", - [3]byte{0, 8, 28}: "@pos.com", - [3]byte{0, 8, 29}: "Ipsil, Incorporated", - [3]byte{0, 8, 30}: "Repeatit AB", - [3]byte{0, 8, 31}: "Pou Yuen Tech Corp. Ltd.", - [3]byte{0, 8, 32}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 33}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 34}: "InPro Comm", - [3]byte{0, 8, 35}: "Texa Corp.", - [3]byte{0, 8, 36}: "Nuance Document Imaging", - [3]byte{0, 8, 37}: "Acme Packet", - [3]byte{0, 8, 38}: "Colorado Med Tech", - [3]byte{0, 8, 39}: "ADB Broadband Italia", - [3]byte{0, 8, 40}: "Koei Engineering Ltd.", - [3]byte{0, 8, 41}: "Aval Nagasaki Corporation", - [3]byte{0, 8, 42}: "Powerwallz Network Security", - [3]byte{0, 8, 43}: "Wooksung Electronics, Inc.", - [3]byte{0, 8, 44}: "Homag AG", - [3]byte{0, 8, 45}: "Indus Teqsite Private Limited", - [3]byte{0, 8, 46}: "Multitone Electronics PLC", - [3]byte{0, 8, 47}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 48}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 49}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 50}: "Cisco", - [3]byte{0, 8, 78}: "DivergeNet, Inc.", - [3]byte{0, 8, 79}: "Qualstar Corporation", - [3]byte{0, 8, 80}: "Arizona Instrument Corp.", - [3]byte{0, 8, 81}: "Canadian Bank Note Company, Ltd.", - [3]byte{0, 8, 82}: "Davolink Co. Inc.", - [3]byte{0, 8, 83}: "Schleicher GmbH & Co. Relaiswerke KG", - [3]byte{0, 8, 84}: "Netronix, Inc.", - [3]byte{0, 8, 85}: "NASA-Goddard Space Flight Center", - [3]byte{0, 8, 86}: "Gamatronic Electronic Industries Ltd.", - [3]byte{0, 8, 87}: "Polaris Networks, Inc.", - [3]byte{0, 8, 88}: "Novatechnology Inc.", - [3]byte{0, 8, 89}: "ShenZhen Unitone Electronics Co., Ltd.", - [3]byte{0, 8, 90}: "IntiGate Inc.", - [3]byte{0, 8, 91}: "Hanbit Electronics Co., Ltd.", - [3]byte{0, 8, 92}: "Shanghai Dare Technologies Co. Ltd.", - [3]byte{0, 8, 93}: "Aastra", - [3]byte{0, 8, 94}: "PCO AG", - [3]byte{0, 8, 95}: "Picanol N.V.", - [3]byte{0, 8, 96}: "LodgeNet Entertainment Corp.", - [3]byte{0, 8, 97}: "SoftEnergy Co., Ltd.", - [3]byte{0, 8, 98}: "NEC Eluminant Technologies, Inc.", - [3]byte{0, 8, 99}: "Entrisphere Inc.", - [3]byte{0, 8, 100}: "Fasy S.p.A.", - [3]byte{0, 8, 101}: "JASCOM CO., LTD", - [3]byte{0, 8, 102}: "DSX Access Systems, Inc.", - [3]byte{0, 8, 103}: "Uptime Devices", - [3]byte{0, 8, 104}: "PurOptix", - [3]byte{0, 8, 105}: "Command-e Technology Co.,Ltd.", - [3]byte{0, 8, 106}: "Securiton Gmbh", - [3]byte{0, 8, 107}: "MIPSYS", - [3]byte{0, 8, 108}: "Plasmon LMS", - [3]byte{0, 8, 109}: "Missouri FreeNet", - [3]byte{0, 8, 110}: "Hyglo AB", - [3]byte{0, 8, 111}: "Resources Computer Network Ltd.", - [3]byte{0, 8, 112}: "Rasvia Systems, Inc.", - [3]byte{0, 8, 113}: "NORTHDATA Co., Ltd.", - [3]byte{0, 8, 114}: "Sorenson Communications", - [3]byte{0, 8, 115}: "DapTechnology B.V.", - [3]byte{0, 8, 116}: "Dell Computer Corp.", - [3]byte{0, 8, 117}: "Acorp Electronics Corp.", - [3]byte{0, 8, 118}: "SDSystem", - [3]byte{0, 8, 119}: "Liebert-Hiross Spa", - [3]byte{0, 8, 120}: "Benchmark Storage Innovations", - [3]byte{0, 8, 121}: "CEM Corporation", - [3]byte{0, 8, 122}: "Wipotec GmbH", - [3]byte{0, 8, 123}: "RTX Telecom A/S", - [3]byte{0, 8, 124}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 125}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 126}: "Bon Electro-Telecom Inc.", - [3]byte{0, 8, 127}: "SPAUN electronic GmbH & Co. KG", - [3]byte{0, 8, 128}: "BroadTel Canada Communications inc.", - [3]byte{0, 8, 129}: "DIGITAL HANDS CO.,LTD.", - [3]byte{0, 8, 130}: "SIGMA CORPORATION", - [3]byte{0, 8, 131}: "Hewlett-Packard Company", - [3]byte{0, 8, 132}: "Index Braille AB", - [3]byte{0, 8, 133}: "EMS Dr. Thomas Wünsche", - [3]byte{0, 8, 134}: "Hansung Teliann, Inc.", - [3]byte{0, 8, 135}: "Maschinenfabrik Reinhausen GmbH", - [3]byte{0, 8, 136}: "OULLIM Information Technology Inc,.", - [3]byte{0, 8, 137}: "Echostar Technologies Corp", - [3]byte{0, 8, 138}: "Minds@Work", - [3]byte{0, 8, 139}: "Tropic Networks Inc.", - [3]byte{0, 8, 140}: "Quanta Network Systems Inc.", - [3]byte{0, 8, 141}: "Sigma-Links Inc.", - [3]byte{0, 8, 142}: "Nihon Computer Co., Ltd.", - [3]byte{0, 8, 143}: "ADVANCED DIGITAL TECHNOLOGY", - [3]byte{0, 8, 144}: "AVILINKS SA", - [3]byte{0, 8, 145}: "Lyan Inc.", - [3]byte{0, 8, 146}: "EM Solutions", - [3]byte{0, 8, 147}: "LE INFORMATION COMMUNICATION INC.", - [3]byte{0, 8, 148}: "InnoVISION Multimedia Ltd.", - [3]byte{0, 8, 149}: "DIRC Technologie GmbH & Co.KG", - [3]byte{0, 8, 150}: "Printronix, Inc.", - [3]byte{0, 8, 151}: "Quake Technologies", - [3]byte{0, 8, 152}: "Gigabit Optics Corporation", - [3]byte{0, 8, 153}: "Netbind, Inc.", - [3]byte{0, 8, 154}: "Alcatel Microelectronics", - [3]byte{0, 8, 155}: "ICP Electronics Inc.", - [3]byte{0, 8, 156}: "Elecs Industry Co., Ltd.", - [3]byte{0, 8, 157}: "UHD-Elektronik", - [3]byte{0, 8, 158}: "Beijing Enter-Net co.LTD", - [3]byte{0, 8, 159}: "EFM Networks", - [3]byte{0, 8, 160}: "Stotz Feinmesstechnik GmbH", - [3]byte{0, 8, 161}: "CNet Technology Inc.", - [3]byte{0, 8, 162}: "ADI Engineering, Inc.", - [3]byte{0, 8, 163}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 164}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 165}: "Peninsula Systems Inc.", - [3]byte{0, 8, 166}: "Multiware & Image Co., Ltd.", - [3]byte{0, 8, 167}: "iLogic Inc.", - [3]byte{0, 8, 168}: "Systec Co., Ltd.", - [3]byte{0, 8, 169}: "SangSang Technology, Inc.", - [3]byte{0, 8, 170}: "KARAM", - [3]byte{0, 8, 171}: "EnerLinx.com, Inc.", - [3]byte{0, 8, 172}: "Eltromat GmbH", - [3]byte{0, 8, 173}: "Toyo-Linx Co., Ltd.", - [3]byte{0, 8, 174}: "PacketFront Network Products AB", - [3]byte{0, 8, 175}: "Novatec Corporation", - [3]byte{0, 8, 176}: "BKtel communications GmbH", - [3]byte{0, 8, 177}: "ProQuent Systems", - [3]byte{0, 8, 178}: "SHENZHEN COMPASS TECHNOLOGY DEVELOPMENT CO.,LTD", - [3]byte{0, 8, 179}: "Fastwel", - [3]byte{0, 8, 180}: "SYSPOL", - [3]byte{0, 8, 181}: "TAI GUEN ENTERPRISE CO., LTD", - [3]byte{0, 8, 182}: "RouteFree, Inc.", - [3]byte{0, 8, 183}: "HIT Incorporated", - [3]byte{0, 8, 184}: "E.F. Johnson", - [3]byte{0, 8, 185}: "KAON MEDIA Co., Ltd.", - [3]byte{0, 8, 186}: "Erskine Systems Ltd", - [3]byte{0, 8, 187}: "NetExcell", - [3]byte{0, 8, 188}: "Ilevo AB", - [3]byte{0, 8, 189}: "TEPG-US", - [3]byte{0, 8, 190}: "XENPAK MSA Group", - [3]byte{0, 8, 191}: "Aptus Elektronik AB", - [3]byte{0, 8, 192}: "ASA SYSTEMS", - [3]byte{0, 8, 193}: "Avistar Communications Corporation", - [3]byte{0, 8, 194}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 195}: "Contex A/S", - [3]byte{0, 8, 196}: "Hikari Co.,Ltd.", - [3]byte{0, 8, 197}: "Liontech Co., Ltd.", - [3]byte{0, 8, 198}: "Philips Consumer Communications", - [3]byte{0, 8, 199}: "Hewlett-Packard Company", - [3]byte{0, 8, 200}: "Soneticom, Inc.", - [3]byte{0, 8, 201}: "TechniSat Digital GmbH", - [3]byte{0, 8, 202}: "TwinHan Technology Co.,Ltd", - [3]byte{0, 8, 203}: "Zeta Broadband Inc.", - [3]byte{0, 8, 204}: "Remotec, Inc.", - [3]byte{0, 8, 205}: "With-Net Inc", - [3]byte{0, 8, 206}: "IPMobileNet Inc.", - [3]byte{0, 8, 207}: "Nippon Koei Power Systems Co., Ltd.", - [3]byte{0, 8, 208}: "Musashi Engineering Co., LTD.", - [3]byte{0, 8, 209}: "KAREL INC.", - [3]byte{0, 8, 210}: "ZOOM Networks Inc.", - [3]byte{0, 8, 211}: "Hercules Technologies S.A.S.", - [3]byte{0, 8, 212}: "IneoQuest Technologies, Inc", - [3]byte{0, 8, 213}: "Vanguard Networks Solutions, LLC", - [3]byte{0, 8, 214}: "HASSNET Inc.", - [3]byte{0, 8, 215}: "HOW CORPORATION", - [3]byte{0, 8, 216}: "Dowkey Microwave", - [3]byte{0, 8, 217}: "Mitadenshi Co.,LTD", - [3]byte{0, 8, 218}: "SofaWare Technologies Ltd.", - [3]byte{0, 8, 219}: "Corrigent Systems", - [3]byte{0, 8, 220}: "Wiznet", - [3]byte{0, 8, 221}: "Telena Communications, Inc.", - [3]byte{0, 8, 222}: "3UP Systems", - [3]byte{0, 8, 223}: "Alistel Inc.", - [3]byte{0, 8, 224}: "ATO Technology Ltd.", - [3]byte{0, 8, 225}: "Barix AG", - [3]byte{0, 8, 226}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 227}: "CISCO SYSTEMS, INC.", - [3]byte{0, 8, 228}: "Envenergy Inc", - [3]byte{0, 8, 229}: "IDK Corporation", - [3]byte{0, 8, 230}: "Littlefeet", - [3]byte{0, 8, 231}: "SHI ControlSystems,Ltd.", - [3]byte{0, 8, 232}: "Excel Master Ltd.", - [3]byte{0, 8, 233}: "NextGig", - [3]byte{0, 8, 234}: "Motion Control Engineering, Inc", - [3]byte{0, 8, 235}: "ROMWin Co.,Ltd.", - [3]byte{0, 8, 236}: "Optical Zonu Corporation", - [3]byte{0, 8, 237}: "ST&T Instrument Corp.", - [3]byte{0, 8, 238}: "Logic Product Development", - [3]byte{0, 8, 239}: "DIBAL,S.A.", - [3]byte{0, 8, 240}: "Next Generation Systems, Inc.", - [3]byte{0, 8, 241}: "Voltaire", - [3]byte{0, 8, 242}: "C&S Technology", - [3]byte{0, 8, 243}: "WANY", - [3]byte{0, 8, 244}: "Bluetake Technology Co., Ltd.", - [3]byte{0, 8, 245}: "YESTECHNOLOGY Co.,Ltd.", - [3]byte{0, 8, 246}: "Sumitomo Electric System Solutions Co., Ltd.", - [3]byte{0, 8, 247}: "Hitachi Ltd, Semiconductor & Integrated Circuits Gr", - [3]byte{0, 8, 248}: "UTC CCS", - [3]byte{0, 8, 249}: "Artesyn Embedded Technologies", - [3]byte{0, 8, 250}: "Karl E.Brinkmann GmbH", - [3]byte{0, 8, 251}: "SonoSite, Inc.", - [3]byte{0, 8, 252}: "Gigaphoton Inc.", - [3]byte{0, 8, 253}: "BlueKorea Co., Ltd.", - [3]byte{0, 8, 254}: "UNIK C&C Co.,Ltd.", - [3]byte{0, 8, 255}: "Trilogy Communications Ltd", - [3]byte{0, 9, 0}: "TMT", - [3]byte{0, 9, 1}: "Shenzhen Shixuntong Information & Technoligy Co", - [3]byte{0, 9, 2}: "Redline Communications Inc.", - [3]byte{0, 9, 3}: "Panasas, Inc", - [3]byte{0, 9, 4}: "MONDIAL electronic", - [3]byte{0, 9, 5}: "iTEC Technologies Ltd.", - [3]byte{0, 9, 6}: "Esteem Networks", - [3]byte{0, 9, 7}: "Chrysalis Development", - [3]byte{0, 9, 8}: "VTech Technology Corp.", - [3]byte{0, 9, 9}: "Telenor Connect A/S", - [3]byte{0, 9, 10}: "SnedFar Technology Co., Ltd.", - [3]byte{0, 9, 11}: "MTL Instruments PLC", - [3]byte{0, 9, 12}: "Mayekawa Mfg. Co. Ltd.", - [3]byte{0, 9, 13}: "LEADER ELECTRONICS CORP.", - [3]byte{0, 9, 14}: "Helix Technology Inc.", - [3]byte{0, 9, 15}: "Fortinet Inc.", - [3]byte{0, 9, 16}: "Simple Access Inc.", - [3]byte{0, 9, 17}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 18}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 19}: "SystemK Corporation", - [3]byte{0, 9, 20}: "COMPUTROLS INC.", - [3]byte{0, 9, 21}: "CAS Corp.", - [3]byte{0, 9, 22}: "Listman Home Technologies, Inc.", - [3]byte{0, 9, 23}: "WEM Technology Inc", - [3]byte{0, 9, 24}: "SAMSUNG TECHWIN CO.,LTD", - [3]byte{0, 9, 25}: "MDS Gateways", - [3]byte{0, 9, 26}: "Macat Optics & Electronics Co., Ltd.", - [3]byte{0, 9, 27}: "Digital Generation Inc.", - [3]byte{0, 9, 28}: "CacheVision, Inc", - [3]byte{0, 9, 29}: "Proteam Computer Corporation", - [3]byte{0, 9, 30}: "Firstech Technology Corp.", - [3]byte{0, 9, 31}: "A&D Co., Ltd.", - [3]byte{0, 9, 32}: "EpoX COMPUTER CO.,LTD.", - [3]byte{0, 9, 33}: "Planmeca Oy", - [3]byte{0, 9, 34}: "TST Biometrics GmbH", - [3]byte{0, 9, 35}: "Heaman System Co., Ltd", - [3]byte{0, 9, 36}: "Telebau GmbH", - [3]byte{0, 9, 37}: "VSN Systemen BV", - [3]byte{0, 9, 38}: "YODA COMMUNICATIONS, INC.", - [3]byte{0, 9, 39}: "TOYOKEIKI CO.,LTD.", - [3]byte{0, 9, 40}: "Telecore", - [3]byte{0, 9, 41}: "Sanyo Industries (UK) Limited", - [3]byte{0, 9, 42}: "MYTECS Co.,Ltd.", - [3]byte{0, 9, 43}: "iQstor Networks, Inc.", - [3]byte{0, 9, 44}: "Hitpoint Inc.", - [3]byte{0, 9, 45}: "HTC Corporation", - [3]byte{0, 9, 46}: "B&Tech System Inc.", - [3]byte{0, 9, 47}: "Akom Technology Corporation", - [3]byte{0, 9, 48}: "AeroConcierge Inc.", - [3]byte{0, 9, 49}: "Future Internet, Inc.", - [3]byte{0, 9, 50}: "Omnilux", - [3]byte{0, 9, 51}: "Ophit Co.Ltd.", - [3]byte{0, 9, 52}: "Dream-Multimedia-Tv GmbH", - [3]byte{0, 9, 53}: "Sandvine Incorporated", - [3]byte{0, 9, 54}: "Ipetronik GmbH & Co. KG", - [3]byte{0, 9, 55}: "Inventec Appliance Corp", - [3]byte{0, 9, 56}: "Allot Communications", - [3]byte{0, 9, 57}: "ShibaSoku Co.,Ltd.", - [3]byte{0, 9, 58}: "Molex Fiber Optics", - [3]byte{0, 9, 59}: "HYUNDAI NETWORKS INC.", - [3]byte{0, 9, 60}: "Jacques Technologies P/L", - [3]byte{0, 9, 61}: "Newisys,Inc.", - [3]byte{0, 9, 62}: "C&I Technologies", - [3]byte{0, 9, 63}: "Double-Win Enterpirse CO., LTD", - [3]byte{0, 9, 64}: "AGFEO GmbH & Co. KG", - [3]byte{0, 9, 65}: "Allied Telesis K.K.", - [3]byte{0, 9, 66}: "Wireless Technologies, Inc", - [3]byte{0, 9, 67}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 68}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 69}: "Palmmicro Communications Inc", - [3]byte{0, 9, 70}: "Cluster Labs GmbH", - [3]byte{0, 9, 71}: "Aztek, Inc.", - [3]byte{0, 9, 72}: "Vista Control Systems, Corp.", - [3]byte{0, 9, 73}: "Glyph Technologies Inc.", - [3]byte{0, 9, 74}: "Homenet Communications", - [3]byte{0, 9, 75}: "FillFactory NV", - [3]byte{0, 9, 76}: "Communication Weaver Co.,Ltd.", - [3]byte{0, 9, 77}: "Braintree Communications Pty Ltd", - [3]byte{0, 9, 78}: "BARTECH SYSTEMS INTERNATIONAL, INC", - [3]byte{0, 9, 79}: "elmegt GmbH & Co. KG", - [3]byte{0, 9, 80}: "Independent Storage Corporation", - [3]byte{0, 9, 81}: "Apogee Imaging Systems", - [3]byte{0, 9, 82}: "Auerswald GmbH & Co. KG", - [3]byte{0, 9, 83}: "Linkage System Integration Co.Ltd.", - [3]byte{0, 9, 84}: "AMiT spol. s. r. o.", - [3]byte{0, 9, 85}: "Young Generation International Corp.", - [3]byte{0, 9, 86}: "Network Systems Group, Ltd. (NSG)", - [3]byte{0, 9, 87}: "Supercaller, Inc.", - [3]byte{0, 9, 88}: "INTELNET S.A.", - [3]byte{0, 9, 89}: "Sitecsoft", - [3]byte{0, 9, 90}: "RACEWOOD TECHNOLOGY", - [3]byte{0, 9, 91}: "Netgear, Inc.", - [3]byte{0, 9, 92}: "Philips Medical Systems - Cardiac and Monitoring Systems (CM", - [3]byte{0, 9, 93}: "Dialogue Technology Corp.", - [3]byte{0, 9, 94}: "Masstech Group Inc.", - [3]byte{0, 9, 95}: "Telebyte, Inc.", - [3]byte{0, 9, 96}: "YOZAN Inc.", - [3]byte{0, 9, 97}: "Switchgear and Instrumentation Ltd", - [3]byte{0, 9, 98}: "Sonitor Technologies AS", - [3]byte{0, 9, 99}: "Dominion Lasercom Inc.", - [3]byte{0, 9, 100}: "Hi-Techniques, Inc.", - [3]byte{0, 9, 101}: "HyunJu Computer Co., Ltd.", - [3]byte{0, 9, 102}: "Thales Navigation", - [3]byte{0, 9, 103}: "Tachyon, Inc", - [3]byte{0, 9, 104}: "TECHNOVENTURE, INC.", - [3]byte{0, 9, 105}: "Meret Optical Communications", - [3]byte{0, 9, 106}: "Cloverleaf Communications Inc.", - [3]byte{0, 9, 107}: "IBM Corp", - [3]byte{0, 9, 108}: "Imedia Semiconductor Corp.", - [3]byte{0, 9, 109}: "Powernet Technologies Corp.", - [3]byte{0, 9, 110}: "GIANT ELECTRONICS LTD.", - [3]byte{0, 9, 111}: "Beijing Zhongqing Elegant Tech. Corp.,Limited", - [3]byte{0, 9, 112}: "Vibration Research Corporation", - [3]byte{0, 9, 113}: "Time Management, Inc.", - [3]byte{0, 9, 114}: "Securebase,Inc", - [3]byte{0, 9, 115}: "Lenten Technology Co., Ltd.", - [3]byte{0, 9, 116}: "Innopia Technologies, Inc.", - [3]byte{0, 9, 117}: "fSONA Communications Corporation", - [3]byte{0, 9, 118}: "Datasoft ISDN Systems GmbH", - [3]byte{0, 9, 119}: "Brunner Elektronik AG", - [3]byte{0, 9, 120}: "AIJI System Co., Ltd.", - [3]byte{0, 9, 121}: "Advanced Television Systems Committee, Inc.", - [3]byte{0, 9, 122}: "Louis Design Labs.", - [3]byte{0, 9, 123}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 124}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 125}: "SecWell Networks Oy", - [3]byte{0, 9, 126}: "IMI TECHNOLOGY CO., LTD", - [3]byte{0, 9, 127}: "Vsecure 2000 LTD.", - [3]byte{0, 9, 128}: "Power Zenith Inc.", - [3]byte{0, 9, 129}: "Newport Networks", - [3]byte{0, 9, 130}: "Loewe Opta GmbH", - [3]byte{0, 9, 131}: "GlobalTop Technology, Inc.", - [3]byte{0, 9, 132}: "MyCasa Network Inc.", - [3]byte{0, 9, 133}: "Auto Telecom Company", - [3]byte{0, 9, 134}: "Metalink LTD.", - [3]byte{0, 9, 135}: "NISHI NIPPON ELECTRIC WIRE & CABLE CO.,LTD.", - [3]byte{0, 9, 136}: "Nudian Electron Co., Ltd.", - [3]byte{0, 9, 137}: "VividLogic Inc.", - [3]byte{0, 9, 138}: "EqualLogic Inc", - [3]byte{0, 9, 139}: "Entropic Communications, Inc.", - [3]byte{0, 9, 140}: "Option Wireless Sweden", - [3]byte{0, 9, 141}: "Velocity Semiconductor", - [3]byte{0, 9, 142}: "ipcas GmbH", - [3]byte{0, 9, 143}: "Cetacean Networks", - [3]byte{0, 9, 144}: "ACKSYS Communications & systems", - [3]byte{0, 9, 145}: "GE Fanuc Automation Manufacturing, Inc.", - [3]byte{0, 9, 146}: "InterEpoch Technology,INC.", - [3]byte{0, 9, 147}: "Visteon Corporation", - [3]byte{0, 9, 148}: "Cronyx Engineering", - [3]byte{0, 9, 149}: "Castle Technology Ltd", - [3]byte{0, 9, 150}: "RDI", - [3]byte{0, 9, 151}: "Nortel Networks", - [3]byte{0, 9, 152}: "Capinfo Company Limited", - [3]byte{0, 9, 153}: "CP GEORGES RENAULT", - [3]byte{0, 9, 154}: "ELMO COMPANY, LIMITED", - [3]byte{0, 9, 155}: "Western Telematic Inc.", - [3]byte{0, 9, 156}: "Naval Research Laboratory", - [3]byte{0, 9, 157}: "Haliplex Communications", - [3]byte{0, 9, 158}: "Testech, Inc.", - [3]byte{0, 9, 159}: "VIDEX INC.", - [3]byte{0, 9, 160}: "Microtechno Corporation", - [3]byte{0, 9, 161}: "Telewise Communications, Inc.", - [3]byte{0, 9, 162}: "Interface Co., Ltd.", - [3]byte{0, 9, 163}: "Leadfly Techologies Corp. Ltd.", - [3]byte{0, 9, 164}: "HARTEC Corporation", - [3]byte{0, 9, 165}: "HANSUNG ELETRONIC INDUSTRIES DEVELOPMENT CO., LTD", - [3]byte{0, 9, 166}: "Ignis Optics, Inc.", - [3]byte{0, 9, 167}: "Bang & Olufsen A/S", - [3]byte{0, 9, 168}: "Eastmode Pte Ltd", - [3]byte{0, 9, 169}: "Ikanos Communications", - [3]byte{0, 9, 170}: "Data Comm for Business, Inc.", - [3]byte{0, 9, 171}: "Netcontrol Oy", - [3]byte{0, 9, 172}: "LANVOICE", - [3]byte{0, 9, 173}: "HYUNDAI SYSCOMM, INC.", - [3]byte{0, 9, 174}: "OKANO ELECTRIC CO.,LTD", - [3]byte{0, 9, 175}: "e-generis", - [3]byte{0, 9, 176}: "Onkyo Corporation", - [3]byte{0, 9, 177}: "Kanematsu Electronics, Ltd.", - [3]byte{0, 9, 178}: "L&F Inc.", - [3]byte{0, 9, 179}: "MCM Systems Ltd", - [3]byte{0, 9, 180}: "KISAN TELECOM CO., LTD.", - [3]byte{0, 9, 181}: "3J Tech. Co., Ltd.", - [3]byte{0, 9, 182}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 183}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 184}: "Entise Systems", - [3]byte{0, 9, 185}: "Action Imaging Solutions", - [3]byte{0, 9, 186}: "MAKU Informationstechik GmbH", - [3]byte{0, 9, 187}: "MathStar, Inc.", - [3]byte{0, 9, 188}: "Digital Safety Technologies, Inc", - [3]byte{0, 9, 189}: "Epygi Technologies, Ltd.", - [3]byte{0, 9, 190}: "Mamiya-OP Co.,Ltd.", - [3]byte{0, 9, 191}: "Nintendo Co., Ltd.", - [3]byte{0, 9, 192}: "6WIND", - [3]byte{0, 9, 193}: "PROCES-DATA A/S", - [3]byte{0, 9, 194}: "Onity, Inc.", - [3]byte{0, 9, 195}: "NETAS", - [3]byte{0, 9, 196}: "Medicore Co., Ltd", - [3]byte{0, 9, 197}: "KINGENE Technology Corporation", - [3]byte{0, 9, 198}: "Visionics Corporation", - [3]byte{0, 9, 199}: "Movistec", - [3]byte{0, 9, 200}: "SINAGAWA TSUSHIN KEISOU SERVICE", - [3]byte{0, 9, 201}: "BlueWINC Co., Ltd.", - [3]byte{0, 9, 202}: "iMaxNetworks(Shenzhen)Limited.", - [3]byte{0, 9, 203}: "HBrain", - [3]byte{0, 9, 204}: "Moog GmbH", - [3]byte{0, 9, 205}: "HUDSON SOFT CO.,LTD.", - [3]byte{0, 9, 206}: "SpaceBridge Semiconductor Corp.", - [3]byte{0, 9, 207}: "iAd GmbH", - [3]byte{0, 9, 208}: "Solacom Technologies Inc.", - [3]byte{0, 9, 209}: "SERANOA NETWORKS INC", - [3]byte{0, 9, 210}: "Mai Logic Inc.", - [3]byte{0, 9, 211}: "Western DataCom Co., Inc.", - [3]byte{0, 9, 212}: "Transtech Networks", - [3]byte{0, 9, 213}: "Signal Communication, Inc.", - [3]byte{0, 9, 214}: "KNC One GmbH", - [3]byte{0, 9, 215}: "DC Security Products", - [3]byte{0, 9, 216}: "Fält Communications AB", - [3]byte{0, 9, 217}: "Neoscale Systems, Inc", - [3]byte{0, 9, 218}: "Control Module Inc.", - [3]byte{0, 9, 219}: "eSpace", - [3]byte{0, 9, 220}: "Galaxis Technology AG", - [3]byte{0, 9, 221}: "Mavin Technology Inc.", - [3]byte{0, 9, 222}: "Samjin Information & Communications Co., Ltd.", - [3]byte{0, 9, 223}: "Vestel Komunikasyon Sanayi ve Ticaret A.S.", - [3]byte{0, 9, 224}: "XEMICS S.A.", - [3]byte{0, 9, 225}: "Gemtek Technology Co., Ltd.", - [3]byte{0, 9, 226}: "Sinbon Electronics Co., Ltd.", - [3]byte{0, 9, 227}: "Angel Iglesias S.A.", - [3]byte{0, 9, 228}: "K Tech Infosystem Inc.", - [3]byte{0, 9, 229}: "Hottinger Baldwin Messtechnik GmbH", - [3]byte{0, 9, 230}: "Cyber Switching Inc.", - [3]byte{0, 9, 231}: "ADC Techonology", - [3]byte{0, 9, 232}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 233}: "CISCO SYSTEMS, INC.", - [3]byte{0, 9, 234}: "YEM Inc.", - [3]byte{0, 9, 235}: "HuMANDATA LTD.", - [3]byte{0, 9, 236}: "Daktronics, Inc.", - [3]byte{0, 9, 237}: "CipherOptics", - [3]byte{0, 9, 238}: "MEIKYO ELECTRIC CO.,LTD", - [3]byte{0, 9, 239}: "Vocera Communications", - [3]byte{0, 9, 240}: "Shimizu Technology Inc.", - [3]byte{0, 9, 241}: "Yamaki Electric Corporation", - [3]byte{0, 9, 242}: "Cohu, Inc., Electronics Division", - [3]byte{0, 9, 243}: "WELL Communication Corp.", - [3]byte{0, 9, 244}: "Alcon Laboratories, Inc.", - [3]byte{0, 9, 245}: "Emerson Network Power Co.,Ltd", - [3]byte{0, 9, 246}: "Shenzhen Eastern Digital Tech Ltd.", - [3]byte{0, 9, 247}: "SED, a division of Calian", - [3]byte{0, 9, 248}: "UNIMO TECHNOLOGY CO., LTD.", - [3]byte{0, 9, 249}: "ART JAPAN CO., LTD.", - [3]byte{0, 9, 251}: "Philips Patient Monitoring", - [3]byte{0, 9, 252}: "IPFLEX Inc.", - [3]byte{0, 9, 253}: "Ubinetics Limited", - [3]byte{0, 9, 254}: "Daisy Technologies, Inc.", - [3]byte{0, 9, 255}: "X.net 2000 GmbH", - [3]byte{0, 10, 0}: "Mediatek Corp.", - [3]byte{0, 10, 1}: "SOHOware, Inc.", - [3]byte{0, 10, 2}: "ANNSO CO., LTD.", - [3]byte{0, 10, 3}: "ENDESA SERVICIOS, S.L.", - [3]byte{0, 10, 4}: "3Com Ltd", - [3]byte{0, 10, 5}: "Widax Corp.", - [3]byte{0, 10, 6}: "Teledex LLC", - [3]byte{0, 10, 7}: "WebWayOne Ltd", - [3]byte{0, 10, 8}: "ALPINE ELECTRONICS, INC.", - [3]byte{0, 10, 9}: "TaraCom Integrated Products, Inc.", - [3]byte{0, 10, 10}: "SUNIX Co., Ltd.", - [3]byte{0, 10, 11}: "Sealevel Systems, Inc.", - [3]byte{0, 10, 12}: "Scientific Research Corporation", - [3]byte{0, 10, 13}: "FCI Deutschland GmbH", - [3]byte{0, 10, 14}: "Invivo Research Inc.", - [3]byte{0, 10, 15}: "Ilryung Telesys, Inc", - [3]byte{0, 10, 16}: "FAST media integrations AG", - [3]byte{0, 10, 17}: "ExPet Technologies, Inc", - [3]byte{0, 10, 18}: "Azylex Technology, Inc", - [3]byte{0, 10, 19}: "Honeywell Video Systems", - [3]byte{0, 10, 20}: "TECO a.s.", - [3]byte{0, 10, 21}: "Silicon Data, Inc", - [3]byte{0, 10, 22}: "Lassen Research", - [3]byte{0, 10, 23}: "NESTAR COMMUNICATIONS, INC", - [3]byte{0, 10, 24}: "Vichel Inc.", - [3]byte{0, 10, 25}: "Valere Power, Inc.", - [3]byte{0, 10, 26}: "Imerge Ltd", - [3]byte{0, 10, 27}: "Stream Labs", - [3]byte{0, 10, 28}: "Bridge Information Co., Ltd.", - [3]byte{0, 10, 29}: "Optical Communications Products Inc.", - [3]byte{0, 10, 30}: "Red-M Products Limited", - [3]byte{0, 10, 31}: "ART WARE Telecommunication Co., Ltd.", - [3]byte{0, 10, 32}: "SVA Networks, Inc.", - [3]byte{0, 10, 33}: "Integra Telecom Co. Ltd", - [3]byte{0, 10, 34}: "Amperion Inc", - [3]byte{0, 10, 35}: "Parama Networks Inc", - [3]byte{0, 10, 36}: "Octave Communications", - [3]byte{0, 10, 37}: "CERAGON NETWORKS", - [3]byte{0, 10, 38}: "CEIA S.p.A.", - [3]byte{0, 10, 39}: "Apple", - [3]byte{0, 10, 40}: "Motorola", - [3]byte{0, 10, 41}: "Pan Dacom Networking AG", - [3]byte{0, 10, 42}: "QSI Systems Inc.", - [3]byte{0, 10, 43}: "Etherstuff", - [3]byte{0, 10, 44}: "Active Tchnology Corporation", - [3]byte{0, 10, 45}: "Cabot Communications Limited", - [3]byte{0, 10, 46}: "MAPLE NETWORKS CO., LTD", - [3]byte{0, 10, 47}: "Artnix Inc.", - [3]byte{0, 10, 48}: "Visteon Corporation", - [3]byte{0, 10, 49}: "HCV Consulting", - [3]byte{0, 10, 50}: "Xsido Corporation", - [3]byte{0, 10, 51}: "Emulex Corporation", - [3]byte{0, 10, 52}: "Identicard Systems Incorporated", - [3]byte{0, 10, 53}: "Xilinx", - [3]byte{0, 10, 54}: "Synelec Telecom Multimedia", - [3]byte{0, 10, 55}: "Procera Networks, Inc.", - [3]byte{0, 10, 56}: "Apani Networks", - [3]byte{0, 10, 57}: "LoPA Information Technology", - [3]byte{0, 10, 58}: "J-THREE INTERNATIONAL Holding Co., Ltd.", - [3]byte{0, 10, 59}: "GCT Semiconductor, Inc", - [3]byte{0, 10, 60}: "Enerpoint Ltd.", - [3]byte{0, 10, 61}: "Elo Sistemas Eletronicos S.A.", - [3]byte{0, 10, 62}: "EADS Telecom", - [3]byte{0, 10, 63}: "Data East Corporation", - [3]byte{0, 10, 64}: "Crown Audio -- Harmanm International", - [3]byte{0, 10, 65}: "CISCO SYSTEMS, INC.", - [3]byte{0, 10, 66}: "CISCO SYSTEMS, INC.", - [3]byte{0, 10, 67}: "Chunghwa Telecom Co., Ltd.", - [3]byte{0, 10, 68}: "Avery Dennison Deutschland GmbH", - [3]byte{0, 10, 69}: "Audio-Technica Corp.", - [3]byte{0, 10, 70}: "ARO WELDING TECHNOLOGIES SAS", - [3]byte{0, 10, 71}: "Allied Vision Technologies", - [3]byte{0, 10, 72}: "Albatron Technology", - [3]byte{0, 10, 73}: "F5 Networks, Inc.", - [3]byte{0, 10, 74}: "Targa Systems Ltd.", - [3]byte{0, 10, 75}: "DataPower Technology, Inc.", - [3]byte{0, 10, 76}: "Molecular Devices Corporation", - [3]byte{0, 10, 77}: "Noritz Corporation", - [3]byte{0, 10, 78}: "UNITEK Electronics INC.", - [3]byte{0, 10, 79}: "Brain Boxes Limited", - [3]byte{0, 10, 80}: "REMOTEK CORPORATION", - [3]byte{0, 10, 81}: "GyroSignal Technology Co., Ltd.", - [3]byte{0, 10, 82}: "AsiaRF Ltd.", - [3]byte{0, 10, 83}: "Intronics, Incorporated", - [3]byte{0, 10, 84}: "Laguna Hills, Inc.", - [3]byte{0, 10, 85}: "MARKEM Corporation", - [3]byte{0, 10, 86}: "HITACHI Maxell Ltd.", - [3]byte{0, 10, 87}: "Hewlett-Packard Company - Standards", - [3]byte{0, 10, 88}: "Freyer & Siegel Elektronik GmbH & Co. KG", - [3]byte{0, 10, 89}: "HW server", - [3]byte{0, 10, 90}: "GreenNET Technologies Co.,Ltd.", - [3]byte{0, 10, 91}: "Power-One as", - [3]byte{0, 10, 92}: "Carel s.p.a.", - [3]byte{0, 10, 93}: "FingerTec Worldwide Sdn Bhd", - [3]byte{0, 10, 94}: "3COM Corporation", - [3]byte{0, 10, 95}: "almedio inc.", - [3]byte{0, 10, 96}: "Autostar Technology Pte Ltd", - [3]byte{0, 10, 97}: "Cellinx Systems Inc.", - [3]byte{0, 10, 98}: "Crinis Networks, Inc.", - [3]byte{0, 10, 99}: "DHD GmbH", - [3]byte{0, 10, 100}: "Eracom Technologies", - [3]byte{0, 10, 101}: "GentechMedia.co.,ltd.", - [3]byte{0, 10, 102}: "MITSUBISHI ELECTRIC SYSTEM & SERVICE CO.,LTD.", - [3]byte{0, 10, 103}: "OngCorp", - [3]byte{0, 10, 104}: "SolarFlare Communications, Inc.", - [3]byte{0, 10, 105}: "SUNNY bell Technology Co., Ltd.", - [3]byte{0, 10, 106}: "SVM Microwaves s.r.o.", - [3]byte{0, 10, 107}: "Tadiran Telecom Business Systems LTD", - [3]byte{0, 10, 108}: "Walchem Corporation", - [3]byte{0, 10, 109}: "EKS Elektronikservice GmbH", - [3]byte{0, 10, 110}: "Harmonic, Inc", - [3]byte{0, 10, 111}: "ZyFLEX Technologies Inc", - [3]byte{0, 10, 112}: "MPLS Forum", - [3]byte{0, 10, 113}: "Avrio Technologies, Inc", - [3]byte{0, 10, 114}: "STEC, INC.", - [3]byte{0, 10, 115}: "Scientific Atlanta", - [3]byte{0, 10, 116}: "Manticom Networks Inc.", - [3]byte{0, 10, 117}: "Caterpillar, Inc", - [3]byte{0, 10, 118}: "Beida Jade Bird Huaguang Technology Co.,Ltd", - [3]byte{0, 10, 119}: "Bluewire Technologies LLC", - [3]byte{0, 10, 120}: "OLITEC", - [3]byte{0, 10, 121}: "corega K.K", - [3]byte{0, 10, 122}: "Kyoritsu Electric Co., Ltd.", - [3]byte{0, 10, 123}: "Cornelius Consult", - [3]byte{0, 10, 124}: "Tecton Ltd", - [3]byte{0, 10, 125}: "Valo, Inc.", - [3]byte{0, 10, 126}: "The Advantage Group", - [3]byte{0, 10, 127}: "Teradon Industries, Inc", - [3]byte{0, 10, 128}: "Telkonet Inc.", - [3]byte{0, 10, 129}: "TEIMA Audiotex S.L.", - [3]byte{0, 10, 130}: "TATSUTA SYSTEM ELECTRONICS CO.,LTD.", - [3]byte{0, 10, 131}: "SALTO SYSTEMS S.L.", - [3]byte{0, 10, 132}: "Rainsun Enterprise Co., Ltd.", - [3]byte{0, 10, 133}: "PLAT'C2,Inc", - [3]byte{0, 10, 134}: "Lenze", - [3]byte{0, 10, 135}: "Integrated Micromachines Inc.", - [3]byte{0, 10, 136}: "InCypher S.A.", - [3]byte{0, 10, 137}: "Creval Systems, Inc.", - [3]byte{0, 10, 138}: "CISCO SYSTEMS, INC.", - [3]byte{0, 10, 139}: "CISCO SYSTEMS, INC.", - [3]byte{0, 10, 140}: "Guardware Systems Ltd.", - [3]byte{0, 10, 141}: "EUROTHERM LIMITED", - [3]byte{0, 10, 142}: "Invacom Ltd", - [3]byte{0, 10, 143}: "Aska International Inc.", - [3]byte{0, 10, 144}: "Bayside Interactive, Inc.", - [3]byte{0, 10, 145}: "HemoCue AB", - [3]byte{0, 10, 146}: "Presonus Corporation", - [3]byte{0, 10, 147}: "W2 Networks, Inc.", - [3]byte{0, 10, 148}: "ShangHai cellink CO., LTD", - [3]byte{0, 10, 149}: "Apple", - [3]byte{0, 10, 150}: "MEWTEL TECHNOLOGY INC.", - [3]byte{0, 10, 151}: "SONICblue, Inc.", - [3]byte{0, 10, 152}: "M+F Gwinner GmbH & Co", - [3]byte{0, 10, 153}: "Calamp Wireless Networks Inc", - [3]byte{0, 10, 154}: "Aiptek International Inc", - [3]byte{0, 10, 155}: "TB Group Inc", - [3]byte{0, 10, 156}: "Server Technology, Inc.", - [3]byte{0, 10, 157}: "King Young Technology Co. Ltd.", - [3]byte{0, 10, 158}: "BroadWeb Corportation", - [3]byte{0, 10, 159}: "Pannaway Technologies, Inc.", - [3]byte{0, 10, 160}: "Cedar Point Communications", - [3]byte{0, 10, 161}: "V V S Limited", - [3]byte{0, 10, 162}: "SYSTEK INC.", - [3]byte{0, 10, 163}: "SHIMAFUJI ELECTRIC CO.,LTD.", - [3]byte{0, 10, 164}: "SHANGHAI SURVEILLANCE TECHNOLOGY CO,LTD", - [3]byte{0, 10, 165}: "MAXLINK INDUSTRIES LIMITED", - [3]byte{0, 10, 166}: "Hochiki Corporation", - [3]byte{0, 10, 167}: "FEI Electron Optics", - [3]byte{0, 10, 168}: "ePipe Pty. Ltd.", - [3]byte{0, 10, 169}: "Brooks Automation GmbH", - [3]byte{0, 10, 170}: "AltiGen Communications Inc.", - [3]byte{0, 10, 171}: "Toyota Technical Development Corporation", - [3]byte{0, 10, 172}: "TerraTec Electronic GmbH", - [3]byte{0, 10, 173}: "Stargames Corporation", - [3]byte{0, 10, 174}: "Rosemount Process Analytical", - [3]byte{0, 10, 175}: "Pipal Systems", - [3]byte{0, 10, 176}: "LOYTEC electronics GmbH", - [3]byte{0, 10, 177}: "GENETEC Corporation", - [3]byte{0, 10, 178}: "Fresnel Wireless Systems", - [3]byte{0, 10, 179}: "Fa. GIRA", - [3]byte{0, 10, 180}: "ETIC Telecommunications", - [3]byte{0, 10, 181}: "Digital Electronic Network", - [3]byte{0, 10, 182}: "COMPUNETIX, INC", - [3]byte{0, 10, 183}: "CISCO SYSTEMS, INC.", - [3]byte{0, 10, 184}: "CISCO SYSTEMS, INC.", - [3]byte{0, 10, 185}: "Astera Technologies Corp.", - [3]byte{0, 10, 186}: "Arcon Technology Limited", - [3]byte{0, 10, 187}: "Taiwan Secom Co,. Ltd", - [3]byte{0, 10, 188}: "Seabridge Ltd.", - [3]byte{0, 10, 189}: "Rupprecht & Patashnick Co.", - [3]byte{0, 10, 190}: "OPNET Technologies CO., LTD.", - [3]byte{0, 10, 191}: "HIROTA SS", - [3]byte{0, 10, 192}: "Fuyoh Video Industry CO., LTD.", - [3]byte{0, 10, 193}: "Futuretel", - [3]byte{0, 10, 194}: "FiberHome Telecommunication Technologies CO.,LTD", - [3]byte{0, 10, 195}: "eM Technics Co., Ltd.", - [3]byte{0, 10, 196}: "Daewoo Teletech Co., Ltd", - [3]byte{0, 10, 197}: "Color Kinetics", - [3]byte{0, 10, 198}: "Overture Networks.", - [3]byte{0, 10, 199}: "Unication Group", - [3]byte{0, 10, 200}: "ZPSYS CO.,LTD. (Planning&Management)", - [3]byte{0, 10, 201}: "Zambeel Inc", - [3]byte{0, 10, 202}: "YOKOYAMA SHOKAI CO.,Ltd.", - [3]byte{0, 10, 203}: "XPAK MSA Group", - [3]byte{0, 10, 204}: "Winnow Networks, Inc.", - [3]byte{0, 10, 205}: "Sunrich Technology Limited", - [3]byte{0, 10, 206}: "RADIANTECH, INC.", - [3]byte{0, 10, 207}: "PROVIDEO Multimedia Co. Ltd.", - [3]byte{0, 10, 208}: "Niigata Develoment Center, F.I.T. Co., Ltd.", - [3]byte{0, 10, 209}: "MWS", - [3]byte{0, 10, 210}: "JEPICO Corporation", - [3]byte{0, 10, 211}: "INITECH Co., Ltd", - [3]byte{0, 10, 212}: "CoreBell Systems Inc.", - [3]byte{0, 10, 213}: "Brainchild Electronic Co., Ltd.", - [3]byte{0, 10, 214}: "BeamReach Networks", - [3]byte{0, 10, 215}: "Origin ELECTRIC CO.,LTD.", - [3]byte{0, 10, 216}: "IPCserv Technology Corp.", - [3]byte{0, 10, 217}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 10, 218}: "Vindicator Technologies", - [3]byte{0, 10, 219}: "SkyPilot Network, Inc", - [3]byte{0, 10, 220}: "RuggedCom Inc.", - [3]byte{0, 10, 221}: "Allworx Corp.", - [3]byte{0, 10, 222}: "Happy Communication Co., Ltd.", - [3]byte{0, 10, 223}: "Gennum Corporation", - [3]byte{0, 10, 224}: "Fujitsu Softek", - [3]byte{0, 10, 225}: "EG Technology", - [3]byte{0, 10, 226}: "Binatone Electronics International, Ltd", - [3]byte{0, 10, 227}: "YANG MEI TECHNOLOGY CO., LTD", - [3]byte{0, 10, 228}: "Wistron Corp.", - [3]byte{0, 10, 229}: "ScottCare Corporation", - [3]byte{0, 10, 230}: "Elitegroup Computer System Co. (ECS)", - [3]byte{0, 10, 231}: "ELIOP S.A.", - [3]byte{0, 10, 232}: "Cathay Roxus Information Technology Co. LTD", - [3]byte{0, 10, 233}: "AirVast Technology Inc.", - [3]byte{0, 10, 234}: "ADAM ELEKTRONIK LTD. ÅžTI", - [3]byte{0, 10, 235}: "Shenzhen Tp-Link Technology Co; Ltd.", - [3]byte{0, 10, 236}: "Koatsu Gas Kogyo Co., Ltd.", - [3]byte{0, 10, 237}: "HARTING Systems GmbH & Co KG", - [3]byte{0, 10, 238}: "GCD Hard- & Software GmbH", - [3]byte{0, 10, 239}: "OTRUM ASA", - [3]byte{0, 10, 240}: "SHIN-OH ELECTRONICS CO., LTD. R&D", - [3]byte{0, 10, 241}: "Clarity Design, Inc.", - [3]byte{0, 10, 242}: "NeoAxiom Corp.", - [3]byte{0, 10, 243}: "CISCO SYSTEMS, INC.", - [3]byte{0, 10, 244}: "CISCO SYSTEMS, INC.", - [3]byte{0, 10, 245}: "Airgo Networks, Inc.", - [3]byte{0, 10, 246}: "Emerson Climate Technologies Retail Solutions, Inc.", - [3]byte{0, 10, 247}: "Broadcom Corp.", - [3]byte{0, 10, 248}: "American Telecare Inc.", - [3]byte{0, 10, 249}: "HiConnect, Inc.", - [3]byte{0, 10, 250}: "Traverse Technologies Australia", - [3]byte{0, 10, 251}: "Ambri Limited", - [3]byte{0, 10, 252}: "Core Tec Communications, LLC", - [3]byte{0, 10, 253}: "Viking Electronic Services", - [3]byte{0, 10, 254}: "NovaPal Ltd", - [3]byte{0, 10, 255}: "Kilchherr Elektronik AG", - [3]byte{0, 11, 0}: "FUJIAN START COMPUTER EQUIPMENT CO.,LTD", - [3]byte{0, 11, 1}: "DAIICHI ELECTRONICS CO., LTD.", - [3]byte{0, 11, 2}: "Dallmeier electronic", - [3]byte{0, 11, 3}: "Taekwang Industrial Co., Ltd", - [3]byte{0, 11, 4}: "Volktek Corporation", - [3]byte{0, 11, 5}: "Pacific Broadband Networks", - [3]byte{0, 11, 6}: "ARRIS Group, Inc.", - [3]byte{0, 11, 7}: "Voxpath Networks", - [3]byte{0, 11, 8}: "Pillar Data Systems", - [3]byte{0, 11, 9}: "Ifoundry Systems Singapore", - [3]byte{0, 11, 10}: "dBm Optics", - [3]byte{0, 11, 11}: "Corrent Corporation", - [3]byte{0, 11, 12}: "Agile Systems Inc.", - [3]byte{0, 11, 13}: "Air2U, Inc.", - [3]byte{0, 11, 14}: "Trapeze Networks", - [3]byte{0, 11, 15}: "Bosch Rexroth", - [3]byte{0, 11, 16}: "11wave Technonlogy Co.,Ltd", - [3]byte{0, 11, 17}: "HIMEJI ABC TRADING CO.,LTD.", - [3]byte{0, 11, 18}: "NURI Telecom Co., Ltd.", - [3]byte{0, 11, 19}: "ZETRON INC", - [3]byte{0, 11, 20}: "ViewSonic Corporation", - [3]byte{0, 11, 21}: "Platypus Technology", - [3]byte{0, 11, 22}: "Communication Machinery Corporation", - [3]byte{0, 11, 23}: "MKS Instruments", - [3]byte{0, 11, 24}: "PRIVATE", - [3]byte{0, 11, 25}: "Vernier Networks, Inc.", - [3]byte{0, 11, 26}: "Industrial Defender, Inc.", - [3]byte{0, 11, 27}: "Systronix, Inc.", - [3]byte{0, 11, 28}: "SIBCO bv", - [3]byte{0, 11, 29}: "LayerZero Power Systems, Inc.", - [3]byte{0, 11, 30}: "KAPPA opto-electronics GmbH", - [3]byte{0, 11, 31}: "I CON Computer Co.", - [3]byte{0, 11, 32}: "Hirata corporation", - [3]byte{0, 11, 33}: "G-Star Communications Inc.", - [3]byte{0, 11, 34}: "Environmental Systems and Services", - [3]byte{0, 11, 35}: "Siemens Subscriber Networks", - [3]byte{0, 11, 36}: "AirLogic", - [3]byte{0, 11, 37}: "Aeluros", - [3]byte{0, 11, 38}: "Wetek Corporation", - [3]byte{0, 11, 39}: "Scion Corporation", - [3]byte{0, 11, 40}: "Quatech Inc.", - [3]byte{0, 11, 41}: "LS(LG) Industrial Systems co.,Ltd", - [3]byte{0, 11, 42}: "HOWTEL Co., Ltd.", - [3]byte{0, 11, 43}: "HOSTNET CORPORATION", - [3]byte{0, 11, 44}: "Eiki Industrial Co. Ltd.", - [3]byte{0, 11, 45}: "Danfoss Inc.", - [3]byte{0, 11, 46}: "Cal-Comp Electronics (Thailand) Public Company Limited Taipe", - [3]byte{0, 11, 47}: "bplan GmbH", - [3]byte{0, 11, 48}: "Beijing Gongye Science & Technology Co.,Ltd", - [3]byte{0, 11, 49}: "Yantai ZhiYang Scientific and technology industry CO., LTD", - [3]byte{0, 11, 50}: "VORMETRIC, INC.", - [3]byte{0, 11, 51}: "Vivato Technologies", - [3]byte{0, 11, 52}: "ShangHai Broadband Technologies CO.LTD", - [3]byte{0, 11, 53}: "Quad Bit System co., Ltd.", - [3]byte{0, 11, 54}: "Productivity Systems, Inc.", - [3]byte{0, 11, 55}: "MANUFACTURE DES MONTRES ROLEX SA", - [3]byte{0, 11, 56}: "Knürr GmbH", - [3]byte{0, 11, 57}: "Keisoku Giken Co.,Ltd.", - [3]byte{0, 11, 58}: "QuStream Corporation", - [3]byte{0, 11, 59}: "devolo AG", - [3]byte{0, 11, 60}: "Cygnal Integrated Products, Inc.", - [3]byte{0, 11, 61}: "CONTAL OK Ltd.", - [3]byte{0, 11, 62}: "BittWare, Inc", - [3]byte{0, 11, 63}: "Anthology Solutions Inc.", - [3]byte{0, 11, 64}: "Oclaro", - [3]byte{0, 11, 65}: "Ing. Büro Dr. Beutlhauser", - [3]byte{0, 11, 66}: "commax Co., Ltd.", - [3]byte{0, 11, 67}: "Microscan Systems, Inc.", - [3]byte{0, 11, 68}: "Concord IDea Corp.", - [3]byte{0, 11, 69}: "CISCO SYSTEMS, INC.", - [3]byte{0, 11, 70}: "CISCO SYSTEMS, INC.", - [3]byte{0, 11, 71}: "Advanced Energy", - [3]byte{0, 11, 72}: "sofrel", - [3]byte{0, 11, 73}: "RF-Link System Inc.", - [3]byte{0, 11, 74}: "Visimetrics (UK) Ltd", - [3]byte{0, 11, 75}: "VISIOWAVE SA", - [3]byte{0, 11, 76}: "Clarion (M) Sdn Bhd", - [3]byte{0, 11, 77}: "Emuzed", - [3]byte{0, 11, 78}: "VertexRSI, General Dynamics SatCOM Technologies, Inc.", - [3]byte{0, 11, 79}: "Verifone, INC.", - [3]byte{0, 11, 80}: "Oxygnet", - [3]byte{0, 11, 81}: "Micetek International Inc.", - [3]byte{0, 11, 82}: "JOYMAX ELECTRONICS CO. LTD.", - [3]byte{0, 11, 83}: "INITIUM Co., Ltd.", - [3]byte{0, 11, 84}: "BiTMICRO Networks, Inc.", - [3]byte{0, 11, 85}: "ADInstruments", - [3]byte{0, 11, 86}: "Cybernetics", - [3]byte{0, 11, 87}: "Silicon Laboratories", - [3]byte{0, 11, 88}: "Astronautics C.A LTD", - [3]byte{0, 11, 89}: "ScriptPro, LLC", - [3]byte{0, 11, 90}: "HyperEdge", - [3]byte{0, 11, 91}: "Rincon Research Corporation", - [3]byte{0, 11, 92}: "Newtech Co.,Ltd", - [3]byte{0, 11, 93}: "FUJITSU LIMITED", - [3]byte{0, 11, 94}: "Audio Engineering Society Inc.", - [3]byte{0, 11, 95}: "CISCO SYSTEMS, INC.", - [3]byte{0, 11, 96}: "CISCO SYSTEMS, INC.", - [3]byte{0, 11, 97}: "Friedrich Lütze GmbH & Co. KG", - [3]byte{0, 11, 98}: "ib-mohnen KG", - [3]byte{0, 11, 99}: "Kaleidescape", - [3]byte{0, 11, 100}: "Kieback & Peter GmbH & Co KG", - [3]byte{0, 11, 101}: "Sy.A.C. srl", - [3]byte{0, 11, 102}: "Teralink Communications", - [3]byte{0, 11, 103}: "Topview Technology Corporation", - [3]byte{0, 11, 104}: "Addvalue Communications Pte Ltd", - [3]byte{0, 11, 105}: "Franke Finland Oy", - [3]byte{0, 11, 106}: "Asiarock Incorporation", - [3]byte{0, 11, 107}: "Wistron Neweb Corp.", - [3]byte{0, 11, 108}: "Sychip Inc.", - [3]byte{0, 11, 109}: "SOLECTRON JAPAN NAKANIIDA", - [3]byte{0, 11, 110}: "Neff Instrument Corp.", - [3]byte{0, 11, 111}: "Media Streaming Networks Inc", - [3]byte{0, 11, 112}: "Load Technology, Inc.", - [3]byte{0, 11, 113}: "Litchfield Communications Inc.", - [3]byte{0, 11, 114}: "Lawo AG", - [3]byte{0, 11, 115}: "Kodeos Communications", - [3]byte{0, 11, 116}: "Kingwave Technology Co., Ltd.", - [3]byte{0, 11, 117}: "Iosoft Ltd.", - [3]byte{0, 11, 118}: "ET&T Technology Co. Ltd.", - [3]byte{0, 11, 119}: "Cogent Systems, Inc.", - [3]byte{0, 11, 120}: "TAIFATECH INC.", - [3]byte{0, 11, 121}: "X-COM, Inc.", - [3]byte{0, 11, 122}: "L-3 Linkabit", - [3]byte{0, 11, 123}: "Test-Um Inc.", - [3]byte{0, 11, 124}: "Telex Communications", - [3]byte{0, 11, 125}: "SOLOMON EXTREME INTERNATIONAL LTD.", - [3]byte{0, 11, 126}: "SAGINOMIYA Seisakusho Inc.", - [3]byte{0, 11, 127}: "Align Engineering LLC", - [3]byte{0, 11, 128}: "Lycium Networks", - [3]byte{0, 11, 129}: "Kaparel Corporation", - [3]byte{0, 11, 130}: "Grandstream Networks, Inc.", - [3]byte{0, 11, 131}: "DATAWATT B.V.", - [3]byte{0, 11, 132}: "BODET", - [3]byte{0, 11, 133}: "CISCO SYSTEMS, INC.", - [3]byte{0, 11, 134}: "Aruba Networks", - [3]byte{0, 11, 135}: "American Reliance Inc.", - [3]byte{0, 11, 136}: "Vidisco ltd.", - [3]byte{0, 11, 137}: "Top Global Technology, Ltd.", - [3]byte{0, 11, 138}: "MITEQ Inc.", - [3]byte{0, 11, 139}: "KERAJET, S.A.", - [3]byte{0, 11, 140}: "Flextronics", - [3]byte{0, 11, 141}: "Avvio Networks", - [3]byte{0, 11, 142}: "Ascent Corporation", - [3]byte{0, 11, 143}: "AKITA ELECTRONICS SYSTEMS CO.,LTD.", - [3]byte{0, 11, 144}: "ADVA Optical Networking Ltd.", - [3]byte{0, 11, 145}: "Aglaia Gesellschaft für Bildverarbeitung und Kommunikation mbH", - [3]byte{0, 11, 146}: "Ascom Danmark A/S", - [3]byte{0, 11, 147}: "Ritter Elektronik", - [3]byte{0, 11, 148}: "Digital Monitoring Products, Inc.", - [3]byte{0, 11, 149}: "eBet Gaming Systems Pty Ltd", - [3]byte{0, 11, 150}: "Innotrac Diagnostics Oy", - [3]byte{0, 11, 151}: "Matsushita Electric Industrial Co.,Ltd.", - [3]byte{0, 11, 152}: "NiceTechVision", - [3]byte{0, 11, 153}: "SensAble Technologies, Inc.", - [3]byte{0, 11, 154}: "Shanghai Ulink Telecom Equipment Co. Ltd.", - [3]byte{0, 11, 155}: "Sirius System Co, Ltd.", - [3]byte{0, 11, 156}: "TriBeam Technologies, Inc.", - [3]byte{0, 11, 157}: "TwinMOS Technologies Inc.", - [3]byte{0, 11, 158}: "Yasing Technology Corp.", - [3]byte{0, 11, 159}: "Neue ELSA GmbH", - [3]byte{0, 11, 160}: "T&L Information Inc.", - [3]byte{0, 11, 161}: "SYSCOM Ltd.", - [3]byte{0, 11, 162}: "Sumitomo Electric Networks, Inc", - [3]byte{0, 11, 163}: "Siemens AG, I&S", - [3]byte{0, 11, 164}: "Shiron Satellite Communications Ltd. (1996)", - [3]byte{0, 11, 165}: "Quasar Cipta Mandiri, PT", - [3]byte{0, 11, 166}: "Miyakawa Electric Works Ltd.", - [3]byte{0, 11, 167}: "Maranti Networks", - [3]byte{0, 11, 168}: "HANBACK ELECTRONICS CO., LTD.", - [3]byte{0, 11, 169}: "CloudShield Technologies, Inc.", - [3]byte{0, 11, 170}: "Aiphone co.,Ltd", - [3]byte{0, 11, 171}: "Advantech Technology (CHINA) Co., Ltd.", - [3]byte{0, 11, 172}: "3Com Ltd", - [3]byte{0, 11, 173}: "PC-PoS Inc.", - [3]byte{0, 11, 174}: "Vitals System Inc.", - [3]byte{0, 11, 175}: "WOOJU COMMUNICATIONS Co,.Ltd", - [3]byte{0, 11, 176}: "Sysnet Telematica srl", - [3]byte{0, 11, 177}: "Super Star Technology Co., Ltd.", - [3]byte{0, 11, 178}: "SMALLBIG TECHNOLOGY", - [3]byte{0, 11, 179}: "RiT technologies Ltd.", - [3]byte{0, 11, 180}: "RDC Semiconductor Inc.,", - [3]byte{0, 11, 181}: "nStor Technologies, Inc.", - [3]byte{0, 11, 182}: "Metalligence Technology Corp.", - [3]byte{0, 11, 183}: "Micro Systems Co.,Ltd.", - [3]byte{0, 11, 184}: "Kihoku Electronic Co.", - [3]byte{0, 11, 185}: "Imsys AB", - [3]byte{0, 11, 186}: "Harmonic, Inc", - [3]byte{0, 11, 187}: "Etin Systems Co., Ltd", - [3]byte{0, 11, 188}: "En Garde Systems, Inc.", - [3]byte{0, 11, 189}: "Connexionz Limited", - [3]byte{0, 11, 190}: "CISCO SYSTEMS, INC.", - [3]byte{0, 11, 191}: "CISCO SYSTEMS, INC.", - [3]byte{0, 11, 192}: "China IWNComm Co., Ltd.", - [3]byte{0, 11, 193}: "Bay Microsystems, Inc.", - [3]byte{0, 11, 194}: "Corinex Communication Corp.", - [3]byte{0, 11, 195}: "Multiplex, Inc.", - [3]byte{0, 11, 196}: "BIOTRONIK GmbH & Co", - [3]byte{0, 11, 197}: "SMC Networks, Inc.", - [3]byte{0, 11, 198}: "ISAC, Inc.", - [3]byte{0, 11, 199}: "ICET S.p.A.", - [3]byte{0, 11, 200}: "AirFlow Networks", - [3]byte{0, 11, 201}: "Electroline Equipment", - [3]byte{0, 11, 202}: "DATAVAN International Corporation", - [3]byte{0, 11, 203}: "Fagor Automation , S. Coop", - [3]byte{0, 11, 204}: "JUSAN, S.A.", - [3]byte{0, 11, 205}: "Hewlett-Packard Company", - [3]byte{0, 11, 206}: "Free2move AB", - [3]byte{0, 11, 207}: "AGFA NDT INC.", - [3]byte{0, 11, 208}: "XiMeta Technology Americas Inc.", - [3]byte{0, 11, 209}: "Aeronix, Inc.", - [3]byte{0, 11, 210}: "Remopro Technology Inc.", - [3]byte{0, 11, 211}: "cd3o", - [3]byte{0, 11, 212}: "Beijing Wise Technology & Science Development Co.Ltd", - [3]byte{0, 11, 213}: "Nvergence, Inc.", - [3]byte{0, 11, 214}: "Paxton Access Ltd", - [3]byte{0, 11, 215}: "DORMA Time + Access GmbH", - [3]byte{0, 11, 216}: "Industrial Scientific Corp.", - [3]byte{0, 11, 217}: "General Hydrogen", - [3]byte{0, 11, 218}: "EyeCross Co.,Inc.", - [3]byte{0, 11, 219}: "Dell Inc", - [3]byte{0, 11, 220}: "AKCP", - [3]byte{0, 11, 221}: "TOHOKU RICOH Co., LTD.", - [3]byte{0, 11, 222}: "TELDIX GmbH", - [3]byte{0, 11, 223}: "Shenzhen RouterD Networks Limited", - [3]byte{0, 11, 224}: "SercoNet Ltd.", - [3]byte{0, 11, 225}: "Nokia NET Product Operations", - [3]byte{0, 11, 226}: "Lumenera Corporation", - [3]byte{0, 11, 227}: "Key Stream Co., Ltd.", - [3]byte{0, 11, 228}: "Hosiden Corporation", - [3]byte{0, 11, 229}: "HIMS International Corporation", - [3]byte{0, 11, 230}: "Datel Electronics", - [3]byte{0, 11, 231}: "COMFLUX TECHNOLOGY INC.", - [3]byte{0, 11, 232}: "AOIP", - [3]byte{0, 11, 233}: "Actel Corporation", - [3]byte{0, 11, 234}: "Zultys Technologies", - [3]byte{0, 11, 235}: "Systegra AG", - [3]byte{0, 11, 236}: "NIPPON ELECTRIC INSTRUMENT, INC.", - [3]byte{0, 11, 237}: "ELM Inc.", - [3]byte{0, 11, 238}: "inc.jet, Incorporated", - [3]byte{0, 11, 239}: "Code Corporation", - [3]byte{0, 11, 240}: "MoTEX Products Co., Ltd.", - [3]byte{0, 11, 241}: "LAP Laser Applikations", - [3]byte{0, 11, 242}: "Chih-Kan Technology Co., Ltd.", - [3]byte{0, 11, 243}: "BAE SYSTEMS", - [3]byte{0, 11, 244}: "PRIVATE", - [3]byte{0, 11, 245}: "Shanghai Sibo Telecom Technology Co.,Ltd", - [3]byte{0, 11, 246}: "Nitgen Co., Ltd", - [3]byte{0, 11, 247}: "NIDEK CO.,LTD", - [3]byte{0, 11, 248}: "Infinera", - [3]byte{0, 11, 249}: "Gemstone communications, Inc.", - [3]byte{0, 11, 250}: "EXEMYS SRL", - [3]byte{0, 11, 251}: "D-NET International Corporation", - [3]byte{0, 11, 252}: "CISCO SYSTEMS, INC.", - [3]byte{0, 11, 253}: "CISCO SYSTEMS, INC.", - [3]byte{0, 11, 254}: "CASTEL Broadband Limited", - [3]byte{0, 11, 255}: "Berkeley Camera Engineering", - [3]byte{0, 12, 0}: "BEB Industrie-Elektronik AG", - [3]byte{0, 12, 1}: "Abatron AG", - [3]byte{0, 12, 2}: "ABB Oy", - [3]byte{0, 12, 3}: "HDMI Licensing, LLC", - [3]byte{0, 12, 4}: "Tecnova", - [3]byte{0, 12, 5}: "RPA Reserch Co., Ltd.", - [3]byte{0, 12, 6}: "Nixvue Systems Pte Ltd", - [3]byte{0, 12, 7}: "Iftest AG", - [3]byte{0, 12, 8}: "HUMEX Technologies Corp.", - [3]byte{0, 12, 9}: "Hitachi IE Systems Co., Ltd", - [3]byte{0, 12, 10}: "Guangdong Province Electronic Technology Research Institute", - [3]byte{0, 12, 11}: "Broadbus Technologies", - [3]byte{0, 12, 12}: "APPRO TECHNOLOGY INC.", - [3]byte{0, 12, 13}: "Communications & Power Industries / Satcom Division", - [3]byte{0, 12, 14}: "XtremeSpectrum, Inc.", - [3]byte{0, 12, 15}: "Techno-One Co., Ltd", - [3]byte{0, 12, 16}: "PNI Corporation", - [3]byte{0, 12, 17}: "NIPPON DEMPA CO.,LTD.", - [3]byte{0, 12, 18}: "Micro-Optronic-Messtechnik GmbH", - [3]byte{0, 12, 19}: "MediaQ", - [3]byte{0, 12, 20}: "Diagnostic Instruments, Inc.", - [3]byte{0, 12, 21}: "CyberPower Systems, Inc.", - [3]byte{0, 12, 22}: "Concorde Microsystems Inc.", - [3]byte{0, 12, 23}: "AJA Video Systems Inc", - [3]byte{0, 12, 24}: "Zenisu Keisoku Inc.", - [3]byte{0, 12, 25}: "Telio Communications GmbH", - [3]byte{0, 12, 26}: "Quest Technical Solutions Inc.", - [3]byte{0, 12, 27}: "ORACOM Co, Ltd.", - [3]byte{0, 12, 28}: "MicroWeb Co., Ltd.", - [3]byte{0, 12, 29}: "Mettler & Fuchs AG", - [3]byte{0, 12, 30}: "Global Cache", - [3]byte{0, 12, 31}: "Glimmerglass Networks", - [3]byte{0, 12, 32}: "Fi WIn, Inc.", - [3]byte{0, 12, 33}: "Faculty of Science and Technology, Keio University", - [3]byte{0, 12, 34}: "Double D Electronics Ltd", - [3]byte{0, 12, 35}: "Beijing Lanchuan Tech. Co., Ltd.", - [3]byte{0, 12, 36}: "ANATOR", - [3]byte{0, 12, 37}: "Allied Telesis Labs, Inc.", - [3]byte{0, 12, 38}: "Weintek Labs. Inc.", - [3]byte{0, 12, 39}: "Sammy Corporation", - [3]byte{0, 12, 40}: "RIFATRON", - [3]byte{0, 12, 41}: "VMware, Inc.", - [3]byte{0, 12, 42}: "OCTTEL Communication Co., Ltd.", - [3]byte{0, 12, 43}: "ELIAS Technology, Inc.", - [3]byte{0, 12, 44}: "Enwiser Inc.", - [3]byte{0, 12, 45}: "FullWave Technology Co., Ltd.", - [3]byte{0, 12, 46}: "Openet information technology(shenzhen) Co., Ltd.", - [3]byte{0, 12, 47}: "SeorimTechnology Co.,Ltd.", - [3]byte{0, 12, 48}: "CISCO SYSTEMS, INC.", - [3]byte{0, 12, 49}: "CISCO SYSTEMS, INC.", - [3]byte{0, 12, 50}: "Avionic Design Development GmbH", - [3]byte{0, 12, 51}: "Compucase Enterprise Co. Ltd.", - [3]byte{0, 12, 52}: "Vixen Co., Ltd.", - [3]byte{0, 12, 53}: "KaVo Dental GmbH & Co. KG", - [3]byte{0, 12, 54}: "SHARP TAKAYA ELECTRONICS INDUSTRY CO.,LTD.", - [3]byte{0, 12, 55}: "Geomation, Inc.", - [3]byte{0, 12, 56}: "TelcoBridges Inc.", - [3]byte{0, 12, 57}: "Sentinel Wireless Inc.", - [3]byte{0, 12, 58}: "Oxance", - [3]byte{0, 12, 59}: "Orion Electric Co., Ltd.", - [3]byte{0, 12, 60}: "MediaChorus, Inc.", - [3]byte{0, 12, 61}: "Glsystech Co., Ltd.", - [3]byte{0, 12, 62}: "Crest Audio", - [3]byte{0, 12, 63}: "Cogent Defence & Security Networks,", - [3]byte{0, 12, 64}: "Altech Controls", - [3]byte{0, 12, 65}: "Cisco-Linksys", - [3]byte{0, 12, 66}: "Routerboard.com", - [3]byte{0, 12, 67}: "Ralink Technology, Corp.", - [3]byte{0, 12, 68}: "Automated Interfaces, Inc.", - [3]byte{0, 12, 69}: "Animation Technologies Inc.", - [3]byte{0, 12, 70}: "Allied Telesyn Inc.", - [3]byte{0, 12, 71}: "SK Teletech(R&D Planning Team)", - [3]byte{0, 12, 72}: "QoStek Corporation", - [3]byte{0, 12, 73}: "Dangaard Telecom RTC Division A/S", - [3]byte{0, 12, 74}: "Cygnus Microsystems (P) Limited", - [3]byte{0, 12, 75}: "Cheops Elektronik", - [3]byte{0, 12, 76}: "Arcor AG&Co.", - [3]byte{0, 12, 77}: "Curtiss-Wright Controls Avionics & Electronics", - [3]byte{0, 12, 78}: "Winbest Technology CO,LT", - [3]byte{0, 12, 79}: "UDTech Japan Corporation", - [3]byte{0, 12, 80}: "Seagate Technology", - [3]byte{0, 12, 81}: "Scientific Technologies Inc.", - [3]byte{0, 12, 82}: "Roll Systems Inc.", - [3]byte{0, 12, 83}: "PRIVATE", - [3]byte{0, 12, 84}: "Pedestal Networks, Inc", - [3]byte{0, 12, 85}: "Microlink Communications Inc.", - [3]byte{0, 12, 86}: "Megatel Computer (1986) Corp.", - [3]byte{0, 12, 87}: "MACKIE Engineering Services Belgium BVBA", - [3]byte{0, 12, 88}: "M&S Systems", - [3]byte{0, 12, 89}: "Indyme Electronics, Inc.", - [3]byte{0, 12, 90}: "IBSmm Embedded Electronics Consulting", - [3]byte{0, 12, 91}: "HANWANG TECHNOLOGY CO.,LTD", - [3]byte{0, 12, 92}: "GTN Systems B.V.", - [3]byte{0, 12, 93}: "CHIC TECHNOLOGY (CHINA) CORP.", - [3]byte{0, 12, 94}: "Calypso Medical", - [3]byte{0, 12, 95}: "Avtec, Inc.", - [3]byte{0, 12, 96}: "ACM Systems", - [3]byte{0, 12, 97}: "AC Tech corporation DBA Advanced Digital", - [3]byte{0, 12, 98}: "ABB AB, Cewe-Control", - [3]byte{0, 12, 99}: "Zenith Electronics Corporation", - [3]byte{0, 12, 100}: "X2 MSA Group", - [3]byte{0, 12, 101}: "Sunin Telecom", - [3]byte{0, 12, 102}: "Pronto Networks Inc", - [3]byte{0, 12, 103}: "OYO ELECTRIC CO.,LTD", - [3]byte{0, 12, 104}: "SigmaTel, Inc.", - [3]byte{0, 12, 105}: "National Radio Astronomy Observatory", - [3]byte{0, 12, 106}: "MBARI", - [3]byte{0, 12, 107}: "Kurz Industrie-Elektronik GmbH", - [3]byte{0, 12, 108}: "Elgato Systems LLC", - [3]byte{0, 12, 109}: "Edwards Ltd.", - [3]byte{0, 12, 110}: "ASUSTEK COMPUTER INC.", - [3]byte{0, 12, 111}: "Amtek system co.,LTD.", - [3]byte{0, 12, 112}: "ACC GmbH", - [3]byte{0, 12, 113}: "Wybron, Inc", - [3]byte{0, 12, 114}: "Tempearl Industrial Co., Ltd.", - [3]byte{0, 12, 115}: "TELSON ELECTRONICS CO., LTD", - [3]byte{0, 12, 116}: "RIVERTEC CORPORATION", - [3]byte{0, 12, 117}: "Oriental integrated electronics. LTD", - [3]byte{0, 12, 118}: "MICRO-STAR INTERNATIONAL CO., LTD.", - [3]byte{0, 12, 119}: "Life Racing Ltd", - [3]byte{0, 12, 120}: "In-Tech Electronics Limited", - [3]byte{0, 12, 121}: "Extel Communications P/L", - [3]byte{0, 12, 122}: "DaTARIUS Technologies GmbH", - [3]byte{0, 12, 123}: "ALPHA PROJECT Co.,Ltd.", - [3]byte{0, 12, 124}: "Internet Information Image Inc.", - [3]byte{0, 12, 125}: "TEIKOKU ELECTRIC MFG. CO., LTD", - [3]byte{0, 12, 126}: "Tellium Incorporated", - [3]byte{0, 12, 127}: "synertronixx GmbH", - [3]byte{0, 12, 128}: "Opelcomm Inc.", - [3]byte{0, 12, 129}: "Schneider Electric (Australia)", - [3]byte{0, 12, 130}: "NETWORK TECHNOLOGIES INC", - [3]byte{0, 12, 131}: "Logical Solutions", - [3]byte{0, 12, 132}: "Eazix, Inc.", - [3]byte{0, 12, 133}: "CISCO SYSTEMS, INC.", - [3]byte{0, 12, 134}: "CISCO SYSTEMS, INC.", - [3]byte{0, 12, 135}: "AMD", - [3]byte{0, 12, 136}: "Apache Micro Peripherals, Inc.", - [3]byte{0, 12, 137}: "AC Electric Vehicles, Ltd.", - [3]byte{0, 12, 138}: "Bose Corporation", - [3]byte{0, 12, 139}: "Connect Tech Inc", - [3]byte{0, 12, 140}: "KODICOM CO.,LTD.", - [3]byte{0, 12, 141}: "MATRIX VISION GmbH", - [3]byte{0, 12, 142}: "Mentor Engineering Inc", - [3]byte{0, 12, 143}: "Nergal s.r.l.", - [3]byte{0, 12, 144}: "Octasic Inc.", - [3]byte{0, 12, 145}: "Riverhead Networks Inc.", - [3]byte{0, 12, 146}: "WolfVision Gmbh", - [3]byte{0, 12, 147}: "Xeline Co., Ltd.", - [3]byte{0, 12, 148}: "United Electronic Industries, Inc. (EUI)", - [3]byte{0, 12, 149}: "PrimeNet", - [3]byte{0, 12, 150}: "OQO, Inc.", - [3]byte{0, 12, 151}: "NV ADB TTV Technologies SA", - [3]byte{0, 12, 152}: "LETEK Communications Inc.", - [3]byte{0, 12, 153}: "HITEL LINK Co.,Ltd", - [3]byte{0, 12, 154}: "Hitech Electronics Corp.", - [3]byte{0, 12, 155}: "EE Solutions, Inc", - [3]byte{0, 12, 156}: "Chongho information & communications", - [3]byte{0, 12, 157}: "UbeeAirWalk, Inc.", - [3]byte{0, 12, 158}: "MemoryLink Corp.", - [3]byte{0, 12, 159}: "NKE Corporation", - [3]byte{0, 12, 160}: "StorCase Technology, Inc.", - [3]byte{0, 12, 161}: "SIGMACOM Co., LTD.", - [3]byte{0, 12, 162}: "Harmonic Video Network", - [3]byte{0, 12, 163}: "Rancho Technology, Inc.", - [3]byte{0, 12, 164}: "Prompttec Product Management GmbH", - [3]byte{0, 12, 165}: "Naman NZ LTd", - [3]byte{0, 12, 166}: "Mintera Corporation", - [3]byte{0, 12, 167}: "Metro (Suzhou) Technologies Co., Ltd.", - [3]byte{0, 12, 168}: "Garuda Networks Corporation", - [3]byte{0, 12, 169}: "Ebtron Inc.", - [3]byte{0, 12, 170}: "Cubic Transportation Systems Inc", - [3]byte{0, 12, 171}: "COMMEND International", - [3]byte{0, 12, 172}: "Citizen Watch Co., Ltd.", - [3]byte{0, 12, 173}: "BTU International", - [3]byte{0, 12, 174}: "Ailocom Oy", - [3]byte{0, 12, 175}: "TRI TERM CO.,LTD.", - [3]byte{0, 12, 176}: "Star Semiconductor Corporation", - [3]byte{0, 12, 177}: "Salland Engineering (Europe) BV", - [3]byte{0, 12, 178}: "UNION co., ltd.", - [3]byte{0, 12, 179}: "ROUND Co.,Ltd.", - [3]byte{0, 12, 180}: "AutoCell Laboratories, Inc.", - [3]byte{0, 12, 181}: "Premier Technolgies, Inc", - [3]byte{0, 12, 182}: "NANJING SEU MOBILE & INTERNET TECHNOLOGY CO.,LTD", - [3]byte{0, 12, 183}: "Nanjing Huazhuo Electronics Co., Ltd.", - [3]byte{0, 12, 184}: "MEDION AG", - [3]byte{0, 12, 185}: "LEA", - [3]byte{0, 12, 186}: "Jamex, Inc.", - [3]byte{0, 12, 187}: "ISKRAEMECO", - [3]byte{0, 12, 188}: "Iscutum", - [3]byte{0, 12, 189}: "Interface Masters, Inc", - [3]byte{0, 12, 190}: "Innominate Security Technologies AG", - [3]byte{0, 12, 191}: "Holy Stone Ent. Co., Ltd.", - [3]byte{0, 12, 192}: "Genera Oy", - [3]byte{0, 12, 193}: "Cooper Industries Inc.", - [3]byte{0, 12, 194}: "ControlNet (India) Private Limited", - [3]byte{0, 12, 195}: "BeWAN systems", - [3]byte{0, 12, 196}: "Tiptel AG", - [3]byte{0, 12, 197}: "Nextlink Co., Ltd.", - [3]byte{0, 12, 198}: "Ka-Ro electronics GmbH", - [3]byte{0, 12, 199}: "Intelligent Computer Solutions Inc.", - [3]byte{0, 12, 200}: "Xytronix Research & Design, Inc.", - [3]byte{0, 12, 201}: "ILWOO DATA & TECHNOLOGY CO.,LTD", - [3]byte{0, 12, 202}: "HGST a Western Digital Company", - [3]byte{0, 12, 203}: "Design Combus Ltd", - [3]byte{0, 12, 204}: "Aeroscout Ltd.", - [3]byte{0, 12, 205}: "IEC - TC57", - [3]byte{0, 12, 206}: "CISCO SYSTEMS, INC.", - [3]byte{0, 12, 207}: "CISCO SYSTEMS, INC.", - [3]byte{0, 12, 208}: "Symetrix", - [3]byte{0, 12, 209}: "SFOM Technology Corp.", - [3]byte{0, 12, 210}: "Schaffner EMV AG", - [3]byte{0, 12, 211}: "Prettl Elektronik Radeberg GmbH", - [3]byte{0, 12, 212}: "Positron Public Safety Systems inc.", - [3]byte{0, 12, 213}: "Passave Inc.", - [3]byte{0, 12, 214}: "PARTNER TECH", - [3]byte{0, 12, 215}: "Nallatech Ltd", - [3]byte{0, 12, 216}: "M. K. Juchheim GmbH & Co", - [3]byte{0, 12, 217}: "Itcare Co., Ltd", - [3]byte{0, 12, 218}: "FreeHand Systems, Inc.", - [3]byte{0, 12, 219}: "Brocade Communications Systems, Inc", - [3]byte{0, 12, 220}: "BECS Technology, Inc", - [3]byte{0, 12, 221}: "AOS Technologies AG", - [3]byte{0, 12, 222}: "ABB STOTZ-KONTAKT GmbH", - [3]byte{0, 12, 223}: "PULNiX America, Inc", - [3]byte{0, 12, 224}: "Trek Diagnostics Inc.", - [3]byte{0, 12, 225}: "The Open Group", - [3]byte{0, 12, 226}: "Rolls-Royce", - [3]byte{0, 12, 227}: "Option International N.V.", - [3]byte{0, 12, 228}: "NeuroCom International, Inc.", - [3]byte{0, 12, 229}: "ARRIS Group, Inc.", - [3]byte{0, 12, 230}: "Meru Networks Inc", - [3]byte{0, 12, 231}: "MediaTek Inc.", - [3]byte{0, 12, 232}: "GuangZhou AnJuBao Co., Ltd", - [3]byte{0, 12, 233}: "BLOOMBERG L.P.", - [3]byte{0, 12, 234}: "aphona Kommunikationssysteme", - [3]byte{0, 12, 235}: "CNMP Networks, Inc.", - [3]byte{0, 12, 236}: "Spectracom Corp.", - [3]byte{0, 12, 237}: "Real Digital Media", - [3]byte{0, 12, 238}: "jp-embedded", - [3]byte{0, 12, 239}: "Open Networks Engineering Ltd", - [3]byte{0, 12, 240}: "M & N GmbH", - [3]byte{0, 12, 241}: "Intel Corporation", - [3]byte{0, 12, 242}: "GAMESA Eólica", - [3]byte{0, 12, 243}: "CALL IMAGE SA", - [3]byte{0, 12, 244}: "AKATSUKI ELECTRIC MFG.CO.,LTD.", - [3]byte{0, 12, 245}: "InfoExpress", - [3]byte{0, 12, 246}: "Sitecom Europe BV", - [3]byte{0, 12, 247}: "Nortel Networks", - [3]byte{0, 12, 248}: "Nortel Networks", - [3]byte{0, 12, 249}: "Xylem Water Solutions", - [3]byte{0, 12, 250}: "Digital Systems Corp", - [3]byte{0, 12, 251}: "Korea Network Systems", - [3]byte{0, 12, 252}: "S2io Technologies Corp", - [3]byte{0, 12, 253}: "Hyundai ImageQuest Co.,Ltd.", - [3]byte{0, 12, 254}: "Grand Electronic Co., Ltd", - [3]byte{0, 12, 255}: "MRO-TEK LIMITED", - [3]byte{0, 13, 0}: "Seaway Networks Inc.", - [3]byte{0, 13, 1}: "P&E Microcomputer Systems, Inc.", - [3]byte{0, 13, 2}: "NEC Platforms, Ltd.", - [3]byte{0, 13, 3}: "Matrics, Inc.", - [3]byte{0, 13, 4}: "Foxboro Eckardt Development GmbH", - [3]byte{0, 13, 5}: "cybernet manufacturing inc.", - [3]byte{0, 13, 6}: "Compulogic Limited", - [3]byte{0, 13, 7}: "Calrec Audio Ltd", - [3]byte{0, 13, 8}: "AboveCable, Inc.", - [3]byte{0, 13, 9}: "Yuehua(Zhuhai) Electronic CO. LTD", - [3]byte{0, 13, 10}: "Projectiondesign as", - [3]byte{0, 13, 11}: "Buffalo Inc.", - [3]byte{0, 13, 12}: "MDI Security Systems", - [3]byte{0, 13, 13}: "ITSupported, LLC", - [3]byte{0, 13, 14}: "Inqnet Systems, Inc.", - [3]byte{0, 13, 15}: "Finlux Ltd", - [3]byte{0, 13, 16}: "Embedtronics Oy", - [3]byte{0, 13, 17}: "DENTSPLY - Gendex", - [3]byte{0, 13, 18}: "AXELL Corporation", - [3]byte{0, 13, 19}: "Wilhelm Rutenbeck GmbH&Co.KG", - [3]byte{0, 13, 20}: "Vtech Innovation LP dba Advanced American Telephones", - [3]byte{0, 13, 21}: "Voipac s.r.o.", - [3]byte{0, 13, 22}: "UHS Systems Pty Ltd", - [3]byte{0, 13, 23}: "Turbo Networks Co.Ltd", - [3]byte{0, 13, 24}: "Mega-Trend Electronics CO., LTD.", - [3]byte{0, 13, 25}: "ROBE Show lighting", - [3]byte{0, 13, 26}: "Mustek System Inc.", - [3]byte{0, 13, 27}: "Kyoto Electronics Manufacturing Co., Ltd.", - [3]byte{0, 13, 28}: "Amesys Defense", - [3]byte{0, 13, 29}: "HIGH-TEK HARNESS ENT. CO., LTD.", - [3]byte{0, 13, 30}: "Control Techniques", - [3]byte{0, 13, 31}: "AV Digital", - [3]byte{0, 13, 32}: "ASAHIKASEI TECHNOSYSTEM CO.,LTD.", - [3]byte{0, 13, 33}: "WISCORE Inc.", - [3]byte{0, 13, 34}: "Unitronics LTD", - [3]byte{0, 13, 35}: "Smart Solution, Inc", - [3]byte{0, 13, 36}: "SENTEC E&E CO., LTD.", - [3]byte{0, 13, 37}: "SANDEN CORPORATION", - [3]byte{0, 13, 38}: "Primagraphics Limited", - [3]byte{0, 13, 39}: "MICROPLEX Printware AG", - [3]byte{0, 13, 40}: "CISCO SYSTEMS, INC.", - [3]byte{0, 13, 41}: "CISCO SYSTEMS, INC.", - [3]byte{0, 13, 42}: "Scanmatic AS", - [3]byte{0, 13, 43}: "Racal Instruments", - [3]byte{0, 13, 44}: "Patapsco Designs Ltd", - [3]byte{0, 13, 45}: "NCT Deutschland GmbH", - [3]byte{0, 13, 46}: "Matsushita Avionics Systems Corporation", - [3]byte{0, 13, 47}: "AIN Comm.Tech.Co., LTD", - [3]byte{0, 13, 48}: "IceFyre Semiconductor", - [3]byte{0, 13, 49}: "Compellent Technologies, Inc.", - [3]byte{0, 13, 50}: "DispenseSource, Inc.", - [3]byte{0, 13, 51}: "Prediwave Corp.", - [3]byte{0, 13, 52}: "Shell International Exploration and Production, Inc.", - [3]byte{0, 13, 53}: "PAC International Ltd", - [3]byte{0, 13, 54}: "Wu Han Routon Electronic Co., Ltd", - [3]byte{0, 13, 55}: "WIPLUG", - [3]byte{0, 13, 56}: "NISSIN INC.", - [3]byte{0, 13, 57}: "Network Electronics", - [3]byte{0, 13, 58}: "Microsoft Corp.", - [3]byte{0, 13, 59}: "Microelectronics Technology Inc.", - [3]byte{0, 13, 60}: "i.Tech Dynamic Ltd", - [3]byte{0, 13, 61}: "Hammerhead Systems, Inc.", - [3]byte{0, 13, 62}: "APLUX Communications Ltd.", - [3]byte{0, 13, 63}: "VTI Instruments Corporation", - [3]byte{0, 13, 64}: "Verint Loronix Video Solutions", - [3]byte{0, 13, 65}: "Siemens AG ICM MP UC RD IT KLF1", - [3]byte{0, 13, 66}: "Newbest Development Limited", - [3]byte{0, 13, 67}: "DRS Tactical Systems Inc.", - [3]byte{0, 13, 68}: "Audio BU - Logitech", - [3]byte{0, 13, 69}: "Tottori SANYO Electric Co., Ltd.", - [3]byte{0, 13, 70}: "Parker SSD Drives", - [3]byte{0, 13, 71}: "Collex", - [3]byte{0, 13, 72}: "AEWIN Technologies Co., Ltd.", - [3]byte{0, 13, 73}: "Triton Systems of Delaware, Inc.", - [3]byte{0, 13, 74}: "Steag ETA-Optik", - [3]byte{0, 13, 75}: "Roku, LLC", - [3]byte{0, 13, 76}: "Outline Electronics Ltd.", - [3]byte{0, 13, 77}: "Ninelanes", - [3]byte{0, 13, 78}: "NDR Co.,LTD.", - [3]byte{0, 13, 79}: "Kenwood Corporation", - [3]byte{0, 13, 80}: "Galazar Networks", - [3]byte{0, 13, 81}: "DIVR Systems, Inc.", - [3]byte{0, 13, 82}: "Comart system", - [3]byte{0, 13, 83}: "Beijing 5w Communication Corp.", - [3]byte{0, 13, 84}: "3Com Ltd", - [3]byte{0, 13, 85}: "SANYCOM Technology Co.,Ltd", - [3]byte{0, 13, 86}: "Dell Inc", - [3]byte{0, 13, 87}: "Fujitsu I-Network Systems Limited.", - [3]byte{0, 13, 88}: "PRIVATE", - [3]byte{0, 13, 89}: "Amity Systems, Inc.", - [3]byte{0, 13, 90}: "Tiesse SpA", - [3]byte{0, 13, 91}: "Smart Empire Investments Limited", - [3]byte{0, 13, 92}: "Robert Bosch GmbH, VT-ATMO", - [3]byte{0, 13, 93}: "Raritan Computer, Inc", - [3]byte{0, 13, 94}: "NEC Personal Products", - [3]byte{0, 13, 95}: "Minds Inc", - [3]byte{0, 13, 96}: "IBM Corp", - [3]byte{0, 13, 97}: "Giga-Byte Technology Co., Ltd.", - [3]byte{0, 13, 98}: "Funkwerk Dabendorf GmbH", - [3]byte{0, 13, 99}: "DENT Instruments, Inc.", - [3]byte{0, 13, 100}: "COMAG Handels AG", - [3]byte{0, 13, 101}: "CISCO SYSTEMS, INC.", - [3]byte{0, 13, 102}: "CISCO SYSTEMS, INC.", - [3]byte{0, 13, 103}: "Ericsson", - [3]byte{0, 13, 104}: "Vinci Systems, Inc.", - [3]byte{0, 13, 105}: "TMT&D Corporation", - [3]byte{0, 13, 106}: "Redwood Technologies LTD", - [3]byte{0, 13, 107}: "Mita-Teknik A/S", - [3]byte{0, 13, 108}: "M-Audio", - [3]byte{0, 13, 109}: "K-Tech Devices Corp.", - [3]byte{0, 13, 110}: "K-Patents Oy", - [3]byte{0, 13, 111}: "Ember Corporation", - [3]byte{0, 13, 112}: "Datamax Corporation", - [3]byte{0, 13, 113}: "boca systems", - [3]byte{0, 13, 114}: "2Wire, Inc", - [3]byte{0, 13, 115}: "Technical Support, Inc.", - [3]byte{0, 13, 116}: "Sand Network Systems, Inc.", - [3]byte{0, 13, 117}: "Kobian Pte Ltd - Taiwan Branch", - [3]byte{0, 13, 118}: "Hokuto Denshi Co,. Ltd.", - [3]byte{0, 13, 119}: "FalconStor Software", - [3]byte{0, 13, 120}: "Engineering & Security", - [3]byte{0, 13, 121}: "Dynamic Solutions Co,.Ltd.", - [3]byte{0, 13, 122}: "DiGATTO Asia Pacific Pte Ltd", - [3]byte{0, 13, 123}: "Consensys Computers Inc.", - [3]byte{0, 13, 124}: "Codian Ltd", - [3]byte{0, 13, 125}: "Afco Systems", - [3]byte{0, 13, 126}: "Axiowave Networks, Inc.", - [3]byte{0, 13, 127}: "MIDAS COMMUNICATION TECHNOLOGIES PTE LTD ( Foreign Branch)", - [3]byte{0, 13, 128}: "Online Development Inc", - [3]byte{0, 13, 129}: "Pepperl+Fuchs GmbH", - [3]byte{0, 13, 130}: "PHS srl", - [3]byte{0, 13, 131}: "Sanmina-SCI Hungary Ltd.", - [3]byte{0, 13, 132}: "Makus Inc.", - [3]byte{0, 13, 133}: "Tapwave, Inc.", - [3]byte{0, 13, 134}: "Huber + Suhner AG", - [3]byte{0, 13, 135}: "Elitegroup Computer System Co. (ECS)", - [3]byte{0, 13, 136}: "D-Link Corporation", - [3]byte{0, 13, 137}: "Bils Technology Inc", - [3]byte{0, 13, 138}: "Winners Electronics Co., Ltd.", - [3]byte{0, 13, 139}: "T&D Corporation", - [3]byte{0, 13, 140}: "Shanghai Wedone Digital Ltd. CO.", - [3]byte{0, 13, 141}: "Prosoft Technology, Inc", - [3]byte{0, 13, 142}: "Koden Electronics Co., Ltd.", - [3]byte{0, 13, 143}: "King Tsushin Kogyo Co., LTD.", - [3]byte{0, 13, 144}: "Factum Electronics AB", - [3]byte{0, 13, 145}: "Eclipse (HQ Espana) S.L.", - [3]byte{0, 13, 146}: "Arima Communication Corporation", - [3]byte{0, 13, 147}: "Apple", - [3]byte{0, 13, 148}: "AFAR Communications,Inc", - [3]byte{0, 13, 149}: "Opti-cell, Inc.", - [3]byte{0, 13, 150}: "Vtera Technology Inc.", - [3]byte{0, 13, 151}: "Tropos Networks, Inc.", - [3]byte{0, 13, 152}: "S.W.A.C. Schmitt-Walter Automation Consult GmbH", - [3]byte{0, 13, 153}: "Orbital Sciences Corp.; Launch Systems Group", - [3]byte{0, 13, 154}: "INFOTEC LTD", - [3]byte{0, 13, 155}: "Heraeus Electro-Nite International N.V.", - [3]byte{0, 13, 156}: "Elan GmbH & Co KG", - [3]byte{0, 13, 157}: "Hewlett-Packard Company", - [3]byte{0, 13, 158}: "TOKUDEN OHIZUMI SEISAKUSYO Co.,Ltd.", - [3]byte{0, 13, 159}: "RF Micro Devices", - [3]byte{0, 13, 160}: "NEDAP N.V.", - [3]byte{0, 13, 161}: "MIRAE ITS Co.,LTD.", - [3]byte{0, 13, 162}: "Infrant Technologies, Inc.", - [3]byte{0, 13, 163}: "Emerging Technologies Limited", - [3]byte{0, 13, 164}: "DOSCH & AMAND SYSTEMS AG", - [3]byte{0, 13, 165}: "Fabric7 Systems, Inc", - [3]byte{0, 13, 166}: "Universal Switching Corporation", - [3]byte{0, 13, 167}: "PRIVATE", - [3]byte{0, 13, 168}: "Teletronics Technology Corporation", - [3]byte{0, 13, 169}: "T.E.A.M. S.L.", - [3]byte{0, 13, 170}: "S.A.Tehnology co.,Ltd.", - [3]byte{0, 13, 171}: "Parker Hannifin GmbH Electromechanical Division Europe", - [3]byte{0, 13, 172}: "Japan CBM Corporation", - [3]byte{0, 13, 173}: "Dataprobe, Inc.", - [3]byte{0, 13, 174}: "SAMSUNG HEAVY INDUSTRIES CO., LTD.", - [3]byte{0, 13, 175}: "Plexus Corp (UK) Ltd", - [3]byte{0, 13, 176}: "Olym-tech Co.,Ltd.", - [3]byte{0, 13, 177}: "Japan Network Service Co., Ltd.", - [3]byte{0, 13, 178}: "Ammasso, Inc.", - [3]byte{0, 13, 179}: "SDO Communication Corperation", - [3]byte{0, 13, 180}: "NETASQ", - [3]byte{0, 13, 181}: "GLOBALSAT TECHNOLOGY CORPORATION", - [3]byte{0, 13, 182}: "Broadcom Corporation", - [3]byte{0, 13, 183}: "SANKO ELECTRIC CO,.LTD", - [3]byte{0, 13, 184}: "SCHILLER AG", - [3]byte{0, 13, 185}: "PC Engines GmbH", - [3]byte{0, 13, 186}: "Océ Document Technologies GmbH", - [3]byte{0, 13, 187}: "Nippon Dentsu Co.,Ltd.", - [3]byte{0, 13, 188}: "CISCO SYSTEMS, INC.", - [3]byte{0, 13, 189}: "CISCO SYSTEMS, INC.", - [3]byte{0, 13, 190}: "Bel Fuse Europe Ltd.,UK", - [3]byte{0, 13, 191}: "TekTone Sound & Signal Mfg., Inc.", - [3]byte{0, 13, 192}: "Spagat AS", - [3]byte{0, 13, 193}: "SafeWeb Inc", - [3]byte{0, 13, 194}: "PRIVATE", - [3]byte{0, 13, 195}: "First Communication, Inc.", - [3]byte{0, 13, 196}: "Emcore Corporation", - [3]byte{0, 13, 197}: "EchoStar Global B.V.", - [3]byte{0, 13, 198}: "DigiRose Technology Co., Ltd.", - [3]byte{0, 13, 199}: "COSMIC ENGINEERING INC.", - [3]byte{0, 13, 200}: "AirMagnet, Inc", - [3]byte{0, 13, 201}: "THALES Elektronik Systeme GmbH", - [3]byte{0, 13, 202}: "Tait Electronics", - [3]byte{0, 13, 203}: "Petcomkorea Co., Ltd.", - [3]byte{0, 13, 204}: "NEOSMART Corp.", - [3]byte{0, 13, 205}: "GROUPE TXCOM", - [3]byte{0, 13, 206}: "Dynavac Technology Pte Ltd", - [3]byte{0, 13, 207}: "Cidra Corp.", - [3]byte{0, 13, 208}: "TetraTec Instruments GmbH", - [3]byte{0, 13, 209}: "Stryker Corporation", - [3]byte{0, 13, 210}: "Simrad Optronics ASA", - [3]byte{0, 13, 211}: "SAMWOO Telecommunication Co.,Ltd.", - [3]byte{0, 13, 212}: "Symantec Corporation", - [3]byte{0, 13, 213}: "O'RITE TECHNOLOGY CO.,LTD", - [3]byte{0, 13, 214}: "ITI LTD", - [3]byte{0, 13, 215}: "Bright", - [3]byte{0, 13, 216}: "BBN", - [3]byte{0, 13, 217}: "Anton Paar GmbH", - [3]byte{0, 13, 218}: "ALLIED TELESIS K.K.", - [3]byte{0, 13, 219}: "AIRWAVE TECHNOLOGIES INC.", - [3]byte{0, 13, 220}: "VAC", - [3]byte{0, 13, 221}: "Profilo Telra Elektronik Sanayi ve Ticaret. A.Åž", - [3]byte{0, 13, 222}: "Joyteck Co., Ltd.", - [3]byte{0, 13, 223}: "Japan Image & Network Inc.", - [3]byte{0, 13, 224}: "ICPDAS Co.,LTD", - [3]byte{0, 13, 225}: "Control Products, Inc.", - [3]byte{0, 13, 226}: "CMZ Sistemi Elettronici", - [3]byte{0, 13, 227}: "AT Sweden AB", - [3]byte{0, 13, 228}: "DIGINICS, Inc.", - [3]byte{0, 13, 229}: "Samsung Thales", - [3]byte{0, 13, 230}: "YOUNGBO ENGINEERING CO.,LTD", - [3]byte{0, 13, 231}: "Snap-on OEM Group", - [3]byte{0, 13, 232}: "Nasaco Electronics Pte. Ltd", - [3]byte{0, 13, 233}: "Napatech Aps", - [3]byte{0, 13, 234}: "Kingtel Telecommunication Corp.", - [3]byte{0, 13, 235}: "CompXs Limited", - [3]byte{0, 13, 236}: "CISCO SYSTEMS, INC.", - [3]byte{0, 13, 237}: "CISCO SYSTEMS, INC.", - [3]byte{0, 13, 238}: "Andrew RF Power Amplifier Group", - [3]byte{0, 13, 239}: "Soc. Coop. Bilanciai", - [3]byte{0, 13, 240}: "QCOM TECHNOLOGY INC.", - [3]byte{0, 13, 241}: "IONIX INC.", - [3]byte{0, 13, 242}: "PRIVATE", - [3]byte{0, 13, 243}: "Asmax Solutions", - [3]byte{0, 13, 244}: "Watertek Co.", - [3]byte{0, 13, 245}: "Teletronics International Inc.", - [3]byte{0, 13, 246}: "Technology Thesaurus Corp.", - [3]byte{0, 13, 247}: "Space Dynamics Lab", - [3]byte{0, 13, 248}: "ORGA Kartensysteme GmbH", - [3]byte{0, 13, 249}: "NDS Limited", - [3]byte{0, 13, 250}: "Micro Control Systems Ltd.", - [3]byte{0, 13, 251}: "Komax AG", - [3]byte{0, 13, 252}: "ITFOR Inc.", - [3]byte{0, 13, 253}: "Huges Hi-Tech Inc.,", - [3]byte{0, 13, 254}: "Hauppauge Computer Works, Inc.", - [3]byte{0, 13, 255}: "CHENMING MOLD INDUSTRY CORP.", - [3]byte{0, 14, 0}: "Atrie", - [3]byte{0, 14, 1}: "ASIP Technologies Inc.", - [3]byte{0, 14, 2}: "Advantech AMT Inc.", - [3]byte{0, 14, 3}: "Emulex Corporation", - [3]byte{0, 14, 4}: "CMA/Microdialysis AB", - [3]byte{0, 14, 5}: "WIRELESS MATRIX CORP.", - [3]byte{0, 14, 6}: "Team Simoco Ltd", - [3]byte{0, 14, 7}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 14, 8}: "Cisco Linksys LLC", - [3]byte{0, 14, 9}: "Shenzhen Coship Software Co.,LTD.", - [3]byte{0, 14, 10}: "SAKUMA DESIGN OFFICE", - [3]byte{0, 14, 11}: "Netac Technology Co., Ltd.", - [3]byte{0, 14, 12}: "Intel Corporation", - [3]byte{0, 14, 13}: "Hesch Schröder GmbH", - [3]byte{0, 14, 14}: "ESA elettronica S.P.A.", - [3]byte{0, 14, 15}: "ERMME", - [3]byte{0, 14, 16}: "C-guys, Inc.", - [3]byte{0, 14, 17}: "BDT Büro und Datentechnik GmbH & Co.KG", - [3]byte{0, 14, 18}: "Adaptive Micro Systems Inc.", - [3]byte{0, 14, 19}: "Accu-Sort Systems inc.", - [3]byte{0, 14, 20}: "Visionary Solutions, Inc.", - [3]byte{0, 14, 21}: "Tadlys LTD", - [3]byte{0, 14, 22}: "SouthWing S.L.", - [3]byte{0, 14, 23}: "PRIVATE", - [3]byte{0, 14, 24}: "MyA Technology", - [3]byte{0, 14, 25}: "LogicaCMG Pty Ltd", - [3]byte{0, 14, 26}: "JPS Communications", - [3]byte{0, 14, 27}: "IAV GmbH", - [3]byte{0, 14, 28}: "Hach Company", - [3]byte{0, 14, 29}: "ARION Technology Inc.", - [3]byte{0, 14, 30}: "QLogic Corporation", - [3]byte{0, 14, 31}: "TCL Networks Equipment Co., Ltd.", - [3]byte{0, 14, 32}: "ACCESS Systems Americas, Inc.", - [3]byte{0, 14, 33}: "MTU Friedrichshafen GmbH", - [3]byte{0, 14, 34}: "PRIVATE", - [3]byte{0, 14, 35}: "Incipient, Inc.", - [3]byte{0, 14, 36}: "Huwell Technology Inc.", - [3]byte{0, 14, 37}: "Hannae Technology Co., Ltd", - [3]byte{0, 14, 38}: "Gincom Technology Corp.", - [3]byte{0, 14, 39}: "Crere Networks, Inc.", - [3]byte{0, 14, 40}: "Dynamic Ratings P/L", - [3]byte{0, 14, 41}: "Shester Communications Inc", - [3]byte{0, 14, 42}: "PRIVATE", - [3]byte{0, 14, 43}: "Safari Technologies", - [3]byte{0, 14, 44}: "Netcodec co.", - [3]byte{0, 14, 45}: "Hyundai Digital Technology Co.,Ltd.", - [3]byte{0, 14, 46}: "Edimax Technology Co., Ltd.", - [3]byte{0, 14, 47}: "Roche Diagnostics GmbH", - [3]byte{0, 14, 48}: "AERAS Networks, Inc.", - [3]byte{0, 14, 49}: "Olympus Soft Imaging Solutions GmbH", - [3]byte{0, 14, 50}: "Kontron Medical", - [3]byte{0, 14, 51}: "Shuko Electronics Co.,Ltd", - [3]byte{0, 14, 52}: "NexGen City, LP", - [3]byte{0, 14, 53}: "Intel Corp", - [3]byte{0, 14, 54}: "HEINESYS, Inc.", - [3]byte{0, 14, 55}: "Harms & Wende GmbH & Co.KG", - [3]byte{0, 14, 56}: "CISCO SYSTEMS, INC.", - [3]byte{0, 14, 57}: "CISCO SYSTEMS, INC.", - [3]byte{0, 14, 58}: "Cirrus Logic", - [3]byte{0, 14, 59}: "Hawking Technologies, Inc.", - [3]byte{0, 14, 60}: "Transact Technologies Inc", - [3]byte{0, 14, 61}: "Televic N.V.", - [3]byte{0, 14, 62}: "Sun Optronics Inc", - [3]byte{0, 14, 63}: "Soronti, Inc.", - [3]byte{0, 14, 64}: "Nortel Networks", - [3]byte{0, 14, 65}: "NIHON MECHATRONICS CO.,LTD.", - [3]byte{0, 14, 66}: "Motic Incoporation Ltd.", - [3]byte{0, 14, 67}: "G-Tek Electronics Sdn. Bhd.", - [3]byte{0, 14, 68}: "Digital 5, Inc.", - [3]byte{0, 14, 69}: "Beijing Newtry Electronic Technology Ltd", - [3]byte{0, 14, 70}: "Niigata Seimitsu Co.,Ltd.", - [3]byte{0, 14, 71}: "NCI System Co.,Ltd.", - [3]byte{0, 14, 72}: "Lipman TransAction Solutions", - [3]byte{0, 14, 73}: "Forsway Scandinavia AB", - [3]byte{0, 14, 74}: "Changchun Huayu WEBPAD Co.,LTD", - [3]byte{0, 14, 75}: "atrium c and i", - [3]byte{0, 14, 76}: "Bermai Inc.", - [3]byte{0, 14, 77}: "Numesa Inc.", - [3]byte{0, 14, 78}: "Waveplus Technology Co., Ltd.", - [3]byte{0, 14, 79}: "Trajet GmbH", - [3]byte{0, 14, 80}: "Thomson Telecom Belgium", - [3]byte{0, 14, 81}: "tecna elettronica srl", - [3]byte{0, 14, 82}: "Optium Corporation", - [3]byte{0, 14, 83}: "AV TECH CORPORATION", - [3]byte{0, 14, 84}: "AlphaCell Wireless Ltd.", - [3]byte{0, 14, 85}: "AUVITRAN", - [3]byte{0, 14, 86}: "4G Systems GmbH & Co. KG", - [3]byte{0, 14, 87}: "Iworld Networking, Inc.", - [3]byte{0, 14, 88}: "Sonos, Inc.", - [3]byte{0, 14, 89}: "SAGEM SA", - [3]byte{0, 14, 90}: "TELEFIELD inc.", - [3]byte{0, 14, 91}: "ParkerVision - Direct2Data", - [3]byte{0, 14, 92}: "ARRIS Group, Inc.", - [3]byte{0, 14, 93}: "Triple Play Technologies A/S", - [3]byte{0, 14, 94}: "Raisecom Technology", - [3]byte{0, 14, 95}: "activ-net GmbH & Co. KG", - [3]byte{0, 14, 96}: "360SUN Digital Broadband Corporation", - [3]byte{0, 14, 97}: "MICROTROL LIMITED", - [3]byte{0, 14, 98}: "Nortel Networks", - [3]byte{0, 14, 99}: "Lemke Diagnostics GmbH", - [3]byte{0, 14, 100}: "Elphel, Inc", - [3]byte{0, 14, 101}: "TransCore", - [3]byte{0, 14, 102}: "Hitachi Industry & Control Solutions, Ltd.", - [3]byte{0, 14, 103}: "Eltis Microelectronics Ltd.", - [3]byte{0, 14, 104}: "E-TOP Network Technology Inc.", - [3]byte{0, 14, 105}: "China Electric Power Research Institute", - [3]byte{0, 14, 106}: "3Com Ltd", - [3]byte{0, 14, 107}: "Janitza electronics GmbH", - [3]byte{0, 14, 108}: "Device Drivers Limited", - [3]byte{0, 14, 109}: "Murata Manufacturing Co., Ltd.", - [3]byte{0, 14, 110}: "MAT S.A. (Mircrelec Advanced Technology)", - [3]byte{0, 14, 111}: "IRIS Corporation Berhad", - [3]byte{0, 14, 112}: "in2 Networks", - [3]byte{0, 14, 113}: "Gemstar Technology Development Ltd.", - [3]byte{0, 14, 114}: "CTS electronics", - [3]byte{0, 14, 115}: "Tpack A/S", - [3]byte{0, 14, 116}: "Solar Telecom. Tech", - [3]byte{0, 14, 117}: "New York Air Brake Corp.", - [3]byte{0, 14, 118}: "GEMSOC INNOVISION INC.", - [3]byte{0, 14, 119}: "Decru, Inc.", - [3]byte{0, 14, 120}: "Amtelco", - [3]byte{0, 14, 121}: "Ample Communications Inc.", - [3]byte{0, 14, 122}: "GemWon Communications Co., Ltd.", - [3]byte{0, 14, 123}: "Toshiba", - [3]byte{0, 14, 124}: "Televes S.A.", - [3]byte{0, 14, 125}: "Electronics Line 3000 Ltd.", - [3]byte{0, 14, 126}: "ionSign Oy", - [3]byte{0, 14, 127}: "Hewlett-Packard Company", - [3]byte{0, 14, 128}: "Thomson Technology Inc", - [3]byte{0, 14, 129}: "Devicescape Software, Inc.", - [3]byte{0, 14, 130}: "Commtech Wireless", - [3]byte{0, 14, 131}: "CISCO SYSTEMS, INC.", - [3]byte{0, 14, 132}: "CISCO SYSTEMS, INC.", - [3]byte{0, 14, 133}: "Catalyst Enterprises, Inc.", - [3]byte{0, 14, 134}: "Alcatel North America", - [3]byte{0, 14, 135}: "adp Gauselmann GmbH", - [3]byte{0, 14, 136}: "VIDEOTRON CORP.", - [3]byte{0, 14, 137}: "CLEMATIC", - [3]byte{0, 14, 138}: "Avara Technologies Pty. Ltd.", - [3]byte{0, 14, 139}: "Astarte Technology Co, Ltd.", - [3]byte{0, 14, 140}: "Siemens AG A&D ET", - [3]byte{0, 14, 141}: "Systems in Progress Holding GmbH", - [3]byte{0, 14, 142}: "SparkLAN Communications, Inc.", - [3]byte{0, 14, 143}: "Sercomm Corp.", - [3]byte{0, 14, 144}: "PONICO CORP.", - [3]byte{0, 14, 145}: "Navico Auckland Ltd", - [3]byte{0, 14, 146}: "Open Telecom", - [3]byte{0, 14, 147}: "Milénio 3 Sistemas Electrónicos, Lda.", - [3]byte{0, 14, 148}: "Maas International BV", - [3]byte{0, 14, 149}: "Fujiya Denki Seisakusho Co.,Ltd.", - [3]byte{0, 14, 150}: "Cubic Defense Applications, Inc.", - [3]byte{0, 14, 151}: "Ultracker Technology CO., Inc", - [3]byte{0, 14, 152}: "HME Clear-Com LTD.", - [3]byte{0, 14, 153}: "Spectrum Digital, Inc", - [3]byte{0, 14, 154}: "BOE TECHNOLOGY GROUP CO.,LTD", - [3]byte{0, 14, 155}: "Ambit Microsystems Corporation", - [3]byte{0, 14, 156}: "Benchmark Electronics", - [3]byte{0, 14, 157}: "Tiscali UK Ltd", - [3]byte{0, 14, 158}: "Topfield Co., Ltd", - [3]byte{0, 14, 159}: "TEMIC SDS GmbH", - [3]byte{0, 14, 160}: "NetKlass Technology Inc.", - [3]byte{0, 14, 161}: "Formosa Teletek Corporation", - [3]byte{0, 14, 162}: "McAfee, Inc", - [3]byte{0, 14, 163}: "CNCR-IT CO.,LTD,HangZhou P.R.CHINA", - [3]byte{0, 14, 164}: "Certance Inc.", - [3]byte{0, 14, 165}: "BLIP Systems", - [3]byte{0, 14, 166}: "ASUSTEK COMPUTER INC.", - [3]byte{0, 14, 167}: "Endace Technology", - [3]byte{0, 14, 168}: "United Technologists Europe Limited", - [3]byte{0, 14, 169}: "Shanghai Xun Shi Communications Equipment Ltd. Co.", - [3]byte{0, 14, 170}: "Scalent Systems, Inc.", - [3]byte{0, 14, 171}: "Cray Inc", - [3]byte{0, 14, 172}: "MINTRON ENTERPRISE CO., LTD.", - [3]byte{0, 14, 173}: "Metanoia Technologies, Inc.", - [3]byte{0, 14, 174}: "GAWELL TECHNOLOGIES CORP.", - [3]byte{0, 14, 175}: "CASTEL", - [3]byte{0, 14, 176}: "Solutions Radio BV", - [3]byte{0, 14, 177}: "Newcotech,Ltd", - [3]byte{0, 14, 178}: "Micro-Research Finland Oy", - [3]byte{0, 14, 179}: "Hewlett-Packard", - [3]byte{0, 14, 180}: "GUANGZHOU GAOKE COMMUNICATIONS TECHNOLOGY CO.LTD.", - [3]byte{0, 14, 181}: "Ecastle Electronics Co., Ltd.", - [3]byte{0, 14, 182}: "Riverbed Technology, Inc.", - [3]byte{0, 14, 183}: "Knovative, Inc.", - [3]byte{0, 14, 184}: "Iiga co.,Ltd", - [3]byte{0, 14, 185}: "HASHIMOTO Electronics Industry Co.,Ltd.", - [3]byte{0, 14, 186}: "HANMI SEMICONDUCTOR CO., LTD.", - [3]byte{0, 14, 187}: "Everbee Networks", - [3]byte{0, 14, 188}: "Paragon Fidelity GmbH", - [3]byte{0, 14, 189}: "Burdick, a Quinton Compny", - [3]byte{0, 14, 190}: "B&B Electronics Manufacturing Co.", - [3]byte{0, 14, 191}: "Remsdaq Limited", - [3]byte{0, 14, 192}: "Nortel Networks", - [3]byte{0, 14, 193}: "MYNAH Technologies", - [3]byte{0, 14, 194}: "Lowrance Electronics, Inc.", - [3]byte{0, 14, 195}: "Logic Controls, Inc.", - [3]byte{0, 14, 196}: "Iskra Transmission d.d.", - [3]byte{0, 14, 197}: "Digital Multitools Inc", - [3]byte{0, 14, 198}: "ASIX ELECTRONICS CORP.", - [3]byte{0, 14, 199}: "Motorola Korea", - [3]byte{0, 14, 200}: "Zoran Corporation", - [3]byte{0, 14, 201}: "YOKO Technology Corp.", - [3]byte{0, 14, 202}: "WTSS Inc", - [3]byte{0, 14, 203}: "VineSys Technology", - [3]byte{0, 14, 204}: "Tableau, LLC", - [3]byte{0, 14, 205}: "SKOV A/S", - [3]byte{0, 14, 206}: "S.I.T.T.I. S.p.A.", - [3]byte{0, 14, 207}: "PROFIBUS Nutzerorganisation e.V.", - [3]byte{0, 14, 208}: "Privaris, Inc.", - [3]byte{0, 14, 209}: "Osaka Micro Computer.", - [3]byte{0, 14, 210}: "Filtronic plc", - [3]byte{0, 14, 211}: "Epicenter, Inc.", - [3]byte{0, 14, 212}: "CRESITT INDUSTRIE", - [3]byte{0, 14, 213}: "COPAN Systems Inc.", - [3]byte{0, 14, 214}: "CISCO SYSTEMS, INC.", - [3]byte{0, 14, 215}: "CISCO SYSTEMS, INC.", - [3]byte{0, 14, 216}: "Aktino, Inc.", - [3]byte{0, 14, 217}: "Aksys, Ltd.", - [3]byte{0, 14, 218}: "C-TECH UNITED CORP.", - [3]byte{0, 14, 219}: "XiNCOM Corp.", - [3]byte{0, 14, 220}: "Tellion INC.", - [3]byte{0, 14, 221}: "SHURE INCORPORATED", - [3]byte{0, 14, 222}: "REMEC, Inc.", - [3]byte{0, 14, 223}: "PLX Technology", - [3]byte{0, 14, 224}: "Mcharge", - [3]byte{0, 14, 225}: "ExtremeSpeed Inc.", - [3]byte{0, 14, 226}: "Custom Engineering", - [3]byte{0, 14, 227}: "Chiyu Technology Co.,Ltd", - [3]byte{0, 14, 228}: "BOE TECHNOLOGY GROUP CO.,LTD", - [3]byte{0, 14, 229}: "bitWallet, Inc.", - [3]byte{0, 14, 230}: "Adimos Systems LTD", - [3]byte{0, 14, 231}: "AAC ELECTRONICS CORP.", - [3]byte{0, 14, 232}: "zioncom", - [3]byte{0, 14, 233}: "WayTech Development, Inc.", - [3]byte{0, 14, 234}: "Shadong Luneng Jicheng Electronics,Co.,Ltd", - [3]byte{0, 14, 235}: "Sandmartin(zhong shan)Electronics Co.,Ltd", - [3]byte{0, 14, 236}: "Orban", - [3]byte{0, 14, 237}: "Nokia Danmark A/S", - [3]byte{0, 14, 238}: "Muco Industrie BV", - [3]byte{0, 14, 239}: "PRIVATE", - [3]byte{0, 14, 240}: "Festo AG & Co. KG", - [3]byte{0, 14, 241}: "EZQUEST INC.", - [3]byte{0, 14, 242}: "Infinico Corporation", - [3]byte{0, 14, 243}: "Smarthome", - [3]byte{0, 14, 244}: "Kasda Digital Technology Co.,Ltd", - [3]byte{0, 14, 245}: "iPAC Technology Co., Ltd.", - [3]byte{0, 14, 246}: "E-TEN Information Systems Co., Ltd.", - [3]byte{0, 14, 247}: "Vulcan Portals Inc", - [3]byte{0, 14, 248}: "SBC ASI", - [3]byte{0, 14, 249}: "REA Elektronik GmbH", - [3]byte{0, 14, 250}: "Optoway Technology Incorporation", - [3]byte{0, 14, 251}: "Macey Enterprises", - [3]byte{0, 14, 252}: "JTAG Technologies B.V.", - [3]byte{0, 14, 253}: "FUJINON CORPORATION", - [3]byte{0, 14, 254}: "EndRun Technologies LLC", - [3]byte{0, 14, 255}: "Megasolution,Inc.", - [3]byte{0, 15, 0}: "Legra Systems, Inc.", - [3]byte{0, 15, 1}: "DIGITALKS INC", - [3]byte{0, 15, 2}: "Digicube Technology Co., Ltd", - [3]byte{0, 15, 3}: "COM&C CO., LTD", - [3]byte{0, 15, 4}: "cim-usa inc", - [3]byte{0, 15, 5}: "3B SYSTEM INC.", - [3]byte{0, 15, 6}: "Nortel Networks", - [3]byte{0, 15, 7}: "Mangrove Systems, Inc.", - [3]byte{0, 15, 8}: "Indagon Oy", - [3]byte{0, 15, 9}: "PRIVATE", - [3]byte{0, 15, 10}: "Clear Edge Networks", - [3]byte{0, 15, 11}: "Kentima Technologies AB", - [3]byte{0, 15, 12}: "SYNCHRONIC ENGINEERING", - [3]byte{0, 15, 13}: "Hunt Electronic Co., Ltd.", - [3]byte{0, 15, 14}: "WaveSplitter Technologies, Inc.", - [3]byte{0, 15, 15}: "Real ID Technology Co., Ltd.", - [3]byte{0, 15, 16}: "RDM Corporation", - [3]byte{0, 15, 17}: "Prodrive B.V.", - [3]byte{0, 15, 18}: "Panasonic Europe Ltd.", - [3]byte{0, 15, 19}: "Nisca corporation", - [3]byte{0, 15, 20}: "Mindray Co., Ltd.", - [3]byte{0, 15, 21}: "Kjaerulff1 A/S", - [3]byte{0, 15, 22}: "JAY HOW TECHNOLOGY CO.,", - [3]byte{0, 15, 23}: "Insta Elektro GmbH", - [3]byte{0, 15, 24}: "Industrial Control Systems", - [3]byte{0, 15, 25}: "Boston Scientific", - [3]byte{0, 15, 26}: "Gaming Support B.V.", - [3]byte{0, 15, 27}: "Ego Systems Inc.", - [3]byte{0, 15, 28}: "DigitAll World Co., Ltd", - [3]byte{0, 15, 29}: "Cosmo Techs Co., Ltd.", - [3]byte{0, 15, 30}: "Chengdu KT Electric Co.of High & New Technology", - [3]byte{0, 15, 31}: "Dell Inc", - [3]byte{0, 15, 32}: "Hewlett-Packard Company", - [3]byte{0, 15, 33}: "Scientific Atlanta, Inc", - [3]byte{0, 15, 34}: "Helius, Inc.", - [3]byte{0, 15, 35}: "CISCO SYSTEMS, INC.", - [3]byte{0, 15, 36}: "CISCO SYSTEMS, INC.", - [3]byte{0, 15, 37}: "AimValley B.V.", - [3]byte{0, 15, 38}: "WorldAccxx LLC", - [3]byte{0, 15, 39}: "TEAL Electronics, Inc.", - [3]byte{0, 15, 40}: "Itronix Corporation", - [3]byte{0, 15, 41}: "Augmentix Corporation", - [3]byte{0, 15, 42}: "Cableware Electronics", - [3]byte{0, 15, 43}: "GREENBELL SYSTEMS", - [3]byte{0, 15, 44}: "Uplogix, Inc.", - [3]byte{0, 15, 45}: "CHUNG-HSIN ELECTRIC & MACHINERY MFG.CORP.", - [3]byte{0, 15, 46}: "Megapower International Corp.", - [3]byte{0, 15, 47}: "W-LINX TECHNOLOGY CO., LTD.", - [3]byte{0, 15, 48}: "Raza Microelectronics Inc", - [3]byte{0, 15, 49}: "Allied Vision Technologies Canada Inc", - [3]byte{0, 15, 50}: "Lootom Telcovideo Network Wuxi Co Ltd", - [3]byte{0, 15, 51}: "DUALi Inc.", - [3]byte{0, 15, 52}: "CISCO SYSTEMS, INC.", - [3]byte{0, 15, 53}: "CISCO SYSTEMS, INC.", - [3]byte{0, 15, 54}: "Accurate Techhnologies, Inc.", - [3]byte{0, 15, 55}: "Xambala Incorporated", - [3]byte{0, 15, 56}: "Netstar", - [3]byte{0, 15, 57}: "IRIS SENSORS", - [3]byte{0, 15, 58}: "HISHARP", - [3]byte{0, 15, 59}: "Fuji System Machines Co., Ltd.", - [3]byte{0, 15, 60}: "Endeleo Limited", - [3]byte{0, 15, 61}: "D-Link Corporation", - [3]byte{0, 15, 62}: "CardioNet, Inc", - [3]byte{0, 15, 63}: "Big Bear Networks", - [3]byte{0, 15, 64}: "Optical Internetworking Forum", - [3]byte{0, 15, 65}: "Zipher Ltd", - [3]byte{0, 15, 66}: "Xalyo Systems", - [3]byte{0, 15, 67}: "Wasabi Systems Inc.", - [3]byte{0, 15, 68}: "Tivella Inc.", - [3]byte{0, 15, 69}: "Stretch, Inc.", - [3]byte{0, 15, 70}: "SINAR AG", - [3]byte{0, 15, 71}: "ROBOX SPA", - [3]byte{0, 15, 72}: "Polypix Inc.", - [3]byte{0, 15, 73}: "Northover Solutions Limited", - [3]byte{0, 15, 74}: "Kyushu-kyohan co.,ltd", - [3]byte{0, 15, 75}: "Oracle Corporation", - [3]byte{0, 15, 76}: "Elextech INC", - [3]byte{0, 15, 77}: "TalkSwitch", - [3]byte{0, 15, 78}: "Cellink", - [3]byte{0, 15, 79}: "Cadmus Technology Ltd", - [3]byte{0, 15, 80}: "StreamScale Limited", - [3]byte{0, 15, 81}: "Azul Systems, Inc.", - [3]byte{0, 15, 82}: "YORK Refrigeration, Marine & Controls", - [3]byte{0, 15, 83}: "Solarflare Communications Inc", - [3]byte{0, 15, 84}: "Entrelogic Corporation", - [3]byte{0, 15, 85}: "Datawire Communication Networks Inc.", - [3]byte{0, 15, 86}: "Continuum Photonics Inc", - [3]byte{0, 15, 87}: "CABLELOGIC Co., Ltd.", - [3]byte{0, 15, 88}: "Adder Technology Limited", - [3]byte{0, 15, 89}: "Phonak Communications AG", - [3]byte{0, 15, 90}: "Peribit Networks", - [3]byte{0, 15, 91}: "Delta Information Systems, Inc.", - [3]byte{0, 15, 92}: "Day One Digital Media Limited", - [3]byte{0, 15, 93}: "Genexis BV", - [3]byte{0, 15, 94}: "Veo", - [3]byte{0, 15, 95}: "Nicety Technologies Inc. (NTS)", - [3]byte{0, 15, 96}: "Lifetron Co.,Ltd", - [3]byte{0, 15, 97}: "Hewlett-Packard Company", - [3]byte{0, 15, 98}: "Alcatel Bell Space N.V.", - [3]byte{0, 15, 99}: "Obzerv Technologies", - [3]byte{0, 15, 100}: "D&R Electronica Weesp BV", - [3]byte{0, 15, 101}: "icube Corp.", - [3]byte{0, 15, 102}: "Cisco-Linksys", - [3]byte{0, 15, 103}: "West Instruments", - [3]byte{0, 15, 104}: "Vavic Network Technology, Inc.", - [3]byte{0, 15, 105}: "SEW Eurodrive GmbH & Co. KG", - [3]byte{0, 15, 106}: "Nortel Networks", - [3]byte{0, 15, 107}: "GateWare Communications GmbH", - [3]byte{0, 15, 108}: "ADDI-DATA GmbH", - [3]byte{0, 15, 109}: "Midas Engineering", - [3]byte{0, 15, 110}: "BBox", - [3]byte{0, 15, 111}: "FTA Communication Technologies", - [3]byte{0, 15, 112}: "Wintec Industries, inc.", - [3]byte{0, 15, 113}: "Sanmei Electronics Co.,Ltd", - [3]byte{0, 15, 114}: "Sandburst", - [3]byte{0, 15, 115}: "RS Automation Co., Ltd", - [3]byte{0, 15, 116}: "Qamcom Technology AB", - [3]byte{0, 15, 117}: "First Silicon Solutions", - [3]byte{0, 15, 118}: "Digital Keystone, Inc.", - [3]byte{0, 15, 119}: "DENTUM CO.,LTD", - [3]byte{0, 15, 120}: "Datacap Systems Inc", - [3]byte{0, 15, 121}: "Bluetooth Interest Group Inc.", - [3]byte{0, 15, 122}: "BeiJing NuQX Technology CO.,LTD", - [3]byte{0, 15, 123}: "Arce Sistemas, S.A.", - [3]byte{0, 15, 124}: "ACTi Corporation", - [3]byte{0, 15, 125}: "Xirrus", - [3]byte{0, 15, 126}: "Ablerex Electronics Co., LTD", - [3]byte{0, 15, 127}: "UBSTORAGE Co.,Ltd.", - [3]byte{0, 15, 128}: "Trinity Security Systems,Inc.", - [3]byte{0, 15, 129}: "PAL Pacific Inc.", - [3]byte{0, 15, 130}: "Mortara Instrument, Inc.", - [3]byte{0, 15, 131}: "Brainium Technologies Inc.", - [3]byte{0, 15, 132}: "Astute Networks, Inc.", - [3]byte{0, 15, 133}: "ADDO-Japan Corporation", - [3]byte{0, 15, 134}: "Research In Motion Limited", - [3]byte{0, 15, 135}: "Maxcess International", - [3]byte{0, 15, 136}: "AMETEK, Inc.", - [3]byte{0, 15, 137}: "Winnertec System Co., Ltd.", - [3]byte{0, 15, 138}: "WideView", - [3]byte{0, 15, 139}: "Orion MultiSystems Inc", - [3]byte{0, 15, 140}: "Gigawavetech Pte Ltd", - [3]byte{0, 15, 141}: "FAST TV-Server AG", - [3]byte{0, 15, 142}: "DONGYANG TELECOM CO.,LTD.", - [3]byte{0, 15, 143}: "CISCO SYSTEMS, INC.", - [3]byte{0, 15, 144}: "CISCO SYSTEMS, INC.", - [3]byte{0, 15, 145}: "Aerotelecom Co.,Ltd.", - [3]byte{0, 15, 146}: "Microhard Systems Inc.", - [3]byte{0, 15, 147}: "Landis+Gyr Ltd.", - [3]byte{0, 15, 148}: "Genexis BV", - [3]byte{0, 15, 149}: "ELECOM Co.,LTD Laneed Division", - [3]byte{0, 15, 150}: "Telco Systems, Inc.", - [3]byte{0, 15, 151}: "Avanex Corporation", - [3]byte{0, 15, 152}: "Avamax Co. Ltd.", - [3]byte{0, 15, 153}: "APAC opto Electronics Inc.", - [3]byte{0, 15, 154}: "Synchrony, Inc.", - [3]byte{0, 15, 155}: "Ross Video Limited", - [3]byte{0, 15, 156}: "Panduit Corp", - [3]byte{0, 15, 157}: "DisplayLink (UK) Ltd", - [3]byte{0, 15, 158}: "Murrelektronik GmbH", - [3]byte{0, 15, 159}: "ARRIS Group, Inc.", - [3]byte{0, 15, 160}: "CANON KOREA BUSINESS SOLUTIONS INC.", - [3]byte{0, 15, 161}: "Gigabit Systems Inc.", - [3]byte{0, 15, 162}: "2xWireless", - [3]byte{0, 15, 163}: "Alpha Networks Inc.", - [3]byte{0, 15, 164}: "Sprecher Automation GmbH", - [3]byte{0, 15, 165}: "BWA Technology GmbH", - [3]byte{0, 15, 166}: "S2 Security Corporation", - [3]byte{0, 15, 167}: "Raptor Networks Technology", - [3]byte{0, 15, 168}: "Photometrics, Inc.", - [3]byte{0, 15, 169}: "PC Fabrik", - [3]byte{0, 15, 170}: "Nexus Technologies", - [3]byte{0, 15, 171}: "Kyushu Electronics Systems Inc.", - [3]byte{0, 15, 172}: "IEEE 802.11", - [3]byte{0, 15, 173}: "FMN communications GmbH", - [3]byte{0, 15, 174}: "E2O Communications", - [3]byte{0, 15, 175}: "Dialog Inc.", - [3]byte{0, 15, 176}: "Compal Electronics,INC.", - [3]byte{0, 15, 177}: "Cognio Inc.", - [3]byte{0, 15, 178}: "Broadband Pacenet (India) Pvt. Ltd.", - [3]byte{0, 15, 179}: "Actiontec Electronics, Inc", - [3]byte{0, 15, 180}: "Timespace Technology", - [3]byte{0, 15, 181}: "NETGEAR Inc", - [3]byte{0, 15, 182}: "Europlex Technologies", - [3]byte{0, 15, 183}: "Cavium Networks", - [3]byte{0, 15, 184}: "CallURL Inc.", - [3]byte{0, 15, 185}: "Adaptive Instruments", - [3]byte{0, 15, 186}: "Tevebox AB", - [3]byte{0, 15, 187}: "Nokia Siemens Networks GmbH & Co. KG.", - [3]byte{0, 15, 188}: "Onkey Technologies, Inc.", - [3]byte{0, 15, 189}: "MRV Communications (Networks) LTD", - [3]byte{0, 15, 190}: "e-w/you Inc.", - [3]byte{0, 15, 191}: "DGT Sp. z o.o.", - [3]byte{0, 15, 192}: "DELCOMp", - [3]byte{0, 15, 193}: "WAVE Corporation", - [3]byte{0, 15, 194}: "Uniwell Corporation", - [3]byte{0, 15, 195}: "PalmPalm Technology, Inc.", - [3]byte{0, 15, 196}: "NST co.,LTD.", - [3]byte{0, 15, 197}: "KeyMed Ltd", - [3]byte{0, 15, 198}: "Eurocom Industries A/S", - [3]byte{0, 15, 199}: "Dionica R&D Ltd.", - [3]byte{0, 15, 200}: "Chantry Networks", - [3]byte{0, 15, 201}: "Allnet GmbH", - [3]byte{0, 15, 202}: "A-JIN TECHLINE CO, LTD", - [3]byte{0, 15, 203}: "3Com Ltd", - [3]byte{0, 15, 204}: "Netopia, Inc.", - [3]byte{0, 15, 205}: "Nortel Networks", - [3]byte{0, 15, 206}: "Kikusui Electronics Corp.", - [3]byte{0, 15, 207}: "Datawind Research", - [3]byte{0, 15, 208}: "ASTRI", - [3]byte{0, 15, 209}: "Applied Wireless Identifications Group, Inc.", - [3]byte{0, 15, 210}: "EWA Technologies, Inc.", - [3]byte{0, 15, 211}: "Digium", - [3]byte{0, 15, 212}: "Soundcraft", - [3]byte{0, 15, 213}: "Schwechat - RISE", - [3]byte{0, 15, 214}: "Sarotech Co., Ltd", - [3]byte{0, 15, 215}: "Harman Music Group", - [3]byte{0, 15, 216}: "Force, Inc.", - [3]byte{0, 15, 217}: "FlexDSL Telecommunications AG", - [3]byte{0, 15, 218}: "YAZAKI CORPORATION", - [3]byte{0, 15, 219}: "Westell Technologies", - [3]byte{0, 15, 220}: "Ueda Japan Radio Co., Ltd.", - [3]byte{0, 15, 221}: "SORDIN AB", - [3]byte{0, 15, 222}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 15, 223}: "SOLOMON Technology Corp.", - [3]byte{0, 15, 224}: "NComputing Co.,Ltd.", - [3]byte{0, 15, 225}: "ID DIGITAL CORPORATION", - [3]byte{0, 15, 226}: "Hangzhou H3C Technologies Co., Ltd.", - [3]byte{0, 15, 227}: "Damm Cellular Systems A/S", - [3]byte{0, 15, 228}: "Pantech Co.,Ltd", - [3]byte{0, 15, 229}: "MERCURY SECURITY CORPORATION", - [3]byte{0, 15, 230}: "MBTech Systems, Inc.", - [3]byte{0, 15, 231}: "Lutron Electronics Co., Inc.", - [3]byte{0, 15, 232}: "Lobos, Inc.", - [3]byte{0, 15, 233}: "GW TECHNOLOGIES CO.,LTD.", - [3]byte{0, 15, 234}: "Giga-Byte Technology Co.,LTD.", - [3]byte{0, 15, 235}: "Cylon Controls", - [3]byte{0, 15, 236}: "ARKUS Inc.", - [3]byte{0, 15, 237}: "Anam Electronics Co., Ltd", - [3]byte{0, 15, 238}: "XTec, Incorporated", - [3]byte{0, 15, 239}: "Thales e-Transactions GmbH", - [3]byte{0, 15, 240}: "Sunray Co. Ltd.", - [3]byte{0, 15, 241}: "nex-G Systems Pte.Ltd", - [3]byte{0, 15, 242}: "Loud Technologies Inc.", - [3]byte{0, 15, 243}: "Jung Myoung Communications&Technology", - [3]byte{0, 15, 244}: "Guntermann & Drunck GmbH", - [3]byte{0, 15, 245}: "GN&S company", - [3]byte{0, 15, 246}: "Darfon Electronics Corp.", - [3]byte{0, 15, 247}: "CISCO SYSTEMS, INC.", - [3]byte{0, 15, 248}: "CISCO SYSTEMS, INC.", - [3]byte{0, 15, 249}: "Valcretec, Inc.", - [3]byte{0, 15, 250}: "Optinel Systems, Inc.", - [3]byte{0, 15, 251}: "Nippon Denso Industry Co., Ltd.", - [3]byte{0, 15, 252}: "Merit Li-Lin Ent.", - [3]byte{0, 15, 253}: "Glorytek Network Inc.", - [3]byte{0, 15, 254}: "G-PRO COMPUTER", - [3]byte{0, 15, 255}: "Control4", - [3]byte{0, 16, 0}: "CABLE TELEVISION LABORATORIES, INC.", - [3]byte{0, 16, 1}: "Citel", - [3]byte{0, 16, 2}: "ACTIA", - [3]byte{0, 16, 3}: "IMATRON, INC.", - [3]byte{0, 16, 4}: "THE BRANTLEY COILE COMPANY,INC", - [3]byte{0, 16, 5}: "UEC COMMERCIAL", - [3]byte{0, 16, 6}: "Thales Contact Solutions Ltd.", - [3]byte{0, 16, 7}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 8}: "VIENNA SYSTEMS CORPORATION", - [3]byte{0, 16, 9}: "HORO QUARTZ", - [3]byte{0, 16, 10}: "WILLIAMS COMMUNICATIONS GROUP", - [3]byte{0, 16, 11}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 12}: "ITO CO., LTD.", - [3]byte{0, 16, 13}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 14}: "MICRO LINEAR COPORATION", - [3]byte{0, 16, 15}: "INDUSTRIAL CPU SYSTEMS", - [3]byte{0, 16, 16}: "INITIO CORPORATION", - [3]byte{0, 16, 17}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 18}: "PROCESSOR SYSTEMS (I) PVT LTD", - [3]byte{0, 16, 19}: "Kontron America, Inc.", - [3]byte{0, 16, 20}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 21}: "OOmon Inc.", - [3]byte{0, 16, 22}: "T.SQWARE", - [3]byte{0, 16, 23}: "Bosch Access Systems GmbH", - [3]byte{0, 16, 24}: "BROADCOM CORPORATION", - [3]byte{0, 16, 25}: "SIRONA DENTAL SYSTEMS GmbH & Co. KG", - [3]byte{0, 16, 26}: "PictureTel Corp.", - [3]byte{0, 16, 27}: "CORNET TECHNOLOGY, INC.", - [3]byte{0, 16, 28}: "OHM TECHNOLOGIES INTL, LLC", - [3]byte{0, 16, 29}: "WINBOND ELECTRONICS CORP.", - [3]byte{0, 16, 30}: "MATSUSHITA ELECTRONIC INSTRUMENTS CORP.", - [3]byte{0, 16, 31}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 32}: "Hand Held Products Inc", - [3]byte{0, 16, 33}: "ENCANTO NETWORKS, INC.", - [3]byte{0, 16, 34}: "SatCom Media Corporation", - [3]byte{0, 16, 35}: "Network Equipment Technologies", - [3]byte{0, 16, 36}: "NAGOYA ELECTRIC WORKS CO., LTD", - [3]byte{0, 16, 37}: "Grayhill, Inc", - [3]byte{0, 16, 38}: "ACCELERATED NETWORKS, INC.", - [3]byte{0, 16, 39}: "L-3 COMMUNICATIONS EAST", - [3]byte{0, 16, 40}: "COMPUTER TECHNICA, INC.", - [3]byte{0, 16, 41}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 42}: "ZF MICROSYSTEMS, INC.", - [3]byte{0, 16, 43}: "UMAX DATA SYSTEMS, INC.", - [3]byte{0, 16, 44}: "Lasat Networks A/S", - [3]byte{0, 16, 45}: "HITACHI SOFTWARE ENGINEERING", - [3]byte{0, 16, 46}: "NETWORK SYSTEMS & TECHNOLOGIES PVT. LTD.", - [3]byte{0, 16, 47}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 48}: "EION Inc.", - [3]byte{0, 16, 49}: "OBJECTIVE COMMUNICATIONS, INC.", - [3]byte{0, 16, 50}: "ALTA TECHNOLOGY", - [3]byte{0, 16, 51}: "ACCESSLAN COMMUNICATIONS, INC.", - [3]byte{0, 16, 52}: "GNP Computers", - [3]byte{0, 16, 53}: "ELITEGROUP COMPUTER SYSTEMS CO., LTD", - [3]byte{0, 16, 54}: "INTER-TEL INTEGRATED SYSTEMS", - [3]byte{0, 16, 55}: "CYQ've Technology Co., Ltd.", - [3]byte{0, 16, 56}: "MICRO RESEARCH INSTITUTE, INC.", - [3]byte{0, 16, 57}: "Vectron Systems AG", - [3]byte{0, 16, 58}: "DIAMOND NETWORK TECH", - [3]byte{0, 16, 59}: "HIPPI NETWORKING FORUM", - [3]byte{0, 16, 60}: "IC ENSEMBLE, INC.", - [3]byte{0, 16, 61}: "PHASECOM, LTD.", - [3]byte{0, 16, 62}: "NETSCHOOLS CORPORATION", - [3]byte{0, 16, 63}: "TOLLGRADE COMMUNICATIONS, INC.", - [3]byte{0, 16, 64}: "INTERMEC CORPORATION", - [3]byte{0, 16, 65}: "BRISTOL BABCOCK, INC.", - [3]byte{0, 16, 66}: "Alacritech, Inc.", - [3]byte{0, 16, 67}: "A2 CORPORATION", - [3]byte{0, 16, 68}: "InnoLabs Corporation", - [3]byte{0, 16, 69}: "Nortel Networks", - [3]byte{0, 16, 70}: "ALCORN MCBRIDE INC.", - [3]byte{0, 16, 71}: "ECHO ELETRIC CO. LTD.", - [3]byte{0, 16, 72}: "HTRC AUTOMATION, INC.", - [3]byte{0, 16, 73}: "ShoreTel, Inc", - [3]byte{0, 16, 74}: "The Parvus Corporation", - [3]byte{0, 16, 75}: "3COM CORPORATION", - [3]byte{0, 16, 76}: "Teledyne LeCroy, Inc", - [3]byte{0, 16, 77}: "SURTEC INDUSTRIES, INC.", - [3]byte{0, 16, 78}: "CEOLOGIC", - [3]byte{0, 16, 79}: "Oracle Corporation", - [3]byte{0, 16, 80}: "RION CO., LTD.", - [3]byte{0, 16, 81}: "CMICRO CORPORATION", - [3]byte{0, 16, 82}: "METTLER-TOLEDO (ALBSTADT) GMBH", - [3]byte{0, 16, 83}: "COMPUTER TECHNOLOGY CORP.", - [3]byte{0, 16, 84}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 85}: "FUJITSU MICROELECTRONICS, INC.", - [3]byte{0, 16, 86}: "SODICK CO., LTD.", - [3]byte{0, 16, 87}: "Rebel.com, Inc.", - [3]byte{0, 16, 88}: "ArrowPoint Communications", - [3]byte{0, 16, 89}: "DIABLO RESEARCH CO. LLC", - [3]byte{0, 16, 90}: "3COM CORPORATION", - [3]byte{0, 16, 91}: "NET INSIGHT AB", - [3]byte{0, 16, 92}: "QUANTUM DESIGNS (H.K.) LTD.", - [3]byte{0, 16, 93}: "Draeger Medical", - [3]byte{0, 16, 94}: "Spirent plc, Service Assurance Broadband", - [3]byte{0, 16, 95}: "ZODIAC DATA SYSTEMS", - [3]byte{0, 16, 96}: "BILLIONTON SYSTEMS, INC.", - [3]byte{0, 16, 97}: "HOSTLINK CORP.", - [3]byte{0, 16, 98}: "NX SERVER, ILNC.", - [3]byte{0, 16, 99}: "STARGUIDE DIGITAL NETWORKS", - [3]byte{0, 16, 100}: "DNPG, LLC", - [3]byte{0, 16, 101}: "RADYNE CORPORATION", - [3]byte{0, 16, 102}: "ADVANCED CONTROL SYSTEMS, INC.", - [3]byte{0, 16, 103}: "Ericsson", - [3]byte{0, 16, 104}: "COMOS TELECOM", - [3]byte{0, 16, 105}: "HELIOSS COMMUNICATIONS, INC.", - [3]byte{0, 16, 106}: "DIGITAL MICROWAVE CORPORATION", - [3]byte{0, 16, 107}: "SONUS NETWORKS, INC.", - [3]byte{0, 16, 108}: "EDNT GmbH", - [3]byte{0, 16, 109}: "Axxcelera Broadband Wireless", - [3]byte{0, 16, 110}: "TADIRAN COM. LTD.", - [3]byte{0, 16, 111}: "TRENTON TECHNOLOGY INC.", - [3]byte{0, 16, 112}: "CARADON TREND LTD.", - [3]byte{0, 16, 113}: "ADVANET INC.", - [3]byte{0, 16, 114}: "GVN TECHNOLOGIES, INC.", - [3]byte{0, 16, 115}: "Technobox, Inc.", - [3]byte{0, 16, 116}: "ATEN INTERNATIONAL CO., LTD.", - [3]byte{0, 16, 117}: "Segate Technology LLC", - [3]byte{0, 16, 118}: "EUREM GmbH", - [3]byte{0, 16, 119}: "SAF DRIVE SYSTEMS, LTD.", - [3]byte{0, 16, 120}: "NUERA COMMUNICATIONS, INC.", - [3]byte{0, 16, 121}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 122}: "AmbiCom, Inc.", - [3]byte{0, 16, 123}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 124}: "P-COM, INC.", - [3]byte{0, 16, 125}: "AURORA COMMUNICATIONS, LTD.", - [3]byte{0, 16, 126}: "BACHMANN ELECTRONIC GmbH", - [3]byte{0, 16, 127}: "CRESTRON ELECTRONICS, INC.", - [3]byte{0, 16, 128}: "METAWAVE COMMUNICATIONS", - [3]byte{0, 16, 129}: "DPS, INC.", - [3]byte{0, 16, 130}: "JNA TELECOMMUNICATIONS LIMITED", - [3]byte{0, 16, 131}: "HEWLETT-PACKARD COMPANY", - [3]byte{0, 16, 132}: "K-BOT COMMUNICATIONS", - [3]byte{0, 16, 133}: "POLARIS COMMUNICATIONS, INC.", - [3]byte{0, 16, 134}: "ATTO Technology, Inc.", - [3]byte{0, 16, 135}: "Xstreamis PLC", - [3]byte{0, 16, 136}: "AMERICAN NETWORKS INC.", - [3]byte{0, 16, 137}: "WebSonic", - [3]byte{0, 16, 138}: "TeraLogic, Inc.", - [3]byte{0, 16, 139}: "LASERANIMATION SOLLINGER GmbH", - [3]byte{0, 16, 140}: "FUJITSU TELECOMMUNICATIONS EUROPE, LTD.", - [3]byte{0, 16, 141}: "Johnson Controls, Inc.", - [3]byte{0, 16, 142}: "HUGH SYMONS CONCEPT Technologies Ltd.", - [3]byte{0, 16, 143}: "RAPTOR SYSTEMS", - [3]byte{0, 16, 144}: "CIMETRICS, INC.", - [3]byte{0, 16, 145}: "NO WIRES NEEDED BV", - [3]byte{0, 16, 146}: "NETCORE INC.", - [3]byte{0, 16, 147}: "CMS COMPUTERS, LTD.", - [3]byte{0, 16, 148}: "Performance Analysis Broadband, Spirent plc", - [3]byte{0, 16, 149}: "Thomson Inc.", - [3]byte{0, 16, 150}: "TRACEWELL SYSTEMS, INC.", - [3]byte{0, 16, 151}: "WinNet Metropolitan Communications Systems, Inc.", - [3]byte{0, 16, 152}: "STARNET TECHNOLOGIES, INC.", - [3]byte{0, 16, 153}: "InnoMedia, Inc.", - [3]byte{0, 16, 154}: "NETLINE", - [3]byte{0, 16, 155}: "Emulex Corporation", - [3]byte{0, 16, 156}: "M-SYSTEM CO., LTD.", - [3]byte{0, 16, 157}: "CLARINET SYSTEMS, INC.", - [3]byte{0, 16, 158}: "AWARE, INC.", - [3]byte{0, 16, 159}: "PAVO, INC.", - [3]byte{0, 16, 160}: "INNOVEX TECHNOLOGIES, INC.", - [3]byte{0, 16, 161}: "KENDIN SEMICONDUCTOR, INC.", - [3]byte{0, 16, 162}: "TNS", - [3]byte{0, 16, 163}: "OMNITRONIX, INC.", - [3]byte{0, 16, 164}: "XIRCOM", - [3]byte{0, 16, 165}: "OXFORD INSTRUMENTS", - [3]byte{0, 16, 166}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 167}: "UNEX TECHNOLOGY CORPORATION", - [3]byte{0, 16, 168}: "RELIANCE COMPUTER CORP.", - [3]byte{0, 16, 169}: "ADHOC TECHNOLOGIES", - [3]byte{0, 16, 170}: "MEDIA4, INC.", - [3]byte{0, 16, 171}: "KOITO ELECTRIC INDUSTRIES, LTD.", - [3]byte{0, 16, 172}: "IMCI TECHNOLOGIES", - [3]byte{0, 16, 173}: "SOFTRONICS USB, INC.", - [3]byte{0, 16, 174}: "SHINKO ELECTRIC INDUSTRIES CO.", - [3]byte{0, 16, 175}: "TAC SYSTEMS, INC.", - [3]byte{0, 16, 176}: "MERIDIAN TECHNOLOGY CORP.", - [3]byte{0, 16, 177}: "FOR-A CO., LTD.", - [3]byte{0, 16, 178}: "COACTIVE AESTHETICS", - [3]byte{0, 16, 179}: "NOKIA MULTIMEDIA TERMINALS", - [3]byte{0, 16, 180}: "ATMOSPHERE NETWORKS", - [3]byte{0, 16, 181}: "ACCTON TECHNOLOGY CORPORATION", - [3]byte{0, 16, 182}: "ENTRATA COMMUNICATIONS CORP.", - [3]byte{0, 16, 183}: "COYOTE TECHNOLOGIES, LLC", - [3]byte{0, 16, 184}: "ISHIGAKI COMPUTER SYSTEM CO.", - [3]byte{0, 16, 185}: "MAXTOR CORP.", - [3]byte{0, 16, 186}: "MARTINHO-DAVIS SYSTEMS, INC.", - [3]byte{0, 16, 187}: "DATA & INFORMATION TECHNOLOGY", - [3]byte{0, 16, 188}: "Aastra Telecom", - [3]byte{0, 16, 189}: "THE TELECOMMUNICATION TECHNOLOGY COMMITTEE (TTC)", - [3]byte{0, 16, 190}: "MARCH NETWORKS CORPORATION", - [3]byte{0, 16, 191}: "InterAir Wireless", - [3]byte{0, 16, 192}: "ARMA, Inc.", - [3]byte{0, 16, 193}: "OI ELECTRIC CO., LTD.", - [3]byte{0, 16, 194}: "WILLNET, INC.", - [3]byte{0, 16, 195}: "CSI-CONTROL SYSTEMS", - [3]byte{0, 16, 196}: "MEDIA LINKS CO., LTD.", - [3]byte{0, 16, 197}: "PROTOCOL TECHNOLOGIES, INC.", - [3]byte{0, 16, 198}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{0, 16, 199}: "DATA TRANSMISSION NETWORK", - [3]byte{0, 16, 200}: "COMMUNICATIONS ELECTRONICS SECURITY GROUP", - [3]byte{0, 16, 201}: "MITSUBISHI ELECTRONICS LOGISTIC SUPPORT CO.", - [3]byte{0, 16, 202}: "Telco Systems, Inc.", - [3]byte{0, 16, 203}: "FACIT K.K.", - [3]byte{0, 16, 204}: "CLP COMPUTER LOGISTIK PLANUNG GmbH", - [3]byte{0, 16, 205}: "INTERFACE CONCEPT", - [3]byte{0, 16, 206}: "VOLAMP, LTD.", - [3]byte{0, 16, 207}: "FIBERLANE COMMUNICATIONS", - [3]byte{0, 16, 208}: "WITCOM, LTD.", - [3]byte{0, 16, 209}: "Top Layer Networks, Inc.", - [3]byte{0, 16, 210}: "NITTO TSUSHINKI CO., LTD", - [3]byte{0, 16, 211}: "GRIPS ELECTRONIC GMBH", - [3]byte{0, 16, 212}: "STORAGE COMPUTER CORPORATION", - [3]byte{0, 16, 213}: "IMASDE CANARIAS, S.A.", - [3]byte{0, 16, 214}: "Exelis", - [3]byte{0, 16, 215}: "ARGOSY RESEARCH INC.", - [3]byte{0, 16, 216}: "CALISTA", - [3]byte{0, 16, 217}: "IBM JAPAN, FUJISAWA MT+D", - [3]byte{0, 16, 218}: "Kollmorgen Corp", - [3]byte{0, 16, 219}: "Juniper Networks, Inc.", - [3]byte{0, 16, 220}: "MICRO-STAR INTERNATIONAL CO., LTD.", - [3]byte{0, 16, 221}: "ENABLE SEMICONDUCTOR, INC.", - [3]byte{0, 16, 222}: "INTERNATIONAL DATACASTING CORPORATION", - [3]byte{0, 16, 223}: "RISE COMPUTER INC.", - [3]byte{0, 16, 224}: "Oracle Corporation", - [3]byte{0, 16, 225}: "S.I. TECH, INC.", - [3]byte{0, 16, 226}: "ArrayComm, Inc.", - [3]byte{0, 16, 227}: "Hewlett-Packard Company", - [3]byte{0, 16, 228}: "NSI CORPORATION", - [3]byte{0, 16, 229}: "SOLECTRON TEXAS", - [3]byte{0, 16, 230}: "APPLIED INTELLIGENT SYSTEMS, INC.", - [3]byte{0, 16, 231}: "BreezeCom", - [3]byte{0, 16, 232}: "TELOCITY, INCORPORATED", - [3]byte{0, 16, 233}: "RAIDTEC LTD.", - [3]byte{0, 16, 234}: "ADEPT TECHNOLOGY", - [3]byte{0, 16, 235}: "SELSIUS SYSTEMS, INC.", - [3]byte{0, 16, 236}: "RPCG, LLC", - [3]byte{0, 16, 237}: "SUNDANCE TECHNOLOGY, INC.", - [3]byte{0, 16, 238}: "CTI PRODUCTS, INC.", - [3]byte{0, 16, 239}: "DBTEL INCORPORATED", - [3]byte{0, 16, 240}: "RITTAL-WERK RUDOLF LOH GmbH & Co.", - [3]byte{0, 16, 241}: "I-O CORPORATION", - [3]byte{0, 16, 242}: "ANTEC", - [3]byte{0, 16, 243}: "Nexcom International Co., Ltd.", - [3]byte{0, 16, 244}: "Vertical Communications", - [3]byte{0, 16, 245}: "AMHERST SYSTEMS, INC.", - [3]byte{0, 16, 246}: "CISCO SYSTEMS, INC.", - [3]byte{0, 16, 247}: "IRIICHI TECHNOLOGIES Inc.", - [3]byte{0, 16, 248}: "TEXIO TECHNOLOGY CORPORATION", - [3]byte{0, 16, 249}: "UNIQUE SYSTEMS, INC.", - [3]byte{0, 16, 250}: "Apple", - [3]byte{0, 16, 251}: "ZIDA TECHNOLOGIES LIMITED", - [3]byte{0, 16, 252}: "BROADBAND NETWORKS, INC.", - [3]byte{0, 16, 253}: "COCOM A/S", - [3]byte{0, 16, 254}: "DIGITAL EQUIPMENT CORPORATION", - [3]byte{0, 16, 255}: "CISCO SYSTEMS, INC.", - [3]byte{0, 17, 0}: "Schneider Electric", - [3]byte{0, 17, 1}: "CET Technologies Pte Ltd", - [3]byte{0, 17, 2}: "Aurora Multimedia Corp.", - [3]byte{0, 17, 3}: "kawamura electric inc.", - [3]byte{0, 17, 4}: "TELEXY", - [3]byte{0, 17, 5}: "Sunplus Technology Co., Ltd.", - [3]byte{0, 17, 6}: "Siemens NV (Belgium)", - [3]byte{0, 17, 7}: "RGB Networks Inc.", - [3]byte{0, 17, 8}: "Orbital Data Corporation", - [3]byte{0, 17, 9}: "Micro-Star International", - [3]byte{0, 17, 10}: "Hewlett-Packard Company", - [3]byte{0, 17, 11}: "Franklin Technology Systems", - [3]byte{0, 17, 12}: "Atmark Techno, Inc.", - [3]byte{0, 17, 13}: "SANBlaze Technology, Inc.", - [3]byte{0, 17, 14}: "Tsurusaki Sealand Transportation Co. Ltd.", - [3]byte{0, 17, 15}: "netplat,Inc.", - [3]byte{0, 17, 16}: "Maxanna Technology Co., Ltd.", - [3]byte{0, 17, 17}: "Intel Corporation", - [3]byte{0, 17, 18}: "Honeywell CMSS", - [3]byte{0, 17, 19}: "Fraunhofer FOKUS", - [3]byte{0, 17, 20}: "EverFocus Electronics Corp.", - [3]byte{0, 17, 21}: "EPIN Technologies, Inc.", - [3]byte{0, 17, 22}: "COTEAU VERT CO., LTD.", - [3]byte{0, 17, 23}: "CESNET", - [3]byte{0, 17, 24}: "BLX IC Design Corp., Ltd.", - [3]byte{0, 17, 25}: "Solteras, Inc.", - [3]byte{0, 17, 26}: "ARRIS Group, Inc.", - [3]byte{0, 17, 27}: "Targa Systems Div L-3 Communications Canada", - [3]byte{0, 17, 28}: "Pleora Technologies Inc.", - [3]byte{0, 17, 29}: "Hectrix Limited", - [3]byte{0, 17, 30}: "EPSG (Ethernet Powerlink Standardization Group)", - [3]byte{0, 17, 31}: "Doremi Labs, Inc.", - [3]byte{0, 17, 32}: "CISCO SYSTEMS, INC.", - [3]byte{0, 17, 33}: "CISCO SYSTEMS, INC.", - [3]byte{0, 17, 34}: "CIMSYS Inc", - [3]byte{0, 17, 35}: "Appointech, Inc.", - [3]byte{0, 17, 36}: "Apple", - [3]byte{0, 17, 37}: "IBM Corp", - [3]byte{0, 17, 38}: "Venstar Inc.", - [3]byte{0, 17, 39}: "TASI, Inc", - [3]byte{0, 17, 40}: "Streamit", - [3]byte{0, 17, 41}: "Paradise Datacom Ltd.", - [3]byte{0, 17, 42}: "Niko NV", - [3]byte{0, 17, 43}: "NetModule AG", - [3]byte{0, 17, 44}: "IZT GmbH", - [3]byte{0, 17, 45}: "iPulse Systems", - [3]byte{0, 17, 46}: "CEICOM", - [3]byte{0, 17, 47}: "ASUSTek Computer Inc.", - [3]byte{0, 17, 48}: "Allied Telesis (Hong Kong) Ltd.", - [3]byte{0, 17, 49}: "UNATECH. CO.,LTD", - [3]byte{0, 17, 50}: "Synology Incorporated", - [3]byte{0, 17, 51}: "Siemens Austria SIMEA", - [3]byte{0, 17, 52}: "MediaCell, Inc.", - [3]byte{0, 17, 53}: "Grandeye Ltd", - [3]byte{0, 17, 54}: "Goodrich Sensor Systems", - [3]byte{0, 17, 55}: "AICHI ELECTRIC CO., LTD.", - [3]byte{0, 17, 56}: "TAISHIN CO., LTD.", - [3]byte{0, 17, 57}: "STOEBER ANTRIEBSTECHNIK GmbH + Co. KG.", - [3]byte{0, 17, 58}: "SHINBORAM", - [3]byte{0, 17, 59}: "Micronet Communications Inc.", - [3]byte{0, 17, 60}: "Micronas GmbH", - [3]byte{0, 17, 61}: "KN SOLTEC CO.,LTD.", - [3]byte{0, 17, 62}: "JL Corporation", - [3]byte{0, 17, 63}: "Alcatel DI", - [3]byte{0, 17, 64}: "Nanometrics Inc.", - [3]byte{0, 17, 65}: "GoodMan Corporation", - [3]byte{0, 17, 66}: "e-SMARTCOM INC.", - [3]byte{0, 17, 67}: "Dell Inc", - [3]byte{0, 17, 68}: "Assurance Technology Corp", - [3]byte{0, 17, 69}: "ValuePoint Networks", - [3]byte{0, 17, 70}: "Telecard-Pribor Ltd", - [3]byte{0, 17, 71}: "Secom-Industry co.LTD.", - [3]byte{0, 17, 72}: "Prolon Control Systems", - [3]byte{0, 17, 73}: "Proliphix Inc.", - [3]byte{0, 17, 74}: "KAYABA INDUSTRY Co,.Ltd.", - [3]byte{0, 17, 75}: "Francotyp-Postalia GmbH", - [3]byte{0, 17, 76}: "caffeina applied research ltd.", - [3]byte{0, 17, 77}: "Atsumi Electric Co.,LTD.", - [3]byte{0, 17, 78}: "690885 Ontario Inc.", - [3]byte{0, 17, 79}: "US Digital Television, Inc", - [3]byte{0, 17, 80}: "Belkin Corporation", - [3]byte{0, 17, 81}: "Mykotronx", - [3]byte{0, 17, 82}: "Eidsvoll Electronics AS", - [3]byte{0, 17, 83}: "Trident Tek, Inc.", - [3]byte{0, 17, 84}: "Webpro Technologies Inc.", - [3]byte{0, 17, 85}: "Sevis Systems", - [3]byte{0, 17, 86}: "Pharos Systems NZ", - [3]byte{0, 17, 87}: "OF Networks Co., Ltd.", - [3]byte{0, 17, 88}: "Nortel Networks", - [3]byte{0, 17, 89}: "MATISSE NETWORKS INC", - [3]byte{0, 17, 90}: "Ivoclar Vivadent AG", - [3]byte{0, 17, 91}: "Elitegroup Computer System Co. (ECS)", - [3]byte{0, 17, 92}: "CISCO SYSTEMS, INC.", - [3]byte{0, 17, 93}: "CISCO SYSTEMS, INC.", - [3]byte{0, 17, 94}: "ProMinent Dosiertechnik GmbH", - [3]byte{0, 17, 95}: "ITX Security Co., Ltd.", - [3]byte{0, 17, 96}: "ARTDIO Company Co., LTD", - [3]byte{0, 17, 97}: "NetStreams, LLC", - [3]byte{0, 17, 98}: "STAR MICRONICS CO.,LTD.", - [3]byte{0, 17, 99}: "SYSTEM SPA DEPT. ELECTRONICS", - [3]byte{0, 17, 100}: "ACARD Technology Corp.", - [3]byte{0, 17, 101}: "Znyx Networks", - [3]byte{0, 17, 102}: "Taelim Electronics Co., Ltd.", - [3]byte{0, 17, 103}: "Integrated System Solution Corp.", - [3]byte{0, 17, 104}: "HomeLogic LLC", - [3]byte{0, 17, 105}: "EMS Satcom", - [3]byte{0, 17, 106}: "Domo Ltd", - [3]byte{0, 17, 107}: "Digital Data Communications Asia Co.,Ltd", - [3]byte{0, 17, 108}: "Nanwang Multimedia Inc.,Ltd", - [3]byte{0, 17, 109}: "American Time and Signal", - [3]byte{0, 17, 110}: "PePLink Ltd.", - [3]byte{0, 17, 111}: "Netforyou Co., LTD.", - [3]byte{0, 17, 112}: "GSC SRL", - [3]byte{0, 17, 113}: "DEXTER Communications, Inc.", - [3]byte{0, 17, 114}: "COTRON CORPORATION", - [3]byte{0, 17, 115}: "SMART Storage Systems", - [3]byte{0, 17, 116}: "Wibhu Technologies, Inc.", - [3]byte{0, 17, 117}: "PathScale, Inc.", - [3]byte{0, 17, 118}: "Intellambda Systems, Inc.", - [3]byte{0, 17, 119}: "Coaxial Networks, Inc.", - [3]byte{0, 17, 120}: "Chiron Technology Ltd", - [3]byte{0, 17, 121}: "Singular Technology Co. Ltd.", - [3]byte{0, 17, 122}: "Singim International Corp.", - [3]byte{0, 17, 123}: "Büchi Labortechnik AG", - [3]byte{0, 17, 124}: "e-zy.net", - [3]byte{0, 17, 125}: "ZMD America, Inc.", - [3]byte{0, 17, 126}: "Progeny, A division of Midmark Corp", - [3]byte{0, 17, 127}: "Neotune Information Technology Corporation,.LTD", - [3]byte{0, 17, 128}: "ARRIS Group, Inc.", - [3]byte{0, 17, 129}: "InterEnergy Co.Ltd,", - [3]byte{0, 17, 130}: "IMI Norgren Ltd", - [3]byte{0, 17, 131}: "Datalogic ADC, Inc.", - [3]byte{0, 17, 132}: "Humo Laboratory,Ltd.", - [3]byte{0, 17, 133}: "Hewlett-Packard Company", - [3]byte{0, 17, 134}: "Prime Systems, Inc.", - [3]byte{0, 17, 135}: "Category Solutions, Inc", - [3]byte{0, 17, 136}: "Enterasys", - [3]byte{0, 17, 137}: "Aerotech Inc", - [3]byte{0, 17, 138}: "Viewtran Technology Limited", - [3]byte{0, 17, 139}: "Alcatel-Lucent, Enterprise Business Group", - [3]byte{0, 17, 140}: "Missouri Department of Transportation", - [3]byte{0, 17, 141}: "Hanchang System Corp.", - [3]byte{0, 17, 142}: "Halytech Mace", - [3]byte{0, 17, 143}: "EUTECH INSTRUMENTS PTE. LTD.", - [3]byte{0, 17, 144}: "Digital Design Corporation", - [3]byte{0, 17, 145}: "CTS-Clima Temperatur Systeme GmbH", - [3]byte{0, 17, 146}: "CISCO SYSTEMS, INC.", - [3]byte{0, 17, 147}: "CISCO SYSTEMS, INC.", - [3]byte{0, 17, 148}: "Chi Mei Communication Systems, Inc.", - [3]byte{0, 17, 149}: "D-Link Corporation", - [3]byte{0, 17, 150}: "Actuality Systems, Inc.", - [3]byte{0, 17, 151}: "Monitoring Technologies Limited", - [3]byte{0, 17, 152}: "Prism Media Products Limited", - [3]byte{0, 17, 153}: "2wcom Systems GmbH", - [3]byte{0, 17, 154}: "Alkeria srl", - [3]byte{0, 17, 155}: "Telesynergy Research Inc.", - [3]byte{0, 17, 156}: "EP&T Energy", - [3]byte{0, 17, 157}: "Diginfo Technology Corporation", - [3]byte{0, 17, 158}: "Solectron Brazil", - [3]byte{0, 17, 159}: "Nokia Danmark A/S", - [3]byte{0, 17, 160}: "Vtech Engineering Canada Ltd", - [3]byte{0, 17, 161}: "VISION NETWARE CO.,LTD", - [3]byte{0, 17, 162}: "Manufacturing Technology Inc", - [3]byte{0, 17, 163}: "LanReady Technologies Inc.", - [3]byte{0, 17, 164}: "JStream Technologies Inc.", - [3]byte{0, 17, 165}: "Fortuna Electronic Corp.", - [3]byte{0, 17, 166}: "Sypixx Networks", - [3]byte{0, 17, 167}: "Infilco Degremont Inc.", - [3]byte{0, 17, 168}: "Quest Technologies", - [3]byte{0, 17, 169}: "MOIMSTONE Co., LTD", - [3]byte{0, 17, 170}: "Uniclass Technology, Co., LTD", - [3]byte{0, 17, 171}: "TRUSTABLE TECHNOLOGY CO.,LTD.", - [3]byte{0, 17, 172}: "Simtec Electronics", - [3]byte{0, 17, 173}: "Shanghai Ruijie Technology", - [3]byte{0, 17, 174}: "ARRIS Group, Inc.", - [3]byte{0, 17, 175}: "Medialink-i,Inc", - [3]byte{0, 17, 176}: "Fortelink Inc.", - [3]byte{0, 17, 177}: "BlueExpert Technology Corp.", - [3]byte{0, 17, 178}: "2001 Technology Inc.", - [3]byte{0, 17, 179}: "YOSHIMIYA CO.,LTD.", - [3]byte{0, 17, 180}: "Westermo Teleindustri AB", - [3]byte{0, 17, 181}: "Shenzhen Powercom Co.,Ltd", - [3]byte{0, 17, 182}: "Open Systems International", - [3]byte{0, 17, 183}: "Octalix B.V.", - [3]byte{0, 17, 184}: "Liebherr - Elektronik GmbH", - [3]byte{0, 17, 185}: "Inner Range Pty. Ltd.", - [3]byte{0, 17, 186}: "Elexol Pty Ltd", - [3]byte{0, 17, 187}: "CISCO SYSTEMS, INC.", - [3]byte{0, 17, 188}: "CISCO SYSTEMS, INC.", - [3]byte{0, 17, 189}: "Bombardier Transportation", - [3]byte{0, 17, 190}: "AGP Telecom Co. Ltd", - [3]byte{0, 17, 191}: "AESYS S.p.A.", - [3]byte{0, 17, 192}: "Aday Technology Inc", - [3]byte{0, 17, 193}: "4P MOBILE DATA PROCESSING", - [3]byte{0, 17, 194}: "United Fiber Optic Communication", - [3]byte{0, 17, 195}: "Transceiving System Technology Corporation", - [3]byte{0, 17, 196}: "Terminales de Telecomunicacion Terrestre, S.L.", - [3]byte{0, 17, 197}: "TEN Technology", - [3]byte{0, 17, 198}: "Seagate Technology", - [3]byte{0, 17, 199}: "Raymarine UK Ltd", - [3]byte{0, 17, 200}: "Powercom Co., Ltd.", - [3]byte{0, 17, 201}: "MTT Corporation", - [3]byte{0, 17, 202}: "Long Range Systems, Inc.", - [3]byte{0, 17, 203}: "Jacobsons AB", - [3]byte{0, 17, 204}: "Guangzhou Jinpeng Group Co.,Ltd.", - [3]byte{0, 17, 205}: "Axsun Technologies", - [3]byte{0, 17, 206}: "Ubisense Limited", - [3]byte{0, 17, 207}: "Thrane & Thrane A/S", - [3]byte{0, 17, 208}: "Tandberg Data ASA", - [3]byte{0, 17, 209}: "Soft Imaging System GmbH", - [3]byte{0, 17, 210}: "Perception Digital Ltd", - [3]byte{0, 17, 211}: "NextGenTel Holding ASA", - [3]byte{0, 17, 212}: "NetEnrich, Inc", - [3]byte{0, 17, 213}: "Hangzhou Sunyard System Engineering Co.,Ltd.", - [3]byte{0, 17, 214}: "HandEra, Inc.", - [3]byte{0, 17, 215}: "eWerks Inc", - [3]byte{0, 17, 216}: "ASUSTek Computer Inc.", - [3]byte{0, 17, 217}: "TiVo", - [3]byte{0, 17, 218}: "Vivaas Technology Inc.", - [3]byte{0, 17, 219}: "Land-Cellular Corporation", - [3]byte{0, 17, 220}: "Glunz & Jensen", - [3]byte{0, 17, 221}: "FROMUS TEC. Co., Ltd.", - [3]byte{0, 17, 222}: "EURILOGIC", - [3]byte{0, 17, 223}: "Current Energy", - [3]byte{0, 17, 224}: "U-MEDIA Communications, Inc.", - [3]byte{0, 17, 225}: "Arcelik A.S", - [3]byte{0, 17, 226}: "Hua Jung Components Co., Ltd.", - [3]byte{0, 17, 227}: "Thomson, Inc.", - [3]byte{0, 17, 228}: "Danelec Electronics A/S", - [3]byte{0, 17, 229}: "KCodes Corporation", - [3]byte{0, 17, 230}: "Scientific Atlanta", - [3]byte{0, 17, 231}: "WORLDSAT - Texas de France", - [3]byte{0, 17, 232}: "Tixi.Com", - [3]byte{0, 17, 233}: "STARNEX CO., LTD.", - [3]byte{0, 17, 234}: "IWICS Inc.", - [3]byte{0, 17, 235}: "Innovative Integration", - [3]byte{0, 17, 236}: "AVIX INC.", - [3]byte{0, 17, 237}: "802 Global", - [3]byte{0, 17, 238}: "Estari, Inc.", - [3]byte{0, 17, 239}: "Conitec Datensysteme GmbH", - [3]byte{0, 17, 240}: "Wideful Limited", - [3]byte{0, 17, 241}: "QinetiQ Ltd", - [3]byte{0, 17, 242}: "Institute of Network Technologies", - [3]byte{0, 17, 243}: "NeoMedia Europe AG", - [3]byte{0, 17, 244}: "woori-net", - [3]byte{0, 17, 245}: "ASKEY COMPUTER CORP.", - [3]byte{0, 17, 246}: "Asia Pacific Microsystems , Inc.", - [3]byte{0, 17, 247}: "Shenzhen Forward Industry Co., Ltd", - [3]byte{0, 17, 248}: "AIRAYA Corp", - [3]byte{0, 17, 249}: "Nortel Networks", - [3]byte{0, 17, 250}: "Rane Corporation", - [3]byte{0, 17, 251}: "Heidelberg Engineering GmbH", - [3]byte{0, 17, 252}: "HARTING Electric Gmbh & Co.KG", - [3]byte{0, 17, 253}: "KORG INC.", - [3]byte{0, 17, 254}: "Keiyo System Research, Inc.", - [3]byte{0, 17, 255}: "Digitro Tecnologia Ltda", - [3]byte{0, 18, 0}: "CISCO SYSTEMS, INC.", - [3]byte{0, 18, 1}: "CISCO SYSTEMS, INC.", - [3]byte{0, 18, 2}: "Decrane Aerospace - Audio International Inc.", - [3]byte{0, 18, 3}: "ActivNetworks", - [3]byte{0, 18, 4}: "u10 Networks, Inc.", - [3]byte{0, 18, 5}: "Terrasat Communications, Inc.", - [3]byte{0, 18, 6}: "iQuest (NZ) Ltd", - [3]byte{0, 18, 7}: "Head Strong International Limited", - [3]byte{0, 18, 8}: "Gantner Instruments GmbH", - [3]byte{0, 18, 9}: "Fastrax Ltd", - [3]byte{0, 18, 10}: "Emerson Climate Technologies GmbH", - [3]byte{0, 18, 11}: "Chinasys Technologies Limited", - [3]byte{0, 18, 12}: "CE-Infosys Pte Ltd", - [3]byte{0, 18, 13}: "Advanced Telecommunication Technologies, Inc.", - [3]byte{0, 18, 14}: "AboCom", - [3]byte{0, 18, 15}: "IEEE 802.3", - [3]byte{0, 18, 16}: "WideRay Corp", - [3]byte{0, 18, 17}: "Protechna Herbst GmbH & Co. KG", - [3]byte{0, 18, 18}: "PLUS Corporation", - [3]byte{0, 18, 19}: "Metrohm AG", - [3]byte{0, 18, 20}: "Koenig & Bauer AG", - [3]byte{0, 18, 21}: "iStor Networks, Inc.", - [3]byte{0, 18, 22}: "ICP Internet Communication Payment AG", - [3]byte{0, 18, 23}: "Cisco-Linksys, LLC", - [3]byte{0, 18, 24}: "ARUZE Corporation", - [3]byte{0, 18, 25}: "Ahead Communication Systems Inc", - [3]byte{0, 18, 26}: "Techno Soft Systemnics Inc.", - [3]byte{0, 18, 27}: "Sound Devices, LLC", - [3]byte{0, 18, 28}: "PARROT S.A.", - [3]byte{0, 18, 29}: "Netfabric Corporation", - [3]byte{0, 18, 30}: "Juniper Networks, Inc.", - [3]byte{0, 18, 31}: "Harding Instruments", - [3]byte{0, 18, 32}: "Cadco Systems", - [3]byte{0, 18, 33}: "B.Braun Melsungen AG", - [3]byte{0, 18, 34}: "Skardin (UK) Ltd", - [3]byte{0, 18, 35}: "Pixim", - [3]byte{0, 18, 36}: "NexQL Corporation", - [3]byte{0, 18, 37}: "ARRIS Group, Inc.", - [3]byte{0, 18, 38}: "Japan Direx Corporation", - [3]byte{0, 18, 39}: "Franklin Electric Co., Inc.", - [3]byte{0, 18, 40}: "Data Ltd.", - [3]byte{0, 18, 41}: "BroadEasy Technologies Co.,Ltd", - [3]byte{0, 18, 42}: "VTech Telecommunications Ltd.", - [3]byte{0, 18, 43}: "Virbiage Pty Ltd", - [3]byte{0, 18, 44}: "Soenen Controls N.V.", - [3]byte{0, 18, 45}: "SiNett Corporation", - [3]byte{0, 18, 46}: "Signal Technology - AISD", - [3]byte{0, 18, 47}: "Sanei Electric Inc.", - [3]byte{0, 18, 48}: "Picaso Infocommunication CO., LTD.", - [3]byte{0, 18, 49}: "Motion Control Systems, Inc.", - [3]byte{0, 18, 50}: "LeWiz Communications Inc.", - [3]byte{0, 18, 51}: "JRC TOKKI Co.,Ltd.", - [3]byte{0, 18, 52}: "Camille Bauer", - [3]byte{0, 18, 53}: "Andrew Corporation", - [3]byte{0, 18, 54}: "ConSentry Networks", - [3]byte{0, 18, 55}: "Texas Instruments", - [3]byte{0, 18, 56}: "SetaBox Technology Co., Ltd.", - [3]byte{0, 18, 57}: "S Net Systems Inc.", - [3]byte{0, 18, 58}: "Posystech Inc., Co.", - [3]byte{0, 18, 59}: "KeRo Systems ApS", - [3]byte{0, 18, 60}: "Second Rule LLC", - [3]byte{0, 18, 61}: "GES", - [3]byte{0, 18, 62}: "ERUNE technology Co., Ltd.", - [3]byte{0, 18, 63}: "Dell Inc", - [3]byte{0, 18, 64}: "AMOI ELECTRONICS CO.,LTD", - [3]byte{0, 18, 65}: "a2i marketing center", - [3]byte{0, 18, 66}: "Millennial Net", - [3]byte{0, 18, 67}: "CISCO SYSTEMS, INC.", - [3]byte{0, 18, 68}: "CISCO SYSTEMS, INC.", - [3]byte{0, 18, 69}: "Zellweger Analytics, Inc.", - [3]byte{0, 18, 70}: "T.O.M TECHNOLOGY INC..", - [3]byte{0, 18, 71}: "Samsung Electronics Co., Ltd.", - [3]byte{0, 18, 72}: "EMC Corporation (Kashya)", - [3]byte{0, 18, 73}: "Delta Elettronica S.p.A.", - [3]byte{0, 18, 74}: "Dedicated Devices, Inc.", - [3]byte{0, 18, 75}: "Texas Instruments", - [3]byte{0, 18, 76}: "BBWM Corporation", - [3]byte{0, 18, 77}: "Inducon BV", - [3]byte{0, 18, 78}: "XAC AUTOMATION CORP.", - [3]byte{0, 18, 79}: "Pentair Thermal Management", - [3]byte{0, 18, 80}: "Tokyo Aircaft Instrument Co., Ltd.", - [3]byte{0, 18, 81}: "SILINK", - [3]byte{0, 18, 82}: "Citronix, LLC", - [3]byte{0, 18, 83}: "AudioDev AB", - [3]byte{0, 18, 84}: "Spectra Technologies Holdings Company Ltd", - [3]byte{0, 18, 85}: "NetEffect Incorporated", - [3]byte{0, 18, 86}: "LG INFORMATION & COMM.", - [3]byte{0, 18, 87}: "LeapComm Communication Technologies Inc.", - [3]byte{0, 18, 88}: "Activis Polska", - [3]byte{0, 18, 89}: "THERMO ELECTRON KARLSRUHE", - [3]byte{0, 18, 90}: "Microsoft Corporation", - [3]byte{0, 18, 91}: "KAIMEI ELECTRONI", - [3]byte{0, 18, 92}: "Green Hills Software, Inc.", - [3]byte{0, 18, 93}: "CyberNet Inc.", - [3]byte{0, 18, 94}: "CAEN", - [3]byte{0, 18, 95}: "AWIND Inc.", - [3]byte{0, 18, 96}: "Stanton Magnetics,inc.", - [3]byte{0, 18, 97}: "Adaptix, Inc", - [3]byte{0, 18, 98}: "Nokia Danmark A/S", - [3]byte{0, 18, 99}: "Data Voice Technologies GmbH", - [3]byte{0, 18, 100}: "daum electronic gmbh", - [3]byte{0, 18, 101}: "Enerdyne Technologies, Inc.", - [3]byte{0, 18, 102}: "Swisscom Hospitality Services SA", - [3]byte{0, 18, 103}: "Panasonic Corporation", - [3]byte{0, 18, 104}: "IPS d.o.o.", - [3]byte{0, 18, 105}: "Value Electronics", - [3]byte{0, 18, 106}: "OPTOELECTRONICS Co., Ltd.", - [3]byte{0, 18, 107}: "Ascalade Communications Limited", - [3]byte{0, 18, 108}: "Visonic Ltd.", - [3]byte{0, 18, 109}: "University of California, Berkeley", - [3]byte{0, 18, 110}: "Seidel Elektronik GmbH Nfg.KG", - [3]byte{0, 18, 111}: "Rayson Technology Co., Ltd.", - [3]byte{0, 18, 112}: "NGES Denro Systems", - [3]byte{0, 18, 113}: "Measurement Computing Corp", - [3]byte{0, 18, 114}: "Redux Communications Ltd.", - [3]byte{0, 18, 115}: "Stoke Inc", - [3]byte{0, 18, 116}: "NIT lab", - [3]byte{0, 18, 117}: "Sentilla Corporation", - [3]byte{0, 18, 118}: "CG Power Systems Ireland Limited", - [3]byte{0, 18, 119}: "Korenix Technologies Co., Ltd.", - [3]byte{0, 18, 120}: "International Bar Code", - [3]byte{0, 18, 121}: "Hewlett-Packard Company", - [3]byte{0, 18, 122}: "Sanyu Industry Co.,Ltd.", - [3]byte{0, 18, 123}: "VIA Networking Technologies, Inc.", - [3]byte{0, 18, 124}: "SWEGON AB", - [3]byte{0, 18, 125}: "MobileAria", - [3]byte{0, 18, 126}: "Digital Lifestyles Group, Inc.", - [3]byte{0, 18, 127}: "CISCO SYSTEMS, INC.", - [3]byte{0, 18, 128}: "CISCO SYSTEMS, INC.", - [3]byte{0, 18, 129}: "March Networks S.p.A.", - [3]byte{0, 18, 130}: "Qovia", - [3]byte{0, 18, 131}: "Nortel Networks", - [3]byte{0, 18, 132}: "Lab33 Srl", - [3]byte{0, 18, 133}: "Gizmondo Europe Ltd", - [3]byte{0, 18, 134}: "ENDEVCO CORP", - [3]byte{0, 18, 135}: "Digital Everywhere Unterhaltungselektronik GmbH", - [3]byte{0, 18, 136}: "2Wire, Inc", - [3]byte{0, 18, 137}: "Advance Sterilization Products", - [3]byte{0, 18, 138}: "ARRIS Group, Inc.", - [3]byte{0, 18, 139}: "Sensory Networks Inc", - [3]byte{0, 18, 140}: "Woodward Governor", - [3]byte{0, 18, 141}: "STB Datenservice GmbH", - [3]byte{0, 18, 142}: "Q-Free ASA", - [3]byte{0, 18, 143}: "Montilio", - [3]byte{0, 18, 144}: "KYOWA Electric & Machinery Corp.", - [3]byte{0, 18, 145}: "KWS Computersysteme GmbH", - [3]byte{0, 18, 146}: "Griffin Technology", - [3]byte{0, 18, 147}: "GE Energy", - [3]byte{0, 18, 148}: "SUMITOMO ELECTRIC DEVICE INNOVATIONS, INC", - [3]byte{0, 18, 149}: "Aiware Inc.", - [3]byte{0, 18, 150}: "Addlogix", - [3]byte{0, 18, 151}: "O2Micro, Inc.", - [3]byte{0, 18, 152}: "MICO ELECTRIC(SHENZHEN) LIMITED", - [3]byte{0, 18, 153}: "Ktech Telecommunications Inc", - [3]byte{0, 18, 154}: "IRT Electronics Pty Ltd", - [3]byte{0, 18, 155}: "E2S Electronic Engineering Solutions, S.L.", - [3]byte{0, 18, 156}: "Yulinet", - [3]byte{0, 18, 157}: "First International Computer do Brasil", - [3]byte{0, 18, 158}: "Surf Communications Inc.", - [3]byte{0, 18, 159}: "RAE Systems", - [3]byte{0, 18, 160}: "NeoMeridian Sdn Bhd", - [3]byte{0, 18, 161}: "BluePacket Communications Co., Ltd.", - [3]byte{0, 18, 162}: "VITA", - [3]byte{0, 18, 163}: "Trust International B.V.", - [3]byte{0, 18, 164}: "ThingMagic, LLC", - [3]byte{0, 18, 165}: "Stargen, Inc.", - [3]byte{0, 18, 166}: "Dolby Australia", - [3]byte{0, 18, 167}: "ISR TECHNOLOGIES Inc", - [3]byte{0, 18, 168}: "intec GmbH", - [3]byte{0, 18, 169}: "3Com Ltd", - [3]byte{0, 18, 170}: "IEE, Inc.", - [3]byte{0, 18, 171}: "WiLife, Inc.", - [3]byte{0, 18, 172}: "ONTIMETEK INC.", - [3]byte{0, 18, 173}: "IDS GmbH", - [3]byte{0, 18, 174}: "HLS HARD-LINE Solutions Inc.", - [3]byte{0, 18, 175}: "ELPRO Technologies", - [3]byte{0, 18, 176}: "Efore Oyj (Plc)", - [3]byte{0, 18, 177}: "Dai Nippon Printing Co., Ltd", - [3]byte{0, 18, 178}: "AVOLITES LTD.", - [3]byte{0, 18, 179}: "Advance Wireless Technology Corp.", - [3]byte{0, 18, 180}: "Work Microwave GmbH", - [3]byte{0, 18, 181}: "Vialta, Inc.", - [3]byte{0, 18, 182}: "Santa Barbara Infrared, Inc.", - [3]byte{0, 18, 183}: "PTW Freiburg", - [3]byte{0, 18, 184}: "G2 Microsystems", - [3]byte{0, 18, 185}: "Fusion Digital Technology", - [3]byte{0, 18, 186}: "FSI Systems, Inc.", - [3]byte{0, 18, 187}: "Telecommunications Industry Association TR-41 Committee", - [3]byte{0, 18, 188}: "Echolab LLC", - [3]byte{0, 18, 189}: "Avantec Manufacturing Limited", - [3]byte{0, 18, 190}: "Astek Corporation", - [3]byte{0, 18, 191}: "Arcadyan Technology Corporation", - [3]byte{0, 18, 192}: "HotLava Systems, Inc.", - [3]byte{0, 18, 193}: "Check Point Software Technologies", - [3]byte{0, 18, 194}: "Apex Electronics Factory", - [3]byte{0, 18, 195}: "WIT S.A.", - [3]byte{0, 18, 196}: "Viseon, Inc.", - [3]byte{0, 18, 197}: "V-Show Technology (China) Co.,Ltd", - [3]byte{0, 18, 198}: "TGC America, Inc", - [3]byte{0, 18, 199}: "SECURAY Technologies Ltd.Co.", - [3]byte{0, 18, 200}: "Perfect tech", - [3]byte{0, 18, 201}: "ARRIS Group, Inc.", - [3]byte{0, 18, 202}: "Mechatronic Brick Aps", - [3]byte{0, 18, 203}: "CSS Inc.", - [3]byte{0, 18, 204}: "Bitatek CO., LTD", - [3]byte{0, 18, 205}: "ASEM SpA", - [3]byte{0, 18, 206}: "Advanced Cybernetics Group", - [3]byte{0, 18, 207}: "Accton Technology Corporation", - [3]byte{0, 18, 208}: "Gossen-Metrawatt-GmbH", - [3]byte{0, 18, 209}: "Texas Instruments Inc", - [3]byte{0, 18, 210}: "Texas Instruments", - [3]byte{0, 18, 211}: "Zetta Systems, Inc.", - [3]byte{0, 18, 212}: "Princeton Technology, Ltd", - [3]byte{0, 18, 213}: "Motion Reality Inc.", - [3]byte{0, 18, 214}: "Jiangsu Yitong High-Tech Co.,Ltd", - [3]byte{0, 18, 215}: "Invento Networks, Inc.", - [3]byte{0, 18, 216}: "International Games System Co., Ltd.", - [3]byte{0, 18, 217}: "CISCO SYSTEMS, INC.", - [3]byte{0, 18, 218}: "CISCO SYSTEMS, INC.", - [3]byte{0, 18, 219}: "ZIEHL industrie-elektronik GmbH + Co KG", - [3]byte{0, 18, 220}: "SunCorp Industrial Limited", - [3]byte{0, 18, 221}: "Shengqu Information Technology (Shanghai) Co., Ltd.", - [3]byte{0, 18, 222}: "Radio Components Sweden AB", - [3]byte{0, 18, 223}: "Novomatic AG", - [3]byte{0, 18, 224}: "Codan Limited", - [3]byte{0, 18, 225}: "Alliant Networks, Inc", - [3]byte{0, 18, 226}: "ALAXALA Networks Corporation", - [3]byte{0, 18, 227}: "Agat-RT, Ltd.", - [3]byte{0, 18, 228}: "ZIEHL industrie-electronik GmbH + Co KG", - [3]byte{0, 18, 229}: "Time America, Inc.", - [3]byte{0, 18, 230}: "SPECTEC COMPUTER CO., LTD.", - [3]byte{0, 18, 231}: "Projectek Networking Electronics Corp.", - [3]byte{0, 18, 232}: "Fraunhofer IMS", - [3]byte{0, 18, 233}: "Abbey Systems Ltd", - [3]byte{0, 18, 234}: "Trane", - [3]byte{0, 18, 235}: "PDH Solutions, LLC", - [3]byte{0, 18, 236}: "Movacolor b.v.", - [3]byte{0, 18, 237}: "AVG Advanced Technologies", - [3]byte{0, 18, 238}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 18, 239}: "OneAccess SA", - [3]byte{0, 18, 240}: "Intel Corporate", - [3]byte{0, 18, 241}: "IFOTEC", - [3]byte{0, 18, 242}: "Brocade Communications Systems, Inc", - [3]byte{0, 18, 243}: "connectBlue AB", - [3]byte{0, 18, 244}: "Belco International Co.,Ltd.", - [3]byte{0, 18, 245}: "Imarda New Zealand Limited", - [3]byte{0, 18, 246}: "MDK CO.,LTD.", - [3]byte{0, 18, 247}: "Xiamen Xinglian Electronics Co., Ltd.", - [3]byte{0, 18, 248}: "WNI Resources, LLC", - [3]byte{0, 18, 249}: "URYU SEISAKU, LTD.", - [3]byte{0, 18, 250}: "THX LTD", - [3]byte{0, 18, 251}: "Samsung Electronics", - [3]byte{0, 18, 252}: "PLANET System Co.,LTD", - [3]byte{0, 18, 253}: "OPTIMUS IC S.A.", - [3]byte{0, 18, 254}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{0, 18, 255}: "Lely Industries N.V.", - [3]byte{0, 19, 0}: "IT-FACTORY, INC.", - [3]byte{0, 19, 1}: "IronGate S.L.", - [3]byte{0, 19, 2}: "Intel Corporate", - [3]byte{0, 19, 3}: "GateConnect", - [3]byte{0, 19, 4}: "Flaircomm Technologies Co. LTD", - [3]byte{0, 19, 5}: "Epicom, Inc.", - [3]byte{0, 19, 6}: "Always On Wireless", - [3]byte{0, 19, 7}: "Paravirtual Corporation", - [3]byte{0, 19, 8}: "Nuvera Fuel Cells", - [3]byte{0, 19, 9}: "Ocean Broadband Networks", - [3]byte{0, 19, 10}: "Nortel", - [3]byte{0, 19, 11}: "Mextal B.V.", - [3]byte{0, 19, 12}: "HF System Corporation", - [3]byte{0, 19, 13}: "GALILEO AVIONICA", - [3]byte{0, 19, 14}: "Focusrite Audio Engineering Limited", - [3]byte{0, 19, 15}: "EGEMEN Bilgisayar Muh San ve Tic LTD STI", - [3]byte{0, 19, 16}: "Cisco-Linksys, LLC", - [3]byte{0, 19, 17}: "ARRIS International", - [3]byte{0, 19, 18}: "Amedia Networks Inc.", - [3]byte{0, 19, 19}: "GuangZhou Post & Telecom Equipment ltd", - [3]byte{0, 19, 20}: "Asiamajor Inc.", - [3]byte{0, 19, 21}: "SONY Computer Entertainment inc,", - [3]byte{0, 19, 22}: "L-S-B Broadcast Technologies GmbH", - [3]byte{0, 19, 23}: "GN Netcom as", - [3]byte{0, 19, 24}: "DGSTATION Co., Ltd.", - [3]byte{0, 19, 25}: "CISCO SYSTEMS, INC.", - [3]byte{0, 19, 26}: "CISCO SYSTEMS, INC.", - [3]byte{0, 19, 27}: "BeCell Innovations Corp.", - [3]byte{0, 19, 28}: "LiteTouch, Inc.", - [3]byte{0, 19, 29}: "Scanvaegt International A/S", - [3]byte{0, 19, 30}: "Peiker acustic GmbH & Co. KG", - [3]byte{0, 19, 31}: "NxtPhase T&D, Corp.", - [3]byte{0, 19, 32}: "Intel Corporate", - [3]byte{0, 19, 33}: "Hewlett-Packard Company", - [3]byte{0, 19, 34}: "DAQ Electronics, Inc.", - [3]byte{0, 19, 35}: "Cap Co., Ltd.", - [3]byte{0, 19, 36}: "Schneider Electric Ultra Terminal", - [3]byte{0, 19, 37}: "Cortina Systems Inc", - [3]byte{0, 19, 38}: "ECM Systems Ltd", - [3]byte{0, 19, 39}: "Data Acquisitions limited", - [3]byte{0, 19, 40}: "Westech Korea Inc.,", - [3]byte{0, 19, 41}: "VSST Co., LTD", - [3]byte{0, 19, 42}: "Sitronics Telecom Solutions", - [3]byte{0, 19, 43}: "Phoenix Digital", - [3]byte{0, 19, 44}: "MAZ Brandenburg GmbH", - [3]byte{0, 19, 45}: "iWise Communications", - [3]byte{0, 19, 46}: "ITian Coporation", - [3]byte{0, 19, 47}: "Interactek", - [3]byte{0, 19, 48}: "EURO PROTECTION SURVEILLANCE", - [3]byte{0, 19, 49}: "CellPoint Connect", - [3]byte{0, 19, 50}: "Beijing Topsec Network Security Technology Co., Ltd.", - [3]byte{0, 19, 51}: "BaudTec Corporation", - [3]byte{0, 19, 52}: "Arkados, Inc.", - [3]byte{0, 19, 53}: "VS Industry Berhad", - [3]byte{0, 19, 54}: "Tianjin 712 Communication Broadcasting co., ltd.", - [3]byte{0, 19, 55}: "Orient Power Home Network Ltd.", - [3]byte{0, 19, 56}: "FRESENIUS-VIAL", - [3]byte{0, 19, 57}: "CCV Deutschland GmbH", - [3]byte{0, 19, 58}: "VadaTech Inc.", - [3]byte{0, 19, 59}: "Speed Dragon Multimedia Limited", - [3]byte{0, 19, 60}: "QUINTRON SYSTEMS INC.", - [3]byte{0, 19, 61}: "Micro Memory Curtiss Wright Co", - [3]byte{0, 19, 62}: "MetaSwitch", - [3]byte{0, 19, 63}: "Eppendorf Instrumente GmbH", - [3]byte{0, 19, 64}: "AD.EL s.r.l.", - [3]byte{0, 19, 65}: "Shandong New Beiyang Information Technology Co.,Ltd", - [3]byte{0, 19, 66}: "Vision Research, Inc.", - [3]byte{0, 19, 67}: "Matsushita Electronic Components (Europe) GmbH", - [3]byte{0, 19, 68}: "Fargo Electronics Inc.", - [3]byte{0, 19, 69}: "Eaton Corporation", - [3]byte{0, 19, 70}: "D-Link Corporation", - [3]byte{0, 19, 71}: "BlueTree Wireless Data Inc.", - [3]byte{0, 19, 72}: "Artila Electronics Co., Ltd.", - [3]byte{0, 19, 73}: "ZyXEL Communications Corporation", - [3]byte{0, 19, 74}: "Engim, Inc.", - [3]byte{0, 19, 75}: "ToGoldenNet Technology Inc.", - [3]byte{0, 19, 76}: "YDT Technology International", - [3]byte{0, 19, 77}: "Inepro BV", - [3]byte{0, 19, 78}: "Valox Systems, Inc.", - [3]byte{0, 19, 79}: "Tranzeo Wireless Technologies Inc.", - [3]byte{0, 19, 80}: "Silver Spring Networks, Inc", - [3]byte{0, 19, 81}: "Niles Audio Corporation", - [3]byte{0, 19, 82}: "Naztec, Inc.", - [3]byte{0, 19, 83}: "HYDAC Filtertechnik GMBH", - [3]byte{0, 19, 84}: "Zcomax Technologies, Inc.", - [3]byte{0, 19, 85}: "TOMEN Cyber-business Solutions, Inc.", - [3]byte{0, 19, 86}: "FLIR Radiation Inc", - [3]byte{0, 19, 87}: "Soyal Technology Co., Ltd.", - [3]byte{0, 19, 88}: "Realm Systems, Inc.", - [3]byte{0, 19, 89}: "ProTelevision Technologies A/S", - [3]byte{0, 19, 90}: "Project T&E Limited", - [3]byte{0, 19, 91}: "PanelLink Cinema, LLC", - [3]byte{0, 19, 92}: "OnSite Systems, Inc.", - [3]byte{0, 19, 93}: "NTTPC Communications, Inc.", - [3]byte{0, 19, 94}: "EAB/RWI/K", - [3]byte{0, 19, 95}: "CISCO SYSTEMS, INC.", - [3]byte{0, 19, 96}: "CISCO SYSTEMS, INC.", - [3]byte{0, 19, 97}: "Biospace Co., Ltd.", - [3]byte{0, 19, 98}: "ShinHeung Precision Co., Ltd.", - [3]byte{0, 19, 99}: "Verascape, Inc.", - [3]byte{0, 19, 100}: "Paradigm Technology Inc..", - [3]byte{0, 19, 101}: "Nortel", - [3]byte{0, 19, 102}: "Neturity Technologies Inc.", - [3]byte{0, 19, 103}: "Narayon. Co., Ltd.", - [3]byte{0, 19, 104}: "Saab Danmark A/S", - [3]byte{0, 19, 105}: "Honda Electron Co., LED.", - [3]byte{0, 19, 106}: "Hach Lange Sarl", - [3]byte{0, 19, 107}: "E-TEC", - [3]byte{0, 19, 108}: "TomTom", - [3]byte{0, 19, 109}: "Tentaculus AB", - [3]byte{0, 19, 110}: "Techmetro Corp.", - [3]byte{0, 19, 111}: "PacketMotion, Inc.", - [3]byte{0, 19, 112}: "Nokia Danmark A/S", - [3]byte{0, 19, 113}: "ARRIS Group, Inc.", - [3]byte{0, 19, 114}: "Dell Inc", - [3]byte{0, 19, 115}: "BLwave Electronics Co., Ltd", - [3]byte{0, 19, 116}: "Atheros Communications, Inc.", - [3]byte{0, 19, 117}: "American Security Products Co.", - [3]byte{0, 19, 118}: "Tabor Electronics Ltd.", - [3]byte{0, 19, 119}: "Samsung Electronics CO., LTD", - [3]byte{0, 19, 120}: "Qsan Technology, Inc.", - [3]byte{0, 19, 121}: "PONDER INFORMATION INDUSTRIES LTD.", - [3]byte{0, 19, 122}: "Netvox Technology Co., Ltd.", - [3]byte{0, 19, 123}: "Movon Corporation", - [3]byte{0, 19, 124}: "Kaicom co., Ltd.", - [3]byte{0, 19, 125}: "Dynalab, Inc.", - [3]byte{0, 19, 126}: "CorEdge Networks, Inc.", - [3]byte{0, 19, 127}: "CISCO SYSTEMS, INC.", - [3]byte{0, 19, 128}: "CISCO SYSTEMS, INC.", - [3]byte{0, 19, 129}: "CHIPS & Systems, Inc.", - [3]byte{0, 19, 130}: "Cetacea Networks Corporation", - [3]byte{0, 19, 131}: "Application Technologies and Engineering Research Laboratory", - [3]byte{0, 19, 132}: "Advanced Motion Controls", - [3]byte{0, 19, 133}: "Add-On Technology Co., LTD.", - [3]byte{0, 19, 134}: "ABB Inc./Totalflow", - [3]byte{0, 19, 135}: "27M Technologies AB", - [3]byte{0, 19, 136}: "WiMedia Alliance", - [3]byte{0, 19, 137}: "Redes de Telefonía Móvil S.A.", - [3]byte{0, 19, 138}: "QINGDAO GOERTEK ELECTRONICS CO.,LTD.", - [3]byte{0, 19, 139}: "Phantom Technologies LLC", - [3]byte{0, 19, 140}: "Kumyoung.Co.Ltd", - [3]byte{0, 19, 141}: "Kinghold", - [3]byte{0, 19, 142}: "FOAB Elektronik AB", - [3]byte{0, 19, 143}: "Asiarock Incorporation", - [3]byte{0, 19, 144}: "Termtek Computer Co., Ltd", - [3]byte{0, 19, 145}: "OUEN CO.,LTD.", - [3]byte{0, 19, 146}: "Ruckus Wireless", - [3]byte{0, 19, 147}: "Panta Systems, Inc.", - [3]byte{0, 19, 148}: "Infohand Co.,Ltd", - [3]byte{0, 19, 149}: "congatec AG", - [3]byte{0, 19, 150}: "Acbel Polytech Inc.", - [3]byte{0, 19, 151}: "Oracle Corporation", - [3]byte{0, 19, 152}: "TrafficSim Co.,Ltd", - [3]byte{0, 19, 153}: "STAC Corporation.", - [3]byte{0, 19, 154}: "K-ubique ID Corp.", - [3]byte{0, 19, 155}: "ioIMAGE Ltd.", - [3]byte{0, 19, 156}: "Exavera Technologies, Inc.", - [3]byte{0, 19, 157}: "Marvell Hispana S.L.", - [3]byte{0, 19, 158}: "Ciara Technologies Inc.", - [3]byte{0, 19, 159}: "Electronics Design Services, Co., Ltd.", - [3]byte{0, 19, 160}: "ALGOSYSTEM Co., Ltd.", - [3]byte{0, 19, 161}: "Crow Electronic Engeneering", - [3]byte{0, 19, 162}: "MaxStream, Inc", - [3]byte{0, 19, 163}: "Siemens Com CPE Devices", - [3]byte{0, 19, 164}: "KeyEye Communications", - [3]byte{0, 19, 165}: "General Solutions, LTD.", - [3]byte{0, 19, 166}: "Extricom Ltd", - [3]byte{0, 19, 167}: "BATTELLE MEMORIAL INSTITUTE", - [3]byte{0, 19, 168}: "Tanisys Technology", - [3]byte{0, 19, 169}: "Sony Corporation", - [3]byte{0, 19, 170}: "ALS & TEC Ltd.", - [3]byte{0, 19, 171}: "Telemotive AG", - [3]byte{0, 19, 172}: "Sunmyung Electronics Co., LTD", - [3]byte{0, 19, 173}: "Sendo Ltd", - [3]byte{0, 19, 174}: "Radiance Technologies, Inc.", - [3]byte{0, 19, 175}: "NUMA Technology,Inc.", - [3]byte{0, 19, 176}: "Jablotron", - [3]byte{0, 19, 177}: "Intelligent Control Systems (Asia) Pte Ltd", - [3]byte{0, 19, 178}: "Carallon Limited", - [3]byte{0, 19, 179}: "Ecom Communications Technology Co., Ltd.", - [3]byte{0, 19, 180}: "Appear TV", - [3]byte{0, 19, 181}: "Wavesat", - [3]byte{0, 19, 182}: "Sling Media, Inc.", - [3]byte{0, 19, 183}: "Scantech ID", - [3]byte{0, 19, 184}: "RyCo Electronic Systems Limited", - [3]byte{0, 19, 185}: "BM SPA", - [3]byte{0, 19, 186}: "ReadyLinks Inc", - [3]byte{0, 19, 187}: "Smartvue Corporation", - [3]byte{0, 19, 188}: "Artimi Ltd", - [3]byte{0, 19, 189}: "HYMATOM SA", - [3]byte{0, 19, 190}: "Virtual Conexions", - [3]byte{0, 19, 191}: "Media System Planning Corp.", - [3]byte{0, 19, 192}: "Trix Tecnologia Ltda.", - [3]byte{0, 19, 193}: "Asoka USA Corporation", - [3]byte{0, 19, 194}: "WACOM Co.,Ltd", - [3]byte{0, 19, 195}: "CISCO SYSTEMS, INC.", - [3]byte{0, 19, 196}: "CISCO SYSTEMS, INC.", - [3]byte{0, 19, 197}: "LIGHTRON FIBER-OPTIC DEVICES INC.", - [3]byte{0, 19, 198}: "OpenGear, Inc", - [3]byte{0, 19, 199}: "IONOS Co.,Ltd.", - [3]byte{0, 19, 200}: "ADB Broadband Italia", - [3]byte{0, 19, 201}: "Beyond Achieve Enterprises Ltd.", - [3]byte{0, 19, 202}: "Pico Digital", - [3]byte{0, 19, 203}: "Zenitel Norway AS", - [3]byte{0, 19, 204}: "Tall Maple Systems", - [3]byte{0, 19, 205}: "MTI co. LTD", - [3]byte{0, 19, 206}: "Intel Corporate", - [3]byte{0, 19, 207}: "4Access Communications", - [3]byte{0, 19, 208}: "t+ Medical Ltd", - [3]byte{0, 19, 209}: "KIRK telecom A/S", - [3]byte{0, 19, 210}: "PAGE IBERICA, S.A.", - [3]byte{0, 19, 211}: "MICRO-STAR INTERNATIONAL CO., LTD.", - [3]byte{0, 19, 212}: "ASUSTek COMPUTER INC.", - [3]byte{0, 19, 213}: "RuggedCom", - [3]byte{0, 19, 214}: "TII NETWORK TECHNOLOGIES, INC.", - [3]byte{0, 19, 215}: "SPIDCOM Technologies SA", - [3]byte{0, 19, 216}: "Princeton Instruments", - [3]byte{0, 19, 217}: "Matrix Product Development, Inc.", - [3]byte{0, 19, 218}: "Diskware Co., Ltd", - [3]byte{0, 19, 219}: "SHOEI Electric Co.,Ltd", - [3]byte{0, 19, 220}: "IBTEK INC.", - [3]byte{0, 19, 221}: "Abbott Diagnostics", - [3]byte{0, 19, 222}: "Adapt4, LLC", - [3]byte{0, 19, 223}: "Ryvor Corp.", - [3]byte{0, 19, 224}: "Murata Manufacturing Co., Ltd.", - [3]byte{0, 19, 225}: "Iprobe AB", - [3]byte{0, 19, 226}: "GeoVision Inc.", - [3]byte{0, 19, 227}: "CoVi Technologies, Inc.", - [3]byte{0, 19, 228}: "YANGJAE SYSTEMS CORP.", - [3]byte{0, 19, 229}: "TENOSYS, INC.", - [3]byte{0, 19, 230}: "Technolution", - [3]byte{0, 19, 231}: "Halcro", - [3]byte{0, 19, 232}: "Intel Corporate", - [3]byte{0, 19, 233}: "VeriWave, Inc.", - [3]byte{0, 19, 234}: "Kamstrup A/S", - [3]byte{0, 19, 235}: "Sysmaster Corporation", - [3]byte{0, 19, 236}: "Sunbay Software AG", - [3]byte{0, 19, 237}: "PSIA", - [3]byte{0, 19, 238}: "JBX Designs Inc.", - [3]byte{0, 19, 239}: "Kingjon Digital Technology Co.,Ltd", - [3]byte{0, 19, 240}: "Wavefront Semiconductor", - [3]byte{0, 19, 241}: "AMOD Technology Co., Ltd.", - [3]byte{0, 19, 242}: "Klas Ltd", - [3]byte{0, 19, 243}: "Giga-byte Communications Inc.", - [3]byte{0, 19, 244}: "Psitek (Pty) Ltd", - [3]byte{0, 19, 245}: "Akimbi Systems", - [3]byte{0, 19, 246}: "Cintech", - [3]byte{0, 19, 247}: "SMC Networks, Inc.", - [3]byte{0, 19, 248}: "Dex Security Solutions", - [3]byte{0, 19, 249}: "Cavera Systems", - [3]byte{0, 19, 250}: "LifeSize Communications, Inc", - [3]byte{0, 19, 251}: "RKC INSTRUMENT INC.", - [3]byte{0, 19, 252}: "SiCortex, Inc", - [3]byte{0, 19, 253}: "Nokia Danmark A/S", - [3]byte{0, 19, 254}: "GRANDTEC ELECTRONIC CORP.", - [3]byte{0, 19, 255}: "Dage-MTI of MC, Inc.", - [3]byte{0, 20, 0}: "MINERVA KOREA CO., LTD", - [3]byte{0, 20, 1}: "Rivertree Networks Corp.", - [3]byte{0, 20, 2}: "kk-electronic a/s", - [3]byte{0, 20, 3}: "Renasis, LLC", - [3]byte{0, 20, 4}: "ARRIS Group, Inc.", - [3]byte{0, 20, 5}: "OpenIB, Inc.", - [3]byte{0, 20, 6}: "Go Networks", - [3]byte{0, 20, 7}: "Sperian Protection Instrumentation", - [3]byte{0, 20, 8}: "Eka Systems Inc.", - [3]byte{0, 20, 9}: "MAGNETI MARELLI S.E. S.p.A.", - [3]byte{0, 20, 10}: "WEPIO Co., Ltd.", - [3]byte{0, 20, 11}: "FIRST INTERNATIONAL COMPUTER, INC.", - [3]byte{0, 20, 12}: "GKB CCTV CO., LTD.", - [3]byte{0, 20, 13}: "Nortel", - [3]byte{0, 20, 14}: "Nortel", - [3]byte{0, 20, 15}: "Federal State Unitary Enterprise Leningrad R&D Institute of", - [3]byte{0, 20, 16}: "Suzhou Keda Technology CO.,Ltd", - [3]byte{0, 20, 17}: "Deutschmann Automation GmbH & Co. KG", - [3]byte{0, 20, 18}: "S-TEC electronics AG", - [3]byte{0, 20, 19}: "Trebing & Himstedt Prozeßautomation GmbH & Co. KG", - [3]byte{0, 20, 20}: "Jumpnode Systems LLC.", - [3]byte{0, 20, 21}: "Intec Automation Inc.", - [3]byte{0, 20, 22}: "Scosche Industries, Inc.", - [3]byte{0, 20, 23}: "RSE Informations Technologie GmbH", - [3]byte{0, 20, 24}: "C4Line", - [3]byte{0, 20, 25}: "SIDSA", - [3]byte{0, 20, 26}: "DEICY CORPORATION", - [3]byte{0, 20, 27}: "CISCO SYSTEMS, INC.", - [3]byte{0, 20, 28}: "CISCO SYSTEMS, INC.", - [3]byte{0, 20, 29}: "LTi DRIVES GmbH", - [3]byte{0, 20, 30}: "P.A. Semi, Inc.", - [3]byte{0, 20, 31}: "SunKwang Electronics Co., Ltd", - [3]byte{0, 20, 32}: "G-Links networking company", - [3]byte{0, 20, 33}: "Total Wireless Technologies Pte. Ltd.", - [3]byte{0, 20, 34}: "Dell Inc", - [3]byte{0, 20, 35}: "J-S Co. NEUROCOM", - [3]byte{0, 20, 36}: "Merry Electrics CO., LTD.", - [3]byte{0, 20, 37}: "Galactic Computing Corp.", - [3]byte{0, 20, 38}: "NL Technology", - [3]byte{0, 20, 39}: "JazzMutant", - [3]byte{0, 20, 40}: "Vocollect, Inc", - [3]byte{0, 20, 41}: "V Center Technologies Co., Ltd.", - [3]byte{0, 20, 42}: "Elitegroup Computer System Co., Ltd", - [3]byte{0, 20, 43}: "Edata Communication Inc.", - [3]byte{0, 20, 44}: "Koncept International, Inc.", - [3]byte{0, 20, 45}: "Toradex AG", - [3]byte{0, 20, 46}: "77 Elektronika Kft.", - [3]byte{0, 20, 47}: "WildPackets", - [3]byte{0, 20, 48}: "ViPowER, Inc", - [3]byte{0, 20, 49}: "PDL Electronics Ltd", - [3]byte{0, 20, 50}: "Tarallax Wireless, Inc.", - [3]byte{0, 20, 51}: "Empower Technologies(Canada) Inc.", - [3]byte{0, 20, 52}: "Keri Systems, Inc", - [3]byte{0, 20, 53}: "CityCom Corp.", - [3]byte{0, 20, 54}: "Qwerty Elektronik AB", - [3]byte{0, 20, 55}: "GSTeletech Co.,Ltd.", - [3]byte{0, 20, 56}: "Hewlett-Packard Company", - [3]byte{0, 20, 57}: "Blonder Tongue Laboratories, Inc.", - [3]byte{0, 20, 58}: "RAYTALK INTERNATIONAL SRL", - [3]byte{0, 20, 59}: "Sensovation AG", - [3]byte{0, 20, 60}: "Rheinmetall Canada Inc.", - [3]byte{0, 20, 61}: "Aevoe Inc.", - [3]byte{0, 20, 62}: "AirLink Communications, Inc.", - [3]byte{0, 20, 63}: "Hotway Technology Corporation", - [3]byte{0, 20, 64}: "ATOMIC Corporation", - [3]byte{0, 20, 65}: "Innovation Sound Technology Co., LTD.", - [3]byte{0, 20, 66}: "ATTO CORPORATION", - [3]byte{0, 20, 67}: "Consultronics Europe Ltd", - [3]byte{0, 20, 68}: "Grundfos Holding", - [3]byte{0, 20, 69}: "Telefon-Gradnja d.o.o.", - [3]byte{0, 20, 70}: "SuperVision Solutions LLC", - [3]byte{0, 20, 71}: "BOAZ Inc.", - [3]byte{0, 20, 72}: "Inventec Multimedia & Telecom Corporation", - [3]byte{0, 20, 73}: "Sichuan Changhong Electric Ltd.", - [3]byte{0, 20, 74}: "Taiwan Thick-Film Ind. Corp.", - [3]byte{0, 20, 75}: "Hifn, Inc.", - [3]byte{0, 20, 76}: "General Meters Corp.", - [3]byte{0, 20, 77}: "Intelligent Systems", - [3]byte{0, 20, 78}: "SRISA", - [3]byte{0, 20, 79}: "Oracle Corporation", - [3]byte{0, 20, 80}: "Heim Systems GmbH", - [3]byte{0, 20, 81}: "Apple", - [3]byte{0, 20, 82}: "CALCULEX,INC.", - [3]byte{0, 20, 83}: "ADVANTECH TECHNOLOGIES CO.,LTD", - [3]byte{0, 20, 84}: "Symwave", - [3]byte{0, 20, 85}: "Coder Electronics Corporation", - [3]byte{0, 20, 86}: "Edge Products", - [3]byte{0, 20, 87}: "T-VIPS AS", - [3]byte{0, 20, 88}: "HS Automatic ApS", - [3]byte{0, 20, 89}: "Moram Co., Ltd.", - [3]byte{0, 20, 90}: "Neratec Solutions AG", - [3]byte{0, 20, 91}: "SeekerNet Inc.", - [3]byte{0, 20, 92}: "Intronics B.V.", - [3]byte{0, 20, 93}: "WJ Communications, Inc.", - [3]byte{0, 20, 94}: "IBM Corp", - [3]byte{0, 20, 95}: "ADITEC CO. LTD", - [3]byte{0, 20, 96}: "Kyocera Wireless Corp.", - [3]byte{0, 20, 97}: "CORONA CORPORATION", - [3]byte{0, 20, 98}: "Digiwell Technology, inc", - [3]byte{0, 20, 99}: "IDCS N.V.", - [3]byte{0, 20, 100}: "Cryptosoft", - [3]byte{0, 20, 101}: "Novo Nordisk A/S", - [3]byte{0, 20, 102}: "Kleinhenz Elektronik GmbH", - [3]byte{0, 20, 103}: "ArrowSpan Inc.", - [3]byte{0, 20, 104}: "CelPlan International, Inc.", - [3]byte{0, 20, 105}: "CISCO SYSTEMS, INC.", - [3]byte{0, 20, 106}: "CISCO SYSTEMS, INC.", - [3]byte{0, 20, 107}: "Anagran, Inc.", - [3]byte{0, 20, 108}: "Netgear Inc.", - [3]byte{0, 20, 109}: "RF Technologies", - [3]byte{0, 20, 110}: "H. Stoll GmbH & Co. KG", - [3]byte{0, 20, 111}: "Kohler Co", - [3]byte{0, 20, 112}: "Prokom Software SA", - [3]byte{0, 20, 113}: "Eastern Asia Technology Limited", - [3]byte{0, 20, 114}: "China Broadband Wireless IP Standard Group", - [3]byte{0, 20, 115}: "Bookham Inc", - [3]byte{0, 20, 116}: "K40 Electronics", - [3]byte{0, 20, 117}: "Wiline Networks, Inc.", - [3]byte{0, 20, 118}: "MultiCom Industries Limited", - [3]byte{0, 20, 119}: "Nertec Inc.", - [3]byte{0, 20, 120}: "ShenZhen TP-LINK Technologies Co., Ltd.", - [3]byte{0, 20, 121}: "NEC Magnus Communications,Ltd.", - [3]byte{0, 20, 122}: "Eubus GmbH", - [3]byte{0, 20, 123}: "Iteris, Inc.", - [3]byte{0, 20, 124}: "3Com Ltd", - [3]byte{0, 20, 125}: "Aeon Digital International", - [3]byte{0, 20, 126}: "InnerWireless", - [3]byte{0, 20, 127}: "Thomson Telecom Belgium", - [3]byte{0, 20, 128}: "Hitachi-LG Data Storage Korea, Inc", - [3]byte{0, 20, 129}: "Multilink Inc", - [3]byte{0, 20, 130}: "Aurora Networks", - [3]byte{0, 20, 131}: "eXS Inc.", - [3]byte{0, 20, 132}: "Cermate Technologies Inc.", - [3]byte{0, 20, 133}: "Giga-Byte", - [3]byte{0, 20, 134}: "Echo Digital Audio Corporation", - [3]byte{0, 20, 135}: "American Technology Integrators", - [3]byte{0, 20, 136}: "Akorri", - [3]byte{0, 20, 137}: "B15402100 - JANDEI, S.L.", - [3]byte{0, 20, 138}: "Elin Ebg Traction Gmbh", - [3]byte{0, 20, 139}: "Globo Electronic GmbH & Co. KG", - [3]byte{0, 20, 140}: "Fortress Technologies", - [3]byte{0, 20, 141}: "Cubic Defense Simulation Systems", - [3]byte{0, 20, 142}: "Tele Power Inc.", - [3]byte{0, 20, 143}: "Protronic (Far East) Ltd.", - [3]byte{0, 20, 144}: "ASP Corporation", - [3]byte{0, 20, 145}: "Daniels Electronics Ltd. dbo Codan Rado Communications", - [3]byte{0, 20, 146}: "Liteon, Mobile Media Solution SBU", - [3]byte{0, 20, 147}: "Systimax Solutions", - [3]byte{0, 20, 148}: "ESU AG", - [3]byte{0, 20, 149}: "2Wire, Inc.", - [3]byte{0, 20, 150}: "Phonic Corp.", - [3]byte{0, 20, 151}: "ZHIYUAN Eletronics co.,ltd.", - [3]byte{0, 20, 152}: "Viking Design Technology", - [3]byte{0, 20, 153}: "Helicomm Inc", - [3]byte{0, 20, 154}: "ARRIS Group, Inc.", - [3]byte{0, 20, 155}: "Nokota Communications, LLC", - [3]byte{0, 20, 156}: "HF Company", - [3]byte{0, 20, 157}: "Sound ID Inc.", - [3]byte{0, 20, 158}: "UbONE Co., Ltd", - [3]byte{0, 20, 159}: "System and Chips, Inc.", - [3]byte{0, 20, 160}: "Accsense, Inc.", - [3]byte{0, 20, 161}: "Synchronous Communication Corp", - [3]byte{0, 20, 162}: "Core Micro Systems Inc.", - [3]byte{0, 20, 163}: "Vitelec BV", - [3]byte{0, 20, 164}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 20, 165}: "Gemtek Technology Co., Ltd.", - [3]byte{0, 20, 166}: "Teranetics, Inc.", - [3]byte{0, 20, 167}: "Nokia Danmark A/S", - [3]byte{0, 20, 168}: "CISCO SYSTEMS, INC.", - [3]byte{0, 20, 169}: "CISCO SYSTEMS, INC.", - [3]byte{0, 20, 170}: "Ashly Audio, Inc.", - [3]byte{0, 20, 171}: "Senhai Electronic Technology Co., Ltd.", - [3]byte{0, 20, 172}: "Bountiful WiFi", - [3]byte{0, 20, 173}: "Gassner Wiege- und Meßtechnik GmbH", - [3]byte{0, 20, 174}: "Wizlogics Co., Ltd.", - [3]byte{0, 20, 175}: "Datasym POS Inc.", - [3]byte{0, 20, 176}: "Naeil Community", - [3]byte{0, 20, 177}: "Avitec AB", - [3]byte{0, 20, 178}: "mCubelogics Corporation", - [3]byte{0, 20, 179}: "CoreStar International Corp", - [3]byte{0, 20, 180}: "General Dynamics United Kingdom Ltd", - [3]byte{0, 20, 181}: "PHYSIOMETRIX,INC", - [3]byte{0, 20, 182}: "Enswer Technology Inc.", - [3]byte{0, 20, 183}: "AR Infotek Inc.", - [3]byte{0, 20, 184}: "Hill-Rom", - [3]byte{0, 20, 185}: "MSTAR SEMICONDUCTOR", - [3]byte{0, 20, 186}: "Carvers SA de CV", - [3]byte{0, 20, 187}: "Open Interface North America", - [3]byte{0, 20, 188}: "SYNECTIC TELECOM EXPORTS PVT. LTD.", - [3]byte{0, 20, 189}: "incNETWORKS, Inc", - [3]byte{0, 20, 190}: "Wink communication technology CO.LTD", - [3]byte{0, 20, 191}: "Cisco-Linksys LLC", - [3]byte{0, 20, 192}: "Symstream Technology Group Ltd", - [3]byte{0, 20, 193}: "U.S. Robotics Corporation", - [3]byte{0, 20, 194}: "Hewlett-Packard Company", - [3]byte{0, 20, 195}: "Seagate Technology", - [3]byte{0, 20, 196}: "Vitelcom Mobile Technology", - [3]byte{0, 20, 197}: "Alive Technologies Pty Ltd", - [3]byte{0, 20, 198}: "Quixant Ltd", - [3]byte{0, 20, 199}: "Nortel", - [3]byte{0, 20, 200}: "Contemporary Research Corp", - [3]byte{0, 20, 201}: "Brocade Communications Systems, Inc.", - [3]byte{0, 20, 202}: "Key Radio Systems Limited", - [3]byte{0, 20, 203}: "LifeSync Corporation", - [3]byte{0, 20, 204}: "Zetec, Inc.", - [3]byte{0, 20, 205}: "DigitalZone Co., Ltd.", - [3]byte{0, 20, 206}: "NF CORPORATION", - [3]byte{0, 20, 207}: "INVISIO Communications", - [3]byte{0, 20, 208}: "BTI Systems Inc.", - [3]byte{0, 20, 209}: "TRENDnet", - [3]byte{0, 20, 210}: "Kyuden Technosystems Corporation", - [3]byte{0, 20, 211}: "SEPSA", - [3]byte{0, 20, 212}: "K Technology Corporation", - [3]byte{0, 20, 213}: "Datang Telecom Technology CO. , LCD,Optical Communication Br", - [3]byte{0, 20, 214}: "Jeongmin Electronics Co.,Ltd.", - [3]byte{0, 20, 215}: "Datastore Technology Corp", - [3]byte{0, 20, 216}: "bio-logic SA", - [3]byte{0, 20, 217}: "IP Fabrics, Inc.", - [3]byte{0, 20, 218}: "Huntleigh Healthcare", - [3]byte{0, 20, 219}: "Elma Trenew Electronic GmbH", - [3]byte{0, 20, 220}: "Communication System Design & Manufacturing (CSDM)", - [3]byte{0, 20, 221}: "Covergence Inc.", - [3]byte{0, 20, 222}: "Sage Instruments Inc.", - [3]byte{0, 20, 223}: "HI-P Tech Corporation", - [3]byte{0, 20, 224}: "LET'S Corporation", - [3]byte{0, 20, 225}: "Data Display AG", - [3]byte{0, 20, 226}: "datacom systems inc.", - [3]byte{0, 20, 227}: "mm-lab GmbH", - [3]byte{0, 20, 228}: "infinias, LLC", - [3]byte{0, 20, 229}: "Alticast", - [3]byte{0, 20, 230}: "AIM Infrarotmodule GmbH", - [3]byte{0, 20, 231}: "Stolinx,. Inc", - [3]byte{0, 20, 232}: "ARRIS Group, Inc.", - [3]byte{0, 20, 233}: "Nortech International", - [3]byte{0, 20, 234}: "S Digm Inc. (Safe Paradigm Inc.)", - [3]byte{0, 20, 235}: "AwarePoint Corporation", - [3]byte{0, 20, 236}: "Acro Telecom", - [3]byte{0, 20, 237}: "Airak, Inc.", - [3]byte{0, 20, 238}: "Western Digital Technologies, Inc.", - [3]byte{0, 20, 239}: "TZero Technologies, Inc.", - [3]byte{0, 20, 240}: "Business Security OL AB", - [3]byte{0, 20, 241}: "CISCO SYSTEMS, INC.", - [3]byte{0, 20, 242}: "CISCO SYSTEMS, INC.", - [3]byte{0, 20, 243}: "ViXS Systems Inc", - [3]byte{0, 20, 244}: "DekTec Digital Video B.V.", - [3]byte{0, 20, 245}: "OSI Security Devices", - [3]byte{0, 20, 246}: "Juniper Networks, Inc.", - [3]byte{0, 20, 247}: "CREVIS Co., LTD", - [3]byte{0, 20, 248}: "Scientific Atlanta", - [3]byte{0, 20, 249}: "Vantage Controls", - [3]byte{0, 20, 250}: "AsGa S.A.", - [3]byte{0, 20, 251}: "Technical Solutions Inc.", - [3]byte{0, 20, 252}: "Extandon, Inc.", - [3]byte{0, 20, 253}: "Thecus Technology Corp.", - [3]byte{0, 20, 254}: "Artech Electronics", - [3]byte{0, 20, 255}: "Precise Automation, Inc.", - [3]byte{0, 21, 0}: "Intel Corporate", - [3]byte{0, 21, 1}: "LexBox", - [3]byte{0, 21, 2}: "BETA tech", - [3]byte{0, 21, 3}: "PROFIcomms s.r.o.", - [3]byte{0, 21, 4}: "GAME PLUS CO., LTD.", - [3]byte{0, 21, 5}: "Actiontec Electronics, Inc", - [3]byte{0, 21, 6}: "Neo Photonics", - [3]byte{0, 21, 7}: "Renaissance Learning Inc", - [3]byte{0, 21, 8}: "Global Target Enterprise Inc", - [3]byte{0, 21, 9}: "Plus Technology Co., Ltd", - [3]byte{0, 21, 10}: "Sonoa Systems, Inc", - [3]byte{0, 21, 11}: "SAGE INFOTECH LTD.", - [3]byte{0, 21, 12}: "AVM GmbH", - [3]byte{0, 21, 13}: "Hoana Medical, Inc.", - [3]byte{0, 21, 14}: "OPENBRAIN TECHNOLOGIES CO., LTD.", - [3]byte{0, 21, 15}: "mingjong", - [3]byte{0, 21, 16}: "Techsphere Co., Ltd", - [3]byte{0, 21, 17}: "Data Center Systems", - [3]byte{0, 21, 18}: "Zurich University of Applied Sciences", - [3]byte{0, 21, 19}: "EFS sas", - [3]byte{0, 21, 20}: "Hu Zhou NAVA Networks&Electronics Ltd.", - [3]byte{0, 21, 21}: "Leipold+Co.GmbH", - [3]byte{0, 21, 22}: "URIEL SYSTEMS INC.", - [3]byte{0, 21, 23}: "Intel Corporate", - [3]byte{0, 21, 24}: "Shenzhen 10MOONS Technology Development CO.,Ltd", - [3]byte{0, 21, 25}: "StoreAge Networking Technologies", - [3]byte{0, 21, 26}: "Hunter Engineering Company", - [3]byte{0, 21, 27}: "Isilon Systems Inc.", - [3]byte{0, 21, 28}: "LENECO", - [3]byte{0, 21, 29}: "M2I CORPORATION", - [3]byte{0, 21, 30}: "Ethernet Powerlink Standardization Group (EPSG)", - [3]byte{0, 21, 31}: "Multivision Intelligent Surveillance (Hong Kong) Ltd", - [3]byte{0, 21, 32}: "Radiocrafts AS", - [3]byte{0, 21, 33}: "Horoquartz", - [3]byte{0, 21, 34}: "Dea Security", - [3]byte{0, 21, 35}: "Meteor Communications Corporation", - [3]byte{0, 21, 36}: "Numatics, Inc.", - [3]byte{0, 21, 37}: "Chamberlain Access Solutions", - [3]byte{0, 21, 38}: "Remote Technologies Inc", - [3]byte{0, 21, 39}: "Balboa Instruments", - [3]byte{0, 21, 40}: "Beacon Medical Products LLC d.b.a. BeaconMedaes", - [3]byte{0, 21, 41}: "N3 Corporation", - [3]byte{0, 21, 42}: "Nokia GmbH", - [3]byte{0, 21, 43}: "CISCO SYSTEMS, INC.", - [3]byte{0, 21, 44}: "CISCO SYSTEMS, INC.", - [3]byte{0, 21, 45}: "TenX Networks, LLC", - [3]byte{0, 21, 46}: "PacketHop, Inc.", - [3]byte{0, 21, 47}: "ARRIS Group, Inc.", - [3]byte{0, 21, 48}: "EMC Corporation", - [3]byte{0, 21, 49}: "KOCOM", - [3]byte{0, 21, 50}: "Consumer Technologies Group, LLC", - [3]byte{0, 21, 51}: "NADAM.CO.,LTD", - [3]byte{0, 21, 52}: "A Beltrónica-Companhia de Comunicações, Lda", - [3]byte{0, 21, 53}: "OTE Spa", - [3]byte{0, 21, 54}: "Powertech co.,Ltd", - [3]byte{0, 21, 55}: "Ventus Networks", - [3]byte{0, 21, 56}: "RFID, Inc.", - [3]byte{0, 21, 57}: "Technodrive SRL", - [3]byte{0, 21, 58}: "Shenzhen Syscan Technology Co.,Ltd.", - [3]byte{0, 21, 59}: "EMH metering GmbH & Co. KG", - [3]byte{0, 21, 60}: "Kprotech Co., Ltd.", - [3]byte{0, 21, 61}: "ELIM PRODUCT CO.", - [3]byte{0, 21, 62}: "Q-Matic Sweden AB", - [3]byte{0, 21, 63}: "Alcatel Alenia Space Italia", - [3]byte{0, 21, 64}: "Nortel", - [3]byte{0, 21, 65}: "StrataLight Communications, Inc.", - [3]byte{0, 21, 66}: "MICROHARD S.R.L.", - [3]byte{0, 21, 67}: "Aberdeen Test Center", - [3]byte{0, 21, 68}: "coM.s.a.t. AG", - [3]byte{0, 21, 69}: "SEECODE Co., Ltd.", - [3]byte{0, 21, 70}: "ITG Worldwide Sdn Bhd", - [3]byte{0, 21, 71}: "AiZen Solutions Inc.", - [3]byte{0, 21, 72}: "CUBE TECHNOLOGIES", - [3]byte{0, 21, 73}: "Dixtal Biomedica Ind. Com. Ltda", - [3]byte{0, 21, 74}: "WANSHIH ELECTRONIC CO., LTD", - [3]byte{0, 21, 75}: "Wonde Proud Technology Co., Ltd", - [3]byte{0, 21, 76}: "Saunders Electronics", - [3]byte{0, 21, 77}: "Netronome Systems, Inc.", - [3]byte{0, 21, 78}: "IEC", - [3]byte{0, 21, 79}: "one RF Technology", - [3]byte{0, 21, 80}: "Nits Technology Inc", - [3]byte{0, 21, 81}: "RadioPulse Inc.", - [3]byte{0, 21, 82}: "Wi-Gear Inc.", - [3]byte{0, 21, 83}: "Cytyc Corporation", - [3]byte{0, 21, 84}: "Atalum Wireless S.A.", - [3]byte{0, 21, 85}: "DFM GmbH", - [3]byte{0, 21, 86}: "SAGEM COMMUNICATION", - [3]byte{0, 21, 87}: "Olivetti", - [3]byte{0, 21, 88}: "FOXCONN", - [3]byte{0, 21, 89}: "Securaplane Technologies, Inc.", - [3]byte{0, 21, 90}: "DAINIPPON PHARMACEUTICAL CO., LTD.", - [3]byte{0, 21, 91}: "Sampo Corporation", - [3]byte{0, 21, 92}: "Dresser Wayne", - [3]byte{0, 21, 93}: "Microsoft Corporation", - [3]byte{0, 21, 94}: "Morgan Stanley", - [3]byte{0, 21, 95}: "GreenPeak Technologies", - [3]byte{0, 21, 96}: "Hewlett-Packard Company", - [3]byte{0, 21, 97}: "JJPlus Corporation", - [3]byte{0, 21, 98}: "CISCO SYSTEMS, INC.", - [3]byte{0, 21, 99}: "CISCO SYSTEMS, INC.", - [3]byte{0, 21, 100}: "BEHRINGER Spezielle Studiotechnik GmbH", - [3]byte{0, 21, 101}: "XIAMEN YEALINK NETWORK TECHNOLOGY CO.,LTD", - [3]byte{0, 21, 102}: "A-First Technology Co., Ltd.", - [3]byte{0, 21, 103}: "RADWIN Inc.", - [3]byte{0, 21, 104}: "Dilithium Networks", - [3]byte{0, 21, 105}: "PECO II, Inc.", - [3]byte{0, 21, 106}: "DG2L Technologies Pvt. Ltd.", - [3]byte{0, 21, 107}: "Perfisans Networks Corp.", - [3]byte{0, 21, 108}: "SANE SYSTEM CO., LTD", - [3]byte{0, 21, 109}: "Ubiquiti Networks Inc.", - [3]byte{0, 21, 110}: "A. W. Communication Systems Ltd", - [3]byte{0, 21, 111}: "Xiranet Communications GmbH", - [3]byte{0, 21, 112}: "Symbol TechnologiesWholly owned Subsidiary of Motorola", - [3]byte{0, 21, 113}: "Nolan Systems", - [3]byte{0, 21, 114}: "Red-Lemon", - [3]byte{0, 21, 115}: "NewSoft Technology Corporation", - [3]byte{0, 21, 116}: "Horizon Semiconductors Ltd.", - [3]byte{0, 21, 117}: "Nevis Networks Inc.", - [3]byte{0, 21, 118}: "LABiTec - Labor Biomedical Technologies GmbH", - [3]byte{0, 21, 119}: "Allied Telesis", - [3]byte{0, 21, 120}: "Audio / Video Innovations", - [3]byte{0, 21, 121}: "Lunatone Industrielle Elektronik GmbH", - [3]byte{0, 21, 122}: "Telefin S.p.A.", - [3]byte{0, 21, 123}: "Leuze electronic GmbH + Co. KG", - [3]byte{0, 21, 124}: "Dave Networks, Inc.", - [3]byte{0, 21, 125}: "POSDATA CO., LTD.", - [3]byte{0, 21, 126}: "Weidmüller Interface GmbH & Co. KG", - [3]byte{0, 21, 127}: "ChuanG International Holding CO.,LTD.", - [3]byte{0, 21, 128}: "U-WAY CORPORATION", - [3]byte{0, 21, 129}: "MAKUS Inc.", - [3]byte{0, 21, 130}: "Pulse Eight Limited", - [3]byte{0, 21, 131}: "IVT corporation", - [3]byte{0, 21, 132}: "Schenck Process GmbH", - [3]byte{0, 21, 133}: "Aonvision Technolopy Corp.", - [3]byte{0, 21, 134}: "Xiamen Overseas Chinese Electronic Co., Ltd.", - [3]byte{0, 21, 135}: "Takenaka Seisakusho Co.,Ltd", - [3]byte{0, 21, 136}: "Salutica Allied Solutions Sdn Bhd", - [3]byte{0, 21, 137}: "D-MAX Technology Co.,Ltd", - [3]byte{0, 21, 138}: "SURECOM Technology Corp.", - [3]byte{0, 21, 139}: "Park Air Systems Ltd", - [3]byte{0, 21, 140}: "Liab ApS", - [3]byte{0, 21, 141}: "Jennic Ltd", - [3]byte{0, 21, 142}: "Plustek.INC", - [3]byte{0, 21, 143}: "NTT Advanced Technology Corporation", - [3]byte{0, 21, 144}: "Hectronic GmbH", - [3]byte{0, 21, 145}: "RLW Inc.", - [3]byte{0, 21, 146}: "Facom UK Ltd (Melksham)", - [3]byte{0, 21, 147}: "U4EA Technologies Inc.", - [3]byte{0, 21, 148}: "BIXOLON CO.,LTD", - [3]byte{0, 21, 149}: "Quester Tangent Corporation", - [3]byte{0, 21, 150}: "ARRIS International", - [3]byte{0, 21, 151}: "AETA AUDIO SYSTEMS", - [3]byte{0, 21, 152}: "Kolektor group", - [3]byte{0, 21, 153}: "Samsung Electronics Co., LTD", - [3]byte{0, 21, 154}: "ARRIS Group, Inc.", - [3]byte{0, 21, 155}: "Nortel", - [3]byte{0, 21, 156}: "B-KYUNG SYSTEM Co.,Ltd.", - [3]byte{0, 21, 157}: "Tripp Lite", - [3]byte{0, 21, 158}: "Mad Catz Interactive Inc", - [3]byte{0, 21, 159}: "Terascala, Inc.", - [3]byte{0, 21, 160}: "Nokia Danmark A/S", - [3]byte{0, 21, 161}: "ECA-SINTERS", - [3]byte{0, 21, 162}: "ARRIS International", - [3]byte{0, 21, 163}: "ARRIS International", - [3]byte{0, 21, 164}: "ARRIS International", - [3]byte{0, 21, 165}: "DCI Co., Ltd.", - [3]byte{0, 21, 166}: "Digital Electronics Products Ltd.", - [3]byte{0, 21, 167}: "Robatech AG", - [3]byte{0, 21, 168}: "ARRIS Group, Inc.", - [3]byte{0, 21, 169}: "KWANG WOO I&C CO.,LTD", - [3]byte{0, 21, 170}: "Rextechnik International Co.,", - [3]byte{0, 21, 171}: "PRO CO SOUND INC", - [3]byte{0, 21, 172}: "Capelon AB", - [3]byte{0, 21, 173}: "Accedian Networks", - [3]byte{0, 21, 174}: "kyung il", - [3]byte{0, 21, 175}: "AzureWave Technologies, Inc.", - [3]byte{0, 21, 176}: "AUTOTELENET CO.,LTD", - [3]byte{0, 21, 177}: "Ambient Corporation", - [3]byte{0, 21, 178}: "Advanced Industrial Computer, Inc.", - [3]byte{0, 21, 179}: "Caretech AB", - [3]byte{0, 21, 180}: "Polymap Wireless LLC", - [3]byte{0, 21, 181}: "CI Network Corp.", - [3]byte{0, 21, 182}: "ShinMaywa Industries, Ltd.", - [3]byte{0, 21, 183}: "Toshiba", - [3]byte{0, 21, 184}: "Tahoe", - [3]byte{0, 21, 185}: "Samsung Electronics Co., Ltd.", - [3]byte{0, 21, 186}: "iba AG", - [3]byte{0, 21, 187}: "SMA Solar Technology AG", - [3]byte{0, 21, 188}: "Develco", - [3]byte{0, 21, 189}: "Group 4 Technology Ltd", - [3]byte{0, 21, 190}: "Iqua Ltd.", - [3]byte{0, 21, 191}: "technicob", - [3]byte{0, 21, 192}: "DIGITAL TELEMEDIA CO.,LTD.", - [3]byte{0, 21, 193}: "SONY Computer Entertainment inc,", - [3]byte{0, 21, 194}: "3M Germany", - [3]byte{0, 21, 195}: "Ruf Telematik AG", - [3]byte{0, 21, 196}: "FLOVEL CO., LTD.", - [3]byte{0, 21, 197}: "Dell Inc", - [3]byte{0, 21, 198}: "CISCO SYSTEMS, INC.", - [3]byte{0, 21, 199}: "CISCO SYSTEMS, INC.", - [3]byte{0, 21, 200}: "FlexiPanel Ltd", - [3]byte{0, 21, 201}: "Gumstix, Inc", - [3]byte{0, 21, 202}: "TeraRecon, Inc.", - [3]byte{0, 21, 203}: "Surf Communication Solutions Ltd.", - [3]byte{0, 21, 204}: "UQUEST, LTD.", - [3]byte{0, 21, 205}: "Exartech International Corp.", - [3]byte{0, 21, 206}: "ARRIS International", - [3]byte{0, 21, 207}: "ARRIS International", - [3]byte{0, 21, 208}: "ARRIS International", - [3]byte{0, 21, 209}: "ARRIS Group, Inc.", - [3]byte{0, 21, 210}: "Xantech Corporation", - [3]byte{0, 21, 211}: "Pantech&Curitel Communications, Inc.", - [3]byte{0, 21, 212}: "Emitor AB", - [3]byte{0, 21, 213}: "NICEVT", - [3]byte{0, 21, 214}: "OSLiNK Sp. z o.o.", - [3]byte{0, 21, 215}: "Reti Corporation", - [3]byte{0, 21, 216}: "Interlink Electronics", - [3]byte{0, 21, 217}: "PKC Electronics Oy", - [3]byte{0, 21, 218}: "IRITEL A.D.", - [3]byte{0, 21, 219}: "Canesta Inc.", - [3]byte{0, 21, 220}: "KT&C Co., Ltd.", - [3]byte{0, 21, 221}: "IP Control Systems Ltd.", - [3]byte{0, 21, 222}: "Nokia Danmark A/S", - [3]byte{0, 21, 223}: "Clivet S.p.A.", - [3]byte{0, 21, 224}: "Ericsson", - [3]byte{0, 21, 225}: "Picochip Ltd", - [3]byte{0, 21, 226}: "Dr.Ing. Herbert Knauer GmbH", - [3]byte{0, 21, 227}: "Dream Technologies Corporation", - [3]byte{0, 21, 228}: "Zimmer Elektromedizin", - [3]byte{0, 21, 229}: "Cheertek Inc.", - [3]byte{0, 21, 230}: "MOBILE TECHNIKA Inc.", - [3]byte{0, 21, 231}: "Quantec Tontechnik", - [3]byte{0, 21, 232}: "Nortel", - [3]byte{0, 21, 233}: "D-Link Corporation", - [3]byte{0, 21, 234}: "Tellumat (Pty) Ltd", - [3]byte{0, 21, 235}: "ZTE CORPORATION", - [3]byte{0, 21, 236}: "Boca Devices LLC", - [3]byte{0, 21, 237}: "Fulcrum Microsystems, Inc.", - [3]byte{0, 21, 238}: "Omnex Control Systems", - [3]byte{0, 21, 239}: "NEC TOKIN Corporation", - [3]byte{0, 21, 240}: "EGO BV", - [3]byte{0, 21, 241}: "KYLINK Communications Corp.", - [3]byte{0, 21, 242}: "ASUSTek COMPUTER INC.", - [3]byte{0, 21, 243}: "PELTOR AB", - [3]byte{0, 21, 244}: "Eventide", - [3]byte{0, 21, 245}: "Sustainable Energy Systems", - [3]byte{0, 21, 246}: "SCIENCE AND ENGINEERING SERVICES, INC.", - [3]byte{0, 21, 247}: "Wintecronics Ltd.", - [3]byte{0, 21, 248}: "Kingtronics Industrial Co. Ltd.", - [3]byte{0, 21, 249}: "CISCO SYSTEMS, INC.", - [3]byte{0, 21, 250}: "CISCO SYSTEMS, INC.", - [3]byte{0, 21, 251}: "setex schermuly textile computer gmbh", - [3]byte{0, 21, 252}: "Littelfuse Startco", - [3]byte{0, 21, 253}: "Complete Media Systems", - [3]byte{0, 21, 254}: "SCHILLING ROBOTICS LLC", - [3]byte{0, 21, 255}: "Novatel Wireless, Inc.", - [3]byte{0, 22, 0}: "CelleBrite Mobile Synchronization", - [3]byte{0, 22, 1}: "Buffalo Inc.", - [3]byte{0, 22, 2}: "CEYON TECHNOLOGY CO.,LTD.", - [3]byte{0, 22, 3}: "COOLKSKY Co., LTD", - [3]byte{0, 22, 4}: "Sigpro", - [3]byte{0, 22, 5}: "YORKVILLE SOUND INC.", - [3]byte{0, 22, 6}: "Ideal Industries", - [3]byte{0, 22, 7}: "Curves International Inc.", - [3]byte{0, 22, 8}: "Sequans Communications", - [3]byte{0, 22, 9}: "Unitech electronics co., ltd.", - [3]byte{0, 22, 10}: "SWEEX Europe BV", - [3]byte{0, 22, 11}: "TVWorks LLC", - [3]byte{0, 22, 12}: "LPL DEVELOPMENT S.A. DE C.V", - [3]byte{0, 22, 13}: "Be Here Corporation", - [3]byte{0, 22, 14}: "Optica Technologies Inc.", - [3]byte{0, 22, 15}: "BADGER METER INC", - [3]byte{0, 22, 16}: "Carina Technology", - [3]byte{0, 22, 17}: "Altecon Srl", - [3]byte{0, 22, 18}: "Otsuka Electronics Co., Ltd.", - [3]byte{0, 22, 19}: "LibreStream Technologies Inc.", - [3]byte{0, 22, 20}: "Picosecond Pulse Labs", - [3]byte{0, 22, 21}: "Nittan Company, Limited", - [3]byte{0, 22, 22}: "BROWAN COMMUNICATION INC.", - [3]byte{0, 22, 23}: "MSI", - [3]byte{0, 22, 24}: "HIVION Co., Ltd.", - [3]byte{0, 22, 25}: "Lancelan Technologies S.L.", - [3]byte{0, 22, 26}: "Dametric AB", - [3]byte{0, 22, 27}: "Micronet Corporation", - [3]byte{0, 22, 28}: "e:cue", - [3]byte{0, 22, 29}: "Innovative Wireless Technologies, Inc.", - [3]byte{0, 22, 30}: "Woojinnet", - [3]byte{0, 22, 31}: "SUNWAVETEC Co., Ltd.", - [3]byte{0, 22, 32}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 22, 33}: "Colorado Vnet", - [3]byte{0, 22, 34}: "BBH SYSTEMS GMBH", - [3]byte{0, 22, 35}: "Interval Media", - [3]byte{0, 22, 36}: "Teneros, Inc.", - [3]byte{0, 22, 37}: "Impinj, Inc.", - [3]byte{0, 22, 38}: "ARRIS Group, Inc.", - [3]byte{0, 22, 39}: "embedded-logic DESIGN AND MORE GmbH", - [3]byte{0, 22, 40}: "Ultra Electronics Manufacturing and Card Systems", - [3]byte{0, 22, 41}: "Nivus GmbH", - [3]byte{0, 22, 42}: "Antik computers & communications s.r.o.", - [3]byte{0, 22, 43}: "Togami Electric Mfg.co.,Ltd.", - [3]byte{0, 22, 44}: "Xanboo", - [3]byte{0, 22, 45}: "STNet Co., Ltd.", - [3]byte{0, 22, 46}: "Space Shuttle Hi-Tech Co., Ltd.", - [3]byte{0, 22, 47}: "Geutebrück GmbH", - [3]byte{0, 22, 48}: "Vativ Technologies", - [3]byte{0, 22, 49}: "Xteam", - [3]byte{0, 22, 50}: "SAMSUNG ELECTRONICS CO., LTD.", - [3]byte{0, 22, 51}: "Oxford Diagnostics Ltd.", - [3]byte{0, 22, 52}: "Mathtech, Inc.", - [3]byte{0, 22, 53}: "Hewlett-Packard Company", - [3]byte{0, 22, 54}: "Quanta Computer Inc.", - [3]byte{0, 22, 55}: "CITEL SpA", - [3]byte{0, 22, 56}: "TECOM Co., Ltd.", - [3]byte{0, 22, 57}: "UBIQUAM Co.,Ltd", - [3]byte{0, 22, 58}: "YVES TECHNOLOGY CO., LTD.", - [3]byte{0, 22, 59}: "VertexRSI/General Dynamics", - [3]byte{0, 22, 60}: "Rebox B.V.", - [3]byte{0, 22, 61}: "Tsinghua Tongfang Legend Silicon Tech. Co., Ltd.", - [3]byte{0, 22, 62}: "Xensource, Inc.", - [3]byte{0, 22, 63}: "CReTE SYSTEMS Inc.", - [3]byte{0, 22, 64}: "Asmobile Communication Inc.", - [3]byte{0, 22, 65}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{0, 22, 66}: "Pangolin", - [3]byte{0, 22, 67}: "Sunhillo Corporation", - [3]byte{0, 22, 68}: "LITE-ON Technology Corp.", - [3]byte{0, 22, 69}: "Power Distribution, Inc.", - [3]byte{0, 22, 70}: "CISCO SYSTEMS, INC.", - [3]byte{0, 22, 71}: "CISCO SYSTEMS, INC.", - [3]byte{0, 22, 72}: "SSD Company Limited", - [3]byte{0, 22, 73}: "SetOne GmbH", - [3]byte{0, 22, 74}: "Vibration Technology Limited", - [3]byte{0, 22, 75}: "Quorion Data Systems GmbH", - [3]byte{0, 22, 76}: "PLANET INT Co., Ltd", - [3]byte{0, 22, 77}: "Alcatel North America IP Division", - [3]byte{0, 22, 78}: "Nokia Danmark A/S", - [3]byte{0, 22, 79}: "World Ethnic Broadcastin Inc.", - [3]byte{0, 22, 80}: "Herley General Microwave Israel.", - [3]byte{0, 22, 81}: "Exeo Systems", - [3]byte{0, 22, 82}: "Hoatech Technologies, Inc.", - [3]byte{0, 22, 83}: "LEGO System A/S IE Electronics Division", - [3]byte{0, 22, 84}: "Flex-P Industries Sdn. Bhd.", - [3]byte{0, 22, 85}: "FUHO TECHNOLOGY Co., LTD", - [3]byte{0, 22, 86}: "Nintendo Co., Ltd.", - [3]byte{0, 22, 87}: "Aegate Ltd", - [3]byte{0, 22, 88}: "Fusiontech Technologies Inc.", - [3]byte{0, 22, 89}: "Z.M.P. RADWAG", - [3]byte{0, 22, 90}: "Harman Specialty Group", - [3]byte{0, 22, 91}: "Grip Audio", - [3]byte{0, 22, 92}: "Trackflow Ltd", - [3]byte{0, 22, 93}: "AirDefense, Inc.", - [3]byte{0, 22, 94}: "Precision I/O", - [3]byte{0, 22, 95}: "Fairmount Automation", - [3]byte{0, 22, 96}: "Nortel", - [3]byte{0, 22, 97}: "Novatium Solutions (P) Ltd", - [3]byte{0, 22, 98}: "Liyuh Technology Ltd.", - [3]byte{0, 22, 99}: "KBT Mobile", - [3]byte{0, 22, 100}: "Prod-El SpA", - [3]byte{0, 22, 101}: "Cellon France", - [3]byte{0, 22, 102}: "Quantier Communication Inc.", - [3]byte{0, 22, 103}: "A-TEC Subsystem INC.", - [3]byte{0, 22, 104}: "Eishin Electronics", - [3]byte{0, 22, 105}: "MRV Communication (Networks) LTD", - [3]byte{0, 22, 106}: "TPS", - [3]byte{0, 22, 107}: "Samsung Electronics", - [3]byte{0, 22, 108}: "Samsung Electonics Digital Video System Division", - [3]byte{0, 22, 109}: "Yulong Computer Telecommunication Scientific(shenzhen)Co.,Lt", - [3]byte{0, 22, 110}: "Arbitron Inc.", - [3]byte{0, 22, 111}: "Intel Corporate", - [3]byte{0, 22, 112}: "SKNET Corporation", - [3]byte{0, 22, 113}: "Symphox Information Co.", - [3]byte{0, 22, 114}: "Zenway enterprise ltd", - [3]byte{0, 22, 115}: "Bury GmbH & Co. KG", - [3]byte{0, 22, 116}: "EuroCB (Phils.), Inc.", - [3]byte{0, 22, 117}: "ARRIS Group, Inc.", - [3]byte{0, 22, 118}: "Intel Corporate", - [3]byte{0, 22, 119}: "Bihl + Wiedemann GmbH", - [3]byte{0, 22, 120}: "SHENZHEN BAOAN GAOKE ELECTRONICS CO., LTD", - [3]byte{0, 22, 121}: "eOn Communications", - [3]byte{0, 22, 122}: "Skyworth Overseas Dvelopment Ltd.", - [3]byte{0, 22, 123}: "Haver&Boecker", - [3]byte{0, 22, 124}: "iRex Technologies BV", - [3]byte{0, 22, 125}: "Sky-Line Information Co., Ltd.", - [3]byte{0, 22, 126}: "DIBOSS.CO.,LTD", - [3]byte{0, 22, 127}: "Bluebird Soft Inc.", - [3]byte{0, 22, 128}: "Bally Gaming + Systems", - [3]byte{0, 22, 129}: "Vector Informatik GmbH", - [3]byte{0, 22, 130}: "Pro Dex, Inc", - [3]byte{0, 22, 131}: "WEBIO International Co.,.Ltd.", - [3]byte{0, 22, 132}: "Donjin Co.,Ltd.", - [3]byte{0, 22, 133}: "Elisa Oyj", - [3]byte{0, 22, 134}: "Karl Storz Imaging", - [3]byte{0, 22, 135}: "Chubb CSC-Vendor AP", - [3]byte{0, 22, 136}: "ServerEngines LLC", - [3]byte{0, 22, 137}: "Pilkor Electronics Co., Ltd", - [3]byte{0, 22, 138}: "id-Confirm Inc", - [3]byte{0, 22, 139}: "Paralan Corporation", - [3]byte{0, 22, 140}: "DSL Partner AS", - [3]byte{0, 22, 141}: "KORWIN CO., Ltd.", - [3]byte{0, 22, 142}: "Vimicro corporation", - [3]byte{0, 22, 143}: "GN Netcom as", - [3]byte{0, 22, 144}: "J-TEK INCORPORATION", - [3]byte{0, 22, 145}: "Moser-Baer AG", - [3]byte{0, 22, 146}: "Scientific-Atlanta, Inc.", - [3]byte{0, 22, 147}: "PowerLink Technology Inc.", - [3]byte{0, 22, 148}: "Sennheiser Communications A/S", - [3]byte{0, 22, 149}: "AVC Technology (International) Limited", - [3]byte{0, 22, 150}: "QDI Technology (H.K.) Limited", - [3]byte{0, 22, 151}: "NEC Corporation", - [3]byte{0, 22, 152}: "T&A Mobile Phones", - [3]byte{0, 22, 153}: "Tonic DVB Marketing Ltd", - [3]byte{0, 22, 154}: "Quadrics Ltd", - [3]byte{0, 22, 155}: "Alstom Transport", - [3]byte{0, 22, 156}: "CISCO SYSTEMS, INC.", - [3]byte{0, 22, 157}: "CISCO SYSTEMS, INC.", - [3]byte{0, 22, 158}: "TV One Ltd", - [3]byte{0, 22, 159}: "Vimtron Electronics Co., Ltd.", - [3]byte{0, 22, 160}: "Auto-Maskin", - [3]byte{0, 22, 161}: "3Leaf Networks", - [3]byte{0, 22, 162}: "CentraLite Systems, Inc.", - [3]byte{0, 22, 163}: "Ingeteam Transmission&Distribution, S.A.", - [3]byte{0, 22, 164}: "Ezurio Ltd", - [3]byte{0, 22, 165}: "Tandberg Storage ASA", - [3]byte{0, 22, 166}: "Dovado FZ-LLC", - [3]byte{0, 22, 167}: "AWETA G&P", - [3]byte{0, 22, 168}: "CWT CO., LTD.", - [3]byte{0, 22, 169}: "2EI", - [3]byte{0, 22, 170}: "Kei Communication Technology Inc.", - [3]byte{0, 22, 171}: "Dansensor A/S", - [3]byte{0, 22, 172}: "Toho Technology Corp.", - [3]byte{0, 22, 173}: "BT-Links Company Limited", - [3]byte{0, 22, 174}: "INVENTEL", - [3]byte{0, 22, 175}: "Shenzhen Union Networks Equipment Co.,Ltd.", - [3]byte{0, 22, 176}: "VK Corporation", - [3]byte{0, 22, 177}: "KBS", - [3]byte{0, 22, 178}: "DriveCam Inc", - [3]byte{0, 22, 179}: "Photonicbridges (China) Co., Ltd.", - [3]byte{0, 22, 180}: "PRIVATE", - [3]byte{0, 22, 181}: "ARRIS Group, Inc.", - [3]byte{0, 22, 182}: "Cisco-Linksys", - [3]byte{0, 22, 183}: "Seoul Commtech", - [3]byte{0, 22, 184}: "Sony Ericsson Mobile Communications", - [3]byte{0, 22, 185}: "ProCurve Networking", - [3]byte{0, 22, 186}: "WEATHERNEWS INC.", - [3]byte{0, 22, 187}: "Law-Chain Computer Technology Co Ltd", - [3]byte{0, 22, 188}: "Nokia Danmark A/S", - [3]byte{0, 22, 189}: "ATI Industrial Automation", - [3]byte{0, 22, 190}: "INFRANET, Inc.", - [3]byte{0, 22, 191}: "PaloDEx Group Oy", - [3]byte{0, 22, 192}: "Semtech Corporation", - [3]byte{0, 22, 193}: "Eleksen Ltd", - [3]byte{0, 22, 194}: "Avtec Systems Inc", - [3]byte{0, 22, 195}: "BA Systems Inc", - [3]byte{0, 22, 196}: "SiRF Technology, Inc.", - [3]byte{0, 22, 197}: "Shenzhen Xing Feng Industry Co.,Ltd", - [3]byte{0, 22, 198}: "North Atlantic Industries", - [3]byte{0, 22, 199}: "CISCO SYSTEMS, INC.", - [3]byte{0, 22, 200}: "CISCO SYSTEMS, INC.", - [3]byte{0, 22, 201}: "NAT Seattle, Inc.", - [3]byte{0, 22, 202}: "Nortel", - [3]byte{0, 22, 203}: "Apple", - [3]byte{0, 22, 204}: "Xcute Mobile Corp.", - [3]byte{0, 22, 205}: "HIJI HIGH-TECH CO., LTD.", - [3]byte{0, 22, 206}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 22, 207}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 22, 208}: "ATech elektronika d.o.o.", - [3]byte{0, 22, 209}: "ZAT a.s.", - [3]byte{0, 22, 210}: "Caspian", - [3]byte{0, 22, 211}: "Wistron Corporation", - [3]byte{0, 22, 212}: "Compal Communications, Inc.", - [3]byte{0, 22, 213}: "Synccom Co., Ltd", - [3]byte{0, 22, 214}: "TDA Tech Pty Ltd", - [3]byte{0, 22, 215}: "Sunways AG", - [3]byte{0, 22, 216}: "Senea AB", - [3]byte{0, 22, 217}: "NINGBO BIRD CO.,LTD.", - [3]byte{0, 22, 218}: "Futronic Technology Co. Ltd.", - [3]byte{0, 22, 219}: "Samsung Electronics Co., Ltd.", - [3]byte{0, 22, 220}: "ARCHOS", - [3]byte{0, 22, 221}: "Gigabeam Corporation", - [3]byte{0, 22, 222}: "FAST Inc", - [3]byte{0, 22, 223}: "Lundinova AB", - [3]byte{0, 22, 224}: "3Com Ltd", - [3]byte{0, 22, 225}: "SiliconStor, Inc.", - [3]byte{0, 22, 226}: "American Fibertek, Inc.", - [3]byte{0, 22, 227}: "ASKEY COMPUTER CORP.", - [3]byte{0, 22, 228}: "VANGUARD SECURITY ENGINEERING CORP.", - [3]byte{0, 22, 229}: "FORDLEY DEVELOPMENT LIMITED", - [3]byte{0, 22, 230}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{0, 22, 231}: "Dynamix Promotions Limited", - [3]byte{0, 22, 232}: "Sigma Designs, Inc.", - [3]byte{0, 22, 233}: "Tiba Medical Inc", - [3]byte{0, 22, 234}: "Intel Corporate", - [3]byte{0, 22, 235}: "Intel Corporate", - [3]byte{0, 22, 236}: "Elitegroup Computer Systems Co., Ltd.", - [3]byte{0, 22, 237}: "Digital Safety Technologies, Inc", - [3]byte{0, 22, 238}: "RoyalDigital Inc.", - [3]byte{0, 22, 239}: "Koko Fitness, Inc.", - [3]byte{0, 22, 240}: "Dell", - [3]byte{0, 22, 241}: "OmniSense, LLC", - [3]byte{0, 22, 242}: "Dmobile System Co., Ltd.", - [3]byte{0, 22, 243}: "CAST Information Co., Ltd", - [3]byte{0, 22, 244}: "Eidicom Co., Ltd.", - [3]byte{0, 22, 245}: "Dalian Golden Hualu Digital Technology Co.,Ltd", - [3]byte{0, 22, 246}: "Video Products Group", - [3]byte{0, 22, 247}: "L-3 Communications, Aviation Recorders", - [3]byte{0, 22, 248}: "AVIQTECH TECHNOLOGY CO., LTD.", - [3]byte{0, 22, 249}: "CETRTA POT, d.o.o., Kranj", - [3]byte{0, 22, 250}: "ECI Telecom Ltd.", - [3]byte{0, 22, 251}: "SHENZHEN MTC CO.,LTD.", - [3]byte{0, 22, 252}: "TOHKEN CO.,LTD.", - [3]byte{0, 22, 253}: "Jaty Electronics", - [3]byte{0, 22, 254}: "Alps Electric Co., Ltd", - [3]byte{0, 22, 255}: "Wamin Optocomm Mfg Corp", - [3]byte{0, 23, 0}: "ARRIS Group, Inc.", - [3]byte{0, 23, 1}: "KDE, Inc.", - [3]byte{0, 23, 2}: "Osung Midicom Co., Ltd", - [3]byte{0, 23, 3}: "MOSDAN Internation Co.,Ltd", - [3]byte{0, 23, 4}: "Shinco Electronics Group Co.,Ltd", - [3]byte{0, 23, 5}: "Methode Electronics", - [3]byte{0, 23, 6}: "Techfaith Wireless Communication Technology Limited.", - [3]byte{0, 23, 7}: "InGrid, Inc", - [3]byte{0, 23, 8}: "Hewlett-Packard Company", - [3]byte{0, 23, 9}: "Exalt Communications", - [3]byte{0, 23, 10}: "INEW DIGITAL COMPANY", - [3]byte{0, 23, 11}: "Contela, Inc.", - [3]byte{0, 23, 12}: "Twig Com Ltd.", - [3]byte{0, 23, 13}: "Dust Networks Inc.", - [3]byte{0, 23, 14}: "CISCO SYSTEMS, INC.", - [3]byte{0, 23, 15}: "CISCO SYSTEMS, INC.", - [3]byte{0, 23, 16}: "Casa Systems Inc.", - [3]byte{0, 23, 17}: "GE Healthcare Bio-Sciences AB", - [3]byte{0, 23, 18}: "ISCO International", - [3]byte{0, 23, 19}: "Tiger NetCom", - [3]byte{0, 23, 20}: "BR Controls Nederland bv", - [3]byte{0, 23, 21}: "Qstik", - [3]byte{0, 23, 22}: "Qno Technology Inc.", - [3]byte{0, 23, 23}: "Leica Geosystems AG", - [3]byte{0, 23, 24}: "Vansco Electronics Oy", - [3]byte{0, 23, 25}: "AudioCodes USA, Inc", - [3]byte{0, 23, 26}: "Winegard Company", - [3]byte{0, 23, 27}: "Innovation Lab Corp.", - [3]byte{0, 23, 28}: "NT MicroSystems, Inc.", - [3]byte{0, 23, 29}: "DIGIT", - [3]byte{0, 23, 30}: "Theo Benning GmbH & Co. KG", - [3]byte{0, 23, 31}: "IMV Corporation", - [3]byte{0, 23, 32}: "Image Sensing Systems, Inc.", - [3]byte{0, 23, 33}: "FITRE S.p.A.", - [3]byte{0, 23, 34}: "Hanazeder Electronic GmbH", - [3]byte{0, 23, 35}: "Summit Data Communications", - [3]byte{0, 23, 36}: "Studer Professional Audio GmbH", - [3]byte{0, 23, 37}: "Liquid Computing", - [3]byte{0, 23, 38}: "m2c Electronic Technology Ltd.", - [3]byte{0, 23, 39}: "Thermo Ramsey Italia s.r.l.", - [3]byte{0, 23, 40}: "Selex Communications", - [3]byte{0, 23, 41}: "Ubicod Co.LTD", - [3]byte{0, 23, 42}: "Proware Technology Corp.(By Unifosa)", - [3]byte{0, 23, 43}: "Global Technologies Inc.", - [3]byte{0, 23, 44}: "TAEJIN INFOTECH", - [3]byte{0, 23, 45}: "Axcen Photonics Corporation", - [3]byte{0, 23, 46}: "FXC Inc.", - [3]byte{0, 23, 47}: "NeuLion Incorporated", - [3]byte{0, 23, 48}: "Automation Electronics", - [3]byte{0, 23, 49}: "ASUSTek COMPUTER INC.", - [3]byte{0, 23, 50}: "Science-Technical Center \"RISSA\"", - [3]byte{0, 23, 51}: "SFR", - [3]byte{0, 23, 52}: "ADC Telecommunications", - [3]byte{0, 23, 53}: "PRIVATE", - [3]byte{0, 23, 54}: "iiTron Inc.", - [3]byte{0, 23, 55}: "Industrie Dial Face S.p.A.", - [3]byte{0, 23, 56}: "International Business Machines", - [3]byte{0, 23, 57}: "Bright Headphone Electronics Company", - [3]byte{0, 23, 58}: "Reach Systems Inc.", - [3]byte{0, 23, 59}: "Cisco Systems, Inc.", - [3]byte{0, 23, 60}: "Extreme Engineering Solutions", - [3]byte{0, 23, 61}: "Neology", - [3]byte{0, 23, 62}: "LeucotronEquipamentos Ltda.", - [3]byte{0, 23, 63}: "Belkin Corporation", - [3]byte{0, 23, 64}: "Bluberi Gaming Technologies Inc", - [3]byte{0, 23, 65}: "DEFIDEV", - [3]byte{0, 23, 66}: "FUJITSU LIMITED", - [3]byte{0, 23, 67}: "Deck Srl", - [3]byte{0, 23, 68}: "Araneo Ltd.", - [3]byte{0, 23, 69}: "INNOTZ CO., Ltd", - [3]byte{0, 23, 70}: "Freedom9 Inc.", - [3]byte{0, 23, 71}: "Trimble", - [3]byte{0, 23, 72}: "Neokoros Brasil Ltda", - [3]byte{0, 23, 73}: "HYUNDAE YONG-O-SA CO.,LTD", - [3]byte{0, 23, 74}: "SOCOMEC", - [3]byte{0, 23, 75}: "Nokia Danmark A/S", - [3]byte{0, 23, 76}: "Millipore", - [3]byte{0, 23, 77}: "DYNAMIC NETWORK FACTORY, INC.", - [3]byte{0, 23, 78}: "Parama-tech Co.,Ltd.", - [3]byte{0, 23, 79}: "iCatch Inc.", - [3]byte{0, 23, 80}: "GSI Group, MicroE Systems", - [3]byte{0, 23, 81}: "Online Corporation", - [3]byte{0, 23, 82}: "DAGS, Inc", - [3]byte{0, 23, 83}: "nFore Technology Inc.", - [3]byte{0, 23, 84}: "Arkino HiTOP Corporation Limited", - [3]byte{0, 23, 85}: "GE Security", - [3]byte{0, 23, 86}: "Vinci Labs Oy", - [3]byte{0, 23, 87}: "RIX TECHNOLOGY LIMITED", - [3]byte{0, 23, 88}: "ThruVision Ltd", - [3]byte{0, 23, 89}: "CISCO SYSTEMS, INC.", - [3]byte{0, 23, 90}: "CISCO SYSTEMS, INC.", - [3]byte{0, 23, 91}: "ACS Solutions Switzerland Ltd.", - [3]byte{0, 23, 92}: "SHARP CORPORATION", - [3]byte{0, 23, 93}: "Dongseo system.", - [3]byte{0, 23, 94}: "Zed-3", - [3]byte{0, 23, 95}: "XENOLINK Communications Co., Ltd.", - [3]byte{0, 23, 96}: "Naito Densei Machida MFG.CO.,LTD", - [3]byte{0, 23, 97}: "PRIVATE", - [3]byte{0, 23, 98}: "Solar Technology, Inc.", - [3]byte{0, 23, 99}: "Essentia S.p.A.", - [3]byte{0, 23, 100}: "ATMedia GmbH", - [3]byte{0, 23, 101}: "Nortel", - [3]byte{0, 23, 102}: "Accense Technology, Inc.", - [3]byte{0, 23, 103}: "Earforce AS", - [3]byte{0, 23, 104}: "Zinwave Ltd", - [3]byte{0, 23, 105}: "Cymphonix Corp", - [3]byte{0, 23, 106}: "Avago Technologies", - [3]byte{0, 23, 107}: "Kiyon, Inc.", - [3]byte{0, 23, 108}: "Pivot3, Inc.", - [3]byte{0, 23, 109}: "CORE CORPORATION", - [3]byte{0, 23, 110}: "DUCATI SISTEMI", - [3]byte{0, 23, 111}: "PAX Computer Technology(Shenzhen) Ltd.", - [3]byte{0, 23, 112}: "Arti Industrial Electronics Ltd.", - [3]byte{0, 23, 113}: "APD Communications Ltd", - [3]byte{0, 23, 114}: "ASTRO Strobel Kommunikationssysteme GmbH", - [3]byte{0, 23, 115}: "Laketune Technologies Co. Ltd", - [3]byte{0, 23, 116}: "Elesta GmbH", - [3]byte{0, 23, 117}: "TTE Germany GmbH", - [3]byte{0, 23, 118}: "Meso Scale Diagnostics, LLC", - [3]byte{0, 23, 119}: "Obsidian Research Corporation", - [3]byte{0, 23, 120}: "Central Music Co.", - [3]byte{0, 23, 121}: "QuickTel", - [3]byte{0, 23, 122}: "ASSA ABLOY AB", - [3]byte{0, 23, 123}: "Azalea Networks inc", - [3]byte{0, 23, 124}: "Smartlink Network Systems Limited", - [3]byte{0, 23, 125}: "IDT International Limited", - [3]byte{0, 23, 126}: "Meshcom Technologies Inc.", - [3]byte{0, 23, 127}: "Worldsmart Retech", - [3]byte{0, 23, 128}: "Applied Biosystems B.V.", - [3]byte{0, 23, 129}: "Greystone Data System, Inc.", - [3]byte{0, 23, 130}: "LoBenn Inc.", - [3]byte{0, 23, 131}: "Texas Instruments", - [3]byte{0, 23, 132}: "ARRIS Group, Inc.", - [3]byte{0, 23, 133}: "Sparr Electronics Ltd", - [3]byte{0, 23, 134}: "wisembed", - [3]byte{0, 23, 135}: "Brother, Brother & Sons ApS", - [3]byte{0, 23, 136}: "Philips Lighting BV", - [3]byte{0, 23, 137}: "Zenitron Corporation", - [3]byte{0, 23, 138}: "DARTS TECHNOLOGIES CORP.", - [3]byte{0, 23, 139}: "Teledyne Technologies Incorporated", - [3]byte{0, 23, 140}: "Independent Witness, Inc", - [3]byte{0, 23, 141}: "Checkpoint Systems, Inc.", - [3]byte{0, 23, 142}: "Gunnebo Cash Automation AB", - [3]byte{0, 23, 143}: "NINGBO YIDONG ELECTRONIC CO.,LTD.", - [3]byte{0, 23, 144}: "HYUNDAI DIGITECH Co, Ltd.", - [3]byte{0, 23, 145}: "LinTech GmbH", - [3]byte{0, 23, 146}: "Falcom Wireless Comunications Gmbh", - [3]byte{0, 23, 147}: "Tigi Corporation", - [3]byte{0, 23, 148}: "CISCO SYSTEMS, INC.", - [3]byte{0, 23, 149}: "CISCO SYSTEMS, INC.", - [3]byte{0, 23, 150}: "Rittmeyer AG", - [3]byte{0, 23, 151}: "Telsy Elettronica S.p.A.", - [3]byte{0, 23, 152}: "Azonic Technology Co., LTD", - [3]byte{0, 23, 153}: "SmarTire Systems Inc.", - [3]byte{0, 23, 154}: "D-Link Corporation", - [3]byte{0, 23, 155}: "Chant Sincere CO., LTD.", - [3]byte{0, 23, 156}: "DEPRAG SCHULZ GMBH u. CO.", - [3]byte{0, 23, 157}: "Kelman Limited", - [3]byte{0, 23, 158}: "Sirit Inc", - [3]byte{0, 23, 159}: "Apricorn", - [3]byte{0, 23, 160}: "RoboTech srl", - [3]byte{0, 23, 161}: "3soft inc.", - [3]byte{0, 23, 162}: "Camrivox Ltd.", - [3]byte{0, 23, 163}: "MIX s.r.l.", - [3]byte{0, 23, 164}: "Hewlett-Packard Company", - [3]byte{0, 23, 165}: "Ralink Technology Corp", - [3]byte{0, 23, 166}: "YOSIN ELECTRONICS CO., LTD.", - [3]byte{0, 23, 167}: "Mobile Computing Promotion Consortium", - [3]byte{0, 23, 168}: "EDM Corporation", - [3]byte{0, 23, 169}: "Sentivision", - [3]byte{0, 23, 170}: "elab-experience inc.", - [3]byte{0, 23, 171}: "Nintendo Co., Ltd.", - [3]byte{0, 23, 172}: "O'Neil Product Development Inc.", - [3]byte{0, 23, 173}: "AceNet Corporation", - [3]byte{0, 23, 174}: "GAI-Tronics", - [3]byte{0, 23, 175}: "Enermet", - [3]byte{0, 23, 176}: "Nokia Danmark A/S", - [3]byte{0, 23, 177}: "ACIST Medical Systems, Inc.", - [3]byte{0, 23, 178}: "SK Telesys", - [3]byte{0, 23, 179}: "Aftek Infosys Limited", - [3]byte{0, 23, 180}: "Remote Security Systems, LLC", - [3]byte{0, 23, 181}: "Peerless Systems Corporation", - [3]byte{0, 23, 182}: "Aquantia", - [3]byte{0, 23, 183}: "Tonze Technology Co.", - [3]byte{0, 23, 184}: "NOVATRON CO., LTD.", - [3]byte{0, 23, 185}: "Gambro Lundia AB", - [3]byte{0, 23, 186}: "SEDO CO., LTD.", - [3]byte{0, 23, 187}: "Syrinx Industrial Electronics", - [3]byte{0, 23, 188}: "Touchtunes Music Corporation", - [3]byte{0, 23, 189}: "Tibetsystem", - [3]byte{0, 23, 190}: "Tratec Telecom B.V.", - [3]byte{0, 23, 191}: "Coherent Research Limited", - [3]byte{0, 23, 192}: "PureTech Systems, Inc.", - [3]byte{0, 23, 193}: "CM Precision Technology LTD.", - [3]byte{0, 23, 194}: "ADB Broadband Italia", - [3]byte{0, 23, 195}: "KTF Technologies Inc.", - [3]byte{0, 23, 196}: "Quanta Microsystems, INC.", - [3]byte{0, 23, 197}: "SonicWALL", - [3]byte{0, 23, 198}: "Cross Match Technologies Inc", - [3]byte{0, 23, 199}: "MARA Systems Consulting AB", - [3]byte{0, 23, 200}: "KYOCERA Document Solutions Inc.", - [3]byte{0, 23, 201}: "Samsung Electronics Co., Ltd.", - [3]byte{0, 23, 202}: "Qisda Corporation", - [3]byte{0, 23, 203}: "Juniper Networks", - [3]byte{0, 23, 204}: "Alcatel-Lucent", - [3]byte{0, 23, 205}: "CEC Wireless R&D Ltd.", - [3]byte{0, 23, 206}: "Screen Service Spa", - [3]byte{0, 23, 207}: "iMCA-GmbH", - [3]byte{0, 23, 208}: "Opticom Communications, LLC", - [3]byte{0, 23, 209}: "Nortel", - [3]byte{0, 23, 210}: "THINLINX PTY LTD", - [3]byte{0, 23, 211}: "Etymotic Research, Inc.", - [3]byte{0, 23, 212}: "Monsoon Multimedia, Inc", - [3]byte{0, 23, 213}: "Samsung Electronics Co., Ltd.", - [3]byte{0, 23, 214}: "Bluechips Microhouse Co.,Ltd.", - [3]byte{0, 23, 215}: "ION Geophysical Corporation Inc.", - [3]byte{0, 23, 216}: "Magnum Semiconductor, Inc.", - [3]byte{0, 23, 217}: "AAI Corporation", - [3]byte{0, 23, 218}: "Spans Logic", - [3]byte{0, 23, 219}: "CANKO TECHNOLOGIES INC.", - [3]byte{0, 23, 220}: "DAEMYUNG ZERO1", - [3]byte{0, 23, 221}: "Clipsal Australia", - [3]byte{0, 23, 222}: "Advantage Six Ltd", - [3]byte{0, 23, 223}: "CISCO SYSTEMS, INC.", - [3]byte{0, 23, 224}: "CISCO SYSTEMS, INC.", - [3]byte{0, 23, 225}: "DACOS Technologies Co., Ltd.", - [3]byte{0, 23, 226}: "ARRIS Group, Inc.", - [3]byte{0, 23, 227}: "Texas Instruments", - [3]byte{0, 23, 228}: "Texas Instruments", - [3]byte{0, 23, 229}: "Texas Instruments", - [3]byte{0, 23, 230}: "Texas Instruments", - [3]byte{0, 23, 231}: "Texas Instruments", - [3]byte{0, 23, 232}: "Texas Instruments", - [3]byte{0, 23, 233}: "Texas Instruments", - [3]byte{0, 23, 234}: "Texas Instruments", - [3]byte{0, 23, 235}: "Texas Instruments", - [3]byte{0, 23, 236}: "Texas Instruments", - [3]byte{0, 23, 237}: "WooJooIT Ltd.", - [3]byte{0, 23, 238}: "ARRIS Group, Inc.", - [3]byte{0, 23, 239}: "IBM Corp", - [3]byte{0, 23, 240}: "SZCOM Broadband Network Technology Co.,Ltd", - [3]byte{0, 23, 241}: "Renu Electronics Pvt Ltd", - [3]byte{0, 23, 242}: "Apple", - [3]byte{0, 23, 243}: "Harris Corparation", - [3]byte{0, 23, 244}: "ZERON ALLIANCE", - [3]byte{0, 23, 245}: "LIG NEOPTEK", - [3]byte{0, 23, 246}: "Pyramid Meriden Inc.", - [3]byte{0, 23, 247}: "CEM Solutions Pvt Ltd", - [3]byte{0, 23, 248}: "Motech Industries Inc.", - [3]byte{0, 23, 249}: "Forcom Sp. z o.o.", - [3]byte{0, 23, 250}: "Microsoft Corporation", - [3]byte{0, 23, 251}: "FA", - [3]byte{0, 23, 252}: "Suprema Inc.", - [3]byte{0, 23, 253}: "Amulet Hotkey", - [3]byte{0, 23, 254}: "TALOS SYSTEM INC.", - [3]byte{0, 23, 255}: "PLAYLINE Co.,Ltd.", - [3]byte{0, 24, 0}: "UNIGRAND LTD", - [3]byte{0, 24, 1}: "Actiontec Electronics, Inc", - [3]byte{0, 24, 2}: "Alpha Networks Inc.", - [3]byte{0, 24, 3}: "ArcSoft Shanghai Co. LTD", - [3]byte{0, 24, 4}: "E-TEK DIGITAL TECHNOLOGY LIMITED", - [3]byte{0, 24, 5}: "Beijing InHand Networking Technology Co.,Ltd.", - [3]byte{0, 24, 6}: "Hokkei Industries Co., Ltd.", - [3]byte{0, 24, 7}: "Fanstel Corp.", - [3]byte{0, 24, 8}: "SightLogix, Inc.", - [3]byte{0, 24, 9}: "CRESYN", - [3]byte{0, 24, 10}: "Meraki, Inc.", - [3]byte{0, 24, 11}: "Brilliant Telecommunications", - [3]byte{0, 24, 12}: "Optelian Access Networks", - [3]byte{0, 24, 13}: "Terabytes Server Storage Tech Corp", - [3]byte{0, 24, 14}: "Avega Systems", - [3]byte{0, 24, 15}: "Nokia Danmark A/S", - [3]byte{0, 24, 16}: "IPTrade S.A.", - [3]byte{0, 24, 17}: "Neuros Technology International, LLC.", - [3]byte{0, 24, 18}: "Beijing Xinwei Telecom Technology Co., Ltd.", - [3]byte{0, 24, 19}: "Sony Ericsson Mobile Communications", - [3]byte{0, 24, 20}: "Mitutoyo Corporation", - [3]byte{0, 24, 21}: "GZ Technologies, Inc.", - [3]byte{0, 24, 22}: "Ubixon Co., Ltd.", - [3]byte{0, 24, 23}: "D. E. Shaw Research, LLC", - [3]byte{0, 24, 24}: "CISCO SYSTEMS, INC.", - [3]byte{0, 24, 25}: "CISCO SYSTEMS, INC.", - [3]byte{0, 24, 26}: "AVerMedia Information Inc.", - [3]byte{0, 24, 27}: "TaiJin Metal Co., Ltd.", - [3]byte{0, 24, 28}: "Exterity Limited", - [3]byte{0, 24, 29}: "ASIA ELECTRONICS CO.,LTD", - [3]byte{0, 24, 30}: "GDX Technologies Ltd.", - [3]byte{0, 24, 31}: "Palmmicro Communications", - [3]byte{0, 24, 32}: "w5networks", - [3]byte{0, 24, 33}: "SINDORICOH", - [3]byte{0, 24, 34}: "CEC TELECOM CO.,LTD.", - [3]byte{0, 24, 35}: "Delta Electronics, Inc.", - [3]byte{0, 24, 36}: "Kimaldi Electronics, S.L.", - [3]byte{0, 24, 37}: "PRIVATE", - [3]byte{0, 24, 38}: "Cale Access AB", - [3]byte{0, 24, 39}: "NEC UNIFIED SOLUTIONS NEDERLAND B.V.", - [3]byte{0, 24, 40}: "e2v technologies (UK) ltd.", - [3]byte{0, 24, 41}: "Gatsometer", - [3]byte{0, 24, 42}: "Taiwan Video & Monitor", - [3]byte{0, 24, 43}: "Softier", - [3]byte{0, 24, 44}: "Ascend Networks, Inc.", - [3]byte{0, 24, 45}: "Artec Design", - [3]byte{0, 24, 46}: "XStreamHD, LLC", - [3]byte{0, 24, 47}: "Texas Instruments", - [3]byte{0, 24, 48}: "Texas Instruments", - [3]byte{0, 24, 49}: "Texas Instruments", - [3]byte{0, 24, 50}: "Texas Instruments", - [3]byte{0, 24, 51}: "Texas Instruments", - [3]byte{0, 24, 52}: "Texas Instruments", - [3]byte{0, 24, 53}: "Thoratec / ITC", - [3]byte{0, 24, 54}: "Reliance Electric Limited", - [3]byte{0, 24, 55}: "Universal ABIT Co., Ltd.", - [3]byte{0, 24, 56}: "PanAccess Communications,Inc.", - [3]byte{0, 24, 57}: "Cisco-Linksys LLC", - [3]byte{0, 24, 58}: "Westell Technologies", - [3]byte{0, 24, 59}: "CENITS Co., Ltd.", - [3]byte{0, 24, 60}: "Encore Software Limited", - [3]byte{0, 24, 61}: "Vertex Link Corporation", - [3]byte{0, 24, 62}: "Digilent, Inc", - [3]byte{0, 24, 63}: "2Wire, Inc", - [3]byte{0, 24, 64}: "3 Phoenix, Inc.", - [3]byte{0, 24, 65}: "High Tech Computer Corp", - [3]byte{0, 24, 66}: "Nokia Danmark A/S", - [3]byte{0, 24, 67}: "Dawevision Ltd", - [3]byte{0, 24, 68}: "Heads Up Technologies, Inc.", - [3]byte{0, 24, 69}: "Pulsar-Telecom LLC.", - [3]byte{0, 24, 70}: "Crypto S.A.", - [3]byte{0, 24, 71}: "AceNet Technology Inc.", - [3]byte{0, 24, 72}: "Vecima Networks Inc.", - [3]byte{0, 24, 73}: "Pigeon Point Systems LLC", - [3]byte{0, 24, 74}: "Catcher, Inc.", - [3]byte{0, 24, 75}: "Las Vegas Gaming, Inc.", - [3]byte{0, 24, 76}: "Bogen Communications", - [3]byte{0, 24, 77}: "Netgear Inc.", - [3]byte{0, 24, 78}: "Lianhe Technologies, Inc.", - [3]byte{0, 24, 79}: "8 Ways Technology Corp.", - [3]byte{0, 24, 80}: "Secfone Kft", - [3]byte{0, 24, 81}: "SWsoft", - [3]byte{0, 24, 82}: "StorLink Semiconductors, Inc.", - [3]byte{0, 24, 83}: "Atera Networks LTD.", - [3]byte{0, 24, 84}: "Argard Co., Ltd", - [3]byte{0, 24, 85}: "Aeromaritime Systembau GmbH", - [3]byte{0, 24, 86}: "EyeFi, Inc", - [3]byte{0, 24, 87}: "Unilever R&D", - [3]byte{0, 24, 88}: "TagMaster AB", - [3]byte{0, 24, 89}: "Strawberry Linux Co.,Ltd.", - [3]byte{0, 24, 90}: "uControl, Inc.", - [3]byte{0, 24, 91}: "Network Chemistry, Inc", - [3]byte{0, 24, 92}: "EDS Lab Pte Ltd", - [3]byte{0, 24, 93}: "TAIGUEN TECHNOLOGY (SHEN-ZHEN) CO., LTD.", - [3]byte{0, 24, 94}: "Nexterm Inc.", - [3]byte{0, 24, 95}: "TAC Inc.", - [3]byte{0, 24, 96}: "SIM Technology Group Shanghai Simcom Ltd.,", - [3]byte{0, 24, 97}: "Ooma, Inc.", - [3]byte{0, 24, 98}: "Seagate Technology", - [3]byte{0, 24, 99}: "Veritech Electronics Limited", - [3]byte{0, 24, 100}: "Eaton Corporation", - [3]byte{0, 24, 101}: "Siemens Healthcare Diagnostics Manufacturing Ltd", - [3]byte{0, 24, 102}: "Leutron Vision", - [3]byte{0, 24, 103}: "Datalogic ADC", - [3]byte{0, 24, 104}: "Scientific Atlanta, A Cisco Company", - [3]byte{0, 24, 105}: "KINGJIM", - [3]byte{0, 24, 106}: "Global Link Digital Technology Co,.LTD", - [3]byte{0, 24, 107}: "Sambu Communics CO., LTD.", - [3]byte{0, 24, 108}: "Neonode AB", - [3]byte{0, 24, 109}: "Zhenjiang Sapphire Electronic Industry CO.", - [3]byte{0, 24, 110}: "3Com Ltd", - [3]byte{0, 24, 111}: "Setha Industria Eletronica LTDA", - [3]byte{0, 24, 112}: "E28 Shanghai Limited", - [3]byte{0, 24, 113}: "Hewlett-Packard Company", - [3]byte{0, 24, 114}: "Expertise Engineering", - [3]byte{0, 24, 115}: "CISCO SYSTEMS, INC.", - [3]byte{0, 24, 116}: "CISCO SYSTEMS, INC.", - [3]byte{0, 24, 117}: "AnaCise Testnology Pte Ltd", - [3]byte{0, 24, 118}: "WowWee Ltd.", - [3]byte{0, 24, 119}: "Amplex A/S", - [3]byte{0, 24, 120}: "Mackware GmbH", - [3]byte{0, 24, 121}: "dSys", - [3]byte{0, 24, 122}: "Wiremold", - [3]byte{0, 24, 123}: "4NSYS Co. Ltd.", - [3]byte{0, 24, 124}: "INTERCROSS, LLC", - [3]byte{0, 24, 125}: "Armorlink shanghai Co. Ltd", - [3]byte{0, 24, 126}: "RGB Spectrum", - [3]byte{0, 24, 127}: "ZODIANET", - [3]byte{0, 24, 128}: "Maxim Integrated Products", - [3]byte{0, 24, 129}: "Buyang Electronics Industrial Co., Ltd", - [3]byte{0, 24, 130}: "Huawei Technologies Co., Ltd.", - [3]byte{0, 24, 131}: "FORMOSA21 INC.", - [3]byte{0, 24, 132}: "Fon Technology S.L.", - [3]byte{0, 24, 133}: "Avigilon Corporation", - [3]byte{0, 24, 134}: "EL-TECH, INC.", - [3]byte{0, 24, 135}: "Metasystem SpA", - [3]byte{0, 24, 136}: "GOTIVE a.s.", - [3]byte{0, 24, 137}: "WinNet Solutions Limited", - [3]byte{0, 24, 138}: "Infinova LLC", - [3]byte{0, 24, 139}: "Dell Inc", - [3]byte{0, 24, 140}: "Mobile Action Technology Inc.", - [3]byte{0, 24, 141}: "Nokia Danmark A/S", - [3]byte{0, 24, 142}: "Ekahau, Inc.", - [3]byte{0, 24, 143}: "Montgomery Technology, Inc.", - [3]byte{0, 24, 144}: "RadioCOM, s.r.o.", - [3]byte{0, 24, 145}: "Zhongshan General K-mate Electronics Co., Ltd", - [3]byte{0, 24, 146}: "ads-tec GmbH", - [3]byte{0, 24, 147}: "SHENZHEN PHOTON BROADBAND TECHNOLOGY CO.,LTD", - [3]byte{0, 24, 148}: "NPCore, Inc.", - [3]byte{0, 24, 149}: "Hansun Technologies Inc.", - [3]byte{0, 24, 150}: "Great Well Electronic LTD", - [3]byte{0, 24, 151}: "JESS-LINK PRODUCTS Co., LTD", - [3]byte{0, 24, 152}: "KINGSTATE ELECTRONICS CORPORATION", - [3]byte{0, 24, 153}: "ShenZhen jieshun Science&Technology Industry CO,LTD.", - [3]byte{0, 24, 154}: "HANA Micron Inc.", - [3]byte{0, 24, 155}: "Thomson Inc.", - [3]byte{0, 24, 156}: "Weldex Corporation", - [3]byte{0, 24, 157}: "Navcast Inc.", - [3]byte{0, 24, 158}: "OMNIKEY GmbH.", - [3]byte{0, 24, 159}: "Lenntek Corporation", - [3]byte{0, 24, 160}: "Cierma Ascenseurs", - [3]byte{0, 24, 161}: "Tiqit Computers, Inc.", - [3]byte{0, 24, 162}: "XIP Technology AB", - [3]byte{0, 24, 163}: "ZIPPY TECHNOLOGY CORP.", - [3]byte{0, 24, 164}: "ARRIS Group, Inc.", - [3]byte{0, 24, 165}: "ADigit Technologies Corp.", - [3]byte{0, 24, 166}: "Persistent Systems, LLC", - [3]byte{0, 24, 167}: "Yoggie Security Systems LTD.", - [3]byte{0, 24, 168}: "AnNeal Technology Inc.", - [3]byte{0, 24, 169}: "Ethernet Direct Corporation", - [3]byte{0, 24, 170}: "Protec Fire Detection plc", - [3]byte{0, 24, 171}: "BEIJING LHWT MICROELECTRONICS INC.", - [3]byte{0, 24, 172}: "Shanghai Jiao Da HISYS Technology Co. Ltd.", - [3]byte{0, 24, 173}: "NIDEC SANKYO CORPORATION", - [3]byte{0, 24, 174}: "TVT CO.,LTD", - [3]byte{0, 24, 175}: "Samsung Electronics Co., Ltd.", - [3]byte{0, 24, 176}: "Nortel", - [3]byte{0, 24, 177}: "IBM Corp", - [3]byte{0, 24, 178}: "ADEUNIS RF", - [3]byte{0, 24, 179}: "TEC WizHome Co., Ltd.", - [3]byte{0, 24, 180}: "Dawon Media Inc.", - [3]byte{0, 24, 181}: "Magna Carta", - [3]byte{0, 24, 182}: "S3C, Inc.", - [3]byte{0, 24, 183}: "D3 LED, LLC", - [3]byte{0, 24, 184}: "New Voice International AG", - [3]byte{0, 24, 185}: "CISCO SYSTEMS, INC.", - [3]byte{0, 24, 186}: "CISCO SYSTEMS, INC.", - [3]byte{0, 24, 187}: "Eliwell Controls srl", - [3]byte{0, 24, 188}: "ZAO NVP Bolid", - [3]byte{0, 24, 189}: "SHENZHEN DVBWORLD TECHNOLOGY CO., LTD.", - [3]byte{0, 24, 190}: "ANSA Corporation", - [3]byte{0, 24, 191}: "Essence Technology Solution, Inc.", - [3]byte{0, 24, 192}: "ARRIS Group, Inc.", - [3]byte{0, 24, 193}: "Almitec Informática e Comércio", - [3]byte{0, 24, 194}: "Firetide, Inc", - [3]byte{0, 24, 195}: "CS Corporation", - [3]byte{0, 24, 196}: "Raba Technologies LLC", - [3]byte{0, 24, 197}: "Nokia Danmark A/S", - [3]byte{0, 24, 198}: "OPW Fuel Management Systems", - [3]byte{0, 24, 199}: "Real Time Automation", - [3]byte{0, 24, 200}: "ISONAS Inc.", - [3]byte{0, 24, 201}: "EOps Technology Limited", - [3]byte{0, 24, 202}: "Viprinet GmbH", - [3]byte{0, 24, 203}: "Tecobest Technology Limited", - [3]byte{0, 24, 204}: "AXIOHM SAS", - [3]byte{0, 24, 205}: "Erae Electronics Industry Co., Ltd", - [3]byte{0, 24, 206}: "Dreamtech Co., Ltd", - [3]byte{0, 24, 207}: "Baldor Electric Company", - [3]byte{0, 24, 208}: "AtRoad, A Trimble Company", - [3]byte{0, 24, 209}: "Siemens Home & Office Comm. Devices", - [3]byte{0, 24, 210}: "High-Gain Antennas LLC", - [3]byte{0, 24, 211}: "TEAMCAST", - [3]byte{0, 24, 212}: "Unified Display Interface SIG", - [3]byte{0, 24, 213}: "REIGNCOM", - [3]byte{0, 24, 214}: "Swirlnet A/S", - [3]byte{0, 24, 215}: "Javad Navigation Systems Inc.", - [3]byte{0, 24, 216}: "ARCH METER Corporation", - [3]byte{0, 24, 217}: "Santosha Internatonal, Inc", - [3]byte{0, 24, 218}: "AMBER wireless GmbH", - [3]byte{0, 24, 219}: "EPL Technology Ltd", - [3]byte{0, 24, 220}: "Prostar Co., Ltd.", - [3]byte{0, 24, 221}: "Silicondust Engineering Ltd", - [3]byte{0, 24, 222}: "Intel Corporate", - [3]byte{0, 24, 223}: "The Morey Corporation", - [3]byte{0, 24, 224}: "ANAVEO", - [3]byte{0, 24, 225}: "Verkerk Service Systemen", - [3]byte{0, 24, 226}: "Topdata Sistemas de Automacao Ltda", - [3]byte{0, 24, 227}: "Visualgate Systems, Inc.", - [3]byte{0, 24, 228}: "YIGUANG", - [3]byte{0, 24, 229}: "Adhoco AG", - [3]byte{0, 24, 230}: "Computer Hardware Design SIA", - [3]byte{0, 24, 231}: "Cameo Communications, INC.", - [3]byte{0, 24, 232}: "Hacetron Corporation", - [3]byte{0, 24, 233}: "Numata Corporation", - [3]byte{0, 24, 234}: "Alltec GmbH", - [3]byte{0, 24, 235}: "BroVis Wireless Networks", - [3]byte{0, 24, 236}: "Welding Technology Corporation", - [3]byte{0, 24, 237}: "Accutech Ultrasystems Co., Ltd.", - [3]byte{0, 24, 238}: "Videology Imaging Solutions, Inc.", - [3]byte{0, 24, 239}: "Escape Communications, Inc.", - [3]byte{0, 24, 240}: "JOYTOTO Co., Ltd.", - [3]byte{0, 24, 241}: "Chunichi Denshi Co.,LTD.", - [3]byte{0, 24, 242}: "Beijing Tianyu Communication Equipment Co., Ltd", - [3]byte{0, 24, 243}: "ASUSTek COMPUTER INC.", - [3]byte{0, 24, 244}: "EO TECHNICS Co., Ltd.", - [3]byte{0, 24, 245}: "Shenzhen Streaming Video Technology Company Limited", - [3]byte{0, 24, 246}: "Thomson Telecom Belgium", - [3]byte{0, 24, 247}: "Kameleon Technologies", - [3]byte{0, 24, 248}: "Cisco-Linksys LLC", - [3]byte{0, 24, 249}: "VVOND, Inc.", - [3]byte{0, 24, 250}: "Yushin Precision Equipment Co.,Ltd.", - [3]byte{0, 24, 251}: "Compro Technology", - [3]byte{0, 24, 252}: "Altec Electronic AG", - [3]byte{0, 24, 253}: "Optimal Technologies International Inc.", - [3]byte{0, 24, 254}: "Hewlett-Packard Company", - [3]byte{0, 24, 255}: "PowerQuattro Co.", - [3]byte{0, 25, 0}: "Intelliverese - DBA Voicecom", - [3]byte{0, 25, 1}: "F1MEDIA", - [3]byte{0, 25, 2}: "Cambridge Consultants Ltd", - [3]byte{0, 25, 3}: "Bigfoot Networks Inc", - [3]byte{0, 25, 4}: "WB Electronics Sp. z o.o.", - [3]byte{0, 25, 5}: "SCHRACK Seconet AG", - [3]byte{0, 25, 6}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 7}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 8}: "Duaxes Corporation", - [3]byte{0, 25, 9}: "DEVI - Danfoss A/S", - [3]byte{0, 25, 10}: "HASWARE INC.", - [3]byte{0, 25, 11}: "Southern Vision Systems, Inc.", - [3]byte{0, 25, 12}: "Encore Electronics, Inc.", - [3]byte{0, 25, 13}: "IEEE 1394c", - [3]byte{0, 25, 14}: "Atech Technology Co., Ltd.", - [3]byte{0, 25, 15}: "Advansus Corp.", - [3]byte{0, 25, 16}: "Knick Elektronische Messgeraete GmbH & Co. KG", - [3]byte{0, 25, 17}: "Just In Mobile Information Technologies (Shanghai) Co., Ltd.", - [3]byte{0, 25, 18}: "Welcat Inc", - [3]byte{0, 25, 19}: "Chuang-Yi Network Equipment Co.Ltd.", - [3]byte{0, 25, 20}: "Winix Co., Ltd", - [3]byte{0, 25, 21}: "TECOM Co., Ltd.", - [3]byte{0, 25, 22}: "PayTec AG", - [3]byte{0, 25, 23}: "Posiflex Inc.", - [3]byte{0, 25, 24}: "Interactive Wear AG", - [3]byte{0, 25, 25}: "ASTEL Inc.", - [3]byte{0, 25, 26}: "IRLINK", - [3]byte{0, 25, 27}: "Sputnik Engineering AG", - [3]byte{0, 25, 28}: "Sensicast Systems", - [3]byte{0, 25, 29}: "Nintendo Co., Ltd.", - [3]byte{0, 25, 30}: "Beyondwiz Co., Ltd.", - [3]byte{0, 25, 31}: "Microlink communications Inc.", - [3]byte{0, 25, 32}: "KUME electric Co.,Ltd.", - [3]byte{0, 25, 33}: "Elitegroup Computer System Co.", - [3]byte{0, 25, 34}: "CM Comandos Lineares", - [3]byte{0, 25, 35}: "Phonex Korea Co., LTD.", - [3]byte{0, 25, 36}: "LBNL Engineering", - [3]byte{0, 25, 37}: "Intelicis Corporation", - [3]byte{0, 25, 38}: "BitsGen Co., Ltd.", - [3]byte{0, 25, 39}: "ImCoSys Ltd", - [3]byte{0, 25, 40}: "Siemens AG, Transportation Systems", - [3]byte{0, 25, 41}: "2M2B Montadora de Maquinas Bahia Brasil LTDA", - [3]byte{0, 25, 42}: "Antiope Associates", - [3]byte{0, 25, 43}: "Aclara RF Systems Inc.", - [3]byte{0, 25, 44}: "ARRIS Group, Inc.", - [3]byte{0, 25, 45}: "Nokia Corporation", - [3]byte{0, 25, 46}: "Spectral Instruments, Inc.", - [3]byte{0, 25, 47}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 48}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 49}: "Balluff GmbH", - [3]byte{0, 25, 50}: "Gude Analog- und Digialsysteme GmbH", - [3]byte{0, 25, 51}: "Strix Systems, Inc.", - [3]byte{0, 25, 52}: "TRENDON TOUCH TECHNOLOGY CORP.", - [3]byte{0, 25, 53}: "DUERR DENTAL AG", - [3]byte{0, 25, 54}: "STERLITE OPTICAL TECHNOLOGIES LIMITED", - [3]byte{0, 25, 55}: "CommerceGuard AB", - [3]byte{0, 25, 56}: "UMB Communications Co., Ltd.", - [3]byte{0, 25, 57}: "Gigamips", - [3]byte{0, 25, 58}: "OESOLUTIONS", - [3]byte{0, 25, 59}: "Wilibox Deliberant Group LLC", - [3]byte{0, 25, 60}: "HighPoint Technologies Incorporated", - [3]byte{0, 25, 61}: "GMC Guardian Mobility Corp.", - [3]byte{0, 25, 62}: "ADB Broadband Italia", - [3]byte{0, 25, 63}: "RDI technology(Shenzhen) Co.,LTD", - [3]byte{0, 25, 64}: "Rackable Systems", - [3]byte{0, 25, 65}: "Pitney Bowes, Inc", - [3]byte{0, 25, 66}: "ON SOFTWARE INTERNATIONAL LIMITED", - [3]byte{0, 25, 67}: "Belden", - [3]byte{0, 25, 68}: "Fossil Partners, L.P.", - [3]byte{0, 25, 69}: "Ten-Tec Inc.", - [3]byte{0, 25, 70}: "Cianet Industria e Comercio S/A", - [3]byte{0, 25, 71}: "Scientific Atlanta, A Cisco Company", - [3]byte{0, 25, 72}: "AireSpider Networks", - [3]byte{0, 25, 73}: "TENTEL COMTECH CO., LTD.", - [3]byte{0, 25, 74}: "TESTO AG", - [3]byte{0, 25, 75}: "SAGEM COMMUNICATION", - [3]byte{0, 25, 76}: "Fujian Stelcom information & Technology CO.,Ltd", - [3]byte{0, 25, 77}: "Avago Technologies Sdn Bhd", - [3]byte{0, 25, 78}: "Ultra Electronics - TCS (Tactical Communication Systems)", - [3]byte{0, 25, 79}: "Nokia Danmark A/S", - [3]byte{0, 25, 80}: "Harman Multimedia", - [3]byte{0, 25, 81}: "NETCONS, s.r.o.", - [3]byte{0, 25, 82}: "ACOGITO Co., Ltd", - [3]byte{0, 25, 83}: "Chainleader Communications Corp.", - [3]byte{0, 25, 84}: "Leaf Corporation.", - [3]byte{0, 25, 85}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 86}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 87}: "Saafnet Canada Inc.", - [3]byte{0, 25, 88}: "Bluetooth SIG, Inc.", - [3]byte{0, 25, 89}: "Staccato Communications Inc.", - [3]byte{0, 25, 90}: "Jenaer Antriebstechnik GmbH", - [3]byte{0, 25, 91}: "D-Link Corporation", - [3]byte{0, 25, 92}: "Innotech Corporation", - [3]byte{0, 25, 93}: "ShenZhen XinHuaTong Opto Electronics Co.,Ltd", - [3]byte{0, 25, 94}: "ARRIS Group, Inc.", - [3]byte{0, 25, 95}: "Valemount Networks Corporation", - [3]byte{0, 25, 96}: "DoCoMo Systems, Inc.", - [3]byte{0, 25, 97}: "Blaupunkt Embedded Systems GmbH", - [3]byte{0, 25, 98}: "Commerciant, LP", - [3]byte{0, 25, 99}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 25, 100}: "Doorking Inc.", - [3]byte{0, 25, 101}: "YuHua TelTech (ShangHai) Co., Ltd.", - [3]byte{0, 25, 102}: "Asiarock Technology Limited", - [3]byte{0, 25, 103}: "TELDAT Sp.J.", - [3]byte{0, 25, 104}: "Digital Video Networks(Shanghai) CO. LTD.", - [3]byte{0, 25, 105}: "Nortel", - [3]byte{0, 25, 106}: "MikroM GmbH", - [3]byte{0, 25, 107}: "Danpex Corporation", - [3]byte{0, 25, 108}: "ETROVISION TECHNOLOGY", - [3]byte{0, 25, 109}: "Raybit Systems Korea, Inc", - [3]byte{0, 25, 110}: "Metacom (Pty) Ltd.", - [3]byte{0, 25, 111}: "SensoPart GmbH", - [3]byte{0, 25, 112}: "Z-Com, Inc.", - [3]byte{0, 25, 113}: "Guangzhou Unicomp Technology Co.,Ltd", - [3]byte{0, 25, 114}: "Plexus (Xiamen) Co.,ltd", - [3]byte{0, 25, 115}: "Zeugma Systems", - [3]byte{0, 25, 116}: "AboCom Systems, Inc.", - [3]byte{0, 25, 117}: "Beijing Huisen networks technology Inc", - [3]byte{0, 25, 118}: "Xipher Technologies, LLC", - [3]byte{0, 25, 119}: "Aerohive Networks, Inc.", - [3]byte{0, 25, 120}: "Datum Systems, Inc.", - [3]byte{0, 25, 121}: "Nokia Danmark A/S", - [3]byte{0, 25, 122}: "MAZeT GmbH", - [3]byte{0, 25, 123}: "Picotest Corp.", - [3]byte{0, 25, 124}: "Riedel Communications GmbH", - [3]byte{0, 25, 125}: "Hon Hai Precision Ind. Co., Ltd", - [3]byte{0, 25, 126}: "Hon Hai Precision Ind. Co., Ltd", - [3]byte{0, 25, 127}: "PLANTRONICS, INC.", - [3]byte{0, 25, 128}: "Gridpoint Systems", - [3]byte{0, 25, 129}: "Vivox Inc", - [3]byte{0, 25, 130}: "SmarDTV", - [3]byte{0, 25, 131}: "CCT R&D Limited", - [3]byte{0, 25, 132}: "ESTIC Corporation", - [3]byte{0, 25, 133}: "IT Watchdogs, Inc", - [3]byte{0, 25, 134}: "Cheng Hongjian", - [3]byte{0, 25, 135}: "Panasonic Mobile Communications Co., Ltd.", - [3]byte{0, 25, 136}: "Wi2Wi, Inc", - [3]byte{0, 25, 137}: "Sonitrol Corporation", - [3]byte{0, 25, 138}: "Northrop Grumman Systems Corp.", - [3]byte{0, 25, 139}: "Novera Optics Korea, Inc.", - [3]byte{0, 25, 140}: "iXSea", - [3]byte{0, 25, 141}: "Ocean Optics, Inc.", - [3]byte{0, 25, 142}: "Oticon A/S", - [3]byte{0, 25, 143}: "Alcatel Bell N.V.", - [3]byte{0, 25, 144}: "ELM DATA Co., Ltd.", - [3]byte{0, 25, 145}: "avinfo", - [3]byte{0, 25, 146}: "ADTRAN INC.", - [3]byte{0, 25, 147}: "Changshu Switchgear MFG. Co.,Ltd. (Former Changshu Switchgea", - [3]byte{0, 25, 148}: "Jorjin Technologies Inc.", - [3]byte{0, 25, 149}: "Jurong Hi-Tech (Suzhou)Co.ltd", - [3]byte{0, 25, 150}: "TurboChef Technologies Inc.", - [3]byte{0, 25, 151}: "Soft Device Sdn Bhd", - [3]byte{0, 25, 152}: "SATO CORPORATION", - [3]byte{0, 25, 153}: "Fujitsu Technology Solutions", - [3]byte{0, 25, 154}: "EDO-EVI", - [3]byte{0, 25, 155}: "Diversified Technical Systems, Inc.", - [3]byte{0, 25, 156}: "CTRING", - [3]byte{0, 25, 157}: "VIZIO, Inc.", - [3]byte{0, 25, 158}: "Nifty", - [3]byte{0, 25, 159}: "DKT A/S", - [3]byte{0, 25, 160}: "NIHON DATA SYSTENS, INC.", - [3]byte{0, 25, 161}: "LG INFORMATION & COMM.", - [3]byte{0, 25, 162}: "ORDYN TECHNOLOGIES", - [3]byte{0, 25, 163}: "asteel electronique atlantique", - [3]byte{0, 25, 164}: "Austar Technology (hang zhou) Co.,Ltd", - [3]byte{0, 25, 165}: "RadarFind Corporation", - [3]byte{0, 25, 166}: "ARRIS Group, Inc.", - [3]byte{0, 25, 167}: "ITU-T", - [3]byte{0, 25, 168}: "WiQuest Communications", - [3]byte{0, 25, 169}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 170}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 171}: "Raycom CO ., LTD", - [3]byte{0, 25, 172}: "GSP SYSTEMS Inc.", - [3]byte{0, 25, 173}: "BOBST SA", - [3]byte{0, 25, 174}: "Hopling Technologies b.v.", - [3]byte{0, 25, 175}: "Rigol Technologies, Inc.", - [3]byte{0, 25, 176}: "HanYang System", - [3]byte{0, 25, 177}: "Arrow7 Corporation", - [3]byte{0, 25, 178}: "XYnetsoft Co.,Ltd", - [3]byte{0, 25, 179}: "Stanford Research Systems", - [3]byte{0, 25, 180}: "VideoCast Ltd.", - [3]byte{0, 25, 181}: "Famar Fueguina S.A.", - [3]byte{0, 25, 182}: "Euro Emme s.r.l.", - [3]byte{0, 25, 183}: "Nokia Danmark A/S", - [3]byte{0, 25, 184}: "Boundary Devices", - [3]byte{0, 25, 185}: "Dell Inc.", - [3]byte{0, 25, 186}: "Paradox Security Systems Ltd", - [3]byte{0, 25, 187}: "Hewlett-Packard Company", - [3]byte{0, 25, 188}: "ELECTRO CHANCE SRL", - [3]byte{0, 25, 189}: "New Media Life", - [3]byte{0, 25, 190}: "Altai Technologies Limited", - [3]byte{0, 25, 191}: "Citiway technology Co.,ltd", - [3]byte{0, 25, 192}: "ARRIS Group, Inc.", - [3]byte{0, 25, 193}: "Alps Electric Co., Ltd", - [3]byte{0, 25, 194}: "Equustek Solutions, Inc.", - [3]byte{0, 25, 195}: "Qualitrol", - [3]byte{0, 25, 196}: "Infocrypt Inc.", - [3]byte{0, 25, 197}: "SONY Computer Entertainment inc,", - [3]byte{0, 25, 198}: "ZTE Corporation", - [3]byte{0, 25, 199}: "Cambridge Industries(Group) Co.,Ltd.", - [3]byte{0, 25, 200}: "AnyDATA Corporation", - [3]byte{0, 25, 201}: "S&C ELECTRIC COMPANY", - [3]byte{0, 25, 202}: "Broadata Communications, Inc", - [3]byte{0, 25, 203}: "ZyXEL Communications Corporation", - [3]byte{0, 25, 204}: "RCG (HK) Ltd", - [3]byte{0, 25, 205}: "Chengdu ethercom information technology Ltd.", - [3]byte{0, 25, 206}: "Progressive Gaming International", - [3]byte{0, 25, 207}: "SALICRU, S.A.", - [3]byte{0, 25, 208}: "Cathexis", - [3]byte{0, 25, 209}: "Intel Corporate", - [3]byte{0, 25, 210}: "Intel Corporate", - [3]byte{0, 25, 211}: "TRAK Microwave", - [3]byte{0, 25, 212}: "ICX Technologies", - [3]byte{0, 25, 213}: "IP Innovations, Inc.", - [3]byte{0, 25, 214}: "LS Cable and System Ltd.", - [3]byte{0, 25, 215}: "FORTUNETEK CO., LTD", - [3]byte{0, 25, 216}: "MAXFOR", - [3]byte{0, 25, 217}: "Zeutschel GmbH", - [3]byte{0, 25, 218}: "Welltrans O&E Technology Co. , Ltd.", - [3]byte{0, 25, 219}: "MICRO-STAR INTERNATIONAL CO., LTD.", - [3]byte{0, 25, 220}: "ENENSYS Technologies", - [3]byte{0, 25, 221}: "FEI-Zyfer, Inc.", - [3]byte{0, 25, 222}: "MOBITEK", - [3]byte{0, 25, 223}: "Thomson Inc.", - [3]byte{0, 25, 224}: "TP-LINK Technologies Co., Ltd.", - [3]byte{0, 25, 225}: "Nortel", - [3]byte{0, 25, 226}: "Juniper Networks", - [3]byte{0, 25, 227}: "Apple", - [3]byte{0, 25, 228}: "2Wire, Inc", - [3]byte{0, 25, 229}: "Lynx Studio Technology, Inc.", - [3]byte{0, 25, 230}: "TOYO MEDIC CO.,LTD.", - [3]byte{0, 25, 231}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 232}: "CISCO SYSTEMS, INC.", - [3]byte{0, 25, 233}: "S-Information Technolgy, Co., Ltd.", - [3]byte{0, 25, 234}: "TeraMage Technologies Co., Ltd.", - [3]byte{0, 25, 235}: "Pyronix Ltd", - [3]byte{0, 25, 236}: "Sagamore Systems, Inc.", - [3]byte{0, 25, 237}: "Axesstel Inc.", - [3]byte{0, 25, 238}: "CARLO GAVAZZI CONTROLS SPA-Controls Division", - [3]byte{0, 25, 239}: "SHENZHEN LINNKING ELECTRONICS CO.,LTD", - [3]byte{0, 25, 240}: "UNIONMAN TECHNOLOGY CO.,LTD", - [3]byte{0, 25, 241}: "Star Communication Network Technology Co.,Ltd", - [3]byte{0, 25, 242}: "Teradyne K.K.", - [3]byte{0, 25, 243}: "Cetis, Inc", - [3]byte{0, 25, 244}: "Convergens Oy Ltd", - [3]byte{0, 25, 245}: "Imagination Technologies Ltd", - [3]byte{0, 25, 246}: "Acconet (PTE) Ltd", - [3]byte{0, 25, 247}: "Onset Computer Corporation", - [3]byte{0, 25, 248}: "Embedded Systems Design, Inc.", - [3]byte{0, 25, 249}: "TDK-Lambda", - [3]byte{0, 25, 250}: "Cable Vision Electronics CO., LTD.", - [3]byte{0, 25, 251}: "BSkyB Ltd", - [3]byte{0, 25, 252}: "PT. Ufoakses Sukses Luarbiasa", - [3]byte{0, 25, 253}: "Nintendo Co., Ltd.", - [3]byte{0, 25, 254}: "SHENZHEN SEECOMM TECHNOLOGY CO.,LTD.", - [3]byte{0, 25, 255}: "Finnzymes", - [3]byte{0, 26, 0}: "MATRIX INC.", - [3]byte{0, 26, 1}: "Smiths Medical", - [3]byte{0, 26, 2}: "SECURE CARE PRODUCTS, INC", - [3]byte{0, 26, 3}: "Angel Electronics Co., Ltd.", - [3]byte{0, 26, 4}: "Interay Solutions BV", - [3]byte{0, 26, 5}: "OPTIBASE LTD", - [3]byte{0, 26, 6}: "OpVista, Inc.", - [3]byte{0, 26, 7}: "Arecont Vision", - [3]byte{0, 26, 8}: "Simoco Ltd.", - [3]byte{0, 26, 9}: "Wayfarer Transit Systems Ltd", - [3]byte{0, 26, 10}: "Adaptive Micro-Ware Inc.", - [3]byte{0, 26, 11}: "BONA TECHNOLOGY INC.", - [3]byte{0, 26, 12}: "Swe-Dish Satellite Systems AB", - [3]byte{0, 26, 13}: "HandHeld entertainment, Inc.", - [3]byte{0, 26, 14}: "Cheng Uei Precision Industry Co.,Ltd", - [3]byte{0, 26, 15}: "Sistemas Avanzados de Control, S.A.", - [3]byte{0, 26, 16}: "LUCENT TRANS ELECTRONICS CO.,LTD", - [3]byte{0, 26, 17}: "Google Inc.", - [3]byte{0, 26, 18}: "Essilor", - [3]byte{0, 26, 19}: "Wanlida Group Co., LTD", - [3]byte{0, 26, 20}: "Xin Hua Control Engineering Co.,Ltd.", - [3]byte{0, 26, 21}: "gemalto e-Payment", - [3]byte{0, 26, 22}: "Nokia Danmark A/S", - [3]byte{0, 26, 23}: "Teak Technologies, Inc.", - [3]byte{0, 26, 24}: "Advanced Simulation Technology inc.", - [3]byte{0, 26, 25}: "Computer Engineering Limited", - [3]byte{0, 26, 26}: "Gentex Corporation/Electro-Acoustic Products", - [3]byte{0, 26, 27}: "ARRIS Group, Inc.", - [3]byte{0, 26, 28}: "GT&T Engineering Pte Ltd", - [3]byte{0, 26, 29}: "PChome Online Inc.", - [3]byte{0, 26, 30}: "Aruba Networks", - [3]byte{0, 26, 31}: "Coastal Environmental Systems", - [3]byte{0, 26, 32}: "CMOTECH Co. Ltd.", - [3]byte{0, 26, 33}: "Indac B.V.", - [3]byte{0, 26, 34}: "eQ-3 Entwicklung GmbH", - [3]byte{0, 26, 35}: "Ice Qube, Inc", - [3]byte{0, 26, 36}: "Galaxy Telecom Technologies Ltd", - [3]byte{0, 26, 37}: "DELTA DORE", - [3]byte{0, 26, 38}: "Deltanode Solutions AB", - [3]byte{0, 26, 39}: "Ubistar", - [3]byte{0, 26, 40}: "ASWT Co., LTD. Taiwan Branch H.K.", - [3]byte{0, 26, 41}: "Johnson Outdoors Marine Electronics, Inc", - [3]byte{0, 26, 42}: "Arcadyan Technology Corporation", - [3]byte{0, 26, 43}: "Ayecom Technology Co., Ltd.", - [3]byte{0, 26, 44}: "SATEC Co.,LTD", - [3]byte{0, 26, 45}: "The Navvo Group", - [3]byte{0, 26, 46}: "Ziova Coporation", - [3]byte{0, 26, 47}: "CISCO SYSTEMS, INC.", - [3]byte{0, 26, 48}: "CISCO SYSTEMS, INC.", - [3]byte{0, 26, 49}: "SCAN COIN Industries AB", - [3]byte{0, 26, 50}: "ACTIVA MULTIMEDIA", - [3]byte{0, 26, 51}: "ASI Communications, Inc.", - [3]byte{0, 26, 52}: "Konka Group Co., Ltd.", - [3]byte{0, 26, 53}: "BARTEC GmbH", - [3]byte{0, 26, 54}: "Aipermon GmbH & Co. KG", - [3]byte{0, 26, 55}: "Lear Corporation", - [3]byte{0, 26, 56}: "Sanmina-SCI", - [3]byte{0, 26, 57}: "Merten GmbH&CoKG", - [3]byte{0, 26, 58}: "Dongahelecomm", - [3]byte{0, 26, 59}: "Doah Elecom Inc.", - [3]byte{0, 26, 60}: "Technowave Ltd.", - [3]byte{0, 26, 61}: "Ajin Vision Co.,Ltd", - [3]byte{0, 26, 62}: "Faster Technology LLC", - [3]byte{0, 26, 63}: "intelbras", - [3]byte{0, 26, 64}: "A-FOUR TECH CO., LTD.", - [3]byte{0, 26, 65}: "INOCOVA Co.,Ltd", - [3]byte{0, 26, 66}: "Techcity Technology co., Ltd.", - [3]byte{0, 26, 67}: "Logical Link Communications", - [3]byte{0, 26, 68}: "JWTrading Co., Ltd", - [3]byte{0, 26, 69}: "GN Netcom as", - [3]byte{0, 26, 70}: "Digital Multimedia Technology Co., Ltd", - [3]byte{0, 26, 71}: "Agami Systems, Inc.", - [3]byte{0, 26, 72}: "Takacom Corporation", - [3]byte{0, 26, 73}: "Micro Vision Co.,LTD", - [3]byte{0, 26, 74}: "Qumranet Inc.", - [3]byte{0, 26, 75}: "Hewlett-Packard Company", - [3]byte{0, 26, 76}: "Crossbow Technology, Inc", - [3]byte{0, 26, 77}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{0, 26, 78}: "NTI AG / LinMot", - [3]byte{0, 26, 79}: "AVM GmbH", - [3]byte{0, 26, 80}: "PheeNet Technology Corp.", - [3]byte{0, 26, 81}: "Alfred Mann Foundation", - [3]byte{0, 26, 82}: "Meshlinx Wireless Inc.", - [3]byte{0, 26, 83}: "Zylaya", - [3]byte{0, 26, 84}: "Hip Shing Electronics Ltd.", - [3]byte{0, 26, 85}: "ACA-Digital Corporation", - [3]byte{0, 26, 86}: "ViewTel Co,. Ltd.", - [3]byte{0, 26, 87}: "Matrix Design Group, LLC", - [3]byte{0, 26, 88}: "CCV Deutschland GmbH - Celectronic eHealth Div.", - [3]byte{0, 26, 89}: "Ircona", - [3]byte{0, 26, 90}: "Korea Electric Power Data Network (KDN) Co., Ltd", - [3]byte{0, 26, 91}: "NetCare Service Co., Ltd.", - [3]byte{0, 26, 92}: "Euchner GmbH+Co. KG", - [3]byte{0, 26, 93}: "Mobinnova Corp.", - [3]byte{0, 26, 94}: "Thincom Technology Co.,Ltd", - [3]byte{0, 26, 95}: "KitWorks.fi Ltd.", - [3]byte{0, 26, 96}: "Wave Electronics Co.,Ltd.", - [3]byte{0, 26, 97}: "PacStar Corp.", - [3]byte{0, 26, 98}: "Data Robotics, Incorporated", - [3]byte{0, 26, 99}: "Elster Solutions, LLC,", - [3]byte{0, 26, 100}: "IBM Corp", - [3]byte{0, 26, 101}: "Seluxit", - [3]byte{0, 26, 102}: "ARRIS Group, Inc.", - [3]byte{0, 26, 103}: "Infinite QL Sdn Bhd", - [3]byte{0, 26, 104}: "Weltec Enterprise Co., Ltd.", - [3]byte{0, 26, 105}: "Wuhan Yangtze Optical Technology CO.,Ltd.", - [3]byte{0, 26, 106}: "Tranzas, Inc.", - [3]byte{0, 26, 107}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{0, 26, 108}: "CISCO SYSTEMS, INC.", - [3]byte{0, 26, 109}: "CISCO SYSTEMS, INC.", - [3]byte{0, 26, 110}: "Impro Technologies", - [3]byte{0, 26, 111}: "MI.TEL s.r.l.", - [3]byte{0, 26, 112}: "Cisco-Linksys, LLC", - [3]byte{0, 26, 113}: "Diostech Co., Ltd.", - [3]byte{0, 26, 114}: "Mosart Semiconductor Corp.", - [3]byte{0, 26, 115}: "Gemtek Technology Co., Ltd.", - [3]byte{0, 26, 116}: "Procare International Co", - [3]byte{0, 26, 117}: "Sony Ericsson Mobile Communications", - [3]byte{0, 26, 118}: "SDT information Technology Co.,LTD.", - [3]byte{0, 26, 119}: "ARRIS Group, Inc.", - [3]byte{0, 26, 120}: "ubtos", - [3]byte{0, 26, 121}: "TELECOMUNICATION TECHNOLOGIES LTD.", - [3]byte{0, 26, 122}: "Lismore Instruments Limited", - [3]byte{0, 26, 123}: "Teleco, Inc.", - [3]byte{0, 26, 124}: "Hirschmann Multimedia B.V.", - [3]byte{0, 26, 125}: "cyber-blue(HK)Ltd", - [3]byte{0, 26, 126}: "LN Srithai Comm Ltd.", - [3]byte{0, 26, 127}: "GCI Science&Technology Co.,Ltd.", - [3]byte{0, 26, 128}: "Sony Corporation", - [3]byte{0, 26, 129}: "Zelax", - [3]byte{0, 26, 130}: "PROBA Building Automation Co.,LTD", - [3]byte{0, 26, 131}: "Pegasus Technologies Inc.", - [3]byte{0, 26, 132}: "V One Multimedia Pte Ltd", - [3]byte{0, 26, 133}: "NV Michel Van de Wiele", - [3]byte{0, 26, 134}: "AdvancedIO Systems Inc", - [3]byte{0, 26, 135}: "Canhold International Limited", - [3]byte{0, 26, 136}: "Venergy,Co,Ltd", - [3]byte{0, 26, 137}: "Nokia Danmark A/S", - [3]byte{0, 26, 138}: "Samsung Electronics Co., Ltd.", - [3]byte{0, 26, 139}: "CHUNIL ELECTRIC IND., CO.", - [3]byte{0, 26, 140}: "Sophos Ltd", - [3]byte{0, 26, 141}: "AVECS Bergen GmbH", - [3]byte{0, 26, 142}: "3Way Networks Ltd", - [3]byte{0, 26, 143}: "Nortel", - [3]byte{0, 26, 144}: "Trópico Sistemas e Telecomunicações da Amazônia LTDA.", - [3]byte{0, 26, 145}: "FusionDynamic Ltd.", - [3]byte{0, 26, 146}: "ASUSTek COMPUTER INC.", - [3]byte{0, 26, 147}: "ERCO Leuchten GmbH", - [3]byte{0, 26, 148}: "Votronic GmbH", - [3]byte{0, 26, 149}: "Hisense Mobile Communications Technoligy Co.,Ltd.", - [3]byte{0, 26, 150}: "ECLER S.A.", - [3]byte{0, 26, 151}: "fitivision technology Inc.", - [3]byte{0, 26, 152}: "Asotel Communication Limited Taiwan Branch", - [3]byte{0, 26, 153}: "Smarty (HZ) Information Electronics Co., Ltd", - [3]byte{0, 26, 154}: "Skyworth Digital technology(shenzhen)co.ltd.", - [3]byte{0, 26, 155}: "ADEC & Parter AG", - [3]byte{0, 26, 156}: "RightHand Technologies, Inc.", - [3]byte{0, 26, 157}: "Skipper Wireless, Inc.", - [3]byte{0, 26, 158}: "ICON Digital International Limited", - [3]byte{0, 26, 159}: "A-Link Ltd", - [3]byte{0, 26, 160}: "Dell Inc", - [3]byte{0, 26, 161}: "CISCO SYSTEMS, INC.", - [3]byte{0, 26, 162}: "CISCO SYSTEMS, INC.", - [3]byte{0, 26, 163}: "DELORME", - [3]byte{0, 26, 164}: "Future University-Hakodate", - [3]byte{0, 26, 165}: "BRN Phoenix", - [3]byte{0, 26, 166}: "Telefunken Radio Communication Systems GmbH &CO.KG", - [3]byte{0, 26, 167}: "Torian Wireless", - [3]byte{0, 26, 168}: "Mamiya Digital Imaging Co., Ltd.", - [3]byte{0, 26, 169}: "FUJIAN STAR-NET COMMUNICATION CO.,LTD", - [3]byte{0, 26, 170}: "Analogic Corp.", - [3]byte{0, 26, 171}: "eWings s.r.l.", - [3]byte{0, 26, 172}: "Corelatus AB", - [3]byte{0, 26, 173}: "ARRIS Group, Inc.", - [3]byte{0, 26, 174}: "Savant Systems LLC", - [3]byte{0, 26, 175}: "BLUSENS TECHNOLOGY", - [3]byte{0, 26, 176}: "Signal Networks Pvt. Ltd.,", - [3]byte{0, 26, 177}: "Asia Pacific Satellite Industries Co., Ltd.", - [3]byte{0, 26, 178}: "Cyber Solutions Inc.", - [3]byte{0, 26, 179}: "VISIONITE INC.", - [3]byte{0, 26, 180}: "FFEI Ltd.", - [3]byte{0, 26, 181}: "Home Network System", - [3]byte{0, 26, 182}: "Texas Instruments", - [3]byte{0, 26, 183}: "Ethos Networks LTD.", - [3]byte{0, 26, 184}: "Anseri Corporation", - [3]byte{0, 26, 185}: "PMC", - [3]byte{0, 26, 186}: "Caton Overseas Limited", - [3]byte{0, 26, 187}: "Fontal Technology Incorporation", - [3]byte{0, 26, 188}: "U4EA Technologies Ltd", - [3]byte{0, 26, 189}: "Impatica Inc.", - [3]byte{0, 26, 190}: "COMPUTER HI-TECH INC.", - [3]byte{0, 26, 191}: "TRUMPF Laser Marking Systems AG", - [3]byte{0, 26, 192}: "JOYBIEN TECHNOLOGIES CO., LTD.", - [3]byte{0, 26, 193}: "3Com Ltd", - [3]byte{0, 26, 194}: "YEC Co.,Ltd.", - [3]byte{0, 26, 195}: "Scientific-Atlanta, Inc", - [3]byte{0, 26, 196}: "2Wire, Inc", - [3]byte{0, 26, 197}: "BreakingPoint Systems, Inc.", - [3]byte{0, 26, 198}: "Micro Control Designs", - [3]byte{0, 26, 199}: "UNIPOINT", - [3]byte{0, 26, 200}: "ISL (Instrumentation Scientifique de Laboratoire)", - [3]byte{0, 26, 201}: "SUZUKEN CO.,LTD", - [3]byte{0, 26, 202}: "Tilera Corporation", - [3]byte{0, 26, 203}: "Autocom Products Ltd", - [3]byte{0, 26, 204}: "Celestial Semiconductor, Ltd", - [3]byte{0, 26, 205}: "Tidel Engineering LP", - [3]byte{0, 26, 206}: "YUPITERU CORPORATION", - [3]byte{0, 26, 207}: "C.T. ELETTRONICA", - [3]byte{0, 26, 208}: "Albis Technologies AG", - [3]byte{0, 26, 209}: "FARGO CO., LTD.", - [3]byte{0, 26, 210}: "Eletronica Nitron Ltda", - [3]byte{0, 26, 211}: "Vamp Ltd.", - [3]byte{0, 26, 212}: "iPOX Technology Co., Ltd.", - [3]byte{0, 26, 213}: "KMC CHAIN INDUSTRIAL CO., LTD.", - [3]byte{0, 26, 214}: "JIAGNSU AETNA ELECTRIC CO.,LTD", - [3]byte{0, 26, 215}: "Christie Digital Systems, Inc.", - [3]byte{0, 26, 216}: "AlsterAero GmbH", - [3]byte{0, 26, 217}: "International Broadband Electric Communications, Inc.", - [3]byte{0, 26, 218}: "Biz-2-Me Inc.", - [3]byte{0, 26, 219}: "ARRIS Group, Inc.", - [3]byte{0, 26, 220}: "Nokia Danmark A/S", - [3]byte{0, 26, 221}: "PePWave Ltd", - [3]byte{0, 26, 222}: "ARRIS Group, Inc.", - [3]byte{0, 26, 223}: "Interactivetv Pty Limited", - [3]byte{0, 26, 224}: "Mythology Tech Express Inc.", - [3]byte{0, 26, 225}: "EDGE ACCESS INC", - [3]byte{0, 26, 226}: "CISCO SYSTEMS, INC.", - [3]byte{0, 26, 227}: "CISCO SYSTEMS, INC.", - [3]byte{0, 26, 228}: "Medicis Technologies Corporation", - [3]byte{0, 26, 229}: "Mvox Technologies Inc.", - [3]byte{0, 26, 230}: "Atlanta Advanced Communications Holdings Limited", - [3]byte{0, 26, 231}: "Aztek Networks, Inc.", - [3]byte{0, 26, 232}: "Unify GmbH and Co KG", - [3]byte{0, 26, 233}: "Nintendo Co., Ltd.", - [3]byte{0, 26, 234}: "Radio Terminal Systems Pty Ltd", - [3]byte{0, 26, 235}: "Allied Telesis K.K.", - [3]byte{0, 26, 236}: "Keumbee Electronics Co.,Ltd.", - [3]byte{0, 26, 237}: "INCOTEC GmbH", - [3]byte{0, 26, 238}: "Shenztech Ltd", - [3]byte{0, 26, 239}: "Loopcomm Technology, Inc.", - [3]byte{0, 26, 240}: "Alcatel - IPD", - [3]byte{0, 26, 241}: "Embedded Artists AB", - [3]byte{0, 26, 242}: "Dynavisions Schweiz AG", - [3]byte{0, 26, 243}: "Samyoung Electronics", - [3]byte{0, 26, 244}: "Handreamnet", - [3]byte{0, 26, 245}: "PENTAONE. CO., LTD.", - [3]byte{0, 26, 246}: "Woven Systems, Inc.", - [3]byte{0, 26, 247}: "dataschalt e+a GmbH", - [3]byte{0, 26, 248}: "Copley Controls Corporation", - [3]byte{0, 26, 249}: "AeroVIronment (AV Inc)", - [3]byte{0, 26, 250}: "Welch Allyn, Inc.", - [3]byte{0, 26, 251}: "Joby Inc.", - [3]byte{0, 26, 252}: "ModusLink Corporation", - [3]byte{0, 26, 253}: "EVOLIS", - [3]byte{0, 26, 254}: "SOFACREAL", - [3]byte{0, 26, 255}: "Wizyoung Tech.", - [3]byte{0, 27, 0}: "Neopost Technologies", - [3]byte{0, 27, 1}: "Applied Radio Technologies", - [3]byte{0, 27, 2}: "ED Co.Ltd", - [3]byte{0, 27, 3}: "Action Technology (SZ) Co., Ltd", - [3]byte{0, 27, 4}: "Affinity International S.p.a", - [3]byte{0, 27, 5}: "YMC AG", - [3]byte{0, 27, 6}: "Ateliers R. LAUMONIER", - [3]byte{0, 27, 7}: "Mendocino Software", - [3]byte{0, 27, 8}: "Danfoss Drives A/S", - [3]byte{0, 27, 9}: "Matrix Telecom Pvt. Ltd.", - [3]byte{0, 27, 10}: "Intelligent Distributed Controls Ltd", - [3]byte{0, 27, 11}: "Phidgets Inc.", - [3]byte{0, 27, 12}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 13}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 14}: "InoTec GmbH Organisationssysteme", - [3]byte{0, 27, 15}: "Petratec", - [3]byte{0, 27, 16}: "ShenZhen Kang Hui Technology Co.,ltd", - [3]byte{0, 27, 17}: "D-Link Corporation", - [3]byte{0, 27, 18}: "Apprion", - [3]byte{0, 27, 19}: "Icron Technologies Corporation", - [3]byte{0, 27, 20}: "Carex Lighting Equipment Factory", - [3]byte{0, 27, 21}: "Voxtel, Inc.", - [3]byte{0, 27, 22}: "Celtro Ltd.", - [3]byte{0, 27, 23}: "Palo Alto Networks", - [3]byte{0, 27, 24}: "Tsuken Electric Ind. Co.,Ltd", - [3]byte{0, 27, 25}: "IEEE I&M Society TC9", - [3]byte{0, 27, 26}: "e-trees Japan, Inc.", - [3]byte{0, 27, 27}: "Siemens AG,", - [3]byte{0, 27, 28}: "Coherent", - [3]byte{0, 27, 29}: "Phoenix International Co., Ltd", - [3]byte{0, 27, 30}: "HART Communication Foundation", - [3]byte{0, 27, 31}: "DELTA - Danish Electronics, Light & Acoustics", - [3]byte{0, 27, 32}: "TPine Technology", - [3]byte{0, 27, 33}: "Intel Corporate", - [3]byte{0, 27, 34}: "Palit Microsystems ( H.K.) Ltd.", - [3]byte{0, 27, 35}: "SimpleComTools", - [3]byte{0, 27, 36}: "Quanta Computer Inc.", - [3]byte{0, 27, 37}: "Nortel", - [3]byte{0, 27, 38}: "RON-Telecom ZAO", - [3]byte{0, 27, 39}: "Merlin CSI", - [3]byte{0, 27, 40}: "POLYGON, JSC", - [3]byte{0, 27, 41}: "Avantis.Co.,Ltd", - [3]byte{0, 27, 42}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 43}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 44}: "ATRON electronic GmbH", - [3]byte{0, 27, 45}: "Med-Eng Systems Inc.", - [3]byte{0, 27, 46}: "Sinkyo Electron Inc", - [3]byte{0, 27, 47}: "NETGEAR Inc.", - [3]byte{0, 27, 48}: "Solitech Inc.", - [3]byte{0, 27, 49}: "Neural Image. Co. Ltd.", - [3]byte{0, 27, 50}: "QLogic Corporation", - [3]byte{0, 27, 51}: "Nokia Danmark A/S", - [3]byte{0, 27, 52}: "Focus System Inc.", - [3]byte{0, 27, 53}: "ChongQing JINOU Science & Technology Development CO.,Ltd", - [3]byte{0, 27, 54}: "Tsubata Engineering Co.,Ltd. (Head Office)", - [3]byte{0, 27, 55}: "Computec Oy", - [3]byte{0, 27, 56}: "COMPAL INFORMATION (KUNSHAN) CO., LTD.", - [3]byte{0, 27, 57}: "Proxicast", - [3]byte{0, 27, 58}: "SIMS Corp.", - [3]byte{0, 27, 59}: "Yi-Qing CO., LTD", - [3]byte{0, 27, 60}: "Software Technologies Group,Inc.", - [3]byte{0, 27, 61}: "EuroTel Spa", - [3]byte{0, 27, 62}: "Curtis, Inc.", - [3]byte{0, 27, 63}: "ProCurve Networking by HP", - [3]byte{0, 27, 64}: "Network Automation mxc AB", - [3]byte{0, 27, 65}: "General Infinity Co.,Ltd.", - [3]byte{0, 27, 66}: "Wise & Blue", - [3]byte{0, 27, 67}: "Beijing DG Telecommunications equipment Co.,Ltd", - [3]byte{0, 27, 68}: "SanDisk Corporation", - [3]byte{0, 27, 69}: "ABB AS, Division Automation Products", - [3]byte{0, 27, 70}: "Blueone Technology Co.,Ltd", - [3]byte{0, 27, 71}: "Futarque A/S", - [3]byte{0, 27, 72}: "Shenzhen Lantech Electronics Co., Ltd.", - [3]byte{0, 27, 73}: "Roberts Radio limited", - [3]byte{0, 27, 74}: "W&W Communications, Inc.", - [3]byte{0, 27, 75}: "SANION Co., Ltd.", - [3]byte{0, 27, 76}: "Signtech", - [3]byte{0, 27, 77}: "Areca Technology Corporation", - [3]byte{0, 27, 78}: "Navman New Zealand", - [3]byte{0, 27, 79}: "Avaya Inc.", - [3]byte{0, 27, 80}: "Nizhny Novgorod Factory named after M.Frunze, FSUE (NZiF)", - [3]byte{0, 27, 81}: "Vector Technology Corp.", - [3]byte{0, 27, 82}: "ARRIS Group, Inc.", - [3]byte{0, 27, 83}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 84}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 85}: "Hurco Automation Ltd.", - [3]byte{0, 27, 86}: "Tehuti Networks Ltd.", - [3]byte{0, 27, 87}: "SEMINDIA SYSTEMS PRIVATE LIMITED", - [3]byte{0, 27, 88}: "ACE CAD Enterprise Co., Ltd.", - [3]byte{0, 27, 89}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 27, 90}: "Apollo Imaging Technologies, Inc.", - [3]byte{0, 27, 91}: "2Wire, Inc.", - [3]byte{0, 27, 92}: "Azuretec Co., Ltd.", - [3]byte{0, 27, 93}: "Vololink Pty Ltd", - [3]byte{0, 27, 94}: "BPL Limited", - [3]byte{0, 27, 95}: "Alien Technology", - [3]byte{0, 27, 96}: "NAVIGON AG", - [3]byte{0, 27, 97}: "Digital Acoustics, LLC", - [3]byte{0, 27, 98}: "JHT Optoelectronics Co.,Ltd.", - [3]byte{0, 27, 99}: "Apple", - [3]byte{0, 27, 100}: "IsaacLandKorea Co., Ltd,", - [3]byte{0, 27, 101}: "China Gridcom Co., Ltd", - [3]byte{0, 27, 102}: "Sennheiser electronic GmbH & Co. KG", - [3]byte{0, 27, 103}: "Cisco Systems Inc", - [3]byte{0, 27, 104}: "Modnnet Co., Ltd", - [3]byte{0, 27, 105}: "Equaline Corporation", - [3]byte{0, 27, 106}: "Powerwave Technologies Sweden AB", - [3]byte{0, 27, 107}: "Swyx Solutions AG", - [3]byte{0, 27, 108}: "LookX Digital Media BV", - [3]byte{0, 27, 109}: "Midtronics, Inc.", - [3]byte{0, 27, 110}: "Anue Systems, Inc.", - [3]byte{0, 27, 111}: "Teletrak Ltd", - [3]byte{0, 27, 112}: "IRI Ubiteq, INC.", - [3]byte{0, 27, 113}: "Telular Corp.", - [3]byte{0, 27, 114}: "Sicep s.p.a.", - [3]byte{0, 27, 115}: "DTL Broadcast Ltd", - [3]byte{0, 27, 116}: "MiraLink Corporation", - [3]byte{0, 27, 117}: "Hypermedia Systems", - [3]byte{0, 27, 118}: "Ripcode, Inc.", - [3]byte{0, 27, 119}: "Intel Corporate", - [3]byte{0, 27, 120}: "Hewlett-Packard Company", - [3]byte{0, 27, 121}: "FAIVELEY TRANSPORT", - [3]byte{0, 27, 122}: "Nintendo Co., Ltd.", - [3]byte{0, 27, 123}: "The Tintometer Ltd", - [3]byte{0, 27, 124}: "A & R Cambridge", - [3]byte{0, 27, 125}: "CXR Anderson Jacobson", - [3]byte{0, 27, 126}: "Beckmann GmbH", - [3]byte{0, 27, 127}: "TMN Technologies Telecomunicacoes Ltda", - [3]byte{0, 27, 128}: "LORD Corporation", - [3]byte{0, 27, 129}: "DATAQ Instruments, Inc.", - [3]byte{0, 27, 130}: "Taiwan Semiconductor Co., Ltd.", - [3]byte{0, 27, 131}: "Finsoft Ltd", - [3]byte{0, 27, 132}: "Scan Engineering Telecom", - [3]byte{0, 27, 133}: "MAN Diesel SE", - [3]byte{0, 27, 134}: "Bosch Access Systems GmbH", - [3]byte{0, 27, 135}: "Deepsound Tech. Co., Ltd", - [3]byte{0, 27, 136}: "Divinet Access Technologies Ltd", - [3]byte{0, 27, 137}: "EMZA Visual Sense Ltd.", - [3]byte{0, 27, 138}: "2M Electronic A/S", - [3]byte{0, 27, 139}: "NEC Platforms, Ltd.", - [3]byte{0, 27, 140}: "JMicron Technology Corp.", - [3]byte{0, 27, 141}: "Electronic Computer Systems, Inc.", - [3]byte{0, 27, 142}: "Hulu Sweden AB", - [3]byte{0, 27, 143}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 144}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 145}: "EFKON AG", - [3]byte{0, 27, 146}: "l-acoustics", - [3]byte{0, 27, 147}: "JC Decaux SA DNT", - [3]byte{0, 27, 148}: "T.E.M.A. S.p.A.", - [3]byte{0, 27, 149}: "VIDEO SYSTEMS SRL", - [3]byte{0, 27, 150}: "General Sensing", - [3]byte{0, 27, 151}: "Violin Technologies", - [3]byte{0, 27, 152}: "Samsung Electronics Co., Ltd.", - [3]byte{0, 27, 153}: "KS System GmbH", - [3]byte{0, 27, 154}: "Apollo Fire Detectors Ltd", - [3]byte{0, 27, 155}: "Hose-McCann Communications", - [3]byte{0, 27, 156}: "SATEL sp. z o.o.", - [3]byte{0, 27, 157}: "Novus Security Sp. z o.o.", - [3]byte{0, 27, 158}: "ASKEY COMPUTER CORP", - [3]byte{0, 27, 159}: "Calyptech Pty Ltd", - [3]byte{0, 27, 160}: "Awox", - [3]byte{0, 27, 161}: "Ã…mic AB", - [3]byte{0, 27, 162}: "IDS Imaging Development Systems GmbH", - [3]byte{0, 27, 163}: "Flexit Group GmbH", - [3]byte{0, 27, 164}: "S.A.E Afikim", - [3]byte{0, 27, 165}: "MyungMin Systems, Inc.", - [3]byte{0, 27, 166}: "intotech inc.", - [3]byte{0, 27, 167}: "Lorica Solutions", - [3]byte{0, 27, 168}: "UBI&MOBI,.Inc", - [3]byte{0, 27, 169}: "BROTHER INDUSTRIES, LTD.", - [3]byte{0, 27, 170}: "XenICs nv", - [3]byte{0, 27, 171}: "Telchemy, Incorporated", - [3]byte{0, 27, 172}: "Curtiss Wright Controls Embedded Computing", - [3]byte{0, 27, 173}: "iControl Incorporated", - [3]byte{0, 27, 174}: "Micro Control Systems, Inc", - [3]byte{0, 27, 175}: "Nokia Danmark A/S", - [3]byte{0, 27, 176}: "BHARAT ELECTRONICS", - [3]byte{0, 27, 177}: "Wistron Neweb Corp.", - [3]byte{0, 27, 178}: "Intellect International NV", - [3]byte{0, 27, 179}: "Condalo GmbH", - [3]byte{0, 27, 180}: "Airvod Limited", - [3]byte{0, 27, 181}: "ZF Electronics GmbH", - [3]byte{0, 27, 182}: "Bird Electronic Corp.", - [3]byte{0, 27, 183}: "Alta Heights Technology Corp.", - [3]byte{0, 27, 184}: "BLUEWAY ELECTRONIC CO;LTD", - [3]byte{0, 27, 185}: "Elitegroup Computer System Co.", - [3]byte{0, 27, 186}: "Nortel", - [3]byte{0, 27, 187}: "RFTech Co.,Ltd", - [3]byte{0, 27, 188}: "Silver Peak Systems, Inc.", - [3]byte{0, 27, 189}: "FMC Kongsberg Subsea AS", - [3]byte{0, 27, 190}: "ICOP Digital", - [3]byte{0, 27, 191}: "SAGEM COMMUNICATION", - [3]byte{0, 27, 192}: "Juniper Networks", - [3]byte{0, 27, 193}: "HOLUX Technology, Inc.", - [3]byte{0, 27, 194}: "Integrated Control Technology Limitied", - [3]byte{0, 27, 195}: "Mobisolution Co.,Ltd", - [3]byte{0, 27, 196}: "Ultratec, Inc.", - [3]byte{0, 27, 197}: "IEEE Registration Authority", - [3]byte{0, 27, 198}: "Strato Rechenzentrum AG", - [3]byte{0, 27, 199}: "StarVedia Technology Inc.", - [3]byte{0, 27, 200}: "MIURA CO.,LTD", - [3]byte{0, 27, 201}: "FSN DISPLAY INC", - [3]byte{0, 27, 202}: "Beijing Run Technology LTD. Company", - [3]byte{0, 27, 203}: "PEMPEK SYSTEMS PTY LTD", - [3]byte{0, 27, 204}: "KINGTEK CCTV ALLIANCE CO., LTD.", - [3]byte{0, 27, 205}: "DAVISCOMMS (S) PTE LTD", - [3]byte{0, 27, 206}: "Measurement Devices Ltd", - [3]byte{0, 27, 207}: "Dataupia Corporation", - [3]byte{0, 27, 208}: "IDENTEC SOLUTIONS", - [3]byte{0, 27, 209}: "SOGESTMATIC", - [3]byte{0, 27, 210}: "ULTRA-X ASIA PACIFIC Inc.", - [3]byte{0, 27, 211}: "Panasonic Corp. AVC Company", - [3]byte{0, 27, 212}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 213}: "CISCO SYSTEMS, INC.", - [3]byte{0, 27, 214}: "Kelvin Hughes Ltd", - [3]byte{0, 27, 215}: "Scientific Atlanta, A Cisco Company", - [3]byte{0, 27, 216}: "DVTel LTD", - [3]byte{0, 27, 217}: "Edgewater Computer Systems", - [3]byte{0, 27, 218}: "UTStarcom Inc", - [3]byte{0, 27, 219}: "Valeo VECS", - [3]byte{0, 27, 220}: "Vencer Co., Ltd.", - [3]byte{0, 27, 221}: "ARRIS Group, Inc.", - [3]byte{0, 27, 222}: "Renkus-Heinz, Inc.", - [3]byte{0, 27, 223}: "Iskra Sistemi d.d.", - [3]byte{0, 27, 224}: "TELENOT ELECTRONIC GmbH", - [3]byte{0, 27, 225}: "ViaLogy", - [3]byte{0, 27, 226}: "AhnLab,Inc.", - [3]byte{0, 27, 227}: "Health Hero Network, Inc.", - [3]byte{0, 27, 228}: "TOWNET SRL", - [3]byte{0, 27, 229}: "802automation Limited", - [3]byte{0, 27, 230}: "VR AG", - [3]byte{0, 27, 231}: "Postek Electronics Co., Ltd.", - [3]byte{0, 27, 232}: "Ultratronik GmbH", - [3]byte{0, 27, 233}: "Broadcom Corporation", - [3]byte{0, 27, 234}: "Nintendo Co., Ltd.", - [3]byte{0, 27, 235}: "DMP Electronics INC.", - [3]byte{0, 27, 236}: "Netio Technologies Co., Ltd", - [3]byte{0, 27, 237}: "Brocade Communications Systems, Inc", - [3]byte{0, 27, 238}: "Nokia Danmark A/S", - [3]byte{0, 27, 239}: "Blossoms Digital Technology Co.,Ltd.", - [3]byte{0, 27, 240}: "Value Platforms Limited", - [3]byte{0, 27, 241}: "Nanjing SilverNet Software Co., Ltd.", - [3]byte{0, 27, 242}: "KWORLD COMPUTER CO., LTD", - [3]byte{0, 27, 243}: "TRANSRADIO SenderSysteme Berlin AG", - [3]byte{0, 27, 244}: "KENWIN INDUSTRIAL(HK) LTD.", - [3]byte{0, 27, 245}: "Tellink Sistemas de Telecomunicación S.L.", - [3]byte{0, 27, 246}: "CONWISE Technology Corporation Ltd.", - [3]byte{0, 27, 247}: "Lund IP Products AB", - [3]byte{0, 27, 248}: "Digitrax Inc.", - [3]byte{0, 27, 249}: "Intellitect Water Ltd", - [3]byte{0, 27, 250}: "G.i.N. mbH", - [3]byte{0, 27, 251}: "Alps Electric Co., Ltd", - [3]byte{0, 27, 252}: "ASUSTek COMPUTER INC.", - [3]byte{0, 27, 253}: "Dignsys Inc.", - [3]byte{0, 27, 254}: "Zavio Inc.", - [3]byte{0, 27, 255}: "Millennia Media inc.", - [3]byte{0, 28, 0}: "Entry Point, LLC", - [3]byte{0, 28, 1}: "ABB Oy Drives", - [3]byte{0, 28, 2}: "Pano Logic", - [3]byte{0, 28, 3}: "Betty TV Technology AG", - [3]byte{0, 28, 4}: "Airgain, Inc.", - [3]byte{0, 28, 5}: "Nonin Medical Inc.", - [3]byte{0, 28, 6}: "Siemens Numerical Control Ltd., Nanjing", - [3]byte{0, 28, 7}: "Cwlinux Limited", - [3]byte{0, 28, 8}: "Echo360, Inc.", - [3]byte{0, 28, 9}: "SAE Electronic Co.,Ltd.", - [3]byte{0, 28, 10}: "Shenzhen AEE Technology Co.,Ltd.", - [3]byte{0, 28, 11}: "SmartAnt Telecom", - [3]byte{0, 28, 12}: "TANITA Corporation", - [3]byte{0, 28, 13}: "G-Technology, Inc.", - [3]byte{0, 28, 14}: "CISCO SYSTEMS, INC.", - [3]byte{0, 28, 15}: "CISCO SYSTEMS, INC.", - [3]byte{0, 28, 16}: "Cisco-Linksys, LLC", - [3]byte{0, 28, 17}: "ARRIS Group, Inc.", - [3]byte{0, 28, 18}: "ARRIS Group, Inc.", - [3]byte{0, 28, 19}: "OPTSYS TECHNOLOGY CO., LTD.", - [3]byte{0, 28, 20}: "VMware, Inc", - [3]byte{0, 28, 21}: "iPhotonix LLC", - [3]byte{0, 28, 22}: "ThyssenKrupp Elevator", - [3]byte{0, 28, 23}: "Nortel", - [3]byte{0, 28, 24}: "Sicert S.r.L.", - [3]byte{0, 28, 25}: "secunet Security Networks AG", - [3]byte{0, 28, 26}: "Thomas Instrumentation, Inc", - [3]byte{0, 28, 27}: "Hyperstone GmbH", - [3]byte{0, 28, 28}: "Center Communication Systems GmbH", - [3]byte{0, 28, 29}: "CHENZHOU GOSPELL DIGITAL TECHNOLOGY CO.,LTD", - [3]byte{0, 28, 30}: "emtrion GmbH", - [3]byte{0, 28, 31}: "Quest Retail Technology Pty Ltd", - [3]byte{0, 28, 32}: "CLB Benelux", - [3]byte{0, 28, 33}: "Nucsafe Inc.", - [3]byte{0, 28, 34}: "Aeris Elettronica s.r.l.", - [3]byte{0, 28, 35}: "Dell Inc", - [3]byte{0, 28, 36}: "Formosa Wireless Systems Corp.", - [3]byte{0, 28, 37}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{0, 28, 38}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{0, 28, 39}: "Sunell Electronics Co.", - [3]byte{0, 28, 40}: "Sphairon Technologies GmbH", - [3]byte{0, 28, 41}: "CORE DIGITAL ELECTRONICS CO., LTD", - [3]byte{0, 28, 42}: "Envisacor Technologies Inc.", - [3]byte{0, 28, 43}: "Alertme.com Limited", - [3]byte{0, 28, 44}: "Synapse", - [3]byte{0, 28, 45}: "FlexRadio Systems", - [3]byte{0, 28, 46}: "HPN Supply Chain", - [3]byte{0, 28, 47}: "Pfister GmbH", - [3]byte{0, 28, 48}: "Mode Lighting (UK ) Ltd.", - [3]byte{0, 28, 49}: "Mobile XP Technology Co., LTD", - [3]byte{0, 28, 50}: "Telian Corporation", - [3]byte{0, 28, 51}: "Sutron", - [3]byte{0, 28, 52}: "HUEY CHIAO INTERNATIONAL CO., LTD.", - [3]byte{0, 28, 53}: "Nokia Danmark A/S", - [3]byte{0, 28, 54}: "iNEWiT NV", - [3]byte{0, 28, 55}: "Callpod, Inc.", - [3]byte{0, 28, 56}: "Bio-Rad Laboratories, Inc.", - [3]byte{0, 28, 57}: "S Netsystems Inc.", - [3]byte{0, 28, 58}: "Element Labs, Inc.", - [3]byte{0, 28, 59}: "AmRoad Technology Inc.", - [3]byte{0, 28, 60}: "Seon Design Inc.", - [3]byte{0, 28, 61}: "WaveStorm", - [3]byte{0, 28, 62}: "ECKey Corporation", - [3]byte{0, 28, 63}: "International Police Technologies, Inc.", - [3]byte{0, 28, 64}: "VDG-Security bv", - [3]byte{0, 28, 65}: "scemtec Transponder Technology GmbH", - [3]byte{0, 28, 66}: "Parallels, Inc.", - [3]byte{0, 28, 67}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 28, 68}: "Bosch Security Systems BV", - [3]byte{0, 28, 69}: "Chenbro Micom Co., Ltd.", - [3]byte{0, 28, 70}: "QTUM", - [3]byte{0, 28, 71}: "Hangzhou Hollysys Automation Co., Ltd", - [3]byte{0, 28, 72}: "WiDeFi, Inc.", - [3]byte{0, 28, 73}: "Zoltan Technology Inc.", - [3]byte{0, 28, 74}: "AVM GmbH", - [3]byte{0, 28, 75}: "Gener8, Inc.", - [3]byte{0, 28, 76}: "Petrotest Instruments", - [3]byte{0, 28, 77}: "Aplix IP Holdings Corporation", - [3]byte{0, 28, 78}: "TASA International Limited", - [3]byte{0, 28, 79}: "MACAB AB", - [3]byte{0, 28, 80}: "TCL Technoly Electronics(Huizhou)Co.,Ltd", - [3]byte{0, 28, 81}: "Celeno Communications", - [3]byte{0, 28, 82}: "VISIONEE SRL", - [3]byte{0, 28, 83}: "Synergy Lighting Controls", - [3]byte{0, 28, 84}: "Hillstone Networks Inc", - [3]byte{0, 28, 85}: "Shenzhen Kaifa Technology Co.", - [3]byte{0, 28, 86}: "Pado Systems, Inc.", - [3]byte{0, 28, 87}: "CISCO SYSTEMS, INC.", - [3]byte{0, 28, 88}: "CISCO SYSTEMS, INC.", - [3]byte{0, 28, 89}: "DEVON IT", - [3]byte{0, 28, 90}: "Advanced Relay Corporation", - [3]byte{0, 28, 91}: "Chubb Electronic Security Systems Ltd", - [3]byte{0, 28, 92}: "Integrated Medical Systems, Inc.", - [3]byte{0, 28, 93}: "Leica Microsystems", - [3]byte{0, 28, 94}: "ASTON France", - [3]byte{0, 28, 95}: "Winland Electronics, Inc.", - [3]byte{0, 28, 96}: "CSP Frontier Technologies,Inc.", - [3]byte{0, 28, 97}: "Galaxy Microsystems LImited", - [3]byte{0, 28, 98}: "LG Electronics Inc", - [3]byte{0, 28, 99}: "TRUEN", - [3]byte{0, 28, 100}: "Landis+Gyr", - [3]byte{0, 28, 101}: "JoeScan, Inc.", - [3]byte{0, 28, 102}: "UCAMP CO.,LTD", - [3]byte{0, 28, 103}: "Pumpkin Networks, Inc.", - [3]byte{0, 28, 104}: "Anhui Sun Create Electronics Co., Ltd", - [3]byte{0, 28, 105}: "Packet Vision Ltd", - [3]byte{0, 28, 106}: "Weiss Engineering Ltd.", - [3]byte{0, 28, 107}: "COVAX Co. Ltd", - [3]byte{0, 28, 108}: "Jabil Circuit (Guangzhou) Limited", - [3]byte{0, 28, 109}: "KYOHRITSU ELECTRONIC INDUSTRY CO., LTD.", - [3]byte{0, 28, 110}: "Newbury Networks, Inc.", - [3]byte{0, 28, 111}: "Emfit Ltd", - [3]byte{0, 28, 112}: "NOVACOMM LTDA", - [3]byte{0, 28, 113}: "Emergent Electronics", - [3]byte{0, 28, 114}: "Mayer & Cie GmbH & Co KG", - [3]byte{0, 28, 115}: "Arista Networks, Inc.", - [3]byte{0, 28, 116}: "Syswan Technologies Inc.", - [3]byte{0, 28, 117}: "Segnet Ltd.", - [3]byte{0, 28, 118}: "The Wandsworth Group Ltd", - [3]byte{0, 28, 119}: "Prodys", - [3]byte{0, 28, 120}: "WYPLAY SAS", - [3]byte{0, 28, 121}: "Cohesive Financial Technologies LLC", - [3]byte{0, 28, 122}: "Perfectone Netware Company Ltd", - [3]byte{0, 28, 123}: "Castlenet Technology Inc.", - [3]byte{0, 28, 124}: "PERQ SYSTEMS CORPORATION", - [3]byte{0, 28, 125}: "Excelpoint Manufacturing Pte Ltd", - [3]byte{0, 28, 126}: "Toshiba", - [3]byte{0, 28, 127}: "Check Point Software Technologies", - [3]byte{0, 28, 128}: "New Business Division/Rhea-Information CO., LTD.", - [3]byte{0, 28, 129}: "NextGen Venturi LTD", - [3]byte{0, 28, 130}: "Genew Technologies", - [3]byte{0, 28, 131}: "New Level Telecom Co., Ltd.", - [3]byte{0, 28, 132}: "STL Solution Co.,Ltd.", - [3]byte{0, 28, 133}: "Eunicorn", - [3]byte{0, 28, 134}: "Cranite Systems, Inc.", - [3]byte{0, 28, 135}: "Uriver Inc.", - [3]byte{0, 28, 136}: "TRANSYSTEM INC.", - [3]byte{0, 28, 137}: "Force Communications, Inc.", - [3]byte{0, 28, 138}: "Cirrascale Corporation", - [3]byte{0, 28, 139}: "MJ Innovations Ltd.", - [3]byte{0, 28, 140}: "DIAL TECHNOLOGY LTD.", - [3]byte{0, 28, 141}: "Mesa Imaging", - [3]byte{0, 28, 142}: "Alcatel-Lucent IPD", - [3]byte{0, 28, 143}: "Advanced Electronic Design, Inc.", - [3]byte{0, 28, 144}: "Empacket Corporation", - [3]byte{0, 28, 145}: "Gefen Inc.", - [3]byte{0, 28, 146}: "Tervela", - [3]byte{0, 28, 147}: "ExaDigm Inc", - [3]byte{0, 28, 148}: "LI-COR Biosciences", - [3]byte{0, 28, 149}: "Opticomm Corporation", - [3]byte{0, 28, 150}: "Linkwise Technology Pte Ltd", - [3]byte{0, 28, 151}: "Enzytek Technology Inc.,", - [3]byte{0, 28, 152}: "LUCKY TECHNOLOGY (HK) COMPANY LIMITED", - [3]byte{0, 28, 153}: "Shunra Software Ltd.", - [3]byte{0, 28, 154}: "Nokia Danmark A/S", - [3]byte{0, 28, 155}: "FEIG ELECTRONIC GmbH", - [3]byte{0, 28, 156}: "Nortel", - [3]byte{0, 28, 157}: "Liecthi AG", - [3]byte{0, 28, 158}: "Dualtech IT AB", - [3]byte{0, 28, 159}: "Razorstream, LLC", - [3]byte{0, 28, 160}: "Production Resource Group, LLC", - [3]byte{0, 28, 161}: "AKAMAI TECHNOLOGIES, INC.", - [3]byte{0, 28, 162}: "ADB Broadband Italia", - [3]byte{0, 28, 163}: "Terra", - [3]byte{0, 28, 164}: "Sony Ericsson Mobile Communications", - [3]byte{0, 28, 165}: "Zygo Corporation", - [3]byte{0, 28, 166}: "Win4NET", - [3]byte{0, 28, 167}: "International Quartz Limited", - [3]byte{0, 28, 168}: "AirTies Wireless Networks", - [3]byte{0, 28, 169}: "Audiomatica Srl", - [3]byte{0, 28, 170}: "Bellon Pty Ltd", - [3]byte{0, 28, 171}: "Meyer Sound Laboratories, Inc.", - [3]byte{0, 28, 172}: "Qniq Technology Corp.", - [3]byte{0, 28, 173}: "Wuhan Telecommunication Devices Co.,Ltd", - [3]byte{0, 28, 174}: "WiChorus, Inc.", - [3]byte{0, 28, 175}: "Plato Networks Inc.", - [3]byte{0, 28, 176}: "CISCO SYSTEMS, INC.", - [3]byte{0, 28, 177}: "CISCO SYSTEMS, INC.", - [3]byte{0, 28, 178}: "BPT SPA", - [3]byte{0, 28, 179}: "Apple", - [3]byte{0, 28, 180}: "Iridium Satellite LLC", - [3]byte{0, 28, 181}: "Neihua Network Technology Co.,LTD.(NHN)", - [3]byte{0, 28, 182}: "Duzon CNT Co., Ltd.", - [3]byte{0, 28, 183}: "USC DigiArk Corporation", - [3]byte{0, 28, 184}: "CBC Co., Ltd", - [3]byte{0, 28, 185}: "KWANG SUNG ELECTRONICS CO., LTD.", - [3]byte{0, 28, 186}: "VerScient, Inc.", - [3]byte{0, 28, 187}: "MusicianLink", - [3]byte{0, 28, 188}: "CastGrabber, LLC", - [3]byte{0, 28, 189}: "Ezze Mobile Tech., Inc.", - [3]byte{0, 28, 190}: "Nintendo Co., Ltd.", - [3]byte{0, 28, 191}: "Intel Corporate", - [3]byte{0, 28, 192}: "Intel Corporate", - [3]byte{0, 28, 193}: "ARRIS Group, Inc.", - [3]byte{0, 28, 194}: "Part II Research, Inc.", - [3]byte{0, 28, 195}: "Pace plc", - [3]byte{0, 28, 196}: "Hewlett-Packard Company", - [3]byte{0, 28, 197}: "3COM LTD", - [3]byte{0, 28, 198}: "ProStor Systems", - [3]byte{0, 28, 199}: "Rembrandt Technologies, LLC d/b/a REMSTREAM", - [3]byte{0, 28, 200}: "INDUSTRONIC Industrie-Electronic GmbH & Co. KG", - [3]byte{0, 28, 201}: "Kaise Electronic Technology Co., Ltd.", - [3]byte{0, 28, 202}: "Shanghai Gaozhi Science & Technology Development Co.", - [3]byte{0, 28, 203}: "Forth Corporation Public Company Limited", - [3]byte{0, 28, 204}: "Research In Motion Limited", - [3]byte{0, 28, 205}: "Alektrona Corporation", - [3]byte{0, 28, 206}: "By Techdesign", - [3]byte{0, 28, 207}: "LIMETEK", - [3]byte{0, 28, 208}: "Circleone Co.,Ltd.", - [3]byte{0, 28, 209}: "Waves Audio LTD", - [3]byte{0, 28, 210}: "King Champion (Hong Kong) Limited", - [3]byte{0, 28, 211}: "ZP Engineering SEL", - [3]byte{0, 28, 212}: "Nokia Danmark A/S", - [3]byte{0, 28, 213}: "ZeeVee, Inc.", - [3]byte{0, 28, 214}: "Nokia Danmark A/S", - [3]byte{0, 28, 215}: "Harman/Becker Automotive Systems GmbH", - [3]byte{0, 28, 216}: "BlueAnt Wireless", - [3]byte{0, 28, 217}: "GlobalTop Technology Inc.", - [3]byte{0, 28, 218}: "Exegin Technologies Limited", - [3]byte{0, 28, 219}: "CARPOINT CO.,LTD", - [3]byte{0, 28, 220}: "Custom Computer Services, Inc.", - [3]byte{0, 28, 221}: "COWBELL ENGINEERING CO., LTD.", - [3]byte{0, 28, 222}: "Interactive Multimedia eXchange Inc.", - [3]byte{0, 28, 223}: "Belkin International Inc.", - [3]byte{0, 28, 224}: "DASAN TPS", - [3]byte{0, 28, 225}: "INDRA SISTEMAS, S.A.", - [3]byte{0, 28, 226}: "Attero Tech, LLC.", - [3]byte{0, 28, 227}: "Optimedical Systems", - [3]byte{0, 28, 228}: "EleSy JSC", - [3]byte{0, 28, 229}: "MBS Electronic Systems GmbH", - [3]byte{0, 28, 230}: "INNES", - [3]byte{0, 28, 231}: "Rocon PLC Research Centre", - [3]byte{0, 28, 232}: "Cummins Inc", - [3]byte{0, 28, 233}: "Galaxy Technology Limited", - [3]byte{0, 28, 234}: "Scientific-Atlanta, Inc", - [3]byte{0, 28, 235}: "Nortel", - [3]byte{0, 28, 236}: "Mobilesoft (Aust.) Pty Ltd", - [3]byte{0, 28, 237}: "ENVIRONNEMENT SA", - [3]byte{0, 28, 238}: "SHARP Corporation", - [3]byte{0, 28, 239}: "Primax Electronics LTD", - [3]byte{0, 28, 240}: "D-Link Corporation", - [3]byte{0, 28, 241}: "SUPoX Technology Co. , LTD.", - [3]byte{0, 28, 242}: "Tenlon Technology Co.,Ltd.", - [3]byte{0, 28, 243}: "EVS BROADCAST EQUIPMENT", - [3]byte{0, 28, 244}: "Media Technology Systems Inc", - [3]byte{0, 28, 245}: "Wiseblue Technology Limited", - [3]byte{0, 28, 246}: "CISCO SYSTEMS, INC.", - [3]byte{0, 28, 247}: "AudioScience", - [3]byte{0, 28, 248}: "Parade Technologies, Ltd.", - [3]byte{0, 28, 249}: "CISCO SYSTEMS, INC.", - [3]byte{0, 28, 250}: "Alarm.com", - [3]byte{0, 28, 251}: "ARRIS Group, Inc.", - [3]byte{0, 28, 252}: "Suminet Communication Technologies (Shanghai) Co., Ltd.", - [3]byte{0, 28, 253}: "Universal Electronics", - [3]byte{0, 28, 254}: "Quartics Inc", - [3]byte{0, 28, 255}: "Napera Networks Inc", - [3]byte{0, 29, 0}: "Brivo Systems, LLC", - [3]byte{0, 29, 1}: "Neptune Digital", - [3]byte{0, 29, 2}: "Cybertech Telecom Development", - [3]byte{0, 29, 3}: "Design Solutions Inc.", - [3]byte{0, 29, 4}: "Zipit Wireless, Inc.", - [3]byte{0, 29, 5}: "Eaton Corporation", - [3]byte{0, 29, 6}: "HM Electronics, Inc.", - [3]byte{0, 29, 7}: "Shenzhen Sang Fei Consumer Communications Co.,Ltd", - [3]byte{0, 29, 8}: "JIANGSU YINHE ELECTRONICS CO., LTD", - [3]byte{0, 29, 9}: "Dell Inc", - [3]byte{0, 29, 10}: "Davis Instruments, Inc.", - [3]byte{0, 29, 11}: "Power Standards Lab", - [3]byte{0, 29, 12}: "MobileCompia", - [3]byte{0, 29, 13}: "Sony Computer Entertainment inc.", - [3]byte{0, 29, 14}: "Agapha Technology co., Ltd.", - [3]byte{0, 29, 15}: "TP-LINK Technologies Co., Ltd.", - [3]byte{0, 29, 16}: "LightHaus Logic, Inc.", - [3]byte{0, 29, 17}: "Analogue & Micro Ltd", - [3]byte{0, 29, 18}: "ROHM CO., LTD.", - [3]byte{0, 29, 19}: "NextGTV", - [3]byte{0, 29, 20}: "SPERADTONE INFORMATION TECHNOLOGY LIMITED", - [3]byte{0, 29, 21}: "Shenzhen Dolphin Electronic Co., Ltd", - [3]byte{0, 29, 22}: "SFR", - [3]byte{0, 29, 23}: "Digital Sky Corporation", - [3]byte{0, 29, 24}: "Power Innovation GmbH", - [3]byte{0, 29, 25}: "Arcadyan Technology Corporation", - [3]byte{0, 29, 26}: "OvisLink S.A.", - [3]byte{0, 29, 27}: "Sangean Electronics Inc.", - [3]byte{0, 29, 28}: "Gennet s.a.", - [3]byte{0, 29, 29}: "Inter-M Corporation", - [3]byte{0, 29, 30}: "KYUSHU TEN CO.,LTD", - [3]byte{0, 29, 31}: "Siauliu Tauro Televizoriai, JSC", - [3]byte{0, 29, 32}: "COMTREND CO.", - [3]byte{0, 29, 33}: "Alcad SL", - [3]byte{0, 29, 34}: "Foss Analytical A/S", - [3]byte{0, 29, 35}: "SENSUS", - [3]byte{0, 29, 36}: "Aclara Power-Line Systems Inc.", - [3]byte{0, 29, 37}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 29, 38}: "Rockridgesound Technology Co.", - [3]byte{0, 29, 39}: "NAC-INTERCOM", - [3]byte{0, 29, 40}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 29, 41}: "Doro AB", - [3]byte{0, 29, 42}: "SHENZHEN BUL-TECH CO.,LTD.", - [3]byte{0, 29, 43}: "Wuhan Pont Technology CO. , LTD", - [3]byte{0, 29, 44}: "Wavetrend Technologies (Pty) Limited", - [3]byte{0, 29, 45}: "Pylone, Inc.", - [3]byte{0, 29, 46}: "Ruckus Wireless", - [3]byte{0, 29, 47}: "QuantumVision Corporation", - [3]byte{0, 29, 48}: "YX Wireless S.A.", - [3]byte{0, 29, 49}: "HIGHPRO INTERNATIONAL R&D CO,.LTD.", - [3]byte{0, 29, 50}: "Longkay Communication & Technology (Shanghai) Co. Ltd", - [3]byte{0, 29, 51}: "Maverick Systems Inc.", - [3]byte{0, 29, 52}: "SYRIS Technology Corp", - [3]byte{0, 29, 53}: "Viconics Electronics Inc.", - [3]byte{0, 29, 54}: "ELECTRONICS CORPORATION OF INDIA LIMITED", - [3]byte{0, 29, 55}: "Thales-Panda Transportation System", - [3]byte{0, 29, 56}: "Seagate Technology", - [3]byte{0, 29, 57}: "MOOHADIGITAL CO., LTD", - [3]byte{0, 29, 58}: "mh acoustics LLC", - [3]byte{0, 29, 59}: "Nokia Danmark A/S", - [3]byte{0, 29, 60}: "Muscle Corporation", - [3]byte{0, 29, 61}: "Avidyne Corporation", - [3]byte{0, 29, 62}: "SAKA TECHNO SCIENCE CO.,LTD", - [3]byte{0, 29, 63}: "Mitron Pty Ltd", - [3]byte{0, 29, 64}: "Intel – GE Care Innovations LLC", - [3]byte{0, 29, 65}: "Hardy Instruments", - [3]byte{0, 29, 66}: "Nortel", - [3]byte{0, 29, 67}: "Shenzhen G-link Digital Technology Co., Ltd.", - [3]byte{0, 29, 68}: "KROHNE Messtechnik GmbH", - [3]byte{0, 29, 69}: "CISCO SYSTEMS, INC.", - [3]byte{0, 29, 70}: "CISCO SYSTEMS, INC.", - [3]byte{0, 29, 71}: "Covote GmbH & Co KG", - [3]byte{0, 29, 72}: "Sensor-Technik Wiedemann GmbH", - [3]byte{0, 29, 73}: "Innovation Wireless Inc.", - [3]byte{0, 29, 74}: "Carestream Health, Inc.", - [3]byte{0, 29, 75}: "Grid Connect Inc.", - [3]byte{0, 29, 76}: "Alcatel-Lucent", - [3]byte{0, 29, 77}: "Adaptive Recognition Hungary, Inc", - [3]byte{0, 29, 78}: "TCM Mobile LLC", - [3]byte{0, 29, 79}: "Apple", - [3]byte{0, 29, 80}: "SPINETIX SA", - [3]byte{0, 29, 81}: "Babcock & Wilcox Power Generation Group, Inc", - [3]byte{0, 29, 82}: "Defzone B.V.", - [3]byte{0, 29, 83}: "S&O Electronics (Malaysia) Sdn. Bhd.", - [3]byte{0, 29, 84}: "Sunnic Technology & Merchandise INC.", - [3]byte{0, 29, 85}: "ZANTAZ, Inc", - [3]byte{0, 29, 86}: "Kramer Electronics Ltd.", - [3]byte{0, 29, 87}: "CAETEC Messtechnik", - [3]byte{0, 29, 88}: "CQ Inc", - [3]byte{0, 29, 89}: "Mitra Energy & Infrastructure", - [3]byte{0, 29, 90}: "2Wire Inc.", - [3]byte{0, 29, 91}: "Tecvan Informática Ltda", - [3]byte{0, 29, 92}: "Tom Communication Industrial Co.,Ltd.", - [3]byte{0, 29, 93}: "Control Dynamics Pty. Ltd.", - [3]byte{0, 29, 94}: "COMING MEDIA CORP.", - [3]byte{0, 29, 95}: "OverSpeed SARL", - [3]byte{0, 29, 96}: "ASUSTek COMPUTER INC.", - [3]byte{0, 29, 97}: "BIJ Corporation", - [3]byte{0, 29, 98}: "InPhase Technologies", - [3]byte{0, 29, 99}: "Miele & Cie. KG", - [3]byte{0, 29, 100}: "Adam Communications Systems Int Ltd", - [3]byte{0, 29, 101}: "Microwave Radio Communications", - [3]byte{0, 29, 102}: "Hyundai Telecom", - [3]byte{0, 29, 103}: "AMEC", - [3]byte{0, 29, 104}: "Thomson Telecom Belgium", - [3]byte{0, 29, 105}: "Knorr-Bremse IT-Services GmbH", - [3]byte{0, 29, 106}: "Alpha Networks Inc.", - [3]byte{0, 29, 107}: "ARRIS Group, Inc.", - [3]byte{0, 29, 108}: "ClariPhy Communications, Inc.", - [3]byte{0, 29, 109}: "Confidant International LLC", - [3]byte{0, 29, 110}: "Nokia Danmark A/S", - [3]byte{0, 29, 111}: "Chainzone Technology Co., Ltd", - [3]byte{0, 29, 112}: "CISCO SYSTEMS, INC.", - [3]byte{0, 29, 113}: "CISCO SYSTEMS, INC.", - [3]byte{0, 29, 114}: "Wistron Corporation", - [3]byte{0, 29, 115}: "Buffalo Inc.", - [3]byte{0, 29, 116}: "Tianjin China-Silicon Microelectronics Co., Ltd.", - [3]byte{0, 29, 117}: "Radioscape PLC", - [3]byte{0, 29, 118}: "Eyeheight Ltd.", - [3]byte{0, 29, 119}: "NSGate", - [3]byte{0, 29, 120}: "Invengo Information Technology Co.,Ltd", - [3]byte{0, 29, 121}: "SIGNAMAX LLC", - [3]byte{0, 29, 122}: "Wideband Semiconductor, Inc.", - [3]byte{0, 29, 123}: "Ice Energy, Inc.", - [3]byte{0, 29, 124}: "ABE Elettronica S.p.A.", - [3]byte{0, 29, 125}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{0, 29, 126}: "Cisco-Linksys, LLC", - [3]byte{0, 29, 127}: "Tekron International Ltd", - [3]byte{0, 29, 128}: "Beijing Huahuan Eletronics Co.,Ltd", - [3]byte{0, 29, 129}: "GUANGZHOU GATEWAY ELECTRONICS CO., LTD", - [3]byte{0, 29, 130}: "GN A/S (GN Netcom A/S)", - [3]byte{0, 29, 131}: "Emitech Corporation", - [3]byte{0, 29, 132}: "Gateway, Inc.", - [3]byte{0, 29, 133}: "Call Direct Cellular Solutions", - [3]byte{0, 29, 134}: "Shinwa Industries(China) Ltd.", - [3]byte{0, 29, 135}: "VigTech Labs Sdn Bhd", - [3]byte{0, 29, 136}: "Clearwire", - [3]byte{0, 29, 137}: "VaultStor Corporation", - [3]byte{0, 29, 138}: "TechTrex Inc", - [3]byte{0, 29, 139}: "ADB Broadband Italia", - [3]byte{0, 29, 140}: "La Crosse Technology LTD", - [3]byte{0, 29, 141}: "Raytek GmbH", - [3]byte{0, 29, 142}: "Alereon, Inc.", - [3]byte{0, 29, 143}: "PureWave Networks", - [3]byte{0, 29, 144}: "EMCO Flow Systems", - [3]byte{0, 29, 145}: "Digitize, Inc", - [3]byte{0, 29, 146}: "MICRO-STAR INT'L CO.,LTD.", - [3]byte{0, 29, 147}: "Modacom", - [3]byte{0, 29, 148}: "Climax Technology Co., Ltd", - [3]byte{0, 29, 149}: "Flash, Inc.", - [3]byte{0, 29, 150}: "WatchGuard Video", - [3]byte{0, 29, 151}: "Alertus Technologies LLC", - [3]byte{0, 29, 152}: "Nokia Danmark A/S", - [3]byte{0, 29, 153}: "Cyan Optic, Inc.", - [3]byte{0, 29, 154}: "GODEX INTERNATIONAL CO., LTD", - [3]byte{0, 29, 155}: "Hokuyo Automatic Co., Ltd.", - [3]byte{0, 29, 156}: "Rockwell Automation", - [3]byte{0, 29, 157}: "ARTJOY INTERNATIONAL LIMITED", - [3]byte{0, 29, 158}: "AXION TECHNOLOGIES", - [3]byte{0, 29, 159}: "MATT R.P.Traczynscy Sp.J.", - [3]byte{0, 29, 160}: "Heng Yu Electronic Manufacturing Company Limited", - [3]byte{0, 29, 161}: "CISCO SYSTEMS, INC.", - [3]byte{0, 29, 162}: "CISCO SYSTEMS, INC.", - [3]byte{0, 29, 163}: "SabiOso", - [3]byte{0, 29, 164}: "Hangzhou System Technology CO., LTD", - [3]byte{0, 29, 165}: "WB Electronics", - [3]byte{0, 29, 166}: "Media Numerics Limited", - [3]byte{0, 29, 167}: "Seamless Internet", - [3]byte{0, 29, 168}: "Takahata Electronics Co.,Ltd", - [3]byte{0, 29, 169}: "Castles Technology, Co., LTD", - [3]byte{0, 29, 170}: "DrayTek Corp.", - [3]byte{0, 29, 171}: "SwissQual License AG", - [3]byte{0, 29, 172}: "Gigamon Systems LLC", - [3]byte{0, 29, 173}: "Sinotech Engineering Consultants, Inc. Geotechnical Enginee", - [3]byte{0, 29, 174}: "CHANG TSENG TECHNOLOGY CO., LTD", - [3]byte{0, 29, 175}: "Nortel", - [3]byte{0, 29, 176}: "FuJian HengTong Information Technology Co.,Ltd", - [3]byte{0, 29, 177}: "Crescendo Networks", - [3]byte{0, 29, 178}: "HOKKAIDO ELECTRIC ENGINEERING CO.,LTD.", - [3]byte{0, 29, 179}: "HPN Supply Chain", - [3]byte{0, 29, 180}: "KUMHO ENG CO.,LTD", - [3]byte{0, 29, 181}: "Juniper networks", - [3]byte{0, 29, 182}: "BestComm Networks, Inc.", - [3]byte{0, 29, 183}: "Tendril Networks, Inc.", - [3]byte{0, 29, 184}: "Intoto Inc.", - [3]byte{0, 29, 185}: "Wellspring Wireless", - [3]byte{0, 29, 186}: "Sony Corporation", - [3]byte{0, 29, 187}: "Dynamic System Electronics Corp.", - [3]byte{0, 29, 188}: "Nintendo Co., Ltd.", - [3]byte{0, 29, 189}: "Versamed Inc.", - [3]byte{0, 29, 190}: "ARRIS Group, Inc.", - [3]byte{0, 29, 191}: "Radiient Technologies, Inc.", - [3]byte{0, 29, 192}: "Enphase Energy", - [3]byte{0, 29, 193}: "Audinate Pty L", - [3]byte{0, 29, 194}: "XORTEC OY", - [3]byte{0, 29, 195}: "RIKOR TV, Ltd", - [3]byte{0, 29, 196}: "AIOI Systems Co., Ltd.", - [3]byte{0, 29, 197}: "Beijing Jiaxun Feihong Electricial Co., Ltd.", - [3]byte{0, 29, 198}: "SNR Inc.", - [3]byte{0, 29, 199}: "L-3 Communications Geneva Aerospace", - [3]byte{0, 29, 200}: "Navionics Research Inc., dba SCADAmetrics", - [3]byte{0, 29, 201}: "GainSpan Corp.", - [3]byte{0, 29, 202}: "PAV Electronics Limited", - [3]byte{0, 29, 203}: "Exéns Development Oy", - [3]byte{0, 29, 204}: "Hetra Secure Solutions", - [3]byte{0, 29, 205}: "ARRIS Group, Inc.", - [3]byte{0, 29, 206}: "ARRIS Group, Inc.", - [3]byte{0, 29, 207}: "ARRIS Group, Inc.", - [3]byte{0, 29, 208}: "ARRIS Group, Inc.", - [3]byte{0, 29, 209}: "ARRIS Group, Inc.", - [3]byte{0, 29, 210}: "ARRIS Group, Inc.", - [3]byte{0, 29, 211}: "ARRIS Group, Inc.", - [3]byte{0, 29, 212}: "ARRIS Group, Inc.", - [3]byte{0, 29, 213}: "ARRIS Group, Inc.", - [3]byte{0, 29, 214}: "ARRIS Group, Inc.", - [3]byte{0, 29, 215}: "Algolith", - [3]byte{0, 29, 216}: "Microsoft Corporation", - [3]byte{0, 29, 217}: "Hon Hai Precision Ind.Co.,Ltd.", - [3]byte{0, 29, 218}: "Mikroelektronika spol. s r. o.", - [3]byte{0, 29, 219}: "C-BEL Corporation", - [3]byte{0, 29, 220}: "HangZhou DeChangLong Tech&Info Co.,Ltd", - [3]byte{0, 29, 221}: "DAT H.K. LIMITED", - [3]byte{0, 29, 222}: "Zhejiang Broadcast&Television Technology Co.,Ltd.", - [3]byte{0, 29, 223}: "Sunitec Enterprise Co., Ltd.", - [3]byte{0, 29, 224}: "Intel Corporate", - [3]byte{0, 29, 225}: "Intel Corporate", - [3]byte{0, 29, 226}: "Radionor Communications", - [3]byte{0, 29, 227}: "Intuicom", - [3]byte{0, 29, 228}: "Visioneered Image Systems", - [3]byte{0, 29, 229}: "CISCO SYSTEMS, INC.", - [3]byte{0, 29, 230}: "CISCO SYSTEMS, INC.", - [3]byte{0, 29, 231}: "Marine Sonic Technology, Ltd.", - [3]byte{0, 29, 232}: "Nikko Denki Tsushin Corporation(NDTC)", - [3]byte{0, 29, 233}: "Nokia Danmark A/S", - [3]byte{0, 29, 234}: "Commtest Instruments Ltd", - [3]byte{0, 29, 235}: "DINEC International", - [3]byte{0, 29, 236}: "Marusys", - [3]byte{0, 29, 237}: "Grid Net, Inc.", - [3]byte{0, 29, 238}: "NEXTVISION SISTEMAS DIGITAIS DE TELEVISÃO LTDA.", - [3]byte{0, 29, 239}: "TRIMM, INC.", - [3]byte{0, 29, 240}: "Vidient Systems, Inc.", - [3]byte{0, 29, 241}: "Intego Systems, Inc.", - [3]byte{0, 29, 242}: "Netflix, Inc.", - [3]byte{0, 29, 243}: "SBS Science & Technology Co., Ltd", - [3]byte{0, 29, 244}: "Magellan Technology Pty Limited", - [3]byte{0, 29, 245}: "Sunshine Co,LTD", - [3]byte{0, 29, 246}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 29, 247}: "R. STAHL Schaltgeräte GmbH", - [3]byte{0, 29, 248}: "Webpro Vision Technology Corporation", - [3]byte{0, 29, 249}: "Cybiotronics (Far East) Limited", - [3]byte{0, 29, 250}: "Fujian LANDI Commercial Equipment Co.,Ltd", - [3]byte{0, 29, 251}: "NETCLEUS Systems Corporation", - [3]byte{0, 29, 252}: "KSIC", - [3]byte{0, 29, 253}: "Nokia Danmark A/S", - [3]byte{0, 29, 254}: "Palm, Inc", - [3]byte{0, 29, 255}: "Network Critical Solutions Ltd", - [3]byte{0, 30, 0}: "Shantou Institute of Ultrasonic Instruments", - [3]byte{0, 30, 1}: "Renesas Technology Sales Co., Ltd.", - [3]byte{0, 30, 2}: "Sougou Keikaku Kougyou Co.,Ltd.", - [3]byte{0, 30, 3}: "LiComm Co., Ltd.", - [3]byte{0, 30, 4}: "Hanson Research Corporation", - [3]byte{0, 30, 5}: "Xseed Technologies & Computing", - [3]byte{0, 30, 6}: "WIBRAIN", - [3]byte{0, 30, 7}: "Winy Technology Co., Ltd.", - [3]byte{0, 30, 8}: "Centec Networks Inc", - [3]byte{0, 30, 9}: "ZEFATEK Co.,LTD", - [3]byte{0, 30, 10}: "Syba Tech Limited", - [3]byte{0, 30, 11}: "Hewlett-Packard Company", - [3]byte{0, 30, 12}: "Sherwood Information Partners, Inc.", - [3]byte{0, 30, 13}: "Micran Ltd.", - [3]byte{0, 30, 14}: "MAXI VIEW HOLDINGS LIMITED", - [3]byte{0, 30, 15}: "Briot International", - [3]byte{0, 30, 16}: "ShenZhen Huawei Communication Technologies Co.,Ltd.", - [3]byte{0, 30, 17}: "ELELUX INTERNATIONAL LTD", - [3]byte{0, 30, 18}: "Ecolab", - [3]byte{0, 30, 19}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 20}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 21}: "Beech Hill Electronics", - [3]byte{0, 30, 22}: "Keytronix", - [3]byte{0, 30, 23}: "STN BV", - [3]byte{0, 30, 24}: "Radio Activity srl", - [3]byte{0, 30, 25}: "GTRI", - [3]byte{0, 30, 26}: "Best Source Taiwan Inc.", - [3]byte{0, 30, 27}: "Digital Stream Technology, Inc.", - [3]byte{0, 30, 28}: "SWS Australia Pty Limited", - [3]byte{0, 30, 29}: "East Coast Datacom, Inc.", - [3]byte{0, 30, 30}: "Honeywell Life Safety", - [3]byte{0, 30, 31}: "Nortel", - [3]byte{0, 30, 32}: "Intertain Inc.", - [3]byte{0, 30, 33}: "Qisda Co.", - [3]byte{0, 30, 34}: "ARVOO Imaging Products BV", - [3]byte{0, 30, 35}: "Electronic Educational Devices, Inc", - [3]byte{0, 30, 36}: "Zhejiang Bell Technology Co.,ltd", - [3]byte{0, 30, 37}: "Intek Digital Inc", - [3]byte{0, 30, 38}: "Digifriends Co. Ltd", - [3]byte{0, 30, 39}: "SBN TECH Co.,Ltd.", - [3]byte{0, 30, 40}: "Lumexis Corporation", - [3]byte{0, 30, 41}: "Hypertherm Inc", - [3]byte{0, 30, 42}: "Netgear Inc.", - [3]byte{0, 30, 43}: "Radio Systems Design, Inc.", - [3]byte{0, 30, 44}: "CyVerse Corporation", - [3]byte{0, 30, 45}: "STIM", - [3]byte{0, 30, 46}: "SIRTI S.p.A.", - [3]byte{0, 30, 47}: "DiMoto Pty Ltd", - [3]byte{0, 30, 48}: "Shireen Inc", - [3]byte{0, 30, 49}: "INFOMARK CO.,LTD.", - [3]byte{0, 30, 50}: "Zensys", - [3]byte{0, 30, 51}: "Inventec Corporation", - [3]byte{0, 30, 52}: "CryptoMetrics", - [3]byte{0, 30, 53}: "Nintendo Co., Ltd.", - [3]byte{0, 30, 54}: "IPTE", - [3]byte{0, 30, 55}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{0, 30, 56}: "Bluecard Software Technology Co., Ltd.", - [3]byte{0, 30, 57}: "Comsys Communication Ltd.", - [3]byte{0, 30, 58}: "Nokia Danmark A/S", - [3]byte{0, 30, 59}: "Nokia Danmark A/S", - [3]byte{0, 30, 60}: "Lyngbox Media AB", - [3]byte{0, 30, 61}: "Alps Electric Co., Ltd", - [3]byte{0, 30, 62}: "KMW Inc.", - [3]byte{0, 30, 63}: "TrellisWare Technologies, Inc.", - [3]byte{0, 30, 64}: "Shanghai DareGlobal Technologies Co.,Ltd.", - [3]byte{0, 30, 65}: "Microwave Communication & Component, Inc.", - [3]byte{0, 30, 66}: "Teltonika", - [3]byte{0, 30, 67}: "AISIN AW CO.,LTD.", - [3]byte{0, 30, 68}: "SANTEC", - [3]byte{0, 30, 69}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 30, 70}: "ARRIS Group, Inc.", - [3]byte{0, 30, 71}: "PT. Hariff Daya Tunggal Engineering", - [3]byte{0, 30, 72}: "Wi-Links", - [3]byte{0, 30, 73}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 74}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 75}: "City Theatrical", - [3]byte{0, 30, 76}: "Hon Hai Precision Ind.Co., Ltd.", - [3]byte{0, 30, 77}: "Welkin Sciences, LLC", - [3]byte{0, 30, 78}: "DAKO EDV-Ingenieur- und Systemhaus GmbH", - [3]byte{0, 30, 79}: "Dell Inc.", - [3]byte{0, 30, 80}: "BATTISTONI RESEARCH", - [3]byte{0, 30, 81}: "Converter Industry Srl", - [3]byte{0, 30, 82}: "Apple", - [3]byte{0, 30, 83}: "Further Tech Co., LTD", - [3]byte{0, 30, 84}: "TOYO ELECTRIC Corporation", - [3]byte{0, 30, 85}: "COWON SYSTEMS,Inc.", - [3]byte{0, 30, 86}: "Bally Wulff Entertainment GmbH", - [3]byte{0, 30, 87}: "ALCOMA, spol. s r.o.", - [3]byte{0, 30, 88}: "D-Link Corporation", - [3]byte{0, 30, 89}: "Silicon Turnkey Express, LLC", - [3]byte{0, 30, 90}: "ARRIS Group, Inc.", - [3]byte{0, 30, 91}: "Unitron Company, Inc.", - [3]byte{0, 30, 92}: "RB GeneralEkonomik", - [3]byte{0, 30, 93}: "Holosys d.o.o.", - [3]byte{0, 30, 94}: "COmputime Ltd.", - [3]byte{0, 30, 95}: "KwikByte, LLC", - [3]byte{0, 30, 96}: "Digital Lighting Systems, Inc", - [3]byte{0, 30, 97}: "ITEC GmbH", - [3]byte{0, 30, 98}: "Siemon", - [3]byte{0, 30, 99}: "Vibro-Meter SA", - [3]byte{0, 30, 100}: "Intel Corporate", - [3]byte{0, 30, 101}: "Intel Corporate", - [3]byte{0, 30, 102}: "RESOL Elektronische Regelungen GmbH", - [3]byte{0, 30, 103}: "Intel Corporate", - [3]byte{0, 30, 104}: "Quanta Computer", - [3]byte{0, 30, 105}: "Thomson Inc.", - [3]byte{0, 30, 106}: "Beijing Bluexon Technology Co.,Ltd", - [3]byte{0, 30, 107}: "Cisco SPVTG", - [3]byte{0, 30, 108}: "Opaque Systems", - [3]byte{0, 30, 109}: "IT R&D Center", - [3]byte{0, 30, 110}: "Shenzhen First Mile Communications Ltd", - [3]byte{0, 30, 111}: "Magna-Power Electronics, Inc.", - [3]byte{0, 30, 112}: "Cobham Defence Communications Ltd", - [3]byte{0, 30, 113}: "MIrcom Group of Companies", - [3]byte{0, 30, 114}: "PCS", - [3]byte{0, 30, 115}: "ZTE CORPORATION", - [3]byte{0, 30, 116}: "SAGEM COMMUNICATION", - [3]byte{0, 30, 117}: "LG Electronics", - [3]byte{0, 30, 118}: "Thermo Fisher Scientific", - [3]byte{0, 30, 119}: "Air2App", - [3]byte{0, 30, 120}: "Owitek Technology Ltd.,", - [3]byte{0, 30, 121}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 122}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 123}: "R.I.CO. S.r.l.", - [3]byte{0, 30, 124}: "Taiwick Limited", - [3]byte{0, 30, 125}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 30, 126}: "Nortel", - [3]byte{0, 30, 127}: "CBM of America", - [3]byte{0, 30, 128}: "Last Mile Ltd.", - [3]byte{0, 30, 129}: "CNB Technology Inc.", - [3]byte{0, 30, 130}: "SanDisk Corporation", - [3]byte{0, 30, 131}: "LAN/MAN Standards Association (LMSC)", - [3]byte{0, 30, 132}: "Pika Technologies Inc.", - [3]byte{0, 30, 133}: "Lagotek Corporation", - [3]byte{0, 30, 134}: "MEL Co.,Ltd.", - [3]byte{0, 30, 135}: "Realease Limited", - [3]byte{0, 30, 136}: "ANDOR SYSTEM SUPPORT CO., LTD.", - [3]byte{0, 30, 137}: "CRFS Limited", - [3]byte{0, 30, 138}: "eCopy, Inc", - [3]byte{0, 30, 139}: "Infra Access Korea Co., Ltd.", - [3]byte{0, 30, 140}: "ASUSTek COMPUTER INC.", - [3]byte{0, 30, 141}: "ARRIS Group, Inc.", - [3]byte{0, 30, 142}: "Hunkeler AG", - [3]byte{0, 30, 143}: "CANON INC.", - [3]byte{0, 30, 144}: "Elitegroup Computer Systems Co", - [3]byte{0, 30, 145}: "KIMIN Electronic Co., Ltd.", - [3]byte{0, 30, 146}: "JEULIN S.A.", - [3]byte{0, 30, 147}: "CiriTech Systems Inc", - [3]byte{0, 30, 148}: "SUPERCOM TECHNOLOGY CORPORATION", - [3]byte{0, 30, 149}: "SIGMALINK", - [3]byte{0, 30, 150}: "Sepura Plc", - [3]byte{0, 30, 151}: "Medium Link System Technology CO., LTD,", - [3]byte{0, 30, 152}: "GreenLine Communications", - [3]byte{0, 30, 153}: "Vantanol Industrial Corporation", - [3]byte{0, 30, 154}: "HAMILTON Bonaduz AG", - [3]byte{0, 30, 155}: "San-Eisha, Ltd.", - [3]byte{0, 30, 156}: "Fidustron INC", - [3]byte{0, 30, 157}: "Recall Technologies, Inc.", - [3]byte{0, 30, 158}: "ddm hopt + schuler Gmbh + Co. KG", - [3]byte{0, 30, 159}: "Visioneering Systems, Inc.", - [3]byte{0, 30, 160}: "XLN-t", - [3]byte{0, 30, 161}: "Brunata a/s", - [3]byte{0, 30, 162}: "Symx Systems, Inc.", - [3]byte{0, 30, 163}: "Nokia Danmark A/S", - [3]byte{0, 30, 164}: "Nokia Danmark A/S", - [3]byte{0, 30, 165}: "ROBOTOUS, Inc.", - [3]byte{0, 30, 166}: "Best IT World (India) Pvt. Ltd.", - [3]byte{0, 30, 167}: "ActionTec Electronics, Inc", - [3]byte{0, 30, 168}: "Datang Mobile Communications Equipment CO.,LTD", - [3]byte{0, 30, 169}: "Nintendo Co., Ltd.", - [3]byte{0, 30, 170}: "E-Senza Technologies GmbH", - [3]byte{0, 30, 171}: "TeleWell Oy", - [3]byte{0, 30, 172}: "Armadeus Systems", - [3]byte{0, 30, 173}: "Wingtech Group Limited", - [3]byte{0, 30, 174}: "Continental Automotive Systems", - [3]byte{0, 30, 175}: "Ophir Optronics Ltd", - [3]byte{0, 30, 176}: "ImesD Electronica S.L.", - [3]byte{0, 30, 177}: "Cryptsoft Pty Ltd", - [3]byte{0, 30, 178}: "LG innotek", - [3]byte{0, 30, 179}: "Primex Wireless", - [3]byte{0, 30, 180}: "UNIFAT TECHNOLOGY LTD.", - [3]byte{0, 30, 181}: "Ever Sparkle Technologies Ltd", - [3]byte{0, 30, 182}: "TAG Heuer SA", - [3]byte{0, 30, 183}: "TBTech, Co., Ltd.", - [3]byte{0, 30, 184}: "Fortis, Inc.", - [3]byte{0, 30, 185}: "Sing Fai Technology Limited", - [3]byte{0, 30, 186}: "High Density Devices AS", - [3]byte{0, 30, 187}: "BLUELIGHT TECHNOLOGY INC.", - [3]byte{0, 30, 188}: "WINTECH AUTOMATION CO.,LTD.", - [3]byte{0, 30, 189}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 190}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 191}: "Haas Automation Inc.", - [3]byte{0, 30, 192}: "Microchip Technology Inc.", - [3]byte{0, 30, 193}: "3COM EUROPE LTD", - [3]byte{0, 30, 194}: "Apple", - [3]byte{0, 30, 195}: "Kozio, Inc.", - [3]byte{0, 30, 196}: "Celio Corp", - [3]byte{0, 30, 197}: "Middle Atlantic Products Inc", - [3]byte{0, 30, 198}: "Obvius Holdings LLC", - [3]byte{0, 30, 199}: "2Wire, Inc.", - [3]byte{0, 30, 200}: "Rapid Mobile (Pty) Ltd", - [3]byte{0, 30, 201}: "Dell Inc", - [3]byte{0, 30, 202}: "Nortel", - [3]byte{0, 30, 203}: "\"RPC \"Energoautomatika\" Ltd", - [3]byte{0, 30, 204}: "CDVI", - [3]byte{0, 30, 205}: "KYLAND Technology Co. LTD", - [3]byte{0, 30, 206}: "BISA Technologies (Hong Kong) Limited", - [3]byte{0, 30, 207}: "PHILIPS ELECTRONICS UK LTD", - [3]byte{0, 30, 208}: "Ingespace", - [3]byte{0, 30, 209}: "Keyprocessor B.V.", - [3]byte{0, 30, 210}: "Ray Shine Video Technology Inc", - [3]byte{0, 30, 211}: "Dot Technology Int'l Co., Ltd.", - [3]byte{0, 30, 212}: "Doble Engineering", - [3]byte{0, 30, 213}: "Tekon-Automatics", - [3]byte{0, 30, 214}: "Alentec & Orion AB", - [3]byte{0, 30, 215}: "H-Stream Wireless, Inc.", - [3]byte{0, 30, 216}: "Digital United Inc.", - [3]byte{0, 30, 217}: "Mitsubishi Precision Co.,LTd.", - [3]byte{0, 30, 218}: "Wesemann Elektrotechniek B.V.", - [3]byte{0, 30, 219}: "Giken Trastem Co., Ltd.", - [3]byte{0, 30, 220}: "Sony Ericsson Mobile Communications AB", - [3]byte{0, 30, 221}: "WASKO S.A.", - [3]byte{0, 30, 222}: "BYD COMPANY LIMITED", - [3]byte{0, 30, 223}: "Master Industrialization Center Kista", - [3]byte{0, 30, 224}: "Urmet Domus SpA", - [3]byte{0, 30, 225}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 30, 226}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 30, 227}: "T&W Electronics (ShenZhen) Co.,Ltd", - [3]byte{0, 30, 228}: "ACS Solutions France", - [3]byte{0, 30, 229}: "Cisco-Linksys, LLC", - [3]byte{0, 30, 230}: "Shenzhen Advanced Video Info-Tech Co., Ltd.", - [3]byte{0, 30, 231}: "Epic Systems Inc", - [3]byte{0, 30, 232}: "Mytek", - [3]byte{0, 30, 233}: "Stoneridge Electronics AB", - [3]byte{0, 30, 234}: "Sensor Switch, Inc.", - [3]byte{0, 30, 235}: "Talk-A-Phone Co.", - [3]byte{0, 30, 236}: "COMPAL INFORMATION (KUNSHAN) CO., LTD.", - [3]byte{0, 30, 237}: "Adventiq Ltd.", - [3]byte{0, 30, 238}: "ETL Systems Ltd", - [3]byte{0, 30, 239}: "Cantronic International Limited", - [3]byte{0, 30, 240}: "Gigafin Networks", - [3]byte{0, 30, 241}: "Servimat", - [3]byte{0, 30, 242}: "Micro Motion Inc", - [3]byte{0, 30, 243}: "From2", - [3]byte{0, 30, 244}: "L-3 Communications Display Systems", - [3]byte{0, 30, 245}: "Hitek Automated Inc.", - [3]byte{0, 30, 246}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 247}: "CISCO SYSTEMS, INC.", - [3]byte{0, 30, 248}: "Emfinity Inc.", - [3]byte{0, 30, 249}: "Pascom Kommunikations systeme GmbH.", - [3]byte{0, 30, 250}: "PROTEI Ltd.", - [3]byte{0, 30, 251}: "Trio Motion Technology Ltd", - [3]byte{0, 30, 252}: "JSC \"MASSA-K\"", - [3]byte{0, 30, 253}: "Microbit 2.0 AB", - [3]byte{0, 30, 254}: "LEVEL s.r.o.", - [3]byte{0, 30, 255}: "Mueller-Elektronik GmbH & Co. KG", - [3]byte{0, 31, 0}: "Nokia Danmark A/S", - [3]byte{0, 31, 1}: "Nokia Danmark A/S", - [3]byte{0, 31, 2}: "Pixelmetrix Corporation Pte Ltd", - [3]byte{0, 31, 3}: "NUM AG", - [3]byte{0, 31, 4}: "Granch Ltd.", - [3]byte{0, 31, 5}: "iTAS Technology Corp.", - [3]byte{0, 31, 6}: "Integrated Dispatch Solutions", - [3]byte{0, 31, 7}: "AZTEQ Mobile", - [3]byte{0, 31, 8}: "RISCO LTD", - [3]byte{0, 31, 9}: "JASTEC CO., LTD.", - [3]byte{0, 31, 10}: "Nortel", - [3]byte{0, 31, 11}: "Federal State Unitary Enterprise Industrial Union\"Electropribor\"", - [3]byte{0, 31, 12}: "Intelligent Digital Services GmbH", - [3]byte{0, 31, 13}: "L3 Communications - Telemetry West", - [3]byte{0, 31, 14}: "Japan Kyastem Co., Ltd", - [3]byte{0, 31, 15}: "Select Engineered Systems", - [3]byte{0, 31, 16}: "TOLEDO DO BRASIL INDUSTRIA DE BALANCAS LTDA", - [3]byte{0, 31, 17}: "OPENMOKO, INC.", - [3]byte{0, 31, 18}: "Juniper Networks", - [3]byte{0, 31, 19}: "S.& A.S. Ltd.", - [3]byte{0, 31, 20}: "NexG", - [3]byte{0, 31, 21}: "Bioscrypt Inc", - [3]byte{0, 31, 22}: "Wistron Corporation", - [3]byte{0, 31, 23}: "IDX Company, Ltd.", - [3]byte{0, 31, 24}: "Hakusan.Mfg.Co,.Ltd", - [3]byte{0, 31, 25}: "BEN-RI ELECTRONICA S.A.", - [3]byte{0, 31, 26}: "Prominvest", - [3]byte{0, 31, 27}: "RoyalTek Company Ltd.", - [3]byte{0, 31, 28}: "KOBISHI ELECTRIC Co.,Ltd.", - [3]byte{0, 31, 29}: "Atlas Material Testing Technology LLC", - [3]byte{0, 31, 30}: "Astec Technology Co., Ltd", - [3]byte{0, 31, 31}: "Edimax Technology Co. Ltd.", - [3]byte{0, 31, 32}: "Logitech Europe SA", - [3]byte{0, 31, 33}: "Inner Mongolia Yin An Science & Technology Development Co.,L", - [3]byte{0, 31, 34}: "Source Photonics, Inc.", - [3]byte{0, 31, 35}: "Interacoustics", - [3]byte{0, 31, 36}: "DIGITVIEW TECHNOLOGY CO., LTD.", - [3]byte{0, 31, 37}: "MBS GmbH", - [3]byte{0, 31, 38}: "CISCO SYSTEMS, INC.", - [3]byte{0, 31, 39}: "CISCO SYSTEMS, INC.", - [3]byte{0, 31, 40}: "HPN Supply Chain", - [3]byte{0, 31, 41}: "Hewlett-Packard Company", - [3]byte{0, 31, 42}: "ACCM", - [3]byte{0, 31, 43}: "Orange Logic", - [3]byte{0, 31, 44}: "Starbridge Networks", - [3]byte{0, 31, 45}: "Electro-Optical Imaging, Inc.", - [3]byte{0, 31, 46}: "Triangle Research Int'l Pte Ltd", - [3]byte{0, 31, 47}: "Berker GmbH & Co. KG", - [3]byte{0, 31, 48}: "Travelping", - [3]byte{0, 31, 49}: "Radiocomp", - [3]byte{0, 31, 50}: "Nintendo Co., Ltd.", - [3]byte{0, 31, 51}: "Netgear Inc.", - [3]byte{0, 31, 52}: "Lung Hwa Electronics Co., Ltd.", - [3]byte{0, 31, 53}: "AIR802 LLC", - [3]byte{0, 31, 54}: "Bellwin Information Co. Ltd.,", - [3]byte{0, 31, 55}: "Genesis I&C", - [3]byte{0, 31, 56}: "POSITRON", - [3]byte{0, 31, 57}: "Construcciones y Auxiliar de Ferrocarriles, S.A.", - [3]byte{0, 31, 58}: "Hon Hai Precision Ind.Co., Ltd.", - [3]byte{0, 31, 59}: "Intel Corporate", - [3]byte{0, 31, 60}: "Intel Corporate", - [3]byte{0, 31, 61}: "Qbit GmbH", - [3]byte{0, 31, 62}: "RP-Technik e.K.", - [3]byte{0, 31, 63}: "AVM GmbH", - [3]byte{0, 31, 64}: "Speakercraft Inc.", - [3]byte{0, 31, 65}: "Ruckus Wireless", - [3]byte{0, 31, 66}: "Etherstack plc", - [3]byte{0, 31, 67}: "ENTES ELEKTRONIK", - [3]byte{0, 31, 68}: "GE Transportation Systems", - [3]byte{0, 31, 69}: "Enterasys", - [3]byte{0, 31, 70}: "Nortel", - [3]byte{0, 31, 71}: "MCS Logic Inc.", - [3]byte{0, 31, 72}: "Mojix Inc.", - [3]byte{0, 31, 73}: "Eurosat Distribution Ltd", - [3]byte{0, 31, 74}: "Albentia Systems S.A.", - [3]byte{0, 31, 75}: "Lineage Power", - [3]byte{0, 31, 76}: "Roseman Engineering Ltd", - [3]byte{0, 31, 77}: "Segnetics LLC", - [3]byte{0, 31, 78}: "ConMed Linvatec", - [3]byte{0, 31, 79}: "Thinkware Co. Ltd.", - [3]byte{0, 31, 80}: "Swissdis AG", - [3]byte{0, 31, 81}: "HD Communications Corp", - [3]byte{0, 31, 82}: "UVT Unternehmensberatung fur Verkehr und Technik GmbH", - [3]byte{0, 31, 83}: "GEMAC Gesellschaft für Mikroelektronikanwendung Chemnitz mbH", - [3]byte{0, 31, 84}: "Lorex Technology Inc.", - [3]byte{0, 31, 85}: "Honeywell Security (China) Co., Ltd.", - [3]byte{0, 31, 86}: "DIGITAL FORECAST", - [3]byte{0, 31, 87}: "Phonik Innovation Co.,LTD", - [3]byte{0, 31, 88}: "EMH Energiemesstechnik GmbH", - [3]byte{0, 31, 89}: "Kronback Tracers", - [3]byte{0, 31, 90}: "Beckwith Electric Co.", - [3]byte{0, 31, 91}: "Apple", - [3]byte{0, 31, 92}: "Nokia Danmark A/S", - [3]byte{0, 31, 93}: "Nokia Danmark A/S", - [3]byte{0, 31, 94}: "Dyna Technology Co.,Ltd.", - [3]byte{0, 31, 95}: "Blatand GmbH", - [3]byte{0, 31, 96}: "COMPASS SYSTEMS CORP.", - [3]byte{0, 31, 97}: "Talent Communication Networks Inc.", - [3]byte{0, 31, 98}: "JSC \"Stilsoft\"", - [3]byte{0, 31, 99}: "JSC Goodwin-Europa", - [3]byte{0, 31, 100}: "Beijing Autelan Technology Inc.", - [3]byte{0, 31, 101}: "KOREA ELECTRIC TERMINAL CO., LTD.", - [3]byte{0, 31, 102}: "PLANAR LLC", - [3]byte{0, 31, 103}: "Hitachi,Ltd.", - [3]byte{0, 31, 104}: "Martinsson Elektronik AB", - [3]byte{0, 31, 105}: "Pingood Technology Co., Ltd.", - [3]byte{0, 31, 106}: "PacketFlux Technologies, Inc.", - [3]byte{0, 31, 107}: "LG Electronics", - [3]byte{0, 31, 108}: "CISCO SYSTEMS, INC.", - [3]byte{0, 31, 109}: "CISCO SYSTEMS, INC.", - [3]byte{0, 31, 110}: "Vtech Engineering Corporation", - [3]byte{0, 31, 111}: "Fujian Sunnada Communication Co.,Ltd.", - [3]byte{0, 31, 112}: "Botik Technologies LTD", - [3]byte{0, 31, 113}: "xG Technology, Inc.", - [3]byte{0, 31, 114}: "QingDao Hiphone Technology Co,.Ltd", - [3]byte{0, 31, 115}: "Teraview Technology Co., Ltd.", - [3]byte{0, 31, 116}: "Eigen Development", - [3]byte{0, 31, 117}: "GiBahn Media", - [3]byte{0, 31, 118}: "AirLogic Systems Inc.", - [3]byte{0, 31, 119}: "HEOL DESIGN", - [3]byte{0, 31, 120}: "Blue Fox Porini Textile", - [3]byte{0, 31, 121}: "Lodam Electronics A/S", - [3]byte{0, 31, 122}: "WiWide Inc.", - [3]byte{0, 31, 123}: "TechNexion Ltd.", - [3]byte{0, 31, 124}: "Witelcom AS", - [3]byte{0, 31, 125}: "embedded wireless GmbH", - [3]byte{0, 31, 126}: "ARRIS Group, Inc.", - [3]byte{0, 31, 127}: "Phabrix Limited", - [3]byte{0, 31, 128}: "Lucas Holding bv", - [3]byte{0, 31, 129}: "Accel Semiconductor Corp", - [3]byte{0, 31, 130}: "Cal-Comp Electronics & Communications Co., Ltd", - [3]byte{0, 31, 131}: "Teleplan Technology Services Sdn Bhd", - [3]byte{0, 31, 132}: "Gigle Semiconductor", - [3]byte{0, 31, 133}: "Apriva ISS, LLC", - [3]byte{0, 31, 134}: "digEcor", - [3]byte{0, 31, 135}: "Skydigital Inc.", - [3]byte{0, 31, 136}: "FMS Force Measuring Systems AG", - [3]byte{0, 31, 137}: "Signalion GmbH", - [3]byte{0, 31, 138}: "Ellion Digital Inc.", - [3]byte{0, 31, 139}: "Cache IQ", - [3]byte{0, 31, 140}: "CCS Inc.", - [3]byte{0, 31, 141}: "Ingenieurbuero Stark GmbH und Ko. KG", - [3]byte{0, 31, 142}: "Metris USA Inc.", - [3]byte{0, 31, 143}: "Shanghai Bellmann Digital Source Co.,Ltd.", - [3]byte{0, 31, 144}: "Actiontec Electronics, Inc", - [3]byte{0, 31, 145}: "DBS Lodging Technologies, LLC", - [3]byte{0, 31, 146}: "VideoIQ, Inc.", - [3]byte{0, 31, 147}: "Xiotech Corporation", - [3]byte{0, 31, 148}: "Lascar Electronics Ltd", - [3]byte{0, 31, 149}: "SAGEM COMMUNICATION", - [3]byte{0, 31, 150}: "APROTECH CO.LTD", - [3]byte{0, 31, 151}: "BERTANA SRL", - [3]byte{0, 31, 152}: "DAIICHI-DENTSU LTD.", - [3]byte{0, 31, 153}: "SERONICS co.ltd", - [3]byte{0, 31, 154}: "Nortel Networks", - [3]byte{0, 31, 155}: "POSBRO", - [3]byte{0, 31, 156}: "LEDCO", - [3]byte{0, 31, 157}: "CISCO SYSTEMS, INC.", - [3]byte{0, 31, 158}: "CISCO SYSTEMS, INC.", - [3]byte{0, 31, 159}: "Thomson Telecom Belgium", - [3]byte{0, 31, 160}: "A10 Networks", - [3]byte{0, 31, 161}: "Gtran Inc", - [3]byte{0, 31, 162}: "Datron World Communications, Inc.", - [3]byte{0, 31, 163}: "T&W Electronics(Shenzhen)Co.,Ltd.", - [3]byte{0, 31, 164}: "ShenZhen Gongjin Electronics Co.,Ltd", - [3]byte{0, 31, 165}: "Blue-White Industries", - [3]byte{0, 31, 166}: "Stilo srl", - [3]byte{0, 31, 167}: "Sony Computer Entertainment Inc.", - [3]byte{0, 31, 168}: "Smart Energy Instruments Inc.", - [3]byte{0, 31, 169}: "Atlanta DTH, Inc.", - [3]byte{0, 31, 170}: "Taseon, Inc.", - [3]byte{0, 31, 171}: "I.S HIGH TECH.INC", - [3]byte{0, 31, 172}: "Goodmill Systems Ltd", - [3]byte{0, 31, 173}: "Brown Innovations, Inc", - [3]byte{0, 31, 174}: "Blick South Africa (Pty) Ltd", - [3]byte{0, 31, 175}: "NextIO, Inc.", - [3]byte{0, 31, 176}: "TimeIPS, Inc.", - [3]byte{0, 31, 177}: "Cybertech Inc.", - [3]byte{0, 31, 178}: "Sontheim Industrie Elektronik GmbH", - [3]byte{0, 31, 179}: "2Wire", - [3]byte{0, 31, 180}: "SmartShare Systems", - [3]byte{0, 31, 181}: "I/O Interconnect Inc.", - [3]byte{0, 31, 182}: "Chi Lin Technology Co., Ltd.", - [3]byte{0, 31, 183}: "WiMate Technologies Corp.", - [3]byte{0, 31, 184}: "Universal Remote Control, Inc.", - [3]byte{0, 31, 185}: "Paltronics", - [3]byte{0, 31, 186}: "BoYoung Tech. & Marketing, Inc.", - [3]byte{0, 31, 187}: "Xenatech Co.,LTD", - [3]byte{0, 31, 188}: "EVGA Corporation", - [3]byte{0, 31, 189}: "Kyocera Wireless Corp.", - [3]byte{0, 31, 190}: "Shenzhen Mopnet Industrial Co.,Ltd", - [3]byte{0, 31, 191}: "Fulhua Microelectronics Corp. Taiwan Branch", - [3]byte{0, 31, 192}: "Control Express Finland Oy", - [3]byte{0, 31, 193}: "Hanlong Technology Co.,LTD", - [3]byte{0, 31, 194}: "Jow Tong Technology Co Ltd", - [3]byte{0, 31, 195}: "SmartSynch, Inc", - [3]byte{0, 31, 196}: "ARRIS Group, Inc.", - [3]byte{0, 31, 197}: "Nintendo Co., Ltd.", - [3]byte{0, 31, 198}: "ASUSTek COMPUTER INC.", - [3]byte{0, 31, 199}: "Casio Hitachi Mobile Comunications Co., Ltd.", - [3]byte{0, 31, 200}: "Up-Today Industrial Co., Ltd.", - [3]byte{0, 31, 201}: "CISCO SYSTEMS, INC.", - [3]byte{0, 31, 202}: "CISCO SYSTEMS, INC.", - [3]byte{0, 31, 203}: "NIW Solutions", - [3]byte{0, 31, 204}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 31, 205}: "Samsung Electronics", - [3]byte{0, 31, 206}: "QTECH LLC", - [3]byte{0, 31, 207}: "MSI Technology GmbH", - [3]byte{0, 31, 208}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{0, 31, 209}: "OPTEX CO.,LTD.", - [3]byte{0, 31, 210}: "COMMTECH TECHNOLOGY MACAO COMMERCIAL OFFSHORE LTD.", - [3]byte{0, 31, 211}: "RIVA Networks Inc.", - [3]byte{0, 31, 212}: "4IPNET, INC.", - [3]byte{0, 31, 213}: "MICRORISC s.r.o.", - [3]byte{0, 31, 214}: "Shenzhen Allywll", - [3]byte{0, 31, 215}: "TELERAD SA", - [3]byte{0, 31, 216}: "A-TRUST COMPUTER CORPORATION", - [3]byte{0, 31, 217}: "RSD Communications Ltd", - [3]byte{0, 31, 218}: "Nortel Networks", - [3]byte{0, 31, 219}: "Network Supply Corp.,", - [3]byte{0, 31, 220}: "Mobile Safe Track Ltd", - [3]byte{0, 31, 221}: "GDI LLC", - [3]byte{0, 31, 222}: "Nokia Danmark A/S", - [3]byte{0, 31, 223}: "Nokia Danmark A/S", - [3]byte{0, 31, 224}: "EdgeVelocity Corp", - [3]byte{0, 31, 225}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 31, 226}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 31, 227}: "LG Electronics", - [3]byte{0, 31, 228}: "Sony Ericsson Mobile Communications", - [3]byte{0, 31, 229}: "In-Circuit GmbH", - [3]byte{0, 31, 230}: "Alphion Corporation", - [3]byte{0, 31, 231}: "Simet", - [3]byte{0, 31, 232}: "KURUSUGAWA Electronics Industry Inc,.", - [3]byte{0, 31, 233}: "Printrex, Inc.", - [3]byte{0, 31, 234}: "Applied Media Technologies Corporation", - [3]byte{0, 31, 235}: "Trio Datacom Pty Ltd", - [3]byte{0, 31, 236}: "Synapse Électronique", - [3]byte{0, 31, 237}: "Tecan Systems Inc.", - [3]byte{0, 31, 238}: "ubisys technologies GmbH", - [3]byte{0, 31, 239}: "SHINSEI INDUSTRIES CO.,LTD", - [3]byte{0, 31, 240}: "Audio Partnership", - [3]byte{0, 31, 241}: "Paradox Hellas S.A.", - [3]byte{0, 31, 242}: "VIA Technologies, Inc.", - [3]byte{0, 31, 243}: "Apple", - [3]byte{0, 31, 244}: "Power Monitors, Inc.", - [3]byte{0, 31, 245}: "Kongsberg Defence & Aerospace", - [3]byte{0, 31, 246}: "PS Audio International", - [3]byte{0, 31, 247}: "Nakajima All Precision Co., Ltd.", - [3]byte{0, 31, 248}: "Siemens AG, Sector Industry, Drive Technologies, Motion Control Systems", - [3]byte{0, 31, 249}: "Advanced Knowledge Associates", - [3]byte{0, 31, 250}: "Coretree, Co, Ltd", - [3]byte{0, 31, 251}: "Green Packet Bhd", - [3]byte{0, 31, 252}: "Riccius+Sohn GmbH", - [3]byte{0, 31, 253}: "Indigo Mobile Technologies Corp.", - [3]byte{0, 31, 254}: "HPN Supply Chain", - [3]byte{0, 31, 255}: "Respironics, Inc.", - [3]byte{0, 32, 0}: "LEXMARK INTERNATIONAL, INC.", - [3]byte{0, 32, 1}: "DSP SOLUTIONS, INC.", - [3]byte{0, 32, 2}: "SERITECH ENTERPRISE CO., LTD.", - [3]byte{0, 32, 3}: "PIXEL POWER LTD.", - [3]byte{0, 32, 4}: "YAMATAKE-HONEYWELL CO., LTD.", - [3]byte{0, 32, 5}: "SIMPLE TECHNOLOGY", - [3]byte{0, 32, 6}: "GARRETT COMMUNICATIONS, INC.", - [3]byte{0, 32, 7}: "SFA, INC.", - [3]byte{0, 32, 8}: "CABLE & COMPUTER TECHNOLOGY", - [3]byte{0, 32, 9}: "PACKARD BELL ELEC., INC.", - [3]byte{0, 32, 10}: "SOURCE-COMM CORP.", - [3]byte{0, 32, 11}: "OCTAGON SYSTEMS CORP.", - [3]byte{0, 32, 12}: "ADASTRA SYSTEMS CORP.", - [3]byte{0, 32, 13}: "CARL ZEISS", - [3]byte{0, 32, 14}: "SATELLITE TECHNOLOGY MGMT, INC", - [3]byte{0, 32, 15}: "TANBAC CO., LTD.", - [3]byte{0, 32, 16}: "JEOL SYSTEM TECHNOLOGY CO. LTD", - [3]byte{0, 32, 17}: "CANOPUS CO., LTD.", - [3]byte{0, 32, 18}: "CAMTRONICS MEDICAL SYSTEMS", - [3]byte{0, 32, 19}: "DIVERSIFIED TECHNOLOGY, INC.", - [3]byte{0, 32, 20}: "GLOBAL VIEW CO., LTD.", - [3]byte{0, 32, 21}: "ACTIS COMPUTER SA", - [3]byte{0, 32, 22}: "SHOWA ELECTRIC WIRE & CABLE CO", - [3]byte{0, 32, 23}: "ORBOTECH", - [3]byte{0, 32, 24}: "CIS TECHNOLOGY INC.", - [3]byte{0, 32, 25}: "OHLER GmbH", - [3]byte{0, 32, 26}: "MRV Communications, Inc.", - [3]byte{0, 32, 27}: "NORTHERN TELECOM/NETWORK", - [3]byte{0, 32, 28}: "EXCEL, INC.", - [3]byte{0, 32, 29}: "KATANA PRODUCTS", - [3]byte{0, 32, 30}: "NETQUEST CORPORATION", - [3]byte{0, 32, 31}: "BEST POWER TECHNOLOGY, INC.", - [3]byte{0, 32, 32}: "MEGATRON COMPUTER INDUSTRIES PTY, LTD.", - [3]byte{0, 32, 33}: "ALGORITHMS SOFTWARE PVT. LTD.", - [3]byte{0, 32, 34}: "NMS Communications", - [3]byte{0, 32, 35}: "T.C. TECHNOLOGIES PTY. LTD", - [3]byte{0, 32, 36}: "PACIFIC COMMUNICATION SCIENCES", - [3]byte{0, 32, 37}: "CONTROL TECHNOLOGY, INC.", - [3]byte{0, 32, 38}: "AMKLY SYSTEMS, INC.", - [3]byte{0, 32, 39}: "MING FORTUNE INDUSTRY CO., LTD", - [3]byte{0, 32, 40}: "WEST EGG SYSTEMS, INC.", - [3]byte{0, 32, 41}: "TELEPROCESSING PRODUCTS, INC.", - [3]byte{0, 32, 42}: "N.V. DZINE", - [3]byte{0, 32, 43}: "ADVANCED TELECOMMUNICATIONS MODULES, LTD.", - [3]byte{0, 32, 44}: "WELLTRONIX CO., LTD.", - [3]byte{0, 32, 45}: "TAIYO CORPORATION", - [3]byte{0, 32, 46}: "DAYSTAR DIGITAL", - [3]byte{0, 32, 47}: "ZETA COMMUNICATIONS, LTD.", - [3]byte{0, 32, 48}: "ANALOG & DIGITAL SYSTEMS", - [3]byte{0, 32, 49}: "Tattile SRL", - [3]byte{0, 32, 50}: "ALCATEL TAISEL", - [3]byte{0, 32, 51}: "SYNAPSE TECHNOLOGIES, INC.", - [3]byte{0, 32, 52}: "ROTEC INDUSTRIEAUTOMATION GMBH", - [3]byte{0, 32, 53}: "IBM Corp", - [3]byte{0, 32, 54}: "BMC SOFTWARE", - [3]byte{0, 32, 55}: "SEAGATE TECHNOLOGY", - [3]byte{0, 32, 56}: "VME MICROSYSTEMS INTERNATIONAL CORPORATION", - [3]byte{0, 32, 57}: "SCINETS", - [3]byte{0, 32, 58}: "DIGITAL BI0METRICS INC.", - [3]byte{0, 32, 59}: "WISDM LTD.", - [3]byte{0, 32, 60}: "EUROTIME AB", - [3]byte{0, 32, 61}: "Honeywell ECC", - [3]byte{0, 32, 62}: "LogiCan Technologies, Inc.", - [3]byte{0, 32, 63}: "JUKI CORPORATION", - [3]byte{0, 32, 64}: "ARRIS Group, Inc.", - [3]byte{0, 32, 65}: "DATA NET", - [3]byte{0, 32, 66}: "DATAMETRICS CORP.", - [3]byte{0, 32, 67}: "NEURON COMPANY LIMITED", - [3]byte{0, 32, 68}: "GENITECH PTY LTD", - [3]byte{0, 32, 69}: "ION Networks, Inc.", - [3]byte{0, 32, 70}: "CIPRICO, INC.", - [3]byte{0, 32, 71}: "STEINBRECHER CORP.", - [3]byte{0, 32, 72}: "Marconi Communications", - [3]byte{0, 32, 73}: "COMTRON, INC.", - [3]byte{0, 32, 74}: "PRONET GMBH", - [3]byte{0, 32, 75}: "AUTOCOMPUTER CO., LTD.", - [3]byte{0, 32, 76}: "MITRON COMPUTER PTE LTD.", - [3]byte{0, 32, 77}: "INOVIS GMBH", - [3]byte{0, 32, 78}: "NETWORK SECURITY SYSTEMS, INC.", - [3]byte{0, 32, 79}: "DEUTSCHE AEROSPACE AG", - [3]byte{0, 32, 80}: "KOREA COMPUTER INC.", - [3]byte{0, 32, 81}: "Verilink Corporation", - [3]byte{0, 32, 82}: "RAGULA SYSTEMS", - [3]byte{0, 32, 83}: "HUNTSVILLE MICROSYSTEMS, INC.", - [3]byte{0, 32, 84}: "Sycamore Networks", - [3]byte{0, 32, 85}: "ALTECH CO., LTD.", - [3]byte{0, 32, 86}: "NEOPRODUCTS", - [3]byte{0, 32, 87}: "TITZE DATENTECHNIK GmbH", - [3]byte{0, 32, 88}: "ALLIED SIGNAL INC.", - [3]byte{0, 32, 89}: "MIRO COMPUTER PRODUCTS AG", - [3]byte{0, 32, 90}: "COMPUTER IDENTICS", - [3]byte{0, 32, 91}: "Kentrox, LLC", - [3]byte{0, 32, 92}: "InterNet Systems of Florida, Inc.", - [3]byte{0, 32, 93}: "NANOMATIC OY", - [3]byte{0, 32, 94}: "CASTLE ROCK, INC.", - [3]byte{0, 32, 95}: "GAMMADATA COMPUTER GMBH", - [3]byte{0, 32, 96}: "ALCATEL ITALIA S.p.A.", - [3]byte{0, 32, 97}: "GarrettCom, Inc.", - [3]byte{0, 32, 98}: "SCORPION LOGIC, LTD.", - [3]byte{0, 32, 99}: "WIPRO INFOTECH LTD.", - [3]byte{0, 32, 100}: "PROTEC MICROSYSTEMS, INC.", - [3]byte{0, 32, 101}: "SUPERNET NETWORKING INC.", - [3]byte{0, 32, 102}: "GENERAL MAGIC, INC.", - [3]byte{0, 32, 103}: "PRIVATE", - [3]byte{0, 32, 104}: "ISDYNE", - [3]byte{0, 32, 105}: "ISDN SYSTEMS CORPORATION", - [3]byte{0, 32, 106}: "OSAKA COMPUTER CORP.", - [3]byte{0, 32, 107}: "KONICA MINOLTA HOLDINGS, INC.", - [3]byte{0, 32, 108}: "EVERGREEN TECHNOLOGY CORP.", - [3]byte{0, 32, 109}: "DATA RACE, INC.", - [3]byte{0, 32, 110}: "XACT, INC.", - [3]byte{0, 32, 111}: "FLOWPOINT CORPORATION", - [3]byte{0, 32, 112}: "HYNET, LTD.", - [3]byte{0, 32, 113}: "IBR GMBH", - [3]byte{0, 32, 114}: "WORKLINK INNOVATIONS", - [3]byte{0, 32, 115}: "FUSION SYSTEMS CORPORATION", - [3]byte{0, 32, 116}: "SUNGWOON SYSTEMS", - [3]byte{0, 32, 117}: "MOTOROLA COMMUNICATION ISRAEL", - [3]byte{0, 32, 118}: "REUDO CORPORATION", - [3]byte{0, 32, 119}: "KARDIOS SYSTEMS CORP.", - [3]byte{0, 32, 120}: "RUNTOP, INC.", - [3]byte{0, 32, 121}: "MIKRON GMBH", - [3]byte{0, 32, 122}: "WiSE Communications, Inc.", - [3]byte{0, 32, 123}: "Intel Corporation", - [3]byte{0, 32, 124}: "AUTEC GmbH", - [3]byte{0, 32, 125}: "ADVANCED COMPUTER APPLICATIONS", - [3]byte{0, 32, 126}: "FINECOM Co., Ltd.", - [3]byte{0, 32, 127}: "KYOEI SANGYO CO., LTD.", - [3]byte{0, 32, 128}: "SYNERGY (UK) LTD.", - [3]byte{0, 32, 129}: "TITAN ELECTRONICS", - [3]byte{0, 32, 130}: "ONEAC CORPORATION", - [3]byte{0, 32, 131}: "PRESTICOM INCORPORATED", - [3]byte{0, 32, 132}: "OCE PRINTING SYSTEMS, GMBH", - [3]byte{0, 32, 133}: "Eaton Corporation", - [3]byte{0, 32, 134}: "MICROTECH ELECTRONICS LIMITED", - [3]byte{0, 32, 135}: "MEMOTEC, INC.", - [3]byte{0, 32, 136}: "GLOBAL VILLAGE COMMUNICATION", - [3]byte{0, 32, 137}: "T3PLUS NETWORKING, INC.", - [3]byte{0, 32, 138}: "SONIX COMMUNICATIONS, LTD.", - [3]byte{0, 32, 139}: "LAPIS TECHNOLOGIES, INC.", - [3]byte{0, 32, 140}: "GALAXY NETWORKS, INC.", - [3]byte{0, 32, 141}: "CMD TECHNOLOGY", - [3]byte{0, 32, 142}: "CHEVIN SOFTWARE ENG. LTD.", - [3]byte{0, 32, 143}: "ECI TELECOM LTD.", - [3]byte{0, 32, 144}: "ADVANCED COMPRESSION TECHNOLOGY, INC.", - [3]byte{0, 32, 145}: "J125, NATIONAL SECURITY AGENCY", - [3]byte{0, 32, 146}: "CHESS ENGINEERING B.V.", - [3]byte{0, 32, 147}: "LANDINGS TECHNOLOGY CORP.", - [3]byte{0, 32, 148}: "CUBIX CORPORATION", - [3]byte{0, 32, 149}: "RIVA ELECTRONICS", - [3]byte{0, 32, 150}: "Invensys", - [3]byte{0, 32, 151}: "APPLIED SIGNAL TECHNOLOGY", - [3]byte{0, 32, 152}: "HECTRONIC AB", - [3]byte{0, 32, 153}: "BON ELECTRIC CO., LTD.", - [3]byte{0, 32, 154}: "THE 3DO COMPANY", - [3]byte{0, 32, 155}: "ERSAT ELECTRONIC GMBH", - [3]byte{0, 32, 156}: "PRIMARY ACCESS CORP.", - [3]byte{0, 32, 157}: "LIPPERT AUTOMATIONSTECHNIK", - [3]byte{0, 32, 158}: "BROWN'S OPERATING SYSTEM SERVICES, LTD.", - [3]byte{0, 32, 159}: "MERCURY COMPUTER SYSTEMS, INC.", - [3]byte{0, 32, 160}: "OA LABORATORY CO., LTD.", - [3]byte{0, 32, 161}: "DOVATRON", - [3]byte{0, 32, 162}: "GALCOM NETWORKING LTD.", - [3]byte{0, 32, 163}: "Harmonic, Inc", - [3]byte{0, 32, 164}: "MULTIPOINT NETWORKS", - [3]byte{0, 32, 165}: "API ENGINEERING", - [3]byte{0, 32, 166}: "Proxim Wireless", - [3]byte{0, 32, 167}: "PAIRGAIN TECHNOLOGIES, INC.", - [3]byte{0, 32, 168}: "SAST TECHNOLOGY CORP.", - [3]byte{0, 32, 169}: "WHITE HORSE INDUSTRIAL", - [3]byte{0, 32, 170}: "Ericsson Television Limited", - [3]byte{0, 32, 171}: "MICRO INDUSTRIES CORP.", - [3]byte{0, 32, 172}: "INTERFLEX DATENSYSTEME GMBH", - [3]byte{0, 32, 173}: "LINQ SYSTEMS", - [3]byte{0, 32, 174}: "ORNET DATA COMMUNICATION TECH.", - [3]byte{0, 32, 175}: "3COM CORPORATION", - [3]byte{0, 32, 176}: "GATEWAY DEVICES, INC.", - [3]byte{0, 32, 177}: "COMTECH RESEARCH INC.", - [3]byte{0, 32, 178}: "GKD Gesellschaft Fur Kommunikation Und Datentechnik", - [3]byte{0, 32, 179}: "Tattile SRL", - [3]byte{0, 32, 180}: "TERMA ELEKTRONIK AS", - [3]byte{0, 32, 181}: "YASKAWA ELECTRIC CORPORATION", - [3]byte{0, 32, 182}: "AGILE NETWORKS, INC.", - [3]byte{0, 32, 183}: "NAMAQUA COMPUTERWARE", - [3]byte{0, 32, 184}: "PRIME OPTION, INC.", - [3]byte{0, 32, 185}: "METRICOM, INC.", - [3]byte{0, 32, 186}: "CENTER FOR HIGH PERFORMANCE", - [3]byte{0, 32, 187}: "ZAX CORPORATION", - [3]byte{0, 32, 188}: "Long Reach Networks Pty Ltd", - [3]byte{0, 32, 189}: "NIOBRARA R & D CORPORATION", - [3]byte{0, 32, 190}: "LAN ACCESS CORP.", - [3]byte{0, 32, 191}: "AEHR TEST SYSTEMS", - [3]byte{0, 32, 192}: "PULSE ELECTRONICS, INC.", - [3]byte{0, 32, 193}: "SAXA, Inc.", - [3]byte{0, 32, 194}: "TEXAS MEMORY SYSTEMS, INC.", - [3]byte{0, 32, 195}: "COUNTER SOLUTIONS LTD.", - [3]byte{0, 32, 196}: "INET,INC.", - [3]byte{0, 32, 197}: "EAGLE TECHNOLOGY", - [3]byte{0, 32, 198}: "NECTEC", - [3]byte{0, 32, 199}: "AKAI Professional M.I. Corp.", - [3]byte{0, 32, 200}: "LARSCOM INCORPORATED", - [3]byte{0, 32, 201}: "VICTRON BV", - [3]byte{0, 32, 202}: "DIGITAL OCEAN", - [3]byte{0, 32, 203}: "PRETEC ELECTRONICS CORP.", - [3]byte{0, 32, 204}: "DIGITAL SERVICES, LTD.", - [3]byte{0, 32, 205}: "HYBRID NETWORKS, INC.", - [3]byte{0, 32, 206}: "LOGICAL DESIGN GROUP, INC.", - [3]byte{0, 32, 207}: "TEST & MEASUREMENT SYSTEMS INC", - [3]byte{0, 32, 208}: "VERSALYNX CORPORATION", - [3]byte{0, 32, 209}: "MICROCOMPUTER SYSTEMS (M) SDN.", - [3]byte{0, 32, 210}: "RAD DATA COMMUNICATIONS, LTD.", - [3]byte{0, 32, 211}: "OST (OUEST STANDARD TELEMATIQU", - [3]byte{0, 32, 212}: "CABLETRON - ZEITTNET INC.", - [3]byte{0, 32, 213}: "VIPA GMBH", - [3]byte{0, 32, 214}: "BREEZECOM", - [3]byte{0, 32, 215}: "JAPAN MINICOMPUTER SYSTEMS CO., Ltd.", - [3]byte{0, 32, 216}: "Nortel Networks", - [3]byte{0, 32, 217}: "PANASONIC TECHNOLOGIES, INC./MIECO-US", - [3]byte{0, 32, 218}: "Alcatel North America ESD", - [3]byte{0, 32, 219}: "XNET TECHNOLOGY, INC.", - [3]byte{0, 32, 220}: "DENSITRON TAIWAN LTD.", - [3]byte{0, 32, 221}: "Cybertec Pty Ltd", - [3]byte{0, 32, 222}: "JAPAN DIGITAL LABORAT'Y CO.LTD", - [3]byte{0, 32, 223}: "KYOSAN ELECTRIC MFG. CO., LTD.", - [3]byte{0, 32, 224}: "Actiontec Electronics, Inc.", - [3]byte{0, 32, 225}: "ALAMAR ELECTRONICS", - [3]byte{0, 32, 226}: "INFORMATION RESOURCE ENGINEERING", - [3]byte{0, 32, 227}: "MCD KENCOM CORPORATION", - [3]byte{0, 32, 228}: "HSING TECH ENTERPRISE CO., LTD", - [3]byte{0, 32, 229}: "APEX DATA, INC.", - [3]byte{0, 32, 230}: "LIDKOPING MACHINE TOOLS AB", - [3]byte{0, 32, 231}: "B&W NUCLEAR SERVICE COMPANY", - [3]byte{0, 32, 232}: "DATATREK CORPORATION", - [3]byte{0, 32, 233}: "DANTEL", - [3]byte{0, 32, 234}: "EFFICIENT NETWORKS, INC.", - [3]byte{0, 32, 235}: "CINCINNATI MICROWAVE, INC.", - [3]byte{0, 32, 236}: "TECHWARE SYSTEMS CORP.", - [3]byte{0, 32, 237}: "GIGA-BYTE TECHNOLOGY CO., LTD.", - [3]byte{0, 32, 238}: "GTECH CORPORATION", - [3]byte{0, 32, 239}: "USC CORPORATION", - [3]byte{0, 32, 240}: "UNIVERSAL MICROELECTRONICS CO.", - [3]byte{0, 32, 241}: "ALTOS INDIA LIMITED", - [3]byte{0, 32, 242}: "Oracle Corporation", - [3]byte{0, 32, 243}: "RAYNET CORPORATION", - [3]byte{0, 32, 244}: "SPECTRIX CORPORATION", - [3]byte{0, 32, 245}: "PANDATEL AG", - [3]byte{0, 32, 246}: "NET TEK AND KARLNET, INC.", - [3]byte{0, 32, 247}: "CYBERDATA CORPORATION", - [3]byte{0, 32, 248}: "CARRERA COMPUTERS, INC.", - [3]byte{0, 32, 249}: "PARALINK NETWORKS, INC.", - [3]byte{0, 32, 250}: "GDE SYSTEMS, INC.", - [3]byte{0, 32, 251}: "OCTEL COMMUNICATIONS CORP.", - [3]byte{0, 32, 252}: "MATROX", - [3]byte{0, 32, 253}: "ITV TECHNOLOGIES, INC.", - [3]byte{0, 32, 254}: "TOPWARE INC. / GRAND COMPUTER", - [3]byte{0, 32, 255}: "SYMMETRICAL TECHNOLOGIES", - [3]byte{0, 33, 0}: "GemTek Technology Co., Ltd.", - [3]byte{0, 33, 1}: "Aplicaciones Electronicas Quasar (AEQ)", - [3]byte{0, 33, 2}: "UpdateLogic Inc.", - [3]byte{0, 33, 3}: "GHI Electronics, LLC", - [3]byte{0, 33, 4}: "Gigaset Communications GmbH", - [3]byte{0, 33, 5}: "Alcatel-Lucent", - [3]byte{0, 33, 6}: "RIM Testing Services", - [3]byte{0, 33, 7}: "Seowonintech Co Ltd.", - [3]byte{0, 33, 8}: "Nokia Danmark A/S", - [3]byte{0, 33, 9}: "Nokia Danmark A/S", - [3]byte{0, 33, 10}: "byd:sign Corporation", - [3]byte{0, 33, 11}: "GEMINI TRAZE RFID PVT. LTD.", - [3]byte{0, 33, 12}: "Cymtec Systems, Inc.", - [3]byte{0, 33, 13}: "SAMSIN INNOTEC", - [3]byte{0, 33, 14}: "Orpak Systems L.T.D.", - [3]byte{0, 33, 15}: "Cernium Corp", - [3]byte{0, 33, 16}: "Clearbox Systems", - [3]byte{0, 33, 17}: "Uniphone Inc.", - [3]byte{0, 33, 18}: "WISCOM SYSTEM CO.,LTD", - [3]byte{0, 33, 19}: "Padtec S/A", - [3]byte{0, 33, 20}: "Hylab Technology Inc.", - [3]byte{0, 33, 21}: "PHYWE Systeme GmbH & Co. KG", - [3]byte{0, 33, 22}: "Transcon Electronic Systems, spol. s r. o.", - [3]byte{0, 33, 23}: "Tellord", - [3]byte{0, 33, 24}: "Athena Tech, Inc.", - [3]byte{0, 33, 25}: "Samsung Electro-Mechanics", - [3]byte{0, 33, 26}: "LInTech Corporation", - [3]byte{0, 33, 27}: "CISCO SYSTEMS, INC.", - [3]byte{0, 33, 28}: "CISCO SYSTEMS, INC.", - [3]byte{0, 33, 29}: "Dataline AB", - [3]byte{0, 33, 30}: "ARRIS Group, Inc.", - [3]byte{0, 33, 31}: "SHINSUNG DELTATECH CO.,LTD.", - [3]byte{0, 33, 32}: "Sequel Technologies", - [3]byte{0, 33, 33}: "VRmagic GmbH", - [3]byte{0, 33, 34}: "Chip-pro Ltd.", - [3]byte{0, 33, 35}: "Aerosat Avionics", - [3]byte{0, 33, 36}: "Optos Plc", - [3]byte{0, 33, 37}: "KUK JE TONG SHIN Co.,LTD", - [3]byte{0, 33, 38}: "Shenzhen Torch Equipment Co., Ltd.", - [3]byte{0, 33, 39}: "TP-LINK Technology Co., Ltd.", - [3]byte{0, 33, 40}: "Oracle Corporation", - [3]byte{0, 33, 41}: "Cisco-Linksys, LLC", - [3]byte{0, 33, 42}: "Audiovox Corporation", - [3]byte{0, 33, 43}: "MSA Auer", - [3]byte{0, 33, 44}: "SemIndia System Private Limited", - [3]byte{0, 33, 45}: "SCIMOLEX CORPORATION", - [3]byte{0, 33, 46}: "dresden-elektronik", - [3]byte{0, 33, 47}: "Phoebe Micro Inc.", - [3]byte{0, 33, 48}: "Keico Hightech Inc.", - [3]byte{0, 33, 49}: "Blynke Inc.", - [3]byte{0, 33, 50}: "Masterclock, Inc.", - [3]byte{0, 33, 51}: "Building B, Inc", - [3]byte{0, 33, 52}: "Brandywine Communications", - [3]byte{0, 33, 53}: "ALCATEL-LUCENT", - [3]byte{0, 33, 54}: "ARRIS Group, Inc.", - [3]byte{0, 33, 55}: "Bay Controls, LLC", - [3]byte{0, 33, 56}: "Cepheid", - [3]byte{0, 33, 57}: "Escherlogic Inc.", - [3]byte{0, 33, 58}: "Winchester Systems Inc.", - [3]byte{0, 33, 59}: "Berkshire Products, Inc", - [3]byte{0, 33, 60}: "AliphCom", - [3]byte{0, 33, 61}: "Cermetek Microelectronics, Inc.", - [3]byte{0, 33, 62}: "TomTom", - [3]byte{0, 33, 63}: "A-Team Technology Ltd.", - [3]byte{0, 33, 64}: "EN Technologies Inc.", - [3]byte{0, 33, 65}: "RADLIVE", - [3]byte{0, 33, 66}: "Advanced Control Systems doo", - [3]byte{0, 33, 67}: "ARRIS Group, Inc.", - [3]byte{0, 33, 68}: "SS Telecoms", - [3]byte{0, 33, 69}: "Semptian Technologies Ltd.", - [3]byte{0, 33, 70}: "Sanmina-SCI", - [3]byte{0, 33, 71}: "Nintendo Co., Ltd.", - [3]byte{0, 33, 72}: "Kaco Solar Korea", - [3]byte{0, 33, 73}: "China Daheng Group ,Inc.", - [3]byte{0, 33, 74}: "Pixel Velocity, Inc", - [3]byte{0, 33, 75}: "Shenzhen HAMP Science & Technology Co.,Ltd", - [3]byte{0, 33, 76}: "SAMSUNG ELECTRONICS CO., LTD.", - [3]byte{0, 33, 77}: "Guangzhou Skytone Transmission Technology Com. Ltd.", - [3]byte{0, 33, 78}: "GS Yuasa Power Supply Ltd.", - [3]byte{0, 33, 79}: "ALPS Electric Co., Ltd", - [3]byte{0, 33, 80}: "EYEVIEW ELECTRONICS", - [3]byte{0, 33, 81}: "Millinet Co., Ltd.", - [3]byte{0, 33, 82}: "General Satellite Research & Development Limited", - [3]byte{0, 33, 83}: "SeaMicro Inc.", - [3]byte{0, 33, 84}: "D-TACQ Solutions Ltd", - [3]byte{0, 33, 85}: "CISCO SYSTEMS, INC.", - [3]byte{0, 33, 86}: "CISCO SYSTEMS, INC.", - [3]byte{0, 33, 87}: "National Datacast, Inc.", - [3]byte{0, 33, 88}: "Style Flying Technology Co.", - [3]byte{0, 33, 89}: "Juniper Networks", - [3]byte{0, 33, 90}: "Hewlett-Packard Company", - [3]byte{0, 33, 91}: "Inotive", - [3]byte{0, 33, 92}: "Intel Corporate", - [3]byte{0, 33, 93}: "Intel Corporate", - [3]byte{0, 33, 94}: "IBM Corp", - [3]byte{0, 33, 95}: "IHSE GmbH", - [3]byte{0, 33, 96}: "Hidea Solutions Co. Ltd.", - [3]byte{0, 33, 97}: "Yournet Inc.", - [3]byte{0, 33, 98}: "Nortel", - [3]byte{0, 33, 99}: "ASKEY COMPUTER CORP", - [3]byte{0, 33, 100}: "Special Design Bureau for Seismic Instrumentation", - [3]byte{0, 33, 101}: "Presstek Inc.", - [3]byte{0, 33, 102}: "NovAtel Inc.", - [3]byte{0, 33, 103}: "HWA JIN T&I Corp.", - [3]byte{0, 33, 104}: "iVeia, LLC", - [3]byte{0, 33, 105}: "Prologix, LLC.", - [3]byte{0, 33, 106}: "Intel Corporate", - [3]byte{0, 33, 107}: "Intel Corporate", - [3]byte{0, 33, 108}: "ODVA", - [3]byte{0, 33, 109}: "Soltech Co., Ltd.", - [3]byte{0, 33, 110}: "Function ATI (Huizhou) Telecommunications Co., Ltd.", - [3]byte{0, 33, 111}: "SymCom, Inc.", - [3]byte{0, 33, 112}: "Dell Inc", - [3]byte{0, 33, 113}: "Wesung TNC Co., Ltd.", - [3]byte{0, 33, 114}: "Seoultek Valley", - [3]byte{0, 33, 115}: "Ion Torrent Systems, Inc.", - [3]byte{0, 33, 116}: "AvaLAN Wireless", - [3]byte{0, 33, 117}: "Pacific Satellite International Ltd.", - [3]byte{0, 33, 118}: "YMax Telecom Ltd.", - [3]byte{0, 33, 119}: "W. L. Gore & Associates", - [3]byte{0, 33, 120}: "Matuschek Messtechnik GmbH", - [3]byte{0, 33, 121}: "IOGEAR, Inc.", - [3]byte{0, 33, 122}: "Sejin Electron, Inc.", - [3]byte{0, 33, 123}: "Bastec AB", - [3]byte{0, 33, 124}: "2Wire", - [3]byte{0, 33, 125}: "PYXIS S.R.L.", - [3]byte{0, 33, 126}: "Telit Communication s.p.a", - [3]byte{0, 33, 127}: "Intraco Technology Pte Ltd", - [3]byte{0, 33, 128}: "ARRIS Group, Inc.", - [3]byte{0, 33, 129}: "Si2 Microsystems Limited", - [3]byte{0, 33, 130}: "SandLinks Systems, Ltd.", - [3]byte{0, 33, 131}: "VATECH HYDRO", - [3]byte{0, 33, 132}: "POWERSOFT SRL", - [3]byte{0, 33, 133}: "MICRO-STAR INT'L CO.,LTD.", - [3]byte{0, 33, 134}: "Universal Global Scientific Industrial Co., Ltd", - [3]byte{0, 33, 135}: "Imacs GmbH", - [3]byte{0, 33, 136}: "EMC Corporation", - [3]byte{0, 33, 137}: "AppTech, Inc.", - [3]byte{0, 33, 138}: "Electronic Design and Manufacturing Company", - [3]byte{0, 33, 139}: "Wescon Technology, Inc.", - [3]byte{0, 33, 140}: "TopControl GMBH", - [3]byte{0, 33, 141}: "AP Router Ind. Eletronica LTDA", - [3]byte{0, 33, 142}: "MEKICS CO., LTD.", - [3]byte{0, 33, 143}: "Avantgarde Acoustic Lautsprechersysteme GmbH", - [3]byte{0, 33, 144}: "Goliath Solutions", - [3]byte{0, 33, 145}: "D-Link Corporation", - [3]byte{0, 33, 146}: "Baoding Galaxy Electronic Technology Co.,Ltd", - [3]byte{0, 33, 147}: "Videofon MV", - [3]byte{0, 33, 148}: "Ping Communication", - [3]byte{0, 33, 149}: "GWD Media Limited", - [3]byte{0, 33, 150}: "Telsey S.p.A.", - [3]byte{0, 33, 151}: "ELITEGROUP COMPUTER SYSTEM", - [3]byte{0, 33, 152}: "Thai Radio Co, LTD", - [3]byte{0, 33, 153}: "Vacon Plc", - [3]byte{0, 33, 154}: "Cambridge Visual Networks Ltd", - [3]byte{0, 33, 155}: "Dell Inc", - [3]byte{0, 33, 156}: "Honeywld Technology Corp.", - [3]byte{0, 33, 157}: "Adesys BV", - [3]byte{0, 33, 158}: "Sony Ericsson Mobile Communications", - [3]byte{0, 33, 159}: "SATEL OY", - [3]byte{0, 33, 160}: "CISCO SYSTEMS, INC.", - [3]byte{0, 33, 161}: "CISCO SYSTEMS, INC.", - [3]byte{0, 33, 162}: "EKE-Electronics Ltd.", - [3]byte{0, 33, 163}: "Micromint", - [3]byte{0, 33, 164}: "Dbii Networks", - [3]byte{0, 33, 165}: "ERLPhase Power Technologies Ltd.", - [3]byte{0, 33, 166}: "Videotec Spa", - [3]byte{0, 33, 167}: "Hantle System Co., Ltd.", - [3]byte{0, 33, 168}: "Telephonics Corporation", - [3]byte{0, 33, 169}: "Mobilink Telecom Co.,Ltd", - [3]byte{0, 33, 170}: "Nokia Danmark A/S", - [3]byte{0, 33, 171}: "Nokia Danmark A/S", - [3]byte{0, 33, 172}: "Infrared Integrated Systems Ltd", - [3]byte{0, 33, 173}: "Nordic ID Oy", - [3]byte{0, 33, 174}: "ALCATEL-LUCENT FRANCE - WTD", - [3]byte{0, 33, 175}: "Radio Frequency Systems", - [3]byte{0, 33, 176}: "Tyco Telecommunications", - [3]byte{0, 33, 177}: "DIGITAL SOLUTIONS LTD", - [3]byte{0, 33, 178}: "Fiberblaze A/S", - [3]byte{0, 33, 179}: "Ross Controls", - [3]byte{0, 33, 180}: "APRO MEDIA CO., LTD", - [3]byte{0, 33, 181}: "Galvanic Ltd", - [3]byte{0, 33, 182}: "Triacta Power Technologies Inc.", - [3]byte{0, 33, 183}: "Lexmark International Inc.", - [3]byte{0, 33, 184}: "Inphi Corporation", - [3]byte{0, 33, 185}: "Universal Devices Inc.", - [3]byte{0, 33, 186}: "Texas Instruments", - [3]byte{0, 33, 187}: "Riken Keiki Co., Ltd.", - [3]byte{0, 33, 188}: "ZALA COMPUTER", - [3]byte{0, 33, 189}: "Nintendo Co., Ltd.", - [3]byte{0, 33, 190}: "Cisco, Service Provider Video Technology Group", - [3]byte{0, 33, 191}: "Hitachi High-Tech Control Systems Corporation", - [3]byte{0, 33, 192}: "Mobile Appliance, Inc.", - [3]byte{0, 33, 193}: "ABB Oy / Medium Voltage Products", - [3]byte{0, 33, 194}: "GL Communications Inc", - [3]byte{0, 33, 195}: "CORNELL Communications, Inc.", - [3]byte{0, 33, 196}: "Consilium AB", - [3]byte{0, 33, 197}: "3DSP Corp", - [3]byte{0, 33, 198}: "CSJ Global, Inc.", - [3]byte{0, 33, 199}: "Russound", - [3]byte{0, 33, 200}: "LOHUIS Networks", - [3]byte{0, 33, 201}: "Wavecom Asia Pacific Limited", - [3]byte{0, 33, 202}: "ART System Co., Ltd.", - [3]byte{0, 33, 203}: "SMS TECNOLOGIA ELETRONICA LTDA", - [3]byte{0, 33, 204}: "Flextronics International", - [3]byte{0, 33, 205}: "LiveTV", - [3]byte{0, 33, 206}: "NTC-Metrotek", - [3]byte{0, 33, 207}: "The Crypto Group", - [3]byte{0, 33, 208}: "Global Display Solutions Spa", - [3]byte{0, 33, 209}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 33, 210}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 33, 211}: "BOCOM SECURITY(ASIA PACIFIC) LIMITED", - [3]byte{0, 33, 212}: "Vollmer Werke GmbH", - [3]byte{0, 33, 213}: "X2E GmbH", - [3]byte{0, 33, 214}: "LXI Consortium", - [3]byte{0, 33, 215}: "CISCO SYSTEMS, INC.", - [3]byte{0, 33, 216}: "CISCO SYSTEMS, INC.", - [3]byte{0, 33, 217}: "SEKONIC CORPORATION", - [3]byte{0, 33, 218}: "Automation Products Group Inc.", - [3]byte{0, 33, 219}: "Santachi Video Technology (Shenzhen) Co., Ltd.", - [3]byte{0, 33, 220}: "TECNOALARM S.r.l.", - [3]byte{0, 33, 221}: "Northstar Systems Corp", - [3]byte{0, 33, 222}: "Firepro Wireless", - [3]byte{0, 33, 223}: "Martin Christ GmbH", - [3]byte{0, 33, 224}: "CommAgility Ltd", - [3]byte{0, 33, 225}: "Nortel Networks", - [3]byte{0, 33, 226}: "Creative Electronic GmbH", - [3]byte{0, 33, 227}: "SerialTek LLC", - [3]byte{0, 33, 228}: "I-WIN", - [3]byte{0, 33, 229}: "Display Solution AG", - [3]byte{0, 33, 230}: "Starlight Video Limited", - [3]byte{0, 33, 231}: "Informatics Services Corporation", - [3]byte{0, 33, 232}: "Murata Manufacturing Co., Ltd.", - [3]byte{0, 33, 233}: "Apple", - [3]byte{0, 33, 234}: "Bystronic Laser AG", - [3]byte{0, 33, 235}: "ESP SYSTEMS, LLC", - [3]byte{0, 33, 236}: "Solutronic GmbH", - [3]byte{0, 33, 237}: "Telegesis", - [3]byte{0, 33, 238}: "Full Spectrum Inc.", - [3]byte{0, 33, 239}: "Kapsys", - [3]byte{0, 33, 240}: "EW3 Technologies LLC", - [3]byte{0, 33, 241}: "Tutus Data AB", - [3]byte{0, 33, 242}: "EASY3CALL Technology Limited", - [3]byte{0, 33, 243}: "Si14 SpA", - [3]byte{0, 33, 244}: "INRange Systems, Inc", - [3]byte{0, 33, 245}: "Western Engravers Supply, Inc.", - [3]byte{0, 33, 246}: "Oracle Corporation", - [3]byte{0, 33, 247}: "HPN Supply Chain", - [3]byte{0, 33, 248}: "Enseo, Inc.", - [3]byte{0, 33, 249}: "WIRECOM Technologies", - [3]byte{0, 33, 250}: "A4SP Technologies Ltd.", - [3]byte{0, 33, 251}: "LG Electronics", - [3]byte{0, 33, 252}: "Nokia Danmark A/S", - [3]byte{0, 33, 253}: "DSTA S.L.", - [3]byte{0, 33, 254}: "Nokia Danmark A/S", - [3]byte{0, 33, 255}: "Cyfrowy Polsat SA", - [3]byte{0, 34, 0}: "IBM Corp", - [3]byte{0, 34, 1}: "Aksys Networks Inc", - [3]byte{0, 34, 2}: "Excito Elektronik i SkÃ¥ne AB", - [3]byte{0, 34, 3}: "Glensound Electronics Ltd", - [3]byte{0, 34, 4}: "KORATEK", - [3]byte{0, 34, 5}: "WeLink Solutions, Inc.", - [3]byte{0, 34, 6}: "Cyberdyne Inc.", - [3]byte{0, 34, 7}: "Inteno Broadband Technology AB", - [3]byte{0, 34, 8}: "Certicom Corp", - [3]byte{0, 34, 9}: "Omron Healthcare Co., Ltd", - [3]byte{0, 34, 10}: "OnLive, Inc", - [3]byte{0, 34, 11}: "National Source Coding Center", - [3]byte{0, 34, 12}: "CISCO SYSTEMS, INC.", - [3]byte{0, 34, 13}: "CISCO SYSTEMS, INC.", - [3]byte{0, 34, 14}: "Indigo Security Co., Ltd.", - [3]byte{0, 34, 15}: "MoCA (Multimedia over Coax Alliance)", - [3]byte{0, 34, 16}: "ARRIS Group, Inc.", - [3]byte{0, 34, 17}: "Rohati Systems", - [3]byte{0, 34, 18}: "CAI Networks, Inc.", - [3]byte{0, 34, 19}: "PCI CORPORATION", - [3]byte{0, 34, 20}: "RINNAI KOREA", - [3]byte{0, 34, 21}: "ASUSTek COMPUTER INC.", - [3]byte{0, 34, 22}: "SHIBAURA VENDING MACHINE CORPORATION", - [3]byte{0, 34, 23}: "Neat Electronics", - [3]byte{0, 34, 24}: "Verivue Inc.", - [3]byte{0, 34, 25}: "Dell Inc", - [3]byte{0, 34, 26}: "Audio Precision", - [3]byte{0, 34, 27}: "Morega Systems", - [3]byte{0, 34, 28}: "PRIVATE", - [3]byte{0, 34, 29}: "Freegene Technology LTD", - [3]byte{0, 34, 30}: "Media Devices Co., Ltd.", - [3]byte{0, 34, 31}: "eSang Technologies Co., Ltd.", - [3]byte{0, 34, 32}: "Mitac Technology Corp", - [3]byte{0, 34, 33}: "ITOH DENKI CO,LTD.", - [3]byte{0, 34, 34}: "Schaffner Deutschland GmbH", - [3]byte{0, 34, 35}: "TimeKeeping Systems, Inc.", - [3]byte{0, 34, 36}: "Good Will Instrument Co., Ltd.", - [3]byte{0, 34, 37}: "Thales Avionics Ltd", - [3]byte{0, 34, 38}: "Avaak, Inc.", - [3]byte{0, 34, 39}: "uv-electronic GmbH", - [3]byte{0, 34, 40}: "Breeze Innovations Ltd.", - [3]byte{0, 34, 41}: "Compumedics Ltd", - [3]byte{0, 34, 42}: "SoundEar A/S", - [3]byte{0, 34, 43}: "Nucomm, Inc.", - [3]byte{0, 34, 44}: "Ceton Corp", - [3]byte{0, 34, 45}: "SMC Networks Inc.", - [3]byte{0, 34, 46}: "maintech GmbH", - [3]byte{0, 34, 47}: "Open Grid Computing, Inc.", - [3]byte{0, 34, 48}: "FutureLogic Inc.", - [3]byte{0, 34, 49}: "SMT&C Co., Ltd.", - [3]byte{0, 34, 50}: "Design Design Technology Ltd", - [3]byte{0, 34, 51}: "ADB Broadband Italia", - [3]byte{0, 34, 52}: "Corventis Inc.", - [3]byte{0, 34, 53}: "Strukton Systems bv", - [3]byte{0, 34, 54}: "VECTOR SP. Z O.O.", - [3]byte{0, 34, 55}: "Shinhint Group", - [3]byte{0, 34, 56}: "LOGIPLUS", - [3]byte{0, 34, 57}: "Indiana Life Sciences Incorporated", - [3]byte{0, 34, 58}: "Scientific Atlanta, Cisco SPVT Group", - [3]byte{0, 34, 59}: "Communication Networks, LLC", - [3]byte{0, 34, 60}: "RATIO Entwicklungen GmbH", - [3]byte{0, 34, 61}: "JumpGen Systems, LLC", - [3]byte{0, 34, 62}: "IRTrans GmbH", - [3]byte{0, 34, 63}: "Netgear Inc.", - [3]byte{0, 34, 64}: "Universal Telecom S/A", - [3]byte{0, 34, 65}: "Apple", - [3]byte{0, 34, 66}: "Alacron Inc.", - [3]byte{0, 34, 67}: "AzureWave Technologies, Inc.", - [3]byte{0, 34, 68}: "Chengdu Linkon Communications Device Co., Ltd", - [3]byte{0, 34, 69}: "Leine & Linde AB", - [3]byte{0, 34, 70}: "Evoc Intelligent Technology Co.,Ltd.", - [3]byte{0, 34, 71}: "DAC ENGINEERING CO., LTD.", - [3]byte{0, 34, 72}: "Microsoft Corporation", - [3]byte{0, 34, 73}: "HOME MULTIENERGY SL", - [3]byte{0, 34, 74}: "RAYLASE AG", - [3]byte{0, 34, 75}: "AIRTECH TECHNOLOGIES, INC.", - [3]byte{0, 34, 76}: "Nintendo Co., Ltd.", - [3]byte{0, 34, 77}: "MITAC INTERNATIONAL CORP.", - [3]byte{0, 34, 78}: "SEEnergy Corp.", - [3]byte{0, 34, 79}: "Byzoro Networks Ltd.", - [3]byte{0, 34, 80}: "Point Six Wireless, LLC", - [3]byte{0, 34, 81}: "Lumasense Technologies", - [3]byte{0, 34, 82}: "ZOLL Lifecor Corporation", - [3]byte{0, 34, 83}: "Entorian Technologies", - [3]byte{0, 34, 84}: "Bigelow Aerospace", - [3]byte{0, 34, 85}: "CISCO SYSTEMS, INC.", - [3]byte{0, 34, 86}: "CISCO SYSTEMS, INC.", - [3]byte{0, 34, 87}: "3Com Europe Ltd", - [3]byte{0, 34, 88}: "Taiyo Yuden Co., Ltd.", - [3]byte{0, 34, 89}: "Guangzhou New Postcom Equipment Co.,Ltd.", - [3]byte{0, 34, 90}: "Garde Security AB", - [3]byte{0, 34, 91}: "Teradici Corporation", - [3]byte{0, 34, 92}: "Multimedia & Communication Technology", - [3]byte{0, 34, 93}: "Digicable Network India Pvt. Ltd.", - [3]byte{0, 34, 94}: "Uwin Technologies Co.,LTD", - [3]byte{0, 34, 95}: "Liteon Technology Corporation", - [3]byte{0, 34, 96}: "AFREEY Inc.", - [3]byte{0, 34, 97}: "Frontier Silicon Ltd", - [3]byte{0, 34, 98}: "BEP Marine", - [3]byte{0, 34, 99}: "Koos Technical Services, Inc.", - [3]byte{0, 34, 100}: "Hewlett-Packard Company", - [3]byte{0, 34, 101}: "Nokia Danmark A/S", - [3]byte{0, 34, 102}: "Nokia Danmark A/S", - [3]byte{0, 34, 103}: "Nortel Networks", - [3]byte{0, 34, 104}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 34, 105}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 34, 106}: "Honeywell", - [3]byte{0, 34, 107}: "Cisco-Linksys, LLC", - [3]byte{0, 34, 108}: "LinkSprite Technologies, Inc.", - [3]byte{0, 34, 109}: "Shenzhen GIEC Electronics Co., Ltd.", - [3]byte{0, 34, 110}: "Gowell Electronic Limited", - [3]byte{0, 34, 111}: "3onedata Technology Co. Ltd.", - [3]byte{0, 34, 112}: "ABK North America, LLC", - [3]byte{0, 34, 113}: "Jäger Computergesteuerte Meßtechnik GmbH.", - [3]byte{0, 34, 114}: "American Micro-Fuel Device Corp.", - [3]byte{0, 34, 115}: "Techway", - [3]byte{0, 34, 116}: "FamilyPhone AB", - [3]byte{0, 34, 117}: "Belkin International Inc.", - [3]byte{0, 34, 118}: "Triple EYE B.V.", - [3]byte{0, 34, 119}: "NEC Australia Pty Ltd", - [3]byte{0, 34, 120}: "Shenzhen Tongfang Multimedia Technology Co.,Ltd.", - [3]byte{0, 34, 121}: "Nippon Conlux Co., Ltd.", - [3]byte{0, 34, 122}: "Telecom Design", - [3]byte{0, 34, 123}: "Apogee Labs, Inc.", - [3]byte{0, 34, 124}: "Woori SMT Co.,ltd", - [3]byte{0, 34, 125}: "YE DATA INC.", - [3]byte{0, 34, 126}: "Chengdu 30Kaitian Communication Industry Co.Ltd", - [3]byte{0, 34, 127}: "Ruckus Wireless", - [3]byte{0, 34, 128}: "A2B Electronics AB", - [3]byte{0, 34, 129}: "Daintree Networks Pty", - [3]byte{0, 34, 130}: "8086 Consultancy", - [3]byte{0, 34, 131}: "Juniper Networks", - [3]byte{0, 34, 132}: "DESAY A&V SCIENCE AND TECHNOLOGY CO.,LTD", - [3]byte{0, 34, 133}: "NOMUS COMM SYSTEMS", - [3]byte{0, 34, 134}: "ASTRON", - [3]byte{0, 34, 135}: "Titan Wireless LLC", - [3]byte{0, 34, 136}: "Sagrad, Inc.", - [3]byte{0, 34, 137}: "Optosecurity Inc.", - [3]byte{0, 34, 138}: "Teratronik elektronische systeme gmbh", - [3]byte{0, 34, 139}: "Kensington Computer Products Group", - [3]byte{0, 34, 140}: "Photon Europe GmbH", - [3]byte{0, 34, 141}: "GBS Laboratories LLC", - [3]byte{0, 34, 142}: "TV-NUMERIC", - [3]byte{0, 34, 143}: "CNRS", - [3]byte{0, 34, 144}: "CISCO SYSTEMS, INC.", - [3]byte{0, 34, 145}: "CISCO SYSTEMS, INC.", - [3]byte{0, 34, 146}: "Cinetal", - [3]byte{0, 34, 147}: "ZTE Corporation", - [3]byte{0, 34, 148}: "Kyocera Corporation", - [3]byte{0, 34, 149}: "SGM Technology for lighting spa", - [3]byte{0, 34, 150}: "LinoWave Corporation", - [3]byte{0, 34, 151}: "XMOS Semiconductor", - [3]byte{0, 34, 152}: "Sony Ericsson Mobile Communications", - [3]byte{0, 34, 153}: "SeaMicro Inc.", - [3]byte{0, 34, 154}: "Lastar, Inc.", - [3]byte{0, 34, 155}: "AverLogic Technologies, Inc.", - [3]byte{0, 34, 156}: "Verismo Networks Inc", - [3]byte{0, 34, 157}: "PYUNG-HWA IND.CO.,LTD", - [3]byte{0, 34, 158}: "Social Aid Research Co., Ltd.", - [3]byte{0, 34, 159}: "Sensys Traffic AB", - [3]byte{0, 34, 160}: "Delphi Corporation", - [3]byte{0, 34, 161}: "Huawei Symantec Technologies Co.,Ltd.", - [3]byte{0, 34, 162}: "Xtramus Technologies", - [3]byte{0, 34, 163}: "California Eastern Laboratories", - [3]byte{0, 34, 164}: "2Wire", - [3]byte{0, 34, 165}: "Texas Instruments", - [3]byte{0, 34, 166}: "Sony Computer Entertainment America", - [3]byte{0, 34, 167}: "Tyco Electronics AMP GmbH", - [3]byte{0, 34, 168}: "Ouman Oy", - [3]byte{0, 34, 169}: "LG Electronics Inc", - [3]byte{0, 34, 170}: "Nintendo Co., Ltd.", - [3]byte{0, 34, 171}: "Shenzhen Turbosight Technology Ltd", - [3]byte{0, 34, 172}: "Hangzhou Siyuan Tech. Co., Ltd", - [3]byte{0, 34, 173}: "TELESIS TECHNOLOGIES, INC.", - [3]byte{0, 34, 174}: "Mattel Inc.", - [3]byte{0, 34, 175}: "Safety Vision", - [3]byte{0, 34, 176}: "D-Link Corporation", - [3]byte{0, 34, 177}: "Elbit Systems", - [3]byte{0, 34, 178}: "4RF Communications Ltd", - [3]byte{0, 34, 179}: "Sei S.p.A.", - [3]byte{0, 34, 180}: "ARRIS Group, Inc.", - [3]byte{0, 34, 181}: "NOVITA", - [3]byte{0, 34, 182}: "Superflow Technologies Group", - [3]byte{0, 34, 183}: "GSS Grundig SAT-Systems GmbH", - [3]byte{0, 34, 184}: "Norcott", - [3]byte{0, 34, 185}: "Analogix Seminconductor, Inc", - [3]byte{0, 34, 186}: "HUTH Elektronik Systeme GmbH", - [3]byte{0, 34, 187}: "beyerdynamic GmbH & Co. KG", - [3]byte{0, 34, 188}: "JDSU France SAS", - [3]byte{0, 34, 189}: "CISCO SYSTEMS, INC.", - [3]byte{0, 34, 190}: "CISCO SYSTEMS, INC.", - [3]byte{0, 34, 191}: "SieAmp Group of Companies", - [3]byte{0, 34, 192}: "Shenzhen Forcelink Electronic Co, Ltd", - [3]byte{0, 34, 193}: "Active Storage Inc.", - [3]byte{0, 34, 194}: "Proview Eletrônica do Brasil LTDA", - [3]byte{0, 34, 195}: "Zeeport Technology Inc.", - [3]byte{0, 34, 196}: "epro GmbH", - [3]byte{0, 34, 197}: "INFORSON Co,Ltd.", - [3]byte{0, 34, 198}: "Sutus Inc", - [3]byte{0, 34, 199}: "SEGGER Microcontroller GmbH & Co. KG", - [3]byte{0, 34, 200}: "Applied Instruments B.V.", - [3]byte{0, 34, 201}: "Lenord, Bauer & Co GmbH", - [3]byte{0, 34, 202}: "Anviz Biometric Tech. Co., Ltd.", - [3]byte{0, 34, 203}: "IONODES Inc.", - [3]byte{0, 34, 204}: "SciLog, Inc.", - [3]byte{0, 34, 205}: "Ared Technology Co., Ltd.", - [3]byte{0, 34, 206}: "Cisco, Service Provider Video Technology Group", - [3]byte{0, 34, 207}: "PLANEX Communications INC", - [3]byte{0, 34, 208}: "Polar Electro Oy", - [3]byte{0, 34, 209}: "Albrecht Jung GmbH & Co. KG", - [3]byte{0, 34, 210}: "All Earth Comércio de Eletrônicos LTDA.", - [3]byte{0, 34, 211}: "Hub-Tech", - [3]byte{0, 34, 212}: "ComWorth Co., Ltd.", - [3]byte{0, 34, 213}: "Eaton Corp. Electrical Group Data Center Solutions - Pulizzi", - [3]byte{0, 34, 214}: "Cypak AB", - [3]byte{0, 34, 215}: "Nintendo Co., Ltd.", - [3]byte{0, 34, 216}: "Shenzhen GST Security and Safety Technology Limited", - [3]byte{0, 34, 217}: "Fortex Industrial Ltd.", - [3]byte{0, 34, 218}: "ANATEK, LLC", - [3]byte{0, 34, 219}: "Translogic Corporation", - [3]byte{0, 34, 220}: "Vigil Health Solutions Inc.", - [3]byte{0, 34, 221}: "Protecta Electronics Ltd", - [3]byte{0, 34, 222}: "OPPO Digital, Inc.", - [3]byte{0, 34, 223}: "TAMUZ Monitors", - [3]byte{0, 34, 224}: "Atlantic Software Technologies S.r.L.", - [3]byte{0, 34, 225}: "ZORT Labs, LLC.", - [3]byte{0, 34, 226}: "WABTEC Transit Division", - [3]byte{0, 34, 227}: "Amerigon", - [3]byte{0, 34, 228}: "APASS TECHNOLOGY CO., LTD.", - [3]byte{0, 34, 229}: "Fisher-Rosemount Systems Inc.", - [3]byte{0, 34, 230}: "Intelligent Data", - [3]byte{0, 34, 231}: "WPS Parking Systems", - [3]byte{0, 34, 232}: "Applition Co., Ltd.", - [3]byte{0, 34, 233}: "ProVision Communications", - [3]byte{0, 34, 234}: "Rustelcom Inc.", - [3]byte{0, 34, 235}: "Data Respons A/S", - [3]byte{0, 34, 236}: "IDEALBT TECHNOLOGY CORPORATION", - [3]byte{0, 34, 237}: "TSI Power Corporation", - [3]byte{0, 34, 238}: "Algo Communication Products Ltd", - [3]byte{0, 34, 239}: "iWDL Technologies", - [3]byte{0, 34, 240}: "3 Greens Aviation Limited", - [3]byte{0, 34, 241}: "PRIVATE", - [3]byte{0, 34, 242}: "SunPower Corp", - [3]byte{0, 34, 243}: "SHARP Corporation", - [3]byte{0, 34, 244}: "AMPAK Technology, Inc.", - [3]byte{0, 34, 245}: "Advanced Realtime Tracking GmbH", - [3]byte{0, 34, 246}: "Syracuse Research Corporation", - [3]byte{0, 34, 247}: "Conceptronic", - [3]byte{0, 34, 248}: "PIMA Electronic Systems Ltd.", - [3]byte{0, 34, 249}: "Pollin Electronic GmbH", - [3]byte{0, 34, 250}: "Intel Corporate", - [3]byte{0, 34, 251}: "Intel Corporate", - [3]byte{0, 34, 252}: "Nokia Danmark A/S", - [3]byte{0, 34, 253}: "Nokia Danmark A/S", - [3]byte{0, 34, 254}: "Microprocessor Designs Inc", - [3]byte{0, 34, 255}: "iWDL Technologies", - [3]byte{0, 35, 0}: "Cayee Computer Ltd.", - [3]byte{0, 35, 1}: "Witron Technology Limited", - [3]byte{0, 35, 2}: "Cobalt Digital, Inc.", - [3]byte{0, 35, 3}: "LITE-ON IT Corporation", - [3]byte{0, 35, 4}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 5}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 6}: "ALPS Electric Co., Ltd", - [3]byte{0, 35, 7}: "FUTURE INNOVATION TECH CO.,LTD", - [3]byte{0, 35, 8}: "Arcadyan Technology Corporation", - [3]byte{0, 35, 9}: "Janam Technologies LLC", - [3]byte{0, 35, 10}: "ARBURG GmbH & Co KG", - [3]byte{0, 35, 11}: "ARRIS Group, Inc.", - [3]byte{0, 35, 12}: "CLOVER ELECTRONICS CO.,LTD.", - [3]byte{0, 35, 13}: "Nortel Networks", - [3]byte{0, 35, 14}: "Gorba AG", - [3]byte{0, 35, 15}: "Hirsch Electronics Corporation", - [3]byte{0, 35, 16}: "LNC Technology Co., Ltd.", - [3]byte{0, 35, 17}: "Gloscom Co., Ltd.", - [3]byte{0, 35, 18}: "Apple", - [3]byte{0, 35, 19}: "Qool Technologies Ltd.", - [3]byte{0, 35, 20}: "Intel Corporate", - [3]byte{0, 35, 21}: "Intel Corporate", - [3]byte{0, 35, 22}: "KISAN ELECTRONICS CO", - [3]byte{0, 35, 23}: "Lasercraft Inc", - [3]byte{0, 35, 24}: "Toshiba", - [3]byte{0, 35, 25}: "Sielox LLC", - [3]byte{0, 35, 26}: "ITF Co., Ltd.", - [3]byte{0, 35, 27}: "Danaher Motion - Kollmorgen", - [3]byte{0, 35, 28}: "Fourier Systems Ltd.", - [3]byte{0, 35, 29}: "Deltacom Electronics Ltd", - [3]byte{0, 35, 30}: "Cezzer Multimedia Technologies", - [3]byte{0, 35, 31}: "Guangda Electronic & Telecommunication Technology Development Co., Ltd.", - [3]byte{0, 35, 32}: "Nicira Networks", - [3]byte{0, 35, 33}: "Avitech International Corp", - [3]byte{0, 35, 34}: "KISS Teknical Solutions, Inc.", - [3]byte{0, 35, 35}: "Zylin AS", - [3]byte{0, 35, 36}: "G-PRO COMPUTER", - [3]byte{0, 35, 37}: "IOLAN Holding", - [3]byte{0, 35, 38}: "Fujitsu Limited", - [3]byte{0, 35, 39}: "Shouyo Electronics CO., LTD", - [3]byte{0, 35, 40}: "ALCON TELECOMMUNICATIONS CO., LTD.", - [3]byte{0, 35, 41}: "DDRdrive LLC", - [3]byte{0, 35, 42}: "eonas IT-Beratung und -Entwicklung GmbH", - [3]byte{0, 35, 43}: "IRD A/S", - [3]byte{0, 35, 44}: "Senticare", - [3]byte{0, 35, 45}: "SandForce", - [3]byte{0, 35, 46}: "Kedah Electronics Engineering, LLC", - [3]byte{0, 35, 47}: "Advanced Card Systems Ltd.", - [3]byte{0, 35, 48}: "DIZIPIA, INC.", - [3]byte{0, 35, 49}: "Nintendo Co., Ltd.", - [3]byte{0, 35, 50}: "Apple", - [3]byte{0, 35, 51}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 52}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 53}: "Linkflex Co.,Ltd", - [3]byte{0, 35, 54}: "METEL s.r.o.", - [3]byte{0, 35, 55}: "Global Star Solutions ULC", - [3]byte{0, 35, 56}: "OJ-Electronics A/S", - [3]byte{0, 35, 57}: "Samsung Electronics", - [3]byte{0, 35, 58}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 35, 59}: "C-Matic Systems Ltd", - [3]byte{0, 35, 60}: "Alflex", - [3]byte{0, 35, 61}: "Novero holding B.V.", - [3]byte{0, 35, 62}: "Alcatel-Lucent-IPD", - [3]byte{0, 35, 63}: "Purechoice Inc", - [3]byte{0, 35, 64}: "MiX Telematics", - [3]byte{0, 35, 65}: "Siemens AB, Infrastructure & Cities, Building Technologies Division, IC BT SSP SP BA PR", - [3]byte{0, 35, 66}: "Coffee Equipment Company", - [3]byte{0, 35, 67}: "TEM AG", - [3]byte{0, 35, 68}: "Objective Interface Systems, Inc.", - [3]byte{0, 35, 69}: "Sony Ericsson Mobile Communications", - [3]byte{0, 35, 70}: "Vestac", - [3]byte{0, 35, 71}: "ProCurve Networking by HP", - [3]byte{0, 35, 72}: "SAGEM COMMUNICATION", - [3]byte{0, 35, 73}: "Helmholtz Centre Berlin for Material and Energy", - [3]byte{0, 35, 74}: "PRIVATE", - [3]byte{0, 35, 75}: "Inyuan Technology Inc.", - [3]byte{0, 35, 76}: "KTC AB", - [3]byte{0, 35, 77}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 35, 78}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 35, 79}: "Luminous Power Technologies Pvt. Ltd.", - [3]byte{0, 35, 80}: "LynTec", - [3]byte{0, 35, 81}: "2Wire", - [3]byte{0, 35, 82}: "DATASENSOR S.p.A.", - [3]byte{0, 35, 83}: "F E T Elettronica snc", - [3]byte{0, 35, 84}: "ASUSTek COMPUTER INC.", - [3]byte{0, 35, 85}: "Kinco Automation(Shanghai) Ltd.", - [3]byte{0, 35, 86}: "Packet Forensics LLC", - [3]byte{0, 35, 87}: "Pitronot Technologies and Engineering P.T.E. Ltd.", - [3]byte{0, 35, 88}: "SYSTEL SA", - [3]byte{0, 35, 89}: "Benchmark Electronics ( Thailand ) Public Company Limited", - [3]byte{0, 35, 90}: "COMPAL INFORMATION (KUNSHAN) CO., Ltd.", - [3]byte{0, 35, 91}: "Gulfstream", - [3]byte{0, 35, 92}: "Aprius, Inc.", - [3]byte{0, 35, 93}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 94}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 95}: "Silicon Micro Sensors GmbH", - [3]byte{0, 35, 96}: "Lookit Technology Co., Ltd", - [3]byte{0, 35, 97}: "Unigen Corporation", - [3]byte{0, 35, 98}: "Goldline Controls", - [3]byte{0, 35, 99}: "Zhuhai RaySharp Technology Co., Ltd.", - [3]byte{0, 35, 100}: "Power Instruments Pte Ltd", - [3]byte{0, 35, 101}: "ELKA-Elektronik GmbH", - [3]byte{0, 35, 102}: "Beijing Siasun Electronic System Co.,Ltd.", - [3]byte{0, 35, 103}: "UniControls a.s.", - [3]byte{0, 35, 104}: "Motorola", - [3]byte{0, 35, 105}: "Cisco-Linksys, LLC", - [3]byte{0, 35, 106}: "SmartRG Inc", - [3]byte{0, 35, 107}: "Xembedded, Inc.", - [3]byte{0, 35, 108}: "Apple", - [3]byte{0, 35, 109}: "ResMed Ltd", - [3]byte{0, 35, 110}: "Burster GmbH & Co KG", - [3]byte{0, 35, 111}: "DAQ System", - [3]byte{0, 35, 112}: "Snell", - [3]byte{0, 35, 113}: "SOAM Systel", - [3]byte{0, 35, 114}: "MORE STAR INDUSTRIAL GROUP LIMITED", - [3]byte{0, 35, 115}: "GridIron Systems, Inc.", - [3]byte{0, 35, 116}: "ARRIS Group, Inc.", - [3]byte{0, 35, 117}: "ARRIS Group, Inc.", - [3]byte{0, 35, 118}: "HTC Corporation", - [3]byte{0, 35, 119}: "Isotek Electronics Ltd", - [3]byte{0, 35, 120}: "GN Netcom A/S", - [3]byte{0, 35, 121}: "Union Business Machines Co. Ltd.", - [3]byte{0, 35, 122}: "RIM", - [3]byte{0, 35, 123}: "WHDI LLC", - [3]byte{0, 35, 124}: "NEOTION", - [3]byte{0, 35, 125}: "Hewlett-Packard Company", - [3]byte{0, 35, 126}: "ELSTER GMBH", - [3]byte{0, 35, 127}: "PLANTRONICS, INC.", - [3]byte{0, 35, 128}: "Nanoteq", - [3]byte{0, 35, 129}: "Lengda Technology(Xiamen) Co.,Ltd.", - [3]byte{0, 35, 130}: "Lih Rong Electronic Enterprise Co., Ltd.", - [3]byte{0, 35, 131}: "InMage Systems Inc", - [3]byte{0, 35, 132}: "GGH Engineering s.r.l.", - [3]byte{0, 35, 133}: "ANTIPODE", - [3]byte{0, 35, 134}: "Tour & Andersson AB", - [3]byte{0, 35, 135}: "ThinkFlood, Inc.", - [3]byte{0, 35, 136}: "V.T. Telematica S.p.a.", - [3]byte{0, 35, 137}: "HANGZHOU H3C Technologies Co., Ltd.", - [3]byte{0, 35, 138}: "Ciena Corporation", - [3]byte{0, 35, 139}: "Quanta Computer Inc.", - [3]byte{0, 35, 140}: "PRIVATE", - [3]byte{0, 35, 141}: "Techno Design Co., Ltd.", - [3]byte{0, 35, 142}: "Pirelli Tyre S.p.A.", - [3]byte{0, 35, 143}: "NIDEC COPAL CORPORATION", - [3]byte{0, 35, 144}: "Algolware Corporation", - [3]byte{0, 35, 145}: "Maxian", - [3]byte{0, 35, 146}: "Proteus Industries Inc.", - [3]byte{0, 35, 147}: "AJINEXTEK", - [3]byte{0, 35, 148}: "Samjeon", - [3]byte{0, 35, 149}: "ARRIS Group, Inc.", - [3]byte{0, 35, 150}: "ANDES TECHNOLOGY CORPORATION", - [3]byte{0, 35, 151}: "Westell Technologies Inc.", - [3]byte{0, 35, 152}: "Sky Control", - [3]byte{0, 35, 153}: "VD Division, Samsung Electronics Co.", - [3]byte{0, 35, 154}: "EasyData Hardware GmbH", - [3]byte{0, 35, 155}: "Elster Solutions, LLC", - [3]byte{0, 35, 156}: "Juniper Networks", - [3]byte{0, 35, 157}: "Mapower Electronics Co., Ltd", - [3]byte{0, 35, 158}: "Jiangsu Lemote Technology Corporation Limited", - [3]byte{0, 35, 159}: "Institut für Prüftechnik", - [3]byte{0, 35, 160}: "Hana CNS Co., LTD.", - [3]byte{0, 35, 161}: "Trend Electronics Ltd", - [3]byte{0, 35, 162}: "ARRIS Group, Inc.", - [3]byte{0, 35, 163}: "ARRIS Group, Inc.", - [3]byte{0, 35, 164}: "New Concepts Development Corp.", - [3]byte{0, 35, 165}: "SageTV, LLC", - [3]byte{0, 35, 166}: "E-Mon", - [3]byte{0, 35, 167}: "Redpine Signals, Inc.", - [3]byte{0, 35, 168}: "Marshall Electronics", - [3]byte{0, 35, 169}: "Beijing Detianquan Electromechanical Equipment Co., Ltd", - [3]byte{0, 35, 170}: "HFR, Inc.", - [3]byte{0, 35, 171}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 172}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 173}: "Xmark Corporation", - [3]byte{0, 35, 174}: "Dell Inc.", - [3]byte{0, 35, 175}: "ARRIS Group, Inc.", - [3]byte{0, 35, 176}: "COMXION Technology Inc.", - [3]byte{0, 35, 177}: "Longcheer Technology (Singapore) Pte Ltd", - [3]byte{0, 35, 178}: "Intelligent Mechatronic Systems Inc", - [3]byte{0, 35, 179}: "Lyyn AB", - [3]byte{0, 35, 180}: "Nokia Danmark A/S", - [3]byte{0, 35, 181}: "ORTANA LTD", - [3]byte{0, 35, 182}: "SECURITE COMMUNICATIONS / HONEYWELL", - [3]byte{0, 35, 183}: "Q-Light Co., Ltd.", - [3]byte{0, 35, 184}: "Sichuan Jiuzhou Electronic Technology Co.,Ltd", - [3]byte{0, 35, 185}: "EADS Deutschland GmbH", - [3]byte{0, 35, 186}: "Chroma", - [3]byte{0, 35, 187}: "Schmitt Industries", - [3]byte{0, 35, 188}: "EQ-SYS GmbH", - [3]byte{0, 35, 189}: "Digital Ally, Inc.", - [3]byte{0, 35, 190}: "Cisco SPVTG", - [3]byte{0, 35, 191}: "Mainpine, Inc.", - [3]byte{0, 35, 192}: "Broadway Networks", - [3]byte{0, 35, 193}: "Securitas Direct AB", - [3]byte{0, 35, 194}: "SAMSUNG Electronics. Co. LTD", - [3]byte{0, 35, 195}: "LogMeIn, Inc.", - [3]byte{0, 35, 196}: "Lux Lumen", - [3]byte{0, 35, 197}: "Radiation Safety and Control Services Inc", - [3]byte{0, 35, 198}: "SMC Corporation", - [3]byte{0, 35, 199}: "AVSystem", - [3]byte{0, 35, 200}: "TEAM-R", - [3]byte{0, 35, 201}: "Sichuan Tianyi Information Science & Technology Stock CO.,LTD", - [3]byte{0, 35, 202}: "Behind The Set, LLC", - [3]byte{0, 35, 203}: "Shenzhen Full-join Technology Co.,Ltd", - [3]byte{0, 35, 204}: "Nintendo Co., Ltd.", - [3]byte{0, 35, 205}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{0, 35, 206}: "KITA DENSHI CORPORATION", - [3]byte{0, 35, 207}: "CUMMINS-ALLISON CORP.", - [3]byte{0, 35, 208}: "Uniloc USA Inc.", - [3]byte{0, 35, 209}: "TRG", - [3]byte{0, 35, 210}: "Inhand Electronics, Inc.", - [3]byte{0, 35, 211}: "AirLink WiFi Networking Corp.", - [3]byte{0, 35, 212}: "Texas Instruments", - [3]byte{0, 35, 213}: "WAREMA electronic GmbH", - [3]byte{0, 35, 214}: "Samsung Electronics Co.,LTD", - [3]byte{0, 35, 215}: "Samsung Electronics", - [3]byte{0, 35, 216}: "Ball-It Oy", - [3]byte{0, 35, 217}: "Banner Engineering", - [3]byte{0, 35, 218}: "Industrial Computer Source (Deutschland)GmbH", - [3]byte{0, 35, 219}: "saxnet gmbh", - [3]byte{0, 35, 220}: "Benein, Inc", - [3]byte{0, 35, 221}: "ELGIN S.A.", - [3]byte{0, 35, 222}: "Ansync Inc.", - [3]byte{0, 35, 223}: "Apple", - [3]byte{0, 35, 224}: "INO Therapeutics LLC", - [3]byte{0, 35, 225}: "Cavena Image Products AB", - [3]byte{0, 35, 226}: "SEA Signalisation", - [3]byte{0, 35, 227}: "Microtronic AG", - [3]byte{0, 35, 228}: "IPnect co. ltd.", - [3]byte{0, 35, 229}: "IPaXiom Networks", - [3]byte{0, 35, 230}: "Pirkus, Inc.", - [3]byte{0, 35, 231}: "Hinke A/S", - [3]byte{0, 35, 232}: "Demco Corp.", - [3]byte{0, 35, 233}: "F5 Networks, Inc.", - [3]byte{0, 35, 234}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 235}: "CISCO SYSTEMS, INC.", - [3]byte{0, 35, 236}: "Algorithmix GmbH", - [3]byte{0, 35, 237}: "ARRIS Group, Inc.", - [3]byte{0, 35, 238}: "ARRIS Group, Inc.", - [3]byte{0, 35, 239}: "Zuend Systemtechnik AG", - [3]byte{0, 35, 240}: "Shanghai Jinghan Weighing Apparatus Co. Ltd.", - [3]byte{0, 35, 241}: "Sony Ericsson Mobile Communications", - [3]byte{0, 35, 242}: "TVLogic", - [3]byte{0, 35, 243}: "Glocom, Inc.", - [3]byte{0, 35, 244}: "Masternaut", - [3]byte{0, 35, 245}: "WILO SE", - [3]byte{0, 35, 246}: "Softwell Technology Co., Ltd.", - [3]byte{0, 35, 247}: "PRIVATE", - [3]byte{0, 35, 248}: "ZyXEL Communications Corporation", - [3]byte{0, 35, 249}: "Double-Take Software, INC.", - [3]byte{0, 35, 250}: "RG Nets, Inc.", - [3]byte{0, 35, 251}: "IP Datatel, LLC.", - [3]byte{0, 35, 252}: "Ultra Stereo Labs, Inc", - [3]byte{0, 35, 253}: "AFT Atlas Fahrzeugtechnik GmbH", - [3]byte{0, 35, 254}: "Biodevices, SA", - [3]byte{0, 35, 255}: "Beijing HTTC Technology Ltd.", - [3]byte{0, 36, 0}: "Nortel Networks", - [3]byte{0, 36, 1}: "D-Link Corporation", - [3]byte{0, 36, 2}: "Op-Tection GmbH", - [3]byte{0, 36, 3}: "Nokia Danmark A/S", - [3]byte{0, 36, 4}: "Nokia Danmark A/S", - [3]byte{0, 36, 5}: "Dilog Nordic AB", - [3]byte{0, 36, 6}: "Pointmobile", - [3]byte{0, 36, 7}: "TELEM SAS", - [3]byte{0, 36, 8}: "Pacific Biosciences", - [3]byte{0, 36, 9}: "The Toro Company", - [3]byte{0, 36, 10}: "US Beverage Net", - [3]byte{0, 36, 11}: "Virtual Computer Inc.", - [3]byte{0, 36, 12}: "DELEC GmbH", - [3]byte{0, 36, 13}: "OnePath Networks LTD.", - [3]byte{0, 36, 14}: "Inventec Besta Co., Ltd.", - [3]byte{0, 36, 15}: "Ishii Tool & Engineering Corporation", - [3]byte{0, 36, 16}: "NUETEQ Technology,Inc.", - [3]byte{0, 36, 17}: "PharmaSmart LLC", - [3]byte{0, 36, 18}: "Benign Technologies Co, Ltd.", - [3]byte{0, 36, 19}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 20}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 21}: "Magnetic Autocontrol GmbH", - [3]byte{0, 36, 22}: "Any Use", - [3]byte{0, 36, 23}: "Thomson Telecom Belgium", - [3]byte{0, 36, 24}: "Nextwave Semiconductor", - [3]byte{0, 36, 25}: "PRIVATE", - [3]byte{0, 36, 26}: "Red Beetle Inc.", - [3]byte{0, 36, 27}: "iWOW Communications Pte Ltd", - [3]byte{0, 36, 28}: "FuGang Electronic (DG) Co.,Ltd", - [3]byte{0, 36, 29}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{0, 36, 30}: "Nintendo Co., Ltd.", - [3]byte{0, 36, 31}: "DCT-Delta GmbH", - [3]byte{0, 36, 32}: "NetUP Inc.", - [3]byte{0, 36, 33}: "MICRO-STAR INT'L CO., LTD.", - [3]byte{0, 36, 34}: "Knapp Logistik Automation GmbH", - [3]byte{0, 36, 35}: "AzureWave Technologies (Shanghai) Inc.", - [3]byte{0, 36, 36}: "Axis Network Technology", - [3]byte{0, 36, 37}: "Shenzhenshi chuangzhicheng Technology Co.,Ltd", - [3]byte{0, 36, 38}: "NOHMI BOSAI LTD.", - [3]byte{0, 36, 39}: "SSI COMPUTER CORP", - [3]byte{0, 36, 40}: "EnergyICT", - [3]byte{0, 36, 41}: "MK MASTER INC.", - [3]byte{0, 36, 42}: "Hittite Microwave Corporation", - [3]byte{0, 36, 43}: "Hon Hai Precision Ind.Co.,Ltd.", - [3]byte{0, 36, 44}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 36, 46}: "Datastrip Inc.", - [3]byte{0, 36, 47}: "Micron", - [3]byte{0, 36, 48}: "Ruby Tech Corp.", - [3]byte{0, 36, 49}: "Uni-v co.,ltd", - [3]byte{0, 36, 50}: "Neostar Technology Co.,LTD", - [3]byte{0, 36, 51}: "Alps Electric Co., Ltd", - [3]byte{0, 36, 52}: "Lectrosonics, Inc.", - [3]byte{0, 36, 53}: "WIDE CORPORATION", - [3]byte{0, 36, 54}: "Apple", - [3]byte{0, 36, 55}: "Motorola - BSG", - [3]byte{0, 36, 56}: "Brocade Communications Systems, Inc", - [3]byte{0, 36, 57}: "Digital Barriers Advanced Technologies", - [3]byte{0, 36, 58}: "Ludl Electronic Products", - [3]byte{0, 36, 59}: "CSSI (S) Pte Ltd", - [3]byte{0, 36, 60}: "S.A.A.A.", - [3]byte{0, 36, 61}: "Emerson Appliance Motors and Controls", - [3]byte{0, 36, 63}: "Storwize, Inc.", - [3]byte{0, 36, 64}: "Halo Monitoring, Inc.", - [3]byte{0, 36, 65}: "Wanzl Metallwarenfabrik GmbH", - [3]byte{0, 36, 66}: "Axona Limited", - [3]byte{0, 36, 67}: "Nortel Networks", - [3]byte{0, 36, 68}: "Nintendo Co., Ltd.", - [3]byte{0, 36, 69}: "CommScope Canada Inc.", - [3]byte{0, 36, 70}: "MMB Research Inc.", - [3]byte{0, 36, 71}: "Kaztek Systems", - [3]byte{0, 36, 72}: "SpiderCloud Wireless, Inc", - [3]byte{0, 36, 73}: "Shen Zhen Lite Star Electronics Technology Co., Ltd", - [3]byte{0, 36, 74}: "Voyant International", - [3]byte{0, 36, 75}: "PERCEPTRON INC", - [3]byte{0, 36, 76}: "Solartron Metrology Ltd", - [3]byte{0, 36, 77}: "Hokkaido Electronics Corporation", - [3]byte{0, 36, 78}: "RadChips, Inc.", - [3]byte{0, 36, 79}: "Asantron Technologies Ltd.", - [3]byte{0, 36, 80}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 81}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 82}: "Silicon Software GmbH", - [3]byte{0, 36, 83}: "Initra d.o.o.", - [3]byte{0, 36, 84}: "Samsung Electronics CO., LTD", - [3]byte{0, 36, 85}: "MuLogic BV", - [3]byte{0, 36, 86}: "2Wire", - [3]byte{0, 36, 88}: "PA Bastion CC", - [3]byte{0, 36, 89}: "ABB STOTZ-KONTAKT GmbH", - [3]byte{0, 36, 90}: "Nanjing Panda Electronics Company Limited", - [3]byte{0, 36, 91}: "RAIDON TECHNOLOGY, INC.", - [3]byte{0, 36, 92}: "Design-Com Technologies Pty. Ltd.", - [3]byte{0, 36, 93}: "Terberg besturingstechniek B.V.", - [3]byte{0, 36, 94}: "Hivision Co.,ltd", - [3]byte{0, 36, 95}: "Vine Telecom CO.,Ltd.", - [3]byte{0, 36, 96}: "Giaval Science Development Co. Ltd.", - [3]byte{0, 36, 97}: "Shin Wang Tech.", - [3]byte{0, 36, 98}: "Rayzone Corporation", - [3]byte{0, 36, 99}: "Phybridge Inc", - [3]byte{0, 36, 100}: "Bridge Technologies Co AS", - [3]byte{0, 36, 101}: "Elentec", - [3]byte{0, 36, 102}: "Unitron nv", - [3]byte{0, 36, 103}: "AOC International (Europe) GmbH", - [3]byte{0, 36, 104}: "Sumavision Technologies Co.,Ltd", - [3]byte{0, 36, 105}: "Smart Doorphones", - [3]byte{0, 36, 106}: "Solid Year Co., Ltd.", - [3]byte{0, 36, 107}: "Covia, Inc.", - [3]byte{0, 36, 108}: "ARUBA NETWORKS, INC.", - [3]byte{0, 36, 109}: "Weinzierl Engineering GmbH", - [3]byte{0, 36, 110}: "Phihong USA Corp.", - [3]byte{0, 36, 111}: "Onda Communication spa", - [3]byte{0, 36, 112}: "AUROTECH ultrasound AS.", - [3]byte{0, 36, 113}: "Fusion MultiSystems dba Fusion-io", - [3]byte{0, 36, 114}: "ReDriven Power Inc.", - [3]byte{0, 36, 115}: "3Com Europe Ltd", - [3]byte{0, 36, 116}: "Autronica Fire And Securirty", - [3]byte{0, 36, 117}: "Compass System(Embedded Dept.)", - [3]byte{0, 36, 118}: "TAP.tv", - [3]byte{0, 36, 119}: "Tibbo Technology", - [3]byte{0, 36, 120}: "Mag Tech Electronics Co Limited", - [3]byte{0, 36, 121}: "Optec Displays, Inc.", - [3]byte{0, 36, 122}: "FU YI CHENG Technology Co., Ltd.", - [3]byte{0, 36, 123}: "Actiontec Electronics, Inc", - [3]byte{0, 36, 124}: "Nokia Danmark A/S", - [3]byte{0, 36, 125}: "Nokia Danmark A/S", - [3]byte{0, 36, 126}: "Universal Global Scientific Industrial Co., Ltd", - [3]byte{0, 36, 127}: "Nortel Networks", - [3]byte{0, 36, 128}: "Meteocontrol GmbH", - [3]byte{0, 36, 129}: "Hewlett-Packard Company", - [3]byte{0, 36, 130}: "Ruckus Wireless", - [3]byte{0, 36, 131}: "LG Electronics", - [3]byte{0, 36, 132}: "Bang and Olufsen Medicom a/s", - [3]byte{0, 36, 133}: "ConteXtream Ltd", - [3]byte{0, 36, 134}: "DesignArt Networks", - [3]byte{0, 36, 135}: "Blackboard Inc.", - [3]byte{0, 36, 136}: "Centre For Development Of Telematics", - [3]byte{0, 36, 137}: "Vodafone Omnitel N.V.", - [3]byte{0, 36, 138}: "Kaga Electronics Co., Ltd.", - [3]byte{0, 36, 139}: "HYBUS CO., LTD.", - [3]byte{0, 36, 140}: "ASUSTek COMPUTER INC.", - [3]byte{0, 36, 141}: "Sony Computer Entertainment Inc.", - [3]byte{0, 36, 142}: "Infoware ZRt.", - [3]byte{0, 36, 143}: "DO-MONIX", - [3]byte{0, 36, 144}: "Samsung Electronics Co.,LTD", - [3]byte{0, 36, 145}: "Samsung Electronics", - [3]byte{0, 36, 146}: "Motorola, Broadband Solutions Group", - [3]byte{0, 36, 147}: "ARRIS Group, Inc.", - [3]byte{0, 36, 148}: "Shenzhen Baoxin Tech CO., Ltd.", - [3]byte{0, 36, 149}: "ARRIS Group, Inc.", - [3]byte{0, 36, 150}: "Ginzinger electronic systems", - [3]byte{0, 36, 151}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 152}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 153}: "Aquila Technologies", - [3]byte{0, 36, 154}: "Beijing Zhongchuang Telecommunication Test Co., Ltd.", - [3]byte{0, 36, 155}: "Action Star Enterprise Co., Ltd.", - [3]byte{0, 36, 156}: "Bimeng Comunication System Co. Ltd", - [3]byte{0, 36, 157}: "NES Technology Inc.", - [3]byte{0, 36, 158}: "ADC-Elektronik GmbH", - [3]byte{0, 36, 159}: "RIM Testing Services", - [3]byte{0, 36, 160}: "ARRIS Group, Inc.", - [3]byte{0, 36, 161}: "ARRIS Group, Inc.", - [3]byte{0, 36, 162}: "Hong Kong Middleware Technology Limited", - [3]byte{0, 36, 163}: "Sonim Technologies Inc", - [3]byte{0, 36, 164}: "Siklu Communication", - [3]byte{0, 36, 165}: "Buffalo Inc.", - [3]byte{0, 36, 166}: "TELESTAR DIGITAL GmbH", - [3]byte{0, 36, 167}: "Advanced Video Communications Inc.", - [3]byte{0, 36, 168}: "ProCurve Networking by HP", - [3]byte{0, 36, 169}: "Ag Leader Technology", - [3]byte{0, 36, 170}: "Dycor Technologies Ltd.", - [3]byte{0, 36, 171}: "A7 Engineering, Inc.", - [3]byte{0, 36, 172}: "Hangzhou DPtech Technologies Co., Ltd.", - [3]byte{0, 36, 173}: "Adolf Thies Gmbh & Co. KG", - [3]byte{0, 36, 174}: "Morpho", - [3]byte{0, 36, 175}: "EchoStar Technologies", - [3]byte{0, 36, 176}: "ESAB AB", - [3]byte{0, 36, 177}: "Coulomb Technologies", - [3]byte{0, 36, 178}: "Netgear", - [3]byte{0, 36, 179}: "Graf-Syteco GmbH & Co. KG", - [3]byte{0, 36, 180}: "ESCATRONIC GmbH", - [3]byte{0, 36, 181}: "Nortel Networks", - [3]byte{0, 36, 182}: "Seagate Technology", - [3]byte{0, 36, 183}: "GridPoint, Inc.", - [3]byte{0, 36, 184}: "free alliance sdn bhd", - [3]byte{0, 36, 185}: "Wuhan Higheasy Electronic Technology Development Co.Ltd", - [3]byte{0, 36, 186}: "Texas Instruments", - [3]byte{0, 36, 187}: "CENTRAL Corporation", - [3]byte{0, 36, 188}: "HuRob Co.,Ltd", - [3]byte{0, 36, 189}: "Hainzl Industriesysteme GmbH", - [3]byte{0, 36, 190}: "Sony Corporation", - [3]byte{0, 36, 191}: "CIAT", - [3]byte{0, 36, 192}: "NTI COMODO INC", - [3]byte{0, 36, 193}: "ARRIS Group, Inc.", - [3]byte{0, 36, 194}: "Asumo Co.,Ltd.", - [3]byte{0, 36, 195}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 196}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 197}: "Meridian Audio Limited", - [3]byte{0, 36, 198}: "Hager Electro SAS", - [3]byte{0, 36, 199}: "Mobilarm Ltd", - [3]byte{0, 36, 200}: "Broadband Solutions Group", - [3]byte{0, 36, 201}: "Broadband Solutions Group", - [3]byte{0, 36, 202}: "Tobii Technology AB", - [3]byte{0, 36, 203}: "Autonet Mobile", - [3]byte{0, 36, 204}: "Fascinations Toys and Gifts, Inc.", - [3]byte{0, 36, 205}: "Willow Garage, Inc.", - [3]byte{0, 36, 206}: "Exeltech Inc", - [3]byte{0, 36, 207}: "Inscape Data Corporation", - [3]byte{0, 36, 208}: "Shenzhen SOGOOD Industry CO.,LTD.", - [3]byte{0, 36, 209}: "Thomson Inc.", - [3]byte{0, 36, 210}: "Askey Computer", - [3]byte{0, 36, 211}: "QUALICA Inc.", - [3]byte{0, 36, 212}: "FREEBOX SA", - [3]byte{0, 36, 213}: "Winward Industrial Limited", - [3]byte{0, 36, 214}: "Intel Corporate", - [3]byte{0, 36, 215}: "Intel Corporate", - [3]byte{0, 36, 216}: "IlSung Precision", - [3]byte{0, 36, 217}: "BICOM, Inc.", - [3]byte{0, 36, 218}: "Innovar Systems Limited", - [3]byte{0, 36, 219}: "Alcohol Monitoring Systems", - [3]byte{0, 36, 220}: "Juniper Networks", - [3]byte{0, 36, 221}: "Centrak, Inc.", - [3]byte{0, 36, 222}: "GLOBAL Technology Inc.", - [3]byte{0, 36, 223}: "Digitalbox Europe GmbH", - [3]byte{0, 36, 224}: "DS Tech, LLC", - [3]byte{0, 36, 225}: "Convey Computer Corp.", - [3]byte{0, 36, 226}: "HASEGAWA ELECTRIC CO.,LTD.", - [3]byte{0, 36, 227}: "CAO Group", - [3]byte{0, 36, 228}: "Withings", - [3]byte{0, 36, 229}: "Seer Technology, Inc", - [3]byte{0, 36, 230}: "In Motion Technology Inc.", - [3]byte{0, 36, 231}: "Plaster Networks", - [3]byte{0, 36, 232}: "Dell Inc.", - [3]byte{0, 36, 233}: "Samsung Electronics Co., Ltd., Storage System Division", - [3]byte{0, 36, 234}: "iris-GmbH infrared & intelligent sensors", - [3]byte{0, 36, 235}: "ClearPath Networks, Inc.", - [3]byte{0, 36, 236}: "United Information Technology Co.,Ltd.", - [3]byte{0, 36, 237}: "YT Elec. Co,.Ltd.", - [3]byte{0, 36, 238}: "Wynmax Inc.", - [3]byte{0, 36, 239}: "Sony Ericsson Mobile Communications", - [3]byte{0, 36, 240}: "Seanodes", - [3]byte{0, 36, 241}: "Shenzhen Fanhai Sanjiang Electronics Co., Ltd.", - [3]byte{0, 36, 242}: "Uniphone Telecommunication Co., Ltd.", - [3]byte{0, 36, 243}: "Nintendo Co., Ltd.", - [3]byte{0, 36, 244}: "Kaminario Technologies Ltd.", - [3]byte{0, 36, 245}: "NDS Surgical Imaging", - [3]byte{0, 36, 246}: "MIYOSHI ELECTRONICS CORPORATION", - [3]byte{0, 36, 247}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 248}: "Technical Solutions Company Ltd.", - [3]byte{0, 36, 249}: "CISCO SYSTEMS, INC.", - [3]byte{0, 36, 250}: "Hilger u. Kern GMBH", - [3]byte{0, 36, 251}: "PRIVATE", - [3]byte{0, 36, 252}: "QuoPin Co., Ltd.", - [3]byte{0, 36, 253}: "Accedian Networks Inc", - [3]byte{0, 36, 254}: "AVM GmbH", - [3]byte{0, 36, 255}: "QLogic Corporation", - [3]byte{0, 37, 0}: "Apple", - [3]byte{0, 37, 1}: "JSC \"Supertel\"", - [3]byte{0, 37, 2}: "NaturalPoint", - [3]byte{0, 37, 3}: "IBM Corp", - [3]byte{0, 37, 4}: "Valiant Communications Limited", - [3]byte{0, 37, 5}: "eks Engel GmbH & Co. KG", - [3]byte{0, 37, 6}: "A.I. ANTITACCHEGGIO ITALIA SRL", - [3]byte{0, 37, 7}: "ASTAK Inc.", - [3]byte{0, 37, 8}: "Maquet Cardiopulmonary AG", - [3]byte{0, 37, 9}: "SHARETRONIC Group LTD", - [3]byte{0, 37, 10}: "Security Expert Co. Ltd", - [3]byte{0, 37, 11}: "CENTROFACTOR INC", - [3]byte{0, 37, 12}: "Enertrac", - [3]byte{0, 37, 13}: "GZT Telkom-Telmor sp. z o.o.", - [3]byte{0, 37, 14}: "gt german telematics gmbh", - [3]byte{0, 37, 15}: "On-Ramp Wireless, Inc.", - [3]byte{0, 37, 16}: "Pico-Tesla Magnetic Therapies", - [3]byte{0, 37, 17}: "ELITEGROUP COMPUTER SYSTEM CO., LTD.", - [3]byte{0, 37, 18}: "ZTE Corporation", - [3]byte{0, 37, 19}: "CXP DIGITAL BV", - [3]byte{0, 37, 20}: "PC Worth Int'l Co., Ltd.", - [3]byte{0, 37, 21}: "SFR", - [3]byte{0, 37, 22}: "Integrated Design Tools, Inc.", - [3]byte{0, 37, 23}: "Venntis, LLC", - [3]byte{0, 37, 24}: "Power PLUS Communications AG", - [3]byte{0, 37, 25}: "Viaas Inc", - [3]byte{0, 37, 26}: "Psiber Data Systems Inc.", - [3]byte{0, 37, 27}: "Philips CareServant", - [3]byte{0, 37, 28}: "EDT", - [3]byte{0, 37, 29}: "DSA Encore, LLC", - [3]byte{0, 37, 30}: "ROTEL TECHNOLOGIES", - [3]byte{0, 37, 31}: "ZYNUS VISION INC.", - [3]byte{0, 37, 32}: "SMA Railway Technology GmbH", - [3]byte{0, 37, 33}: "Logitek Electronic Systems, Inc.", - [3]byte{0, 37, 34}: "ASRock Incorporation", - [3]byte{0, 37, 35}: "OCP Inc.", - [3]byte{0, 37, 36}: "Lightcomm Technology Co., Ltd", - [3]byte{0, 37, 37}: "CTERA Networks Ltd.", - [3]byte{0, 37, 38}: "Genuine Technologies Co., Ltd.", - [3]byte{0, 37, 39}: "Bitrode Corp.", - [3]byte{0, 37, 40}: "Daido Signal Co., Ltd.", - [3]byte{0, 37, 41}: "COMELIT GROUP S.P.A", - [3]byte{0, 37, 42}: "Chengdu GeeYa Technology Co.,LTD", - [3]byte{0, 37, 43}: "Stirling Energy Systems", - [3]byte{0, 37, 44}: "Entourage Systems, Inc.", - [3]byte{0, 37, 45}: "Kiryung Electronics", - [3]byte{0, 37, 46}: "Cisco SPVTG", - [3]byte{0, 37, 47}: "Energy, Inc.", - [3]byte{0, 37, 48}: "Aetas Systems Inc.", - [3]byte{0, 37, 49}: "Cloud Engines, Inc.", - [3]byte{0, 37, 50}: "Digital Recorders", - [3]byte{0, 37, 51}: "WITTENSTEIN AG", - [3]byte{0, 37, 53}: "Minimax GmbH & Co KG", - [3]byte{0, 37, 54}: "Oki Electric Industry Co., Ltd.", - [3]byte{0, 37, 55}: "Runcom Technologies Ltd.", - [3]byte{0, 37, 56}: "Samsung Electronics Co., Ltd., Memory Division", - [3]byte{0, 37, 57}: "IfTA GmbH", - [3]byte{0, 37, 58}: "CEVA, Ltd.", - [3]byte{0, 37, 59}: "din Dietmar Nocker Facilitymanagement GmbH", - [3]byte{0, 37, 60}: "2Wire", - [3]byte{0, 37, 61}: "DRS Consolidated Controls", - [3]byte{0, 37, 62}: "Sensus Metering Systems", - [3]byte{0, 37, 64}: "Quasar Technologies, Inc.", - [3]byte{0, 37, 65}: "Maquet Critical Care AB", - [3]byte{0, 37, 66}: "Pittasoft", - [3]byte{0, 37, 67}: "MONEYTECH", - [3]byte{0, 37, 68}: "LoJack Corporation", - [3]byte{0, 37, 69}: "CISCO SYSTEMS, INC.", - [3]byte{0, 37, 70}: "CISCO SYSTEMS, INC.", - [3]byte{0, 37, 71}: "Nokia Danmark A/S", - [3]byte{0, 37, 72}: "Nokia Danmark A/S", - [3]byte{0, 37, 73}: "Jeorich Tech. Co.,Ltd.", - [3]byte{0, 37, 74}: "RingCube Technologies, Inc.", - [3]byte{0, 37, 75}: "Apple", - [3]byte{0, 37, 76}: "Videon Central, Inc.", - [3]byte{0, 37, 77}: "Singapore Technologies Electronics Limited", - [3]byte{0, 37, 78}: "Vertex Wireless Co., Ltd.", - [3]byte{0, 37, 79}: "ELETTROLAB Srl", - [3]byte{0, 37, 80}: "Riverbed Technology", - [3]byte{0, 37, 81}: "SE-Elektronic GmbH", - [3]byte{0, 37, 82}: "VXI CORPORATION", - [3]byte{0, 37, 83}: "Pirelli Tyre S.p.A.", - [3]byte{0, 37, 84}: "Pixel8 Networks", - [3]byte{0, 37, 85}: "Visonic Technologies 1993 Ltd", - [3]byte{0, 37, 86}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{0, 37, 87}: "Research In Motion", - [3]byte{0, 37, 88}: "MPEDIA", - [3]byte{0, 37, 89}: "Syphan Technologies Ltd", - [3]byte{0, 37, 90}: "Tantalus Systems Corp.", - [3]byte{0, 37, 91}: "CoachComm, LLC", - [3]byte{0, 37, 92}: "NEC Corporation", - [3]byte{0, 37, 93}: "Morningstar Corporation", - [3]byte{0, 37, 94}: "Shanghai Dare Technologies Co.,Ltd.", - [3]byte{0, 37, 95}: "SenTec AG", - [3]byte{0, 37, 96}: "Ibridge Networks & Communications Ltd.", - [3]byte{0, 37, 97}: "ProCurve Networking by HP", - [3]byte{0, 37, 98}: "interbro Co. Ltd.", - [3]byte{0, 37, 99}: "Luxtera Inc", - [3]byte{0, 37, 100}: "Dell Inc.", - [3]byte{0, 37, 101}: "Vizimax Inc.", - [3]byte{0, 37, 102}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 37, 103}: "Samsung Electronics", - [3]byte{0, 37, 104}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{0, 37, 105}: "SAGEM COMMUNICATION", - [3]byte{0, 37, 106}: "inIT - Institut Industrial IT", - [3]byte{0, 37, 107}: "ATENIX E.E. s.r.l.", - [3]byte{0, 37, 108}: "\"Azimut\" Production Association JSC", - [3]byte{0, 37, 109}: "Broadband Forum", - [3]byte{0, 37, 110}: "Van Breda B.V.", - [3]byte{0, 37, 111}: "Dantherm Power", - [3]byte{0, 37, 112}: "Eastern Communications Company Limited", - [3]byte{0, 37, 113}: "Zhejiang Tianle Digital Electric Co.,Ltd", - [3]byte{0, 37, 114}: "Nemo-Q International AB", - [3]byte{0, 37, 115}: "ST Electronics (Info-Security) Pte Ltd", - [3]byte{0, 37, 116}: "KUNIMI MEDIA DEVICE Co., Ltd.", - [3]byte{0, 37, 117}: "FiberPlex Technologies, LLC", - [3]byte{0, 37, 118}: "NELI TECHNOLOGIES", - [3]byte{0, 37, 119}: "D-BOX Technologies", - [3]byte{0, 37, 120}: "JSC \"Concern \"Sozvezdie\"", - [3]byte{0, 37, 121}: "J & F Labs", - [3]byte{0, 37, 122}: "CAMCO Produktions- und Vertriebs-GmbH für Beschallungs- und Beleuchtungsanlagen", - [3]byte{0, 37, 123}: "STJ ELECTRONICS PVT LTD", - [3]byte{0, 37, 124}: "Huachentel Technology Development Co., Ltd", - [3]byte{0, 37, 125}: "PointRed Telecom Private Ltd.", - [3]byte{0, 37, 126}: "NEW POS Technology Limited", - [3]byte{0, 37, 127}: "CallTechSolution Co.,Ltd", - [3]byte{0, 37, 128}: "Equipson S.A.", - [3]byte{0, 37, 129}: "x-star networks Inc.", - [3]byte{0, 37, 130}: "Maksat Technologies (P) Ltd", - [3]byte{0, 37, 131}: "CISCO SYSTEMS, INC.", - [3]byte{0, 37, 132}: "CISCO SYSTEMS, INC.", - [3]byte{0, 37, 133}: "KOKUYO S&T Co., Ltd.", - [3]byte{0, 37, 134}: "TP-LINK Technologies Co., Ltd.", - [3]byte{0, 37, 135}: "Vitality, Inc.", - [3]byte{0, 37, 136}: "Genie Industries, Inc.", - [3]byte{0, 37, 137}: "Hills Industries Limited", - [3]byte{0, 37, 138}: "Pole/Zero Corporation", - [3]byte{0, 37, 139}: "Mellanox Technologies Ltd", - [3]byte{0, 37, 140}: "ESUS ELEKTRONIK SAN. VE DIS. TIC. LTD. STI.", - [3]byte{0, 37, 141}: "Haier", - [3]byte{0, 37, 142}: "The Weather Channel", - [3]byte{0, 37, 143}: "Trident Microsystems, Inc.", - [3]byte{0, 37, 144}: "Super Micro Computer, Inc.", - [3]byte{0, 37, 145}: "NEXTEK, Inc.", - [3]byte{0, 37, 146}: "Guangzhou Shirui Electronic Co., Ltd", - [3]byte{0, 37, 147}: "DatNet Informatikai Kft.", - [3]byte{0, 37, 148}: "Eurodesign BG LTD", - [3]byte{0, 37, 149}: "Northwest Signal Supply, Inc", - [3]byte{0, 37, 150}: "GIGAVISION srl", - [3]byte{0, 37, 151}: "Kalki Communication Technologies", - [3]byte{0, 37, 152}: "Zhong Shan City Litai Electronic Industrial Co. Ltd", - [3]byte{0, 37, 153}: "Hedon e.d. B.V.", - [3]byte{0, 37, 154}: "CEStronics GmbH", - [3]byte{0, 37, 155}: "Beijing PKUNITY Microsystems Technology Co., Ltd", - [3]byte{0, 37, 156}: "Cisco-Linksys, LLC", - [3]byte{0, 37, 157}: "PRIVATE", - [3]byte{0, 37, 158}: "Huawei Technologies Co., Ltd.", - [3]byte{0, 37, 159}: "TechnoDigital Technologies GmbH", - [3]byte{0, 37, 160}: "Nintendo Co., Ltd.", - [3]byte{0, 37, 161}: "Enalasys", - [3]byte{0, 37, 162}: "Alta Definicion LINCEO S.L.", - [3]byte{0, 37, 163}: "Trimax Wireless, Inc.", - [3]byte{0, 37, 164}: "EuroDesign embedded technologies GmbH", - [3]byte{0, 37, 165}: "Walnut Media Network", - [3]byte{0, 37, 166}: "Central Network Solution Co., Ltd.", - [3]byte{0, 37, 167}: "Comverge, Inc.", - [3]byte{0, 37, 168}: "Kontron (BeiJing) Technology Co.,Ltd", - [3]byte{0, 37, 169}: "Shanghai Embedway Information Technologies Co.,Ltd", - [3]byte{0, 37, 170}: "Beijing Soul Technology Co.,Ltd.", - [3]byte{0, 37, 171}: "AIO LCD PC BU / TPV", - [3]byte{0, 37, 172}: "I-Tech corporation", - [3]byte{0, 37, 173}: "Manufacturing Resources International", - [3]byte{0, 37, 174}: "Microsoft Corporation", - [3]byte{0, 37, 175}: "COMFILE Technology", - [3]byte{0, 37, 176}: "Schmartz Inc", - [3]byte{0, 37, 177}: "Maya-Creation Corporation", - [3]byte{0, 37, 178}: "MBDA Deutschland GmbH", - [3]byte{0, 37, 179}: "Hewlett-Packard Company", - [3]byte{0, 37, 180}: "CISCO SYSTEMS, INC.", - [3]byte{0, 37, 181}: "CISCO SYSTEMS, INC.", - [3]byte{0, 37, 182}: "Telecom FM", - [3]byte{0, 37, 183}: "Costar electronics, inc.,", - [3]byte{0, 37, 184}: "Agile Communications, Inc.", - [3]byte{0, 37, 185}: "Cypress Solutions Inc", - [3]byte{0, 37, 186}: "Alcatel-Lucent IPD", - [3]byte{0, 37, 187}: "INNERINT Co., Ltd.", - [3]byte{0, 37, 188}: "Apple", - [3]byte{0, 37, 189}: "Italdata Ingegneria dell'Idea S.p.A.", - [3]byte{0, 37, 190}: "Tektrap Systems Inc.", - [3]byte{0, 37, 191}: "Wireless Cables Inc.", - [3]byte{0, 37, 192}: "ZillionTV Corporation", - [3]byte{0, 37, 193}: "Nawoo Korea Corp.", - [3]byte{0, 37, 194}: "RingBell Co.,Ltd.", - [3]byte{0, 37, 195}: "Nortel Networks", - [3]byte{0, 37, 196}: "Ruckus Wireless", - [3]byte{0, 37, 197}: "Star Link Communication Pvt. Ltd.", - [3]byte{0, 37, 198}: "kasercorp, ltd", - [3]byte{0, 37, 199}: "altek Corporation", - [3]byte{0, 37, 200}: "S-Access GmbH", - [3]byte{0, 37, 201}: "SHENZHEN HUAPU DIGITAL CO., LTD", - [3]byte{0, 37, 202}: "LS Research, LLC", - [3]byte{0, 37, 203}: "Reiner SCT", - [3]byte{0, 37, 204}: "Mobile Communications Korea Incorporated", - [3]byte{0, 37, 205}: "Skylane Optics", - [3]byte{0, 37, 206}: "InnerSpace", - [3]byte{0, 37, 207}: "Nokia Danmark A/S", - [3]byte{0, 37, 208}: "Nokia Danmark A/S", - [3]byte{0, 37, 209}: "Eastern Asia Technology Limited", - [3]byte{0, 37, 210}: "InpegVision Co., Ltd", - [3]byte{0, 37, 211}: "AzureWave Technologies, Inc", - [3]byte{0, 37, 212}: "Fortress Technologies", - [3]byte{0, 37, 213}: "Robonica (Pty) Ltd", - [3]byte{0, 37, 214}: "The Kroger Co.", - [3]byte{0, 37, 215}: "CEDO", - [3]byte{0, 37, 216}: "KOREA MAINTENANCE", - [3]byte{0, 37, 217}: "DataFab Systems Inc.", - [3]byte{0, 37, 218}: "Secura Key", - [3]byte{0, 37, 219}: "ATI Electronics(Shenzhen) Co., LTD", - [3]byte{0, 37, 220}: "Sumitomo Electric Networks, Inc", - [3]byte{0, 37, 221}: "SUNNYTEK INFORMATION CO., LTD.", - [3]byte{0, 37, 222}: "Probits Co., LTD.", - [3]byte{0, 37, 223}: "PRIVATE", - [3]byte{0, 37, 224}: "CeedTec Sdn Bhd", - [3]byte{0, 37, 225}: "SHANGHAI SEEYOO ELECTRONIC & TECHNOLOGY CO., LTD", - [3]byte{0, 37, 226}: "Everspring Industry Co., Ltd.", - [3]byte{0, 37, 227}: "Hanshinit Inc.", - [3]byte{0, 37, 228}: "OMNI-WiFi, LLC", - [3]byte{0, 37, 229}: "LG Electronics Inc", - [3]byte{0, 37, 230}: "Belgian Monitoring Systems bvba", - [3]byte{0, 37, 231}: "Sony Ericsson Mobile Communications", - [3]byte{0, 37, 232}: "Idaho Technology", - [3]byte{0, 37, 233}: "i-mate Development, Inc.", - [3]byte{0, 37, 234}: "Iphion BV", - [3]byte{0, 37, 235}: "Reutech Radar Systems (PTY) Ltd", - [3]byte{0, 37, 236}: "Humanware", - [3]byte{0, 37, 237}: "NuVo Technologies LLC", - [3]byte{0, 37, 238}: "Avtex Ltd", - [3]byte{0, 37, 239}: "I-TEC Co., Ltd.", - [3]byte{0, 37, 240}: "Suga Electronics Limited", - [3]byte{0, 37, 241}: "ARRIS Group, Inc.", - [3]byte{0, 37, 242}: "ARRIS Group, Inc.", - [3]byte{0, 37, 243}: "Nordwestdeutsche Zählerrevision", - [3]byte{0, 37, 244}: "KoCo Connector AG", - [3]byte{0, 37, 245}: "DVS Korea, Co., Ltd", - [3]byte{0, 37, 246}: "netTALK.com, Inc.", - [3]byte{0, 37, 247}: "Ansaldo STS USA", - [3]byte{0, 37, 249}: "GMK electronic design GmbH", - [3]byte{0, 37, 250}: "J&M Analytik AG", - [3]byte{0, 37, 251}: "Tunstall Healthcare A/S", - [3]byte{0, 37, 252}: "ENDA ENDUSTRIYEL ELEKTRONIK LTD. STI.", - [3]byte{0, 37, 253}: "OBR Centrum Techniki Morskiej S.A.", - [3]byte{0, 37, 254}: "Pilot Electronics Corporation", - [3]byte{0, 37, 255}: "CreNova Multimedia Co., Ltd", - [3]byte{0, 38, 0}: "TEAC Australia Pty Ltd.", - [3]byte{0, 38, 1}: "Cutera Inc", - [3]byte{0, 38, 2}: "SMART Temps LLC", - [3]byte{0, 38, 3}: "Shenzhen Wistar Technology Co., Ltd", - [3]byte{0, 38, 4}: "Audio Processing Technology Ltd", - [3]byte{0, 38, 5}: "CC Systems AB", - [3]byte{0, 38, 6}: "RAUMFELD GmbH", - [3]byte{0, 38, 7}: "Enabling Technology Pty Ltd", - [3]byte{0, 38, 8}: "Apple", - [3]byte{0, 38, 9}: "Phyllis Co., Ltd.", - [3]byte{0, 38, 10}: "CISCO SYSTEMS, INC.", - [3]byte{0, 38, 11}: "CISCO SYSTEMS, INC.", - [3]byte{0, 38, 12}: "Dataram", - [3]byte{0, 38, 13}: "Mercury Systems, Inc.", - [3]byte{0, 38, 14}: "Ablaze Systems, LLC", - [3]byte{0, 38, 15}: "Linn Products Ltd", - [3]byte{0, 38, 16}: "Apacewave Technologies", - [3]byte{0, 38, 17}: "Licera AB", - [3]byte{0, 38, 18}: "Space Exploration Technologies", - [3]byte{0, 38, 19}: "Engel Axil S.L.", - [3]byte{0, 38, 20}: "KTNF", - [3]byte{0, 38, 21}: "Teracom Limited", - [3]byte{0, 38, 22}: "Rosemount Inc.", - [3]byte{0, 38, 23}: "OEM Worldwide", - [3]byte{0, 38, 24}: "ASUSTek COMPUTER INC.", - [3]byte{0, 38, 25}: "FRC", - [3]byte{0, 38, 26}: "Femtocomm System Technology Corp.", - [3]byte{0, 38, 27}: "LAUREL BANK MACHINES CO., LTD.", - [3]byte{0, 38, 28}: "NEOVIA INC.", - [3]byte{0, 38, 29}: "COP SECURITY SYSTEM CORP.", - [3]byte{0, 38, 30}: "QINGBANG ELEC(SZ) CO., LTD", - [3]byte{0, 38, 31}: "SAE Magnetics (H.K.) Ltd.", - [3]byte{0, 38, 32}: "ISGUS GmbH", - [3]byte{0, 38, 33}: "InteliCloud Technology Inc.", - [3]byte{0, 38, 34}: "COMPAL INFORMATION (KUNSHAN) CO., LTD.", - [3]byte{0, 38, 35}: "JRD Communication Inc", - [3]byte{0, 38, 36}: "Thomson Inc.", - [3]byte{0, 38, 37}: "MediaSputnik", - [3]byte{0, 38, 38}: "Geophysical Survey Systems, Inc.", - [3]byte{0, 38, 39}: "Truesell", - [3]byte{0, 38, 40}: "companytec automação e controle ltda.", - [3]byte{0, 38, 41}: "Juphoon System Software Inc.", - [3]byte{0, 38, 42}: "Proxense, LLC", - [3]byte{0, 38, 43}: "Wongs Electronics Co. Ltd.", - [3]byte{0, 38, 44}: "IKT Advanced Technologies s.r.o.", - [3]byte{0, 38, 45}: "Wistron Corporation", - [3]byte{0, 38, 46}: "Chengdu Jiuzhou Electronic Technology Inc", - [3]byte{0, 38, 47}: "HAMAMATSU TOA ELECTRONICS", - [3]byte{0, 38, 48}: "ACOREL S.A.S", - [3]byte{0, 38, 49}: "COMMTACT LTD", - [3]byte{0, 38, 50}: "Instrumentation Technologies d.d.", - [3]byte{0, 38, 51}: "MIR - Medical International Research", - [3]byte{0, 38, 52}: "Infineta Systems, Inc", - [3]byte{0, 38, 53}: "Bluetechnix GmbH", - [3]byte{0, 38, 54}: "ARRIS Group, Inc.", - [3]byte{0, 38, 55}: "Samsung Electro-Mechanics", - [3]byte{0, 38, 56}: "Xia Men Joyatech Co., Ltd.", - [3]byte{0, 38, 57}: "T.M. Electronics, Inc.", - [3]byte{0, 38, 58}: "Digitec Systems", - [3]byte{0, 38, 59}: "Onbnetech", - [3]byte{0, 38, 60}: "Bachmann Technology GmbH & Co. KG", - [3]byte{0, 38, 61}: "MIA Corporation", - [3]byte{0, 38, 62}: "Trapeze Networks", - [3]byte{0, 38, 63}: "LIOS Technology GmbH", - [3]byte{0, 38, 64}: "Baustem Broadband Technologies, Ltd.", - [3]byte{0, 38, 65}: "ARRIS Group, Inc.", - [3]byte{0, 38, 66}: "ARRIS Group, Inc.", - [3]byte{0, 38, 67}: "Alps Electric Co., Ltd", - [3]byte{0, 38, 68}: "Thomson Telecom Belgium", - [3]byte{0, 38, 69}: "Circontrol S.A.", - [3]byte{0, 38, 70}: "SHENYANG TONGFANG MULTIMEDIA TECHNOLOGY COMPANY LIMITED", - [3]byte{0, 38, 71}: "WFE TECHNOLOGY CORP.", - [3]byte{0, 38, 72}: "Emitech Corp.", - [3]byte{0, 38, 74}: "Apple", - [3]byte{0, 38, 76}: "Shanghai DigiVision Technology Co., Ltd.", - [3]byte{0, 38, 77}: "Arcadyan Technology Corporation", - [3]byte{0, 38, 78}: "Rail & Road Protec GmbH", - [3]byte{0, 38, 79}: "Krüger &Gothe GmbH", - [3]byte{0, 38, 80}: "2Wire", - [3]byte{0, 38, 81}: "CISCO SYSTEMS, INC.", - [3]byte{0, 38, 82}: "CISCO SYSTEMS, INC.", - [3]byte{0, 38, 83}: "DaySequerra Corporation", - [3]byte{0, 38, 84}: "3Com Corporation", - [3]byte{0, 38, 85}: "Hewlett-Packard Company", - [3]byte{0, 38, 86}: "Sansonic Electronics USA", - [3]byte{0, 38, 87}: "OOO NPP EKRA", - [3]byte{0, 38, 88}: "T-Platforms (Cyprus) Limited", - [3]byte{0, 38, 89}: "Nintendo Co., Ltd.", - [3]byte{0, 38, 90}: "D-Link Corporation", - [3]byte{0, 38, 91}: "Hitron Technologies. Inc", - [3]byte{0, 38, 92}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{0, 38, 93}: "Samsung Electronics", - [3]byte{0, 38, 94}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{0, 38, 95}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 38, 96}: "Logiways", - [3]byte{0, 38, 97}: "Irumtek Co., Ltd.", - [3]byte{0, 38, 98}: "Actiontec Electronics, Inc", - [3]byte{0, 38, 99}: "Shenzhen Huitaiwei Tech. Ltd, co.", - [3]byte{0, 38, 100}: "Core System Japan", - [3]byte{0, 38, 101}: "ProtectedLogic Corporation", - [3]byte{0, 38, 102}: "EFM Networks", - [3]byte{0, 38, 103}: "CARECOM CO.,LTD.", - [3]byte{0, 38, 104}: "Nokia Danmark A/S", - [3]byte{0, 38, 105}: "Nokia Danmark A/S", - [3]byte{0, 38, 106}: "ESSENSIUM NV", - [3]byte{0, 38, 107}: "SHINE UNION ENTERPRISE LIMITED", - [3]byte{0, 38, 108}: "Inventec", - [3]byte{0, 38, 109}: "MobileAccess Networks", - [3]byte{0, 38, 110}: "Nissho-denki Co.,LTD.", - [3]byte{0, 38, 111}: "Coordiwise Technology Corp.", - [3]byte{0, 38, 112}: "Cinch Connectors", - [3]byte{0, 38, 113}: "AUTOVISION Co., Ltd", - [3]byte{0, 38, 114}: "AAMP of America", - [3]byte{0, 38, 115}: "RICOH COMPANY,LTD.", - [3]byte{0, 38, 116}: "Electronic Solutions, Inc.", - [3]byte{0, 38, 117}: "Aztech Electronics Pte Ltd", - [3]byte{0, 38, 118}: "COMMidt AS", - [3]byte{0, 38, 119}: "DEIF A/S", - [3]byte{0, 38, 120}: "Logic Instrument SA", - [3]byte{0, 38, 121}: "Euphonic Technologies, Inc.", - [3]byte{0, 38, 122}: "wuhan hongxin telecommunication technologies co.,ltd", - [3]byte{0, 38, 123}: "GSI Helmholtzzentrum für Schwerionenforschung GmbH", - [3]byte{0, 38, 124}: "Metz-Werke GmbH & Co KG", - [3]byte{0, 38, 125}: "A-Max Technology Macao Commercial Offshore Company Limited", - [3]byte{0, 38, 126}: "Parrot SA", - [3]byte{0, 38, 127}: "Zenterio AB", - [3]byte{0, 38, 128}: "Lockie Innovation Pty Ltd", - [3]byte{0, 38, 129}: "Interspiro AB", - [3]byte{0, 38, 130}: "Gemtek Technology Co., Ltd.", - [3]byte{0, 38, 131}: "Ajoho Enterprise Co., Ltd.", - [3]byte{0, 38, 132}: "KISAN SYSTEM", - [3]byte{0, 38, 133}: "Digital Innovation", - [3]byte{0, 38, 134}: "Quantenna Communcations, Inc.", - [3]byte{0, 38, 135}: "Corega K.K", - [3]byte{0, 38, 136}: "Juniper Networks", - [3]byte{0, 38, 137}: "General Dynamics Robotic Systems", - [3]byte{0, 38, 138}: "Terrier SC Ltd", - [3]byte{0, 38, 139}: "Guangzhou Escene Computer Technology Limited", - [3]byte{0, 38, 140}: "StarLeaf Ltd.", - [3]byte{0, 38, 141}: "CellTel S.p.A.", - [3]byte{0, 38, 142}: "Alta Solutions, Inc.", - [3]byte{0, 38, 143}: "MTA SpA", - [3]byte{0, 38, 144}: "I DO IT", - [3]byte{0, 38, 145}: "SAGEM COMMUNICATION", - [3]byte{0, 38, 146}: "Mitsubishi Electric Co.", - [3]byte{0, 38, 147}: "QVidium Technologies, Inc.", - [3]byte{0, 38, 148}: "Senscient Ltd", - [3]byte{0, 38, 149}: "ZT Group Int'l Inc", - [3]byte{0, 38, 150}: "NOOLIX Co., Ltd", - [3]byte{0, 38, 151}: "Cheetah Technologies, L.P.", - [3]byte{0, 38, 152}: "CISCO SYSTEMS, INC.", - [3]byte{0, 38, 153}: "CISCO SYSTEMS, INC.", - [3]byte{0, 38, 154}: "Carina System Co., Ltd.", - [3]byte{0, 38, 155}: "SOKRAT Ltd.", - [3]byte{0, 38, 156}: "ITUS JAPAN CO. LTD", - [3]byte{0, 38, 157}: "M2Mnet Co., Ltd.", - [3]byte{0, 38, 158}: "Quanta Computer Inc", - [3]byte{0, 38, 159}: "PRIVATE", - [3]byte{0, 38, 160}: "moblic", - [3]byte{0, 38, 161}: "Megger", - [3]byte{0, 38, 162}: "Instrumentation Technology Systems", - [3]byte{0, 38, 163}: "FQ Ingenieria Electronica S.A.", - [3]byte{0, 38, 164}: "Novus Produtos Eletronicos Ltda", - [3]byte{0, 38, 165}: "MICROROBOT.CO.,LTD", - [3]byte{0, 38, 166}: "TRIXELL", - [3]byte{0, 38, 167}: "CONNECT SRL", - [3]byte{0, 38, 168}: "DAEHAP HYPER-TECH", - [3]byte{0, 38, 169}: "Strong Technologies Pty Ltd", - [3]byte{0, 38, 170}: "Kenmec Mechanical Engineering Co., Ltd.", - [3]byte{0, 38, 171}: "SEIKO EPSON CORPORATION", - [3]byte{0, 38, 172}: "Shanghai LUSTER Teraband photonic Co., Ltd.", - [3]byte{0, 38, 173}: "Arada Systems, Inc.", - [3]byte{0, 38, 174}: "Wireless Measurement Ltd", - [3]byte{0, 38, 175}: "Duelco A/S", - [3]byte{0, 38, 176}: "Apple", - [3]byte{0, 38, 177}: "Navis Auto Motive Systems, Inc.", - [3]byte{0, 38, 178}: "Setrix GmbH", - [3]byte{0, 38, 179}: "Thales Communications Inc", - [3]byte{0, 38, 180}: "Ford Motor Company", - [3]byte{0, 38, 181}: "ICOMM Tele Ltd", - [3]byte{0, 38, 182}: "Askey Computer", - [3]byte{0, 38, 183}: "Kingston Technology Company, Inc.", - [3]byte{0, 38, 184}: "Actiontec Electronics, Inc", - [3]byte{0, 38, 185}: "Dell Inc", - [3]byte{0, 38, 186}: "ARRIS Group, Inc.", - [3]byte{0, 38, 187}: "Apple", - [3]byte{0, 38, 188}: "General Jack Technology Ltd.", - [3]byte{0, 38, 189}: "JTEC Card & Communication Co., Ltd.", - [3]byte{0, 38, 190}: "Schoonderbeek Elektronica Systemen B.V.", - [3]byte{0, 38, 191}: "ShenZhen Temobi Science&Tech Development Co.,Ltd", - [3]byte{0, 38, 192}: "EnergyHub", - [3]byte{0, 38, 193}: "ARTRAY CO., LTD.", - [3]byte{0, 38, 194}: "SCDI Co. LTD", - [3]byte{0, 38, 195}: "Insightek Corp.", - [3]byte{0, 38, 196}: "Cadmos microsystems S.r.l.", - [3]byte{0, 38, 197}: "Guangdong Gosun Telecommunications Co.,Ltd", - [3]byte{0, 38, 198}: "Intel Corporate", - [3]byte{0, 38, 199}: "Intel Corporate", - [3]byte{0, 38, 200}: "System Sensor", - [3]byte{0, 38, 201}: "Proventix Systems, Inc.", - [3]byte{0, 38, 202}: "CISCO SYSTEMS, INC.", - [3]byte{0, 38, 203}: "CISCO SYSTEMS, INC.", - [3]byte{0, 38, 204}: "Nokia Danmark A/S", - [3]byte{0, 38, 205}: "PurpleComm, Inc.", - [3]byte{0, 38, 206}: "Kozumi USA Corp.", - [3]byte{0, 38, 207}: "DEKA R&D", - [3]byte{0, 38, 208}: "Semihalf", - [3]byte{0, 38, 209}: "S Squared Innovations Inc.", - [3]byte{0, 38, 210}: "Pcube Systems, Inc.", - [3]byte{0, 38, 211}: "Zeno Information System", - [3]byte{0, 38, 212}: "IRCA SpA", - [3]byte{0, 38, 213}: "Ory Solucoes em Comercio de Informatica Ltda.", - [3]byte{0, 38, 214}: "Ningbo Andy Optoelectronic Co., Ltd.", - [3]byte{0, 38, 215}: "KM Electornic Technology Co., Ltd.", - [3]byte{0, 38, 216}: "Magic Point Inc.", - [3]byte{0, 38, 217}: "Pace plc", - [3]byte{0, 38, 218}: "Universal Media Corporation /Slovakia/ s.r.o.", - [3]byte{0, 38, 219}: "Ionics EMS Inc.", - [3]byte{0, 38, 220}: "Optical Systems Design", - [3]byte{0, 38, 221}: "Fival Science & Technology Co.,Ltd.", - [3]byte{0, 38, 222}: "FDI MATELEC", - [3]byte{0, 38, 223}: "TaiDoc Technology Corp.", - [3]byte{0, 38, 224}: "ASITEQ", - [3]byte{0, 38, 225}: "Stanford University, OpenFlow Group", - [3]byte{0, 38, 226}: "LG Electronics", - [3]byte{0, 38, 227}: "DTI", - [3]byte{0, 38, 228}: "CANAL OVERSEAS", - [3]byte{0, 38, 229}: "AEG Power Solutions", - [3]byte{0, 38, 230}: "Visionhitech Co., Ltd.", - [3]byte{0, 38, 231}: "Shanghai ONLAN Communication Tech. Co., Ltd.", - [3]byte{0, 38, 232}: "Murata Manufacturing Co., Ltd.", - [3]byte{0, 38, 233}: "SP Corp", - [3]byte{0, 38, 234}: "Cheerchip Electronic Technology (ShangHai) Co., Ltd.", - [3]byte{0, 38, 235}: "Advanced Spectrum Technology Co., Ltd.", - [3]byte{0, 38, 236}: "Legrand Home Systems, Inc", - [3]byte{0, 38, 237}: "zte corporation", - [3]byte{0, 38, 238}: "TKM GmbH", - [3]byte{0, 38, 239}: "Technology Advancement Group, Inc.", - [3]byte{0, 38, 240}: "cTrixs International GmbH.", - [3]byte{0, 38, 241}: "ProCurve Networking by HP", - [3]byte{0, 38, 242}: "Netgear", - [3]byte{0, 38, 243}: "SMC Networks", - [3]byte{0, 38, 244}: "Nesslab", - [3]byte{0, 38, 245}: "XRPLUS Inc.", - [3]byte{0, 38, 246}: "Military Communication Institute", - [3]byte{0, 38, 247}: "Infosys Technologies Ltd.", - [3]byte{0, 38, 248}: "Golden Highway Industry Development Co., Ltd.", - [3]byte{0, 38, 249}: "S.E.M. srl", - [3]byte{0, 38, 250}: "BandRich Inc.", - [3]byte{0, 38, 251}: "AirDio Wireless, Inc.", - [3]byte{0, 38, 252}: "AcSiP Technology Corp.", - [3]byte{0, 38, 253}: "Interactive Intelligence", - [3]byte{0, 38, 254}: "MKD Technology Inc.", - [3]byte{0, 38, 255}: "Research In Motion", - [3]byte{0, 39, 0}: "Shenzhen Siglent Technology Co., Ltd.", - [3]byte{0, 39, 1}: "INCOstartec GmbH", - [3]byte{0, 39, 2}: "SolarEdge Technologies", - [3]byte{0, 39, 3}: "Testech Electronics Pte Ltd", - [3]byte{0, 39, 4}: "Accelerated Concepts, Inc", - [3]byte{0, 39, 5}: "Sectronic", - [3]byte{0, 39, 6}: "YOISYS", - [3]byte{0, 39, 7}: "Lift Complex DS, JSC", - [3]byte{0, 39, 8}: "Nordiag ASA", - [3]byte{0, 39, 9}: "Nintendo Co., Ltd.", - [3]byte{0, 39, 10}: "IEE S.A.", - [3]byte{0, 39, 11}: "Adura Technologies", - [3]byte{0, 39, 12}: "CISCO SYSTEMS, INC.", - [3]byte{0, 39, 13}: "CISCO SYSTEMS, INC.", - [3]byte{0, 39, 14}: "Intel Corporate", - [3]byte{0, 39, 15}: "Envisionnovation Inc", - [3]byte{0, 39, 16}: "Intel Corporate", - [3]byte{0, 39, 17}: "LanPro Inc", - [3]byte{0, 39, 18}: "MaxVision LLC", - [3]byte{0, 39, 19}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{0, 39, 20}: "Grainmustards, Co,ltd.", - [3]byte{0, 39, 21}: "Rebound Telecom. Co., Ltd", - [3]byte{0, 39, 22}: "Adachi-Syokai Co., Ltd.", - [3]byte{0, 39, 23}: "CE Digital(Zhenjiang)Co.,Ltd", - [3]byte{0, 39, 24}: "Suzhou NEW SEAUNION Video Technology Co.,Ltd", - [3]byte{0, 39, 25}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{0, 39, 26}: "Geenovo Technology Ltd.", - [3]byte{0, 39, 27}: "Alec Sicherheitssysteme GmbH", - [3]byte{0, 39, 28}: "MERCURY CORPORATION", - [3]byte{0, 39, 29}: "Comba Telecom Systems (China) Ltd.", - [3]byte{0, 39, 30}: "Xagyl Communications", - [3]byte{0, 39, 31}: "MIPRO Electronics Co., Ltd", - [3]byte{0, 39, 32}: "NEW-SOL COM", - [3]byte{0, 39, 33}: "Shenzhen Baoan Fenda Industrial Co., Ltd", - [3]byte{0, 39, 34}: "Ubiquiti Networks", - [3]byte{0, 39, 248}: "Brocade Communications Systems, Inc.", - [3]byte{0, 42, 106}: "CISCO SYSTEMS, INC.", - [3]byte{0, 42, 175}: "LARsys-Automation GmbH", - [3]byte{0, 45, 118}: "TITECH GmbH", - [3]byte{0, 48, 0}: "ALLWELL TECHNOLOGY CORP.", - [3]byte{0, 48, 1}: "SMP", - [3]byte{0, 48, 2}: "Expand Networks", - [3]byte{0, 48, 3}: "Phasys Ltd.", - [3]byte{0, 48, 4}: "LEADTEK RESEARCH INC.", - [3]byte{0, 48, 5}: "Fujitsu Siemens Computers", - [3]byte{0, 48, 6}: "SUPERPOWER COMPUTER", - [3]byte{0, 48, 7}: "OPTI, INC.", - [3]byte{0, 48, 8}: "AVIO DIGITAL, INC.", - [3]byte{0, 48, 9}: "Tachion Networks, Inc.", - [3]byte{0, 48, 10}: "AZTECH Electronics Pte Ltd", - [3]byte{0, 48, 11}: "mPHASE Technologies, Inc.", - [3]byte{0, 48, 12}: "CONGRUENCY, LTD.", - [3]byte{0, 48, 13}: "MMC Technology, Inc.", - [3]byte{0, 48, 14}: "Klotz Digital AG", - [3]byte{0, 48, 15}: "IMT - Information Management T", - [3]byte{0, 48, 16}: "VISIONETICS INTERNATIONAL", - [3]byte{0, 48, 17}: "HMS Industrial Networks", - [3]byte{0, 48, 18}: "DIGITAL ENGINEERING LTD.", - [3]byte{0, 48, 19}: "NEC Corporation", - [3]byte{0, 48, 20}: "DIVIO, INC.", - [3]byte{0, 48, 21}: "CP CLARE CORP.", - [3]byte{0, 48, 22}: "ISHIDA CO., LTD.", - [3]byte{0, 48, 23}: "BlueArc UK Ltd", - [3]byte{0, 48, 24}: "Jetway Information Co., Ltd.", - [3]byte{0, 48, 25}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 26}: "SMARTBRIDGES PTE. LTD.", - [3]byte{0, 48, 27}: "SHUTTLE, INC.", - [3]byte{0, 48, 28}: "ALTVATER AIRDATA SYSTEMS", - [3]byte{0, 48, 29}: "SKYSTREAM, INC.", - [3]byte{0, 48, 30}: "3COM Europe Ltd.", - [3]byte{0, 48, 31}: "OPTICAL NETWORKS, INC.", - [3]byte{0, 48, 32}: "TSI, Inc..", - [3]byte{0, 48, 33}: "HSING TECH. ENTERPRISE CO.,LTD", - [3]byte{0, 48, 34}: "Fong Kai Industrial Co., Ltd.", - [3]byte{0, 48, 35}: "COGENT COMPUTER SYSTEMS, INC.", - [3]byte{0, 48, 36}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 37}: "CHECKOUT COMPUTER SYSTEMS, LTD", - [3]byte{0, 48, 38}: "HeiTel Digital Video GmbH", - [3]byte{0, 48, 39}: "KERBANGO, INC.", - [3]byte{0, 48, 40}: "FASE Saldatura srl", - [3]byte{0, 48, 41}: "OPICOM", - [3]byte{0, 48, 42}: "SOUTHERN INFORMATION", - [3]byte{0, 48, 43}: "INALP NETWORKS, INC.", - [3]byte{0, 48, 44}: "SYLANTRO SYSTEMS CORPORATION", - [3]byte{0, 48, 45}: "QUANTUM BRIDGE COMMUNICATIONS", - [3]byte{0, 48, 46}: "Hoft & Wessel AG", - [3]byte{0, 48, 47}: "GE Aviation System", - [3]byte{0, 48, 48}: "HARMONIX CORPORATION", - [3]byte{0, 48, 49}: "LIGHTWAVE COMMUNICATIONS, INC.", - [3]byte{0, 48, 50}: "MagicRam, Inc.", - [3]byte{0, 48, 51}: "ORIENT TELECOM CO., LTD.", - [3]byte{0, 48, 52}: "SET ENGINEERING", - [3]byte{0, 48, 53}: "Corning Incorporated", - [3]byte{0, 48, 54}: "RMP ELEKTRONIKSYSTEME GMBH", - [3]byte{0, 48, 55}: "Packard Bell Nec Services", - [3]byte{0, 48, 56}: "XCP, INC.", - [3]byte{0, 48, 57}: "SOFTBOOK PRESS", - [3]byte{0, 48, 58}: "MAATEL", - [3]byte{0, 48, 59}: "PowerCom Technology", - [3]byte{0, 48, 60}: "ONNTO CORP.", - [3]byte{0, 48, 61}: "IVA CORPORATION", - [3]byte{0, 48, 62}: "Radcom Ltd.", - [3]byte{0, 48, 63}: "TurboComm Tech Inc.", - [3]byte{0, 48, 64}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 65}: "SAEJIN T & M CO., LTD.", - [3]byte{0, 48, 66}: "DeTeWe-Deutsche Telephonwerke", - [3]byte{0, 48, 67}: "IDREAM TECHNOLOGIES, PTE. LTD.", - [3]byte{0, 48, 68}: "CradlePoint, Inc", - [3]byte{0, 48, 69}: "Village Networks, Inc. (VNI)", - [3]byte{0, 48, 70}: "Controlled Electronic Manageme", - [3]byte{0, 48, 71}: "NISSEI ELECTRIC CO., LTD.", - [3]byte{0, 48, 72}: "Supermicro Computer, Inc.", - [3]byte{0, 48, 73}: "BRYANT TECHNOLOGY, LTD.", - [3]byte{0, 48, 74}: "Fraunhofer IPMS", - [3]byte{0, 48, 75}: "ORBACOM SYSTEMS, INC.", - [3]byte{0, 48, 76}: "APPIAN COMMUNICATIONS, INC.", - [3]byte{0, 48, 77}: "ESI", - [3]byte{0, 48, 78}: "BUSTEC PRODUCTION LTD.", - [3]byte{0, 48, 79}: "PLANET Technology Corporation", - [3]byte{0, 48, 80}: "Versa Technology", - [3]byte{0, 48, 81}: "ORBIT AVIONIC & COMMUNICATION", - [3]byte{0, 48, 82}: "ELASTIC NETWORKS", - [3]byte{0, 48, 83}: "Basler AG", - [3]byte{0, 48, 84}: "CASTLENET TECHNOLOGY, INC.", - [3]byte{0, 48, 85}: "Renesas Technology America, Inc.", - [3]byte{0, 48, 86}: "Beck IPC GmbH", - [3]byte{0, 48, 87}: "QTelNet, Inc.", - [3]byte{0, 48, 88}: "API MOTION", - [3]byte{0, 48, 89}: "KONTRON COMPACT COMPUTERS AG", - [3]byte{0, 48, 90}: "TELGEN CORPORATION", - [3]byte{0, 48, 91}: "Toko Inc.", - [3]byte{0, 48, 92}: "SMAR Laboratories Corp.", - [3]byte{0, 48, 93}: "DIGITRA SYSTEMS, INC.", - [3]byte{0, 48, 94}: "Abelko Innovation", - [3]byte{0, 48, 95}: "Hasselblad", - [3]byte{0, 48, 96}: "Powerfile, Inc.", - [3]byte{0, 48, 97}: "MobyTEL", - [3]byte{0, 48, 98}: "IP Video Networks Inc", - [3]byte{0, 48, 99}: "SANTERA SYSTEMS, INC.", - [3]byte{0, 48, 100}: "ADLINK TECHNOLOGY, INC.", - [3]byte{0, 48, 101}: "Apple", - [3]byte{0, 48, 102}: "RFM", - [3]byte{0, 48, 103}: "BIOSTAR MICROTECH INT'L CORP.", - [3]byte{0, 48, 104}: "CYBERNETICS TECH. CO., LTD.", - [3]byte{0, 48, 105}: "IMPACCT TECHNOLOGY CORP.", - [3]byte{0, 48, 106}: "PENTA MEDIA CO., LTD.", - [3]byte{0, 48, 107}: "CMOS SYSTEMS, INC.", - [3]byte{0, 48, 108}: "Hitex Holding GmbH", - [3]byte{0, 48, 109}: "LUCENT TECHNOLOGIES", - [3]byte{0, 48, 110}: "HEWLETT PACKARD", - [3]byte{0, 48, 111}: "SEYEON TECH. CO., LTD.", - [3]byte{0, 48, 112}: "1Net Corporation", - [3]byte{0, 48, 113}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 114}: "Intellibyte Inc.", - [3]byte{0, 48, 115}: "International Microsystems, In", - [3]byte{0, 48, 116}: "EQUIINET LTD.", - [3]byte{0, 48, 117}: "ADTECH", - [3]byte{0, 48, 118}: "Akamba Corporation", - [3]byte{0, 48, 119}: "ONPREM NETWORKS", - [3]byte{0, 48, 120}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 121}: "CQOS, INC.", - [3]byte{0, 48, 122}: "Advanced Technology & Systems", - [3]byte{0, 48, 123}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 124}: "ADID SA", - [3]byte{0, 48, 125}: "GRE AMERICA, INC.", - [3]byte{0, 48, 126}: "Redflex Communication Systems", - [3]byte{0, 48, 127}: "IRLAN LTD.", - [3]byte{0, 48, 128}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 129}: "ALTOS C&C", - [3]byte{0, 48, 130}: "TAIHAN ELECTRIC WIRE CO., LTD.", - [3]byte{0, 48, 131}: "Ivron Systems", - [3]byte{0, 48, 132}: "ALLIED TELESYN INTERNAIONAL", - [3]byte{0, 48, 133}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 134}: "Transistor Devices, Inc.", - [3]byte{0, 48, 135}: "VEGA GRIESHABER KG", - [3]byte{0, 48, 136}: "Ericsson", - [3]byte{0, 48, 137}: "Spectrapoint Wireless, LLC", - [3]byte{0, 48, 138}: "NICOTRA SISTEMI S.P.A", - [3]byte{0, 48, 139}: "Brix Networks", - [3]byte{0, 48, 140}: "Quantum Corporation", - [3]byte{0, 48, 141}: "Pinnacle Systems, Inc.", - [3]byte{0, 48, 142}: "CROSS MATCH TECHNOLOGIES, INC.", - [3]byte{0, 48, 143}: "MICRILOR, Inc.", - [3]byte{0, 48, 144}: "CYRA TECHNOLOGIES, INC.", - [3]byte{0, 48, 145}: "TAIWAN FIRST LINE ELEC. CORP.", - [3]byte{0, 48, 146}: "ModuNORM GmbH", - [3]byte{0, 48, 147}: "Sonnet Technologies, Inc", - [3]byte{0, 48, 148}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 149}: "Procomp Informatics, Ltd.", - [3]byte{0, 48, 150}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 151}: "AB Regin", - [3]byte{0, 48, 152}: "Global Converging Technologies", - [3]byte{0, 48, 153}: "BOENIG UND KALLENBACH OHG", - [3]byte{0, 48, 154}: "ASTRO TERRA CORP.", - [3]byte{0, 48, 155}: "Smartware", - [3]byte{0, 48, 156}: "Timing Applications, Inc.", - [3]byte{0, 48, 157}: "Nimble Microsystems, Inc.", - [3]byte{0, 48, 158}: "WORKBIT CORPORATION.", - [3]byte{0, 48, 159}: "AMBER NETWORKS", - [3]byte{0, 48, 160}: "TYCO SUBMARINE SYSTEMS, LTD.", - [3]byte{0, 48, 161}: "WEBGATE Inc.", - [3]byte{0, 48, 162}: "Lightner Engineering", - [3]byte{0, 48, 163}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 164}: "Woodwind Communications System", - [3]byte{0, 48, 165}: "ACTIVE POWER", - [3]byte{0, 48, 166}: "VIANET TECHNOLOGIES, LTD.", - [3]byte{0, 48, 167}: "SCHWEITZER ENGINEERING", - [3]byte{0, 48, 168}: "OL'E COMMUNICATIONS, INC.", - [3]byte{0, 48, 169}: "Netiverse, Inc.", - [3]byte{0, 48, 170}: "AXUS MICROSYSTEMS, INC.", - [3]byte{0, 48, 171}: "DELTA NETWORKS, INC.", - [3]byte{0, 48, 172}: "Systeme Lauer GmbH & Co., Ltd.", - [3]byte{0, 48, 173}: "SHANGHAI COMMUNICATION", - [3]byte{0, 48, 174}: "Times N System, Inc.", - [3]byte{0, 48, 175}: "Honeywell GmbH", - [3]byte{0, 48, 176}: "Convergenet Technologies", - [3]byte{0, 48, 177}: "TrunkNet", - [3]byte{0, 48, 178}: "L-3 Sonoma EO", - [3]byte{0, 48, 179}: "San Valley Systems, Inc.", - [3]byte{0, 48, 180}: "INTERSIL CORP.", - [3]byte{0, 48, 181}: "Tadiran Microwave Networks", - [3]byte{0, 48, 182}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 183}: "Teletrol Systems, Inc.", - [3]byte{0, 48, 184}: "RiverDelta Networks", - [3]byte{0, 48, 185}: "ECTEL", - [3]byte{0, 48, 186}: "AC&T SYSTEM CO., LTD.", - [3]byte{0, 48, 187}: "CacheFlow, Inc.", - [3]byte{0, 48, 188}: "Optronic AG", - [3]byte{0, 48, 189}: "BELKIN COMPONENTS", - [3]byte{0, 48, 190}: "City-Net Technology, Inc.", - [3]byte{0, 48, 191}: "MULTIDATA GMBH", - [3]byte{0, 48, 192}: "Lara Technology, Inc.", - [3]byte{0, 48, 193}: "HEWLETT-PACKARD", - [3]byte{0, 48, 194}: "COMONE", - [3]byte{0, 48, 195}: "FLUECKIGER ELEKTRONIK AG", - [3]byte{0, 48, 196}: "Canon Imaging Systems Inc.", - [3]byte{0, 48, 197}: "CADENCE DESIGN SYSTEMS", - [3]byte{0, 48, 198}: "CONTROL SOLUTIONS, INC.", - [3]byte{0, 48, 199}: "Macromate Corp.", - [3]byte{0, 48, 200}: "GAD LINE, LTD.", - [3]byte{0, 48, 201}: "LuxN, N", - [3]byte{0, 48, 202}: "Discovery Com", - [3]byte{0, 48, 203}: "OMNI FLOW COMPUTERS, INC.", - [3]byte{0, 48, 204}: "Tenor Networks, Inc.", - [3]byte{0, 48, 205}: "CONEXANT SYSTEMS, INC.", - [3]byte{0, 48, 206}: "Zaffire", - [3]byte{0, 48, 207}: "TWO TECHNOLOGIES, INC.", - [3]byte{0, 48, 208}: "Tellabs", - [3]byte{0, 48, 209}: "INOVA CORPORATION", - [3]byte{0, 48, 210}: "WIN TECHNOLOGIES, CO., LTD.", - [3]byte{0, 48, 211}: "Agilent Technologies", - [3]byte{0, 48, 212}: "AAE Systems, Inc.", - [3]byte{0, 48, 213}: "DResearch GmbH", - [3]byte{0, 48, 214}: "MSC VERTRIEBS GMBH", - [3]byte{0, 48, 215}: "Innovative Systems, L.L.C.", - [3]byte{0, 48, 216}: "SITEK", - [3]byte{0, 48, 217}: "DATACORE SOFTWARE CORP.", - [3]byte{0, 48, 218}: "COMTREND CO.", - [3]byte{0, 48, 219}: "Mindready Solutions, Inc.", - [3]byte{0, 48, 220}: "RIGHTECH CORPORATION", - [3]byte{0, 48, 221}: "INDIGITA CORPORATION", - [3]byte{0, 48, 222}: "WAGO Kontakttechnik GmbH", - [3]byte{0, 48, 223}: "KB/TEL TELECOMUNICACIONES", - [3]byte{0, 48, 224}: "OXFORD SEMICONDUCTOR LTD.", - [3]byte{0, 48, 225}: "Network Equipment Technologies, Inc.", - [3]byte{0, 48, 226}: "GARNET SYSTEMS CO., LTD.", - [3]byte{0, 48, 227}: "SEDONA NETWORKS CORP.", - [3]byte{0, 48, 228}: "CHIYODA SYSTEM RIKEN", - [3]byte{0, 48, 229}: "Amper Datos S.A.", - [3]byte{0, 48, 230}: "Draeger Medical Systems, Inc.", - [3]byte{0, 48, 231}: "CNF MOBILE SOLUTIONS, INC.", - [3]byte{0, 48, 232}: "ENSIM CORP.", - [3]byte{0, 48, 233}: "GMA COMMUNICATION MANUFACT'G", - [3]byte{0, 48, 234}: "TeraForce Technology Corporation", - [3]byte{0, 48, 235}: "TURBONET COMMUNICATIONS, INC.", - [3]byte{0, 48, 236}: "BORGARDT", - [3]byte{0, 48, 237}: "Expert Magnetics Corp.", - [3]byte{0, 48, 238}: "DSG Technology, Inc.", - [3]byte{0, 48, 239}: "NEON TECHNOLOGY, INC.", - [3]byte{0, 48, 240}: "Uniform Industrial Corp.", - [3]byte{0, 48, 241}: "Accton Technology Corp.", - [3]byte{0, 48, 242}: "CISCO SYSTEMS, INC.", - [3]byte{0, 48, 243}: "At Work Computers", - [3]byte{0, 48, 244}: "STARDOT TECHNOLOGIES", - [3]byte{0, 48, 245}: "Wild Lab. Ltd.", - [3]byte{0, 48, 246}: "SECURELOGIX CORPORATION", - [3]byte{0, 48, 247}: "RAMIX INC.", - [3]byte{0, 48, 248}: "Dynapro Systems, Inc.", - [3]byte{0, 48, 249}: "Sollae Systems Co., Ltd.", - [3]byte{0, 48, 250}: "TELICA, INC.", - [3]byte{0, 48, 251}: "AZS Technology AG", - [3]byte{0, 48, 252}: "Terawave Communications, Inc.", - [3]byte{0, 48, 253}: "INTEGRATED SYSTEMS DESIGN", - [3]byte{0, 48, 254}: "DSA GmbH", - [3]byte{0, 48, 255}: "DATAFAB SYSTEMS, INC.", - [3]byte{0, 51, 108}: "SynapSense Corporation", - [3]byte{0, 52, 241}: "Radicom Research, Inc.", - [3]byte{0, 53, 50}: "Electro-Metrics Corporation", - [3]byte{0, 53, 96}: "Rosen Aviation", - [3]byte{0, 54, 248}: "Conti Temic microelectronic GmbH", - [3]byte{0, 54, 254}: "SuperVision", - [3]byte{0, 55, 109}: "Murata Manufacturing Co., Ltd.", - [3]byte{0, 58, 152}: "CISCO SYSTEMS, INC.", - [3]byte{0, 58, 153}: "CISCO SYSTEMS, INC.", - [3]byte{0, 58, 154}: "CISCO SYSTEMS, INC.", - [3]byte{0, 58, 155}: "CISCO SYSTEMS, INC.", - [3]byte{0, 58, 156}: "CISCO SYSTEMS, INC.", - [3]byte{0, 58, 157}: "NEC Platforms, Ltd.", - [3]byte{0, 58, 175}: "BlueBit Ltd.", - [3]byte{0, 60, 197}: "WONWOO Engineering Co., Ltd", - [3]byte{0, 61, 65}: "Hatteland Computer AS", - [3]byte{0, 62, 225}: "Apple", - [3]byte{0, 64, 0}: "PCI COMPONENTES DA AMZONIA LTD", - [3]byte{0, 64, 1}: "Zero One Technology Co. Ltd.", - [3]byte{0, 64, 2}: "PERLE SYSTEMS LIMITED", - [3]byte{0, 64, 3}: "Emerson Process Management Power & Water Solutions, Inc.", - [3]byte{0, 64, 4}: "ICM CO. LTD.", - [3]byte{0, 64, 5}: "ANI COMMUNICATIONS INC.", - [3]byte{0, 64, 6}: "SAMPO TECHNOLOGY CORPORATION", - [3]byte{0, 64, 7}: "TELMAT INFORMATIQUE", - [3]byte{0, 64, 8}: "A PLUS INFO CORPORATION", - [3]byte{0, 64, 9}: "TACHIBANA TECTRON CO., LTD.", - [3]byte{0, 64, 10}: "PIVOTAL TECHNOLOGIES, INC.", - [3]byte{0, 64, 11}: "CISCO SYSTEMS, INC.", - [3]byte{0, 64, 12}: "GENERAL MICRO SYSTEMS, INC.", - [3]byte{0, 64, 13}: "LANNET DATA COMMUNICATIONS,LTD", - [3]byte{0, 64, 14}: "MEMOTEC, INC.", - [3]byte{0, 64, 15}: "DATACOM TECHNOLOGIES", - [3]byte{0, 64, 16}: "SONIC SYSTEMS, INC.", - [3]byte{0, 64, 17}: "ANDOVER CONTROLS CORPORATION", - [3]byte{0, 64, 18}: "WINDATA, INC.", - [3]byte{0, 64, 19}: "NTT DATA COMM. SYSTEMS CORP.", - [3]byte{0, 64, 20}: "COMSOFT GMBH", - [3]byte{0, 64, 21}: "ASCOM INFRASYS AG", - [3]byte{0, 64, 22}: "ADC - Global Connectivity Solutions Division", - [3]byte{0, 64, 23}: "Silex Technology America", - [3]byte{0, 64, 24}: "ADOBE SYSTEMS, INC.", - [3]byte{0, 64, 25}: "AEON SYSTEMS, INC.", - [3]byte{0, 64, 26}: "FUJI ELECTRIC CO., LTD.", - [3]byte{0, 64, 27}: "PRINTER SYSTEMS CORP.", - [3]byte{0, 64, 28}: "AST RESEARCH, INC.", - [3]byte{0, 64, 29}: "INVISIBLE SOFTWARE, INC.", - [3]byte{0, 64, 30}: "ICC", - [3]byte{0, 64, 31}: "COLORGRAPH LTD", - [3]byte{0, 64, 32}: "TE Connectivity Ltd.", - [3]byte{0, 64, 33}: "RASTER GRAPHICS", - [3]byte{0, 64, 34}: "KLEVER COMPUTERS, INC.", - [3]byte{0, 64, 35}: "LOGIC CORPORATION", - [3]byte{0, 64, 36}: "COMPAC INC.", - [3]byte{0, 64, 37}: "MOLECULAR DYNAMICS", - [3]byte{0, 64, 38}: "Buffalo Inc.", - [3]byte{0, 64, 39}: "SMC MASSACHUSETTS, INC.", - [3]byte{0, 64, 40}: "NETCOMM LIMITED", - [3]byte{0, 64, 41}: "COMPEX", - [3]byte{0, 64, 42}: "CANOGA-PERKINS", - [3]byte{0, 64, 43}: "TRIGEM COMPUTER, INC.", - [3]byte{0, 64, 44}: "ISIS DISTRIBUTED SYSTEMS, INC.", - [3]byte{0, 64, 45}: "HARRIS ADACOM CORPORATION", - [3]byte{0, 64, 46}: "PRECISION SOFTWARE, INC.", - [3]byte{0, 64, 47}: "XLNT DESIGNS INC.", - [3]byte{0, 64, 48}: "GK COMPUTER", - [3]byte{0, 64, 49}: "KOKUSAI ELECTRIC CO., LTD", - [3]byte{0, 64, 50}: "DIGITAL COMMUNICATIONS", - [3]byte{0, 64, 51}: "ADDTRON TECHNOLOGY CO., LTD.", - [3]byte{0, 64, 52}: "BUSTEK CORPORATION", - [3]byte{0, 64, 53}: "OPCOM", - [3]byte{0, 64, 54}: "TRIBE COMPUTER WORKS, INC.", - [3]byte{0, 64, 55}: "SEA-ILAN, INC.", - [3]byte{0, 64, 56}: "TALENT ELECTRIC INCORPORATED", - [3]byte{0, 64, 57}: "OPTEC DAIICHI DENKO CO., LTD.", - [3]byte{0, 64, 58}: "IMPACT TECHNOLOGIES", - [3]byte{0, 64, 59}: "SYNERJET INTERNATIONAL CORP.", - [3]byte{0, 64, 60}: "FORKS, INC.", - [3]byte{0, 64, 61}: "Teradata Corporation", - [3]byte{0, 64, 62}: "RASTER OPS CORPORATION", - [3]byte{0, 64, 63}: "SSANGYONG COMPUTER SYSTEMS", - [3]byte{0, 64, 64}: "RING ACCESS, INC.", - [3]byte{0, 64, 65}: "FUJIKURA LTD.", - [3]byte{0, 64, 66}: "N.A.T. GMBH", - [3]byte{0, 64, 67}: "Nokia Siemens Networks GmbH & Co. KG.", - [3]byte{0, 64, 68}: "QNIX COMPUTER CO., LTD.", - [3]byte{0, 64, 69}: "TWINHEAD CORPORATION", - [3]byte{0, 64, 70}: "UDC RESEARCH LIMITED", - [3]byte{0, 64, 71}: "WIND RIVER SYSTEMS", - [3]byte{0, 64, 72}: "SMD INFORMATICA S.A.", - [3]byte{0, 64, 73}: "Roche Diagnostics International Ltd.", - [3]byte{0, 64, 74}: "WEST AUSTRALIAN DEPARTMENT", - [3]byte{0, 64, 75}: "MAPLE COMPUTER SYSTEMS", - [3]byte{0, 64, 76}: "HYPERTEC PTY LTD.", - [3]byte{0, 64, 77}: "TELECOMMUNICATIONS TECHNIQUES", - [3]byte{0, 64, 78}: "FLUENT, INC.", - [3]byte{0, 64, 79}: "SPACE & NAVAL WARFARE SYSTEMS", - [3]byte{0, 64, 80}: "IRONICS, INCORPORATED", - [3]byte{0, 64, 81}: "GRACILIS, INC.", - [3]byte{0, 64, 82}: "STAR TECHNOLOGIES, INC.", - [3]byte{0, 64, 83}: "AMPRO COMPUTERS", - [3]byte{0, 64, 84}: "CONNECTION MACHINES SERVICES", - [3]byte{0, 64, 85}: "METRONIX GMBH", - [3]byte{0, 64, 86}: "MCM JAPAN LTD.", - [3]byte{0, 64, 87}: "LOCKHEED - SANDERS", - [3]byte{0, 64, 88}: "KRONOS, INC.", - [3]byte{0, 64, 89}: "YOSHIDA KOGYO K. K.", - [3]byte{0, 64, 90}: "GOLDSTAR INFORMATION & COMM.", - [3]byte{0, 64, 91}: "FUNASSET LIMITED", - [3]byte{0, 64, 92}: "FUTURE SYSTEMS, INC.", - [3]byte{0, 64, 93}: "STAR-TEK, INC.", - [3]byte{0, 64, 94}: "NORTH HILLS ISRAEL", - [3]byte{0, 64, 95}: "AFE COMPUTERS LTD.", - [3]byte{0, 64, 96}: "COMENDEC LTD", - [3]byte{0, 64, 97}: "DATATECH ENTERPRISES CO., LTD.", - [3]byte{0, 64, 98}: "E-SYSTEMS, INC./GARLAND DIV.", - [3]byte{0, 64, 99}: "VIA TECHNOLOGIES, INC.", - [3]byte{0, 64, 100}: "KLA INSTRUMENTS CORPORATION", - [3]byte{0, 64, 101}: "GTE SPACENET", - [3]byte{0, 64, 102}: "Hitachi Metals, Ltd.", - [3]byte{0, 64, 103}: "OMNIBYTE CORPORATION", - [3]byte{0, 64, 104}: "EXTENDED SYSTEMS", - [3]byte{0, 64, 105}: "LEMCOM SYSTEMS, INC.", - [3]byte{0, 64, 106}: "KENTEK INFORMATION SYSTEMS,INC", - [3]byte{0, 64, 107}: "SYSGEN", - [3]byte{0, 64, 108}: "COPERNIQUE", - [3]byte{0, 64, 109}: "LANCO, INC.", - [3]byte{0, 64, 110}: "COROLLARY, INC.", - [3]byte{0, 64, 111}: "SYNC RESEARCH INC.", - [3]byte{0, 64, 112}: "INTERWARE CO., LTD.", - [3]byte{0, 64, 113}: "ATM COMPUTER GMBH", - [3]byte{0, 64, 114}: "Applied Innovation Inc.", - [3]byte{0, 64, 115}: "BASS ASSOCIATES", - [3]byte{0, 64, 116}: "CABLE AND WIRELESS", - [3]byte{0, 64, 117}: "Tattile SRL", - [3]byte{0, 64, 118}: "Sun Conversion Technologies", - [3]byte{0, 64, 119}: "MAXTON TECHNOLOGY CORPORATION", - [3]byte{0, 64, 120}: "WEARNES AUTOMATION PTE LTD", - [3]byte{0, 64, 121}: "JUKO MANUFACTURE COMPANY, LTD.", - [3]byte{0, 64, 122}: "SOCIETE D'EXPLOITATION DU CNIT", - [3]byte{0, 64, 123}: "SCIENTIFIC ATLANTA", - [3]byte{0, 64, 124}: "QUME CORPORATION", - [3]byte{0, 64, 125}: "EXTENSION TECHNOLOGY CORP.", - [3]byte{0, 64, 126}: "EVERGREEN SYSTEMS, INC.", - [3]byte{0, 64, 127}: "FLIR Systems", - [3]byte{0, 64, 128}: "ATHENIX CORPORATION", - [3]byte{0, 64, 129}: "MANNESMANN SCANGRAPHIC GMBH", - [3]byte{0, 64, 130}: "LABORATORY EQUIPMENT CORP.", - [3]byte{0, 64, 131}: "TDA INDUSTRIA DE PRODUTOS", - [3]byte{0, 64, 132}: "HONEYWELL ACS", - [3]byte{0, 64, 133}: "SAAB INSTRUMENTS AB", - [3]byte{0, 64, 134}: "MICHELS & KLEBERHOFF COMPUTER", - [3]byte{0, 64, 135}: "UBITREX CORPORATION", - [3]byte{0, 64, 136}: "MOBIUS TECHNOLOGIES, INC.", - [3]byte{0, 64, 137}: "MEIDENSHA CORPORATION", - [3]byte{0, 64, 138}: "TPS TELEPROCESSING SYS. GMBH", - [3]byte{0, 64, 139}: "RAYLAN CORPORATION", - [3]byte{0, 64, 140}: "AXIS COMMUNICATIONS AB", - [3]byte{0, 64, 141}: "THE GOODYEAR TIRE & RUBBER CO.", - [3]byte{0, 64, 142}: "Tattile SRL", - [3]byte{0, 64, 143}: "WM-DATA MINFO AB", - [3]byte{0, 64, 144}: "ANSEL COMMUNICATIONS", - [3]byte{0, 64, 145}: "PROCOMP INDUSTRIA ELETRONICA", - [3]byte{0, 64, 146}: "ASP COMPUTER PRODUCTS, INC.", - [3]byte{0, 64, 147}: "PAXDATA NETWORKS LTD.", - [3]byte{0, 64, 148}: "SHOGRAPHICS, INC.", - [3]byte{0, 64, 149}: "R.P.T. INTERGROUPS INT'L LTD.", - [3]byte{0, 64, 150}: "Cisco Systems", - [3]byte{0, 64, 151}: "DATEX DIVISION OF", - [3]byte{0, 64, 152}: "DRESSLER GMBH & CO.", - [3]byte{0, 64, 153}: "NEWGEN SYSTEMS CORP.", - [3]byte{0, 64, 154}: "NETWORK EXPRESS, INC.", - [3]byte{0, 64, 155}: "HAL COMPUTER SYSTEMS INC.", - [3]byte{0, 64, 156}: "TRANSWARE", - [3]byte{0, 64, 157}: "DIGIBOARD, INC.", - [3]byte{0, 64, 158}: "CONCURRENT TECHNOLOGIES LTD.", - [3]byte{0, 64, 159}: "Telco Systems, Inc.", - [3]byte{0, 64, 160}: "GOLDSTAR CO., LTD.", - [3]byte{0, 64, 161}: "ERGO COMPUTING", - [3]byte{0, 64, 162}: "KINGSTAR TECHNOLOGY INC.", - [3]byte{0, 64, 163}: "MICROUNITY SYSTEMS ENGINEERING", - [3]byte{0, 64, 164}: "ROSE ELECTRONICS", - [3]byte{0, 64, 165}: "CLINICOMP INTL.", - [3]byte{0, 64, 166}: "Cray, Inc.", - [3]byte{0, 64, 167}: "ITAUTEC PHILCO S.A.", - [3]byte{0, 64, 168}: "IMF INTERNATIONAL LTD.", - [3]byte{0, 64, 169}: "DATACOM INC.", - [3]byte{0, 64, 170}: "Metso Automation", - [3]byte{0, 64, 171}: "ROLAND DG CORPORATION", - [3]byte{0, 64, 172}: "SUPER WORKSTATION, INC.", - [3]byte{0, 64, 173}: "SMA REGELSYSTEME GMBH", - [3]byte{0, 64, 174}: "DELTA CONTROLS, INC.", - [3]byte{0, 64, 175}: "DIGITAL PRODUCTS, INC.", - [3]byte{0, 64, 176}: "BYTEX CORPORATION, ENGINEERING", - [3]byte{0, 64, 177}: "CODONICS INC.", - [3]byte{0, 64, 178}: "SYSTEMFORSCHUNG", - [3]byte{0, 64, 179}: "ParTech Inc.", - [3]byte{0, 64, 180}: "NEXTCOM K.K.", - [3]byte{0, 64, 181}: "VIDEO TECHNOLOGY COMPUTERS LTD", - [3]byte{0, 64, 182}: "COMPUTERM CORPORATION", - [3]byte{0, 64, 183}: "STEALTH COMPUTER SYSTEMS", - [3]byte{0, 64, 184}: "IDEA ASSOCIATES", - [3]byte{0, 64, 185}: "MACQ ELECTRONIQUE SA", - [3]byte{0, 64, 186}: "ALLIANT COMPUTER SYSTEMS CORP.", - [3]byte{0, 64, 187}: "GOLDSTAR CABLE CO., LTD.", - [3]byte{0, 64, 188}: "ALGORITHMICS LTD.", - [3]byte{0, 64, 189}: "STARLIGHT NETWORKS, INC.", - [3]byte{0, 64, 190}: "BOEING DEFENSE & SPACE", - [3]byte{0, 64, 191}: "CHANNEL SYSTEMS INTERN'L INC.", - [3]byte{0, 64, 192}: "VISTA CONTROLS CORPORATION", - [3]byte{0, 64, 193}: "BIZERBA-WERKE WILHEIM KRAUT", - [3]byte{0, 64, 194}: "APPLIED COMPUTING DEVICES", - [3]byte{0, 64, 195}: "FISCHER AND PORTER CO.", - [3]byte{0, 64, 196}: "KINKEI SYSTEM CORPORATION", - [3]byte{0, 64, 197}: "MICOM COMMUNICATIONS INC.", - [3]byte{0, 64, 198}: "FIBERNET RESEARCH, INC.", - [3]byte{0, 64, 199}: "RUBY TECH CORPORATION", - [3]byte{0, 64, 200}: "MILAN TECHNOLOGY CORPORATION", - [3]byte{0, 64, 201}: "NCUBE", - [3]byte{0, 64, 202}: "FIRST INTERNAT'L COMPUTER, INC", - [3]byte{0, 64, 203}: "LANWAN TECHNOLOGIES", - [3]byte{0, 64, 204}: "SILCOM MANUF'G TECHNOLOGY INC.", - [3]byte{0, 64, 205}: "TERA MICROSYSTEMS, INC.", - [3]byte{0, 64, 206}: "NET-SOURCE, INC.", - [3]byte{0, 64, 207}: "STRAWBERRY TREE, INC.", - [3]byte{0, 64, 208}: "MITAC INTERNATIONAL CORP.", - [3]byte{0, 64, 209}: "FUKUDA DENSHI CO., LTD.", - [3]byte{0, 64, 210}: "PAGINE CORPORATION", - [3]byte{0, 64, 211}: "KIMPSION INTERNATIONAL CORP.", - [3]byte{0, 64, 212}: "GAGE TALKER CORP.", - [3]byte{0, 64, 213}: "Sartorius Mechatronics T&H GmbH", - [3]byte{0, 64, 214}: "LOCAMATION B.V.", - [3]byte{0, 64, 215}: "STUDIO GEN INC.", - [3]byte{0, 64, 216}: "OCEAN OFFICE AUTOMATION LTD.", - [3]byte{0, 64, 217}: "AMERICAN MEGATRENDS INC.", - [3]byte{0, 64, 218}: "TELSPEC LTD", - [3]byte{0, 64, 219}: "ADVANCED TECHNICAL SOLUTIONS", - [3]byte{0, 64, 220}: "TRITEC ELECTRONIC GMBH", - [3]byte{0, 64, 221}: "HONG TECHNOLOGIES", - [3]byte{0, 64, 222}: "Elsag Datamat spa", - [3]byte{0, 64, 223}: "DIGALOG SYSTEMS, INC.", - [3]byte{0, 64, 224}: "ATOMWIDE LTD.", - [3]byte{0, 64, 225}: "MARNER INTERNATIONAL, INC.", - [3]byte{0, 64, 226}: "MESA RIDGE TECHNOLOGIES, INC.", - [3]byte{0, 64, 227}: "QUIN SYSTEMS LTD", - [3]byte{0, 64, 228}: "E-M TECHNOLOGY, INC.", - [3]byte{0, 64, 229}: "SYBUS CORPORATION", - [3]byte{0, 64, 230}: "C.A.E.N.", - [3]byte{0, 64, 231}: "ARNOS INSTRUMENTS & COMPUTER", - [3]byte{0, 64, 232}: "CHARLES RIVER DATA SYSTEMS,INC", - [3]byte{0, 64, 233}: "ACCORD SYSTEMS, INC.", - [3]byte{0, 64, 234}: "PLAIN TREE SYSTEMS INC", - [3]byte{0, 64, 235}: "MARTIN MARIETTA CORPORATION", - [3]byte{0, 64, 236}: "MIKASA SYSTEM ENGINEERING", - [3]byte{0, 64, 237}: "NETWORK CONTROLS INT'NATL INC.", - [3]byte{0, 64, 238}: "OPTIMEM", - [3]byte{0, 64, 239}: "HYPERCOM, INC.", - [3]byte{0, 64, 240}: "MicroBrain,Inc.", - [3]byte{0, 64, 241}: "CHUO ELECTRONICS CO., LTD.", - [3]byte{0, 64, 242}: "JANICH & KLASS COMPUTERTECHNIK", - [3]byte{0, 64, 243}: "NETCOR", - [3]byte{0, 64, 244}: "CAMEO COMMUNICATIONS, INC.", - [3]byte{0, 64, 245}: "OEM ENGINES", - [3]byte{0, 64, 246}: "KATRON COMPUTERS INC.", - [3]byte{0, 64, 247}: "Polaroid Corporation", - [3]byte{0, 64, 248}: "SYSTEMHAUS DISCOM", - [3]byte{0, 64, 249}: "COMBINET", - [3]byte{0, 64, 250}: "MICROBOARDS, INC.", - [3]byte{0, 64, 251}: "CASCADE COMMUNICATIONS CORP.", - [3]byte{0, 64, 252}: "IBR COMPUTER TECHNIK GMBH", - [3]byte{0, 64, 253}: "LXE", - [3]byte{0, 64, 254}: "SYMPLEX COMMUNICATIONS", - [3]byte{0, 64, 255}: "TELEBIT CORPORATION", - [3]byte{0, 65, 180}: "Wuxi Zhongxing Optoelectronics Technology Co.,Ltd.", - [3]byte{0, 66, 82}: "RLX Technologies", - [3]byte{0, 67, 255}: "KETRON S.R.L.", - [3]byte{0, 69, 1}: "Versus Technology, Inc.", - [3]byte{0, 70, 75}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{0, 77, 50}: "Andon Health Co.,Ltd.", - [3]byte{0, 80, 0}: "NEXO COMMUNICATIONS, INC.", - [3]byte{0, 80, 1}: "YAMASHITA SYSTEMS CORP.", - [3]byte{0, 80, 2}: "OMNISEC AG", - [3]byte{0, 80, 3}: "Xrite Inc", - [3]byte{0, 80, 4}: "3COM CORPORATION", - [3]byte{0, 80, 6}: "TAC AB", - [3]byte{0, 80, 7}: "SIEMENS TELECOMMUNICATION SYSTEMS LIMITED", - [3]byte{0, 80, 8}: "TIVA MICROCOMPUTER CORP. (TMC)", - [3]byte{0, 80, 9}: "PHILIPS BROADBAND NETWORKS", - [3]byte{0, 80, 10}: "IRIS TECHNOLOGIES, INC.", - [3]byte{0, 80, 11}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 12}: "e-Tek Labs, Inc.", - [3]byte{0, 80, 13}: "SATORI ELECTORIC CO., LTD.", - [3]byte{0, 80, 14}: "CHROMATIS NETWORKS, INC.", - [3]byte{0, 80, 15}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 16}: "NovaNET Learning, Inc.", - [3]byte{0, 80, 18}: "CBL - GMBH", - [3]byte{0, 80, 19}: "Chaparral Network Storage", - [3]byte{0, 80, 20}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 21}: "BRIGHT STAR ENGINEERING", - [3]byte{0, 80, 22}: "SST/WOODHEAD INDUSTRIES", - [3]byte{0, 80, 23}: "RSR S.R.L.", - [3]byte{0, 80, 24}: "AMIT, Inc.", - [3]byte{0, 80, 25}: "SPRING TIDE NETWORKS, INC.", - [3]byte{0, 80, 26}: "IQinVision", - [3]byte{0, 80, 27}: "ABL CANADA, INC.", - [3]byte{0, 80, 28}: "JATOM SYSTEMS, INC.", - [3]byte{0, 80, 30}: "Miranda Technologies, Inc.", - [3]byte{0, 80, 31}: "MRG SYSTEMS, LTD.", - [3]byte{0, 80, 32}: "MEDIASTAR CO., LTD.", - [3]byte{0, 80, 33}: "EIS INTERNATIONAL, INC.", - [3]byte{0, 80, 34}: "ZONET TECHNOLOGY, INC.", - [3]byte{0, 80, 35}: "PG DESIGN ELECTRONICS, INC.", - [3]byte{0, 80, 36}: "NAVIC SYSTEMS, INC.", - [3]byte{0, 80, 38}: "COSYSTEMS, INC.", - [3]byte{0, 80, 39}: "GENICOM CORPORATION", - [3]byte{0, 80, 40}: "AVAL COMMUNICATIONS", - [3]byte{0, 80, 41}: "1394 PRINTER WORKING GROUP", - [3]byte{0, 80, 42}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 43}: "GENRAD LTD.", - [3]byte{0, 80, 44}: "SOYO COMPUTER, INC.", - [3]byte{0, 80, 45}: "ACCEL, INC.", - [3]byte{0, 80, 46}: "CAMBEX CORPORATION", - [3]byte{0, 80, 47}: "TollBridge Technologies, Inc.", - [3]byte{0, 80, 48}: "FUTURE PLUS SYSTEMS", - [3]byte{0, 80, 49}: "AEROFLEX LABORATORIES, INC.", - [3]byte{0, 80, 50}: "PICAZO COMMUNICATIONS, INC.", - [3]byte{0, 80, 51}: "MAYAN NETWORKS", - [3]byte{0, 80, 54}: "NETCAM, LTD.", - [3]byte{0, 80, 55}: "KOGA ELECTRONICS CO.", - [3]byte{0, 80, 56}: "DAIN TELECOM CO., LTD.", - [3]byte{0, 80, 57}: "MARINER NETWORKS", - [3]byte{0, 80, 58}: "DATONG ELECTRONICS LTD.", - [3]byte{0, 80, 59}: "MEDIAFIRE CORPORATION", - [3]byte{0, 80, 60}: "TSINGHUA NOVEL ELECTRONICS", - [3]byte{0, 80, 62}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 63}: "ANCHOR GAMES", - [3]byte{0, 80, 64}: "Panasonic Electric Works Co., Ltd.", - [3]byte{0, 80, 65}: "Coretronic Corporation", - [3]byte{0, 80, 66}: "SCI MANUFACTURING SINGAPORE PTE, LTD.", - [3]byte{0, 80, 67}: "MARVELL SEMICONDUCTOR, INC.", - [3]byte{0, 80, 68}: "ASACA CORPORATION", - [3]byte{0, 80, 69}: "RIOWORKS SOLUTIONS, INC.", - [3]byte{0, 80, 70}: "MENICX INTERNATIONAL CO., LTD.", - [3]byte{0, 80, 71}: "PRIVATE", - [3]byte{0, 80, 72}: "INFOLIBRIA", - [3]byte{0, 80, 73}: "Arbor Networks Inc", - [3]byte{0, 80, 74}: "ELTECO A.S.", - [3]byte{0, 80, 75}: "BARCONET N.V.", - [3]byte{0, 80, 76}: "Galil Motion Control", - [3]byte{0, 80, 77}: "Tokyo Electron Device Limited", - [3]byte{0, 80, 78}: "SIERRA MONITOR CORP.", - [3]byte{0, 80, 79}: "OLENCOM ELECTRONICS", - [3]byte{0, 80, 80}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 81}: "IWATSU ELECTRIC CO., LTD.", - [3]byte{0, 80, 82}: "TIARA NETWORKS, INC.", - [3]byte{0, 80, 83}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 84}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 85}: "DOMS A/S", - [3]byte{0, 80, 86}: "VMware, Inc.", - [3]byte{0, 80, 87}: "BROADBAND ACCESS SYSTEMS", - [3]byte{0, 80, 88}: "VegaStream Group Limted", - [3]byte{0, 80, 89}: "iBAHN", - [3]byte{0, 80, 90}: "NETWORK ALCHEMY, INC.", - [3]byte{0, 80, 91}: "KAWASAKI LSI U.S.A., INC.", - [3]byte{0, 80, 92}: "TUNDO CORPORATION", - [3]byte{0, 80, 94}: "DIGITEK MICROLOGIC S.A.", - [3]byte{0, 80, 95}: "BRAND INNOVATORS", - [3]byte{0, 80, 96}: "TANDBERG TELECOM AS", - [3]byte{0, 80, 98}: "KOUWELL ELECTRONICS CORP. **", - [3]byte{0, 80, 99}: "OY COMSEL SYSTEM AB", - [3]byte{0, 80, 100}: "CAE ELECTRONICS", - [3]byte{0, 80, 101}: "TDK-Lambda Corporation", - [3]byte{0, 80, 102}: "AtecoM GmbH advanced telecomunication modules", - [3]byte{0, 80, 103}: "AEROCOMM, INC.", - [3]byte{0, 80, 104}: "ELECTRONIC INDUSTRIES ASSOCIATION", - [3]byte{0, 80, 105}: "PixStream Incorporated", - [3]byte{0, 80, 106}: "EDEVA, INC.", - [3]byte{0, 80, 107}: "SPX-ATEG", - [3]byte{0, 80, 108}: "Beijer Electronics Products AB", - [3]byte{0, 80, 109}: "VIDEOJET SYSTEMS", - [3]byte{0, 80, 110}: "CORDER ENGINEERING CORPORATION", - [3]byte{0, 80, 111}: "G-CONNECT", - [3]byte{0, 80, 112}: "CHAINTECH COMPUTER CO., LTD.", - [3]byte{0, 80, 113}: "AIWA CO., LTD.", - [3]byte{0, 80, 114}: "CORVIS CORPORATION", - [3]byte{0, 80, 115}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 116}: "ADVANCED HI-TECH CORP.", - [3]byte{0, 80, 117}: "KESTREL SOLUTIONS", - [3]byte{0, 80, 118}: "IBM Corp", - [3]byte{0, 80, 119}: "PROLIFIC TECHNOLOGY, INC.", - [3]byte{0, 80, 120}: "MEGATON HOUSE, LTD.", - [3]byte{0, 80, 121}: "PRIVATE", - [3]byte{0, 80, 122}: "XPEED, INC.", - [3]byte{0, 80, 123}: "MERLOT COMMUNICATIONS", - [3]byte{0, 80, 124}: "VIDEOCON AG", - [3]byte{0, 80, 125}: "IFP", - [3]byte{0, 80, 126}: "NEWER TECHNOLOGY", - [3]byte{0, 80, 127}: "DrayTek Corp.", - [3]byte{0, 80, 128}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 129}: "MURATA MACHINERY, LTD.", - [3]byte{0, 80, 130}: "FORESSON CORPORATION", - [3]byte{0, 80, 131}: "GILBARCO, INC.", - [3]byte{0, 80, 132}: "ATL PRODUCTS", - [3]byte{0, 80, 134}: "TELKOM SA, LTD.", - [3]byte{0, 80, 135}: "TERASAKI ELECTRIC CO., LTD.", - [3]byte{0, 80, 136}: "AMANO CORPORATION", - [3]byte{0, 80, 137}: "SAFETY MANAGEMENT SYSTEMS", - [3]byte{0, 80, 139}: "Hewlett-Packard Company", - [3]byte{0, 80, 140}: "RSI SYSTEMS", - [3]byte{0, 80, 141}: "ABIT COMPUTER CORPORATION", - [3]byte{0, 80, 142}: "OPTIMATION, INC.", - [3]byte{0, 80, 143}: "ASITA TECHNOLOGIES INT'L LTD.", - [3]byte{0, 80, 144}: "DCTRI", - [3]byte{0, 80, 145}: "NETACCESS, INC.", - [3]byte{0, 80, 146}: "RIGAKU INDUSTRIAL CORPORATION", - [3]byte{0, 80, 147}: "BOEING", - [3]byte{0, 80, 148}: "PACE plc", - [3]byte{0, 80, 149}: "PERACOM NETWORKS", - [3]byte{0, 80, 150}: "SALIX TECHNOLOGIES, INC.", - [3]byte{0, 80, 151}: "MMC-EMBEDDED COMPUTERTECHNIK GmbH", - [3]byte{0, 80, 152}: "GLOBALOOP, LTD.", - [3]byte{0, 80, 153}: "3COM EUROPE, LTD.", - [3]byte{0, 80, 154}: "TAG ELECTRONIC SYSTEMS", - [3]byte{0, 80, 155}: "SWITCHCORE AB", - [3]byte{0, 80, 156}: "BETA RESEARCH", - [3]byte{0, 80, 157}: "THE INDUSTREE B.V.", - [3]byte{0, 80, 158}: "Les Technologies SoftAcoustik Inc.", - [3]byte{0, 80, 159}: "HORIZON COMPUTER", - [3]byte{0, 80, 160}: "DELTA COMPUTER SYSTEMS, INC.", - [3]byte{0, 80, 161}: "CARLO GAVAZZI, INC.", - [3]byte{0, 80, 162}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 163}: "TransMedia Communications, Inc.", - [3]byte{0, 80, 164}: "IO TECH, INC.", - [3]byte{0, 80, 165}: "CAPITOL BUSINESS SYSTEMS, LTD.", - [3]byte{0, 80, 166}: "OPTRONICS", - [3]byte{0, 80, 167}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 168}: "OpenCon Systems, Inc.", - [3]byte{0, 80, 169}: "MOLDAT WIRELESS TECHNOLGIES", - [3]byte{0, 80, 170}: "KONICA MINOLTA HOLDINGS, INC.", - [3]byte{0, 80, 171}: "NALTEC, Inc.", - [3]byte{0, 80, 172}: "MAPLE COMPUTER CORPORATION", - [3]byte{0, 80, 173}: "CommUnique Wireless Corp.", - [3]byte{0, 80, 174}: "FDK Co., Ltd", - [3]byte{0, 80, 175}: "INTERGON, INC.", - [3]byte{0, 80, 176}: "TECHNOLOGY ATLANTA CORPORATION", - [3]byte{0, 80, 177}: "GIDDINGS & LEWIS", - [3]byte{0, 80, 178}: "BRODEL GmbH", - [3]byte{0, 80, 179}: "VOICEBOARD CORPORATION", - [3]byte{0, 80, 180}: "SATCHWELL CONTROL SYSTEMS, LTD", - [3]byte{0, 80, 181}: "FICHET-BAUCHE", - [3]byte{0, 80, 182}: "GOOD WAY IND. CO., LTD.", - [3]byte{0, 80, 183}: "BOSER TECHNOLOGY CO., LTD.", - [3]byte{0, 80, 184}: "INOVA COMPUTERS GMBH & CO. KG", - [3]byte{0, 80, 185}: "XITRON TECHNOLOGIES, INC.", - [3]byte{0, 80, 186}: "D-LINK", - [3]byte{0, 80, 187}: "CMS TECHNOLOGIES", - [3]byte{0, 80, 188}: "HAMMER STORAGE SOLUTIONS", - [3]byte{0, 80, 189}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 190}: "FAST MULTIMEDIA AG", - [3]byte{0, 80, 191}: "Metalligence Technology Corp.", - [3]byte{0, 80, 192}: "GATAN, INC.", - [3]byte{0, 80, 193}: "GEMFLEX NETWORKS, LTD.", - [3]byte{0, 80, 194}: "IEEE REGISTRATION AUTHORITY - Please see IAB public listing for more information.", - [3]byte{0, 80, 196}: "IMD", - [3]byte{0, 80, 197}: "ADS Technologies, Inc", - [3]byte{0, 80, 198}: "LOOP TELECOMMUNICATION INTERNATIONAL, INC.", - [3]byte{0, 80, 200}: "Addonics Technologies, Inc.", - [3]byte{0, 80, 201}: "MASPRO DENKOH CORP.", - [3]byte{0, 80, 202}: "NET TO NET TECHNOLOGIES", - [3]byte{0, 80, 203}: "JETTER", - [3]byte{0, 80, 204}: "XYRATEX", - [3]byte{0, 80, 205}: "DIGIANSWER A/S", - [3]byte{0, 80, 206}: "LG INTERNATIONAL CORP.", - [3]byte{0, 80, 207}: "VANLINK COMMUNICATION TECHNOLOGY RESEARCH INSTITUTE", - [3]byte{0, 80, 208}: "MINERVA SYSTEMS", - [3]byte{0, 80, 209}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 210}: "CMC Electronics Inc", - [3]byte{0, 80, 211}: "DIGITAL AUDIO PROCESSING PTY. LTD.", - [3]byte{0, 80, 212}: "JOOHONG INFORMATION &", - [3]byte{0, 80, 213}: "AD SYSTEMS CORP.", - [3]byte{0, 80, 214}: "ATLAS COPCO TOOLS AB", - [3]byte{0, 80, 215}: "TELSTRAT", - [3]byte{0, 80, 216}: "UNICORN COMPUTER CORP.", - [3]byte{0, 80, 217}: "ENGETRON-ENGENHARIA ELETRONICA IND. e COM. LTDA", - [3]byte{0, 80, 218}: "3COM CORPORATION", - [3]byte{0, 80, 219}: "CONTEMPORARY CONTROL", - [3]byte{0, 80, 220}: "TAS TELEFONBAU A. SCHWABE GMBH & CO. KG", - [3]byte{0, 80, 221}: "SERRA SOLDADURA, S.A.", - [3]byte{0, 80, 222}: "SIGNUM SYSTEMS CORP.", - [3]byte{0, 80, 223}: "AirFiber, Inc.", - [3]byte{0, 80, 225}: "NS TECH ELECTRONICS SDN BHD", - [3]byte{0, 80, 226}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 227}: "ARRIS Group, Inc.", - [3]byte{0, 80, 228}: "Apple", - [3]byte{0, 80, 230}: "HAKUSAN CORPORATION", - [3]byte{0, 80, 231}: "PARADISE INNOVATIONS (ASIA)", - [3]byte{0, 80, 232}: "NOMADIX INC.", - [3]byte{0, 80, 234}: "XEL COMMUNICATIONS, INC.", - [3]byte{0, 80, 235}: "ALPHA-TOP CORPORATION", - [3]byte{0, 80, 236}: "OLICOM A/S", - [3]byte{0, 80, 237}: "ANDA NETWORKS", - [3]byte{0, 80, 238}: "TEK DIGITEL CORPORATION", - [3]byte{0, 80, 239}: "SPE Systemhaus GmbH", - [3]byte{0, 80, 240}: "CISCO SYSTEMS, INC.", - [3]byte{0, 80, 241}: "Intel Corporation", - [3]byte{0, 80, 242}: "MICROSOFT CORP.", - [3]byte{0, 80, 243}: "GLOBAL NET INFORMATION CO., Ltd.", - [3]byte{0, 80, 244}: "SIGMATEK GMBH & CO. KG", - [3]byte{0, 80, 246}: "PAN-INTERNATIONAL INDUSTRIAL CORP.", - [3]byte{0, 80, 247}: "VENTURE MANUFACTURING (SINGAPORE) LTD.", - [3]byte{0, 80, 248}: "ENTREGA TECHNOLOGIES, INC.", - [3]byte{0, 80, 249}: "Sensormatic Electronics LLC", - [3]byte{0, 80, 250}: "OXTEL, LTD.", - [3]byte{0, 80, 251}: "VSK ELECTRONICS", - [3]byte{0, 80, 252}: "EDIMAX TECHNOLOGY CO., LTD.", - [3]byte{0, 80, 253}: "VISIONCOMM CO., LTD.", - [3]byte{0, 80, 254}: "PCTVnet ASA", - [3]byte{0, 80, 255}: "HAKKO ELECTRONICS CO., LTD.", - [3]byte{0, 82, 24}: "Wuxi Keboda Electron Co.Ltd", - [3]byte{0, 84, 175}: "Continental Automotive Systems Inc.", - [3]byte{0, 89, 7}: "LenovoEMC Products USA, LLC", - [3]byte{0, 90, 57}: "SHENZHEN FAST TECHNOLOGIES CO., LTD.", - [3]byte{0, 92, 177}: "Gospell DIGITAL TECHNOLOGY CO., LTD", - [3]byte{0, 93, 3}: "Xilinx, Inc", - [3]byte{0, 96, 0}: "XYCOM INC.", - [3]byte{0, 96, 1}: "InnoSys, Inc.", - [3]byte{0, 96, 2}: "SCREEN SUBTITLING SYSTEMS, LTD", - [3]byte{0, 96, 3}: "TERAOKA WEIGH SYSTEM PTE, LTD.", - [3]byte{0, 96, 4}: "COMPUTADORES MODULARES SA", - [3]byte{0, 96, 5}: "FEEDBACK DATA LTD.", - [3]byte{0, 96, 6}: "SOTEC CO., LTD", - [3]byte{0, 96, 7}: "ACRES GAMING, INC.", - [3]byte{0, 96, 8}: "3COM CORPORATION", - [3]byte{0, 96, 9}: "CISCO SYSTEMS, INC.", - [3]byte{0, 96, 10}: "SORD COMPUTER CORPORATION", - [3]byte{0, 96, 11}: "LOGWARE GmbH", - [3]byte{0, 96, 12}: "Eurotech Inc.", - [3]byte{0, 96, 13}: "Digital Logic GmbH", - [3]byte{0, 96, 14}: "WAVENET INTERNATIONAL, INC.", - [3]byte{0, 96, 15}: "WESTELL, INC.", - [3]byte{0, 96, 16}: "NETWORK MACHINES, INC.", - [3]byte{0, 96, 17}: "CRYSTAL SEMICONDUCTOR CORP.", - [3]byte{0, 96, 18}: "POWER COMPUTING CORPORATION", - [3]byte{0, 96, 19}: "NETSTAL MASCHINEN AG", - [3]byte{0, 96, 20}: "EDEC CO., LTD.", - [3]byte{0, 96, 21}: "NET2NET CORPORATION", - [3]byte{0, 96, 22}: "CLARIION", - [3]byte{0, 96, 23}: "TOKIMEC INC.", - [3]byte{0, 96, 24}: "STELLAR ONE CORPORATION", - [3]byte{0, 96, 25}: "Roche Diagnostics", - [3]byte{0, 96, 26}: "KEITHLEY INSTRUMENTS", - [3]byte{0, 96, 27}: "MESA ELECTRONICS", - [3]byte{0, 96, 28}: "TELXON CORPORATION", - [3]byte{0, 96, 29}: "LUCENT TECHNOLOGIES", - [3]byte{0, 96, 30}: "SOFTLAB, INC.", - [3]byte{0, 96, 31}: "STALLION TECHNOLOGIES", - [3]byte{0, 96, 32}: "PIVOTAL NETWORKING, INC.", - [3]byte{0, 96, 33}: "DSC CORPORATION", - [3]byte{0, 96, 34}: "VICOM SYSTEMS, INC.", - [3]byte{0, 96, 35}: "PERICOM SEMICONDUCTOR CORP.", - [3]byte{0, 96, 36}: "GRADIENT TECHNOLOGIES, INC.", - [3]byte{0, 96, 37}: "ACTIVE IMAGING PLC", - [3]byte{0, 96, 38}: "VIKING Modular Solutions", - [3]byte{0, 96, 39}: "Superior Modular Products", - [3]byte{0, 96, 40}: "MACROVISION CORPORATION", - [3]byte{0, 96, 41}: "CARY PERIPHERALS INC.", - [3]byte{0, 96, 42}: "SYMICRON COMPUTER COMMUNICATIONS, LTD.", - [3]byte{0, 96, 43}: "PEAK AUDIO", - [3]byte{0, 96, 44}: "LINX Data Terminals, Inc.", - [3]byte{0, 96, 45}: "ALERTON TECHNOLOGIES, INC.", - [3]byte{0, 96, 46}: "CYCLADES CORPORATION", - [3]byte{0, 96, 47}: "CISCO SYSTEMS, INC.", - [3]byte{0, 96, 48}: "VILLAGE TRONIC ENTWICKLUNG", - [3]byte{0, 96, 49}: "HRK SYSTEMS", - [3]byte{0, 96, 50}: "I-CUBE, INC.", - [3]byte{0, 96, 51}: "ACUITY IMAGING, INC.", - [3]byte{0, 96, 52}: "ROBERT BOSCH GmbH", - [3]byte{0, 96, 53}: "DALLAS SEMICONDUCTOR, INC.", - [3]byte{0, 96, 54}: "AIT Austrian Institute of Technology GmbH", - [3]byte{0, 96, 55}: "NXP Semiconductors", - [3]byte{0, 96, 56}: "Nortel Networks", - [3]byte{0, 96, 57}: "SanCom Technology, Inc.", - [3]byte{0, 96, 58}: "QUICK CONTROLS LTD.", - [3]byte{0, 96, 59}: "AMTEC spa", - [3]byte{0, 96, 60}: "HAGIWARA SYS-COM CO., LTD.", - [3]byte{0, 96, 61}: "3CX", - [3]byte{0, 96, 62}: "CISCO SYSTEMS, INC.", - [3]byte{0, 96, 63}: "PATAPSCO DESIGNS", - [3]byte{0, 96, 64}: "NETRO CORP.", - [3]byte{0, 96, 65}: "Yokogawa Electric Corporation", - [3]byte{0, 96, 66}: "TKS (USA), INC.", - [3]byte{0, 96, 67}: "iDirect, INC.", - [3]byte{0, 96, 68}: "LITTON/POLY-SCIENTIFIC", - [3]byte{0, 96, 69}: "PATHLIGHT TECHNOLOGIES", - [3]byte{0, 96, 70}: "VMETRO, INC.", - [3]byte{0, 96, 71}: "CISCO SYSTEMS, INC.", - [3]byte{0, 96, 72}: "EMC CORPORATION", - [3]byte{0, 96, 73}: "VINA TECHNOLOGIES", - [3]byte{0, 96, 74}: "SAIC IDEAS GROUP", - [3]byte{0, 96, 75}: "Safe-com GmbH & Co. KG", - [3]byte{0, 96, 76}: "SAGEM COMMUNICATION", - [3]byte{0, 96, 77}: "MMC NETWORKS, INC.", - [3]byte{0, 96, 78}: "CYCLE COMPUTER CORPORATION, INC.", - [3]byte{0, 96, 79}: "Tattile SRL", - [3]byte{0, 96, 80}: "INTERNIX INC.", - [3]byte{0, 96, 81}: "QUALITY SEMICONDUCTOR", - [3]byte{0, 96, 82}: "PERIPHERALS ENTERPRISE CO., Ltd.", - [3]byte{0, 96, 83}: "TOYODA MACHINE WORKS, LTD.", - [3]byte{0, 96, 84}: "CONTROLWARE GMBH", - [3]byte{0, 96, 85}: "CORNELL UNIVERSITY", - [3]byte{0, 96, 86}: "NETWORK TOOLS, INC.", - [3]byte{0, 96, 87}: "MURATA MANUFACTURING CO., LTD.", - [3]byte{0, 96, 88}: "COPPER MOUNTAIN COMMUNICATIONS, INC.", - [3]byte{0, 96, 89}: "TECHNICAL COMMUNICATIONS CORP.", - [3]byte{0, 96, 90}: "CELCORE, INC.", - [3]byte{0, 96, 91}: "IntraServer Technology, Inc.", - [3]byte{0, 96, 92}: "CISCO SYSTEMS, INC.", - [3]byte{0, 96, 93}: "SCANIVALVE CORP.", - [3]byte{0, 96, 94}: "LIBERTY TECHNOLOGY NETWORKING", - [3]byte{0, 96, 95}: "NIPPON UNISOFT CORPORATION", - [3]byte{0, 96, 96}: "Data Innovations North America", - [3]byte{0, 96, 97}: "WHISTLE COMMUNICATIONS CORP.", - [3]byte{0, 96, 98}: "TELESYNC, INC.", - [3]byte{0, 96, 99}: "PSION DACOM PLC.", - [3]byte{0, 96, 100}: "NETCOMM LIMITED", - [3]byte{0, 96, 101}: "BERNECKER & RAINER INDUSTRIE-ELEKTRONIC GmbH", - [3]byte{0, 96, 102}: "LACROIX Trafic", - [3]byte{0, 96, 103}: "ACER NETXUS INC.", - [3]byte{0, 96, 104}: "Dialogic Corporation", - [3]byte{0, 96, 105}: "Brocade Communications Systems, Inc.", - [3]byte{0, 96, 106}: "MITSUBISHI WIRELESS COMMUNICATIONS. INC.", - [3]byte{0, 96, 107}: "Synclayer Inc.", - [3]byte{0, 96, 108}: "ARESCOM", - [3]byte{0, 96, 109}: "DIGITAL EQUIPMENT CORP.", - [3]byte{0, 96, 110}: "DAVICOM SEMICONDUCTOR, INC.", - [3]byte{0, 96, 111}: "CLARION CORPORATION OF AMERICA", - [3]byte{0, 96, 112}: "CISCO SYSTEMS, INC.", - [3]byte{0, 96, 113}: "MIDAS LAB, INC.", - [3]byte{0, 96, 114}: "VXL INSTRUMENTS, LIMITED", - [3]byte{0, 96, 115}: "REDCREEK COMMUNICATIONS, INC.", - [3]byte{0, 96, 116}: "QSC AUDIO PRODUCTS", - [3]byte{0, 96, 117}: "PENTEK, INC.", - [3]byte{0, 96, 118}: "SCHLUMBERGER TECHNOLOGIES RETAIL PETROLEUM SYSTEMS", - [3]byte{0, 96, 119}: "PRISA NETWORKS", - [3]byte{0, 96, 120}: "POWER MEASUREMENT LTD.", - [3]byte{0, 96, 121}: "Mainstream Data, Inc.", - [3]byte{0, 96, 122}: "DVS GmbH", - [3]byte{0, 96, 123}: "FORE SYSTEMS, INC.", - [3]byte{0, 96, 124}: "WaveAccess, Ltd.", - [3]byte{0, 96, 125}: "SENTIENT NETWORKS INC.", - [3]byte{0, 96, 126}: "GIGALABS, INC.", - [3]byte{0, 96, 127}: "AURORA TECHNOLOGIES, INC.", - [3]byte{0, 96, 128}: "MICROTRONIX DATACOM LTD.", - [3]byte{0, 96, 129}: "TV/COM INTERNATIONAL", - [3]byte{0, 96, 130}: "NOVALINK TECHNOLOGIES, INC.", - [3]byte{0, 96, 131}: "CISCO SYSTEMS, INC.", - [3]byte{0, 96, 132}: "DIGITAL VIDEO", - [3]byte{0, 96, 133}: "Storage Concepts", - [3]byte{0, 96, 134}: "LOGIC REPLACEMENT TECH. LTD.", - [3]byte{0, 96, 135}: "KANSAI ELECTRIC CO., LTD.", - [3]byte{0, 96, 136}: "WHITE MOUNTAIN DSP, INC.", - [3]byte{0, 96, 137}: "XATA", - [3]byte{0, 96, 138}: "CITADEL COMPUTER", - [3]byte{0, 96, 139}: "ConferTech International", - [3]byte{0, 96, 140}: "3COM CORPORATION", - [3]byte{0, 96, 141}: "UNIPULSE CORP.", - [3]byte{0, 96, 142}: "HE ELECTRONICS, TECHNOLOGIE & SYSTEMTECHNIK GmbH", - [3]byte{0, 96, 143}: "TEKRAM TECHNOLOGY CO., LTD.", - [3]byte{0, 96, 144}: "Artiza Networks Inc", - [3]byte{0, 96, 145}: "FIRST PACIFIC NETWORKS, INC.", - [3]byte{0, 96, 146}: "MICRO/SYS, INC.", - [3]byte{0, 96, 147}: "VARIAN", - [3]byte{0, 96, 148}: "IBM Corp", - [3]byte{0, 96, 149}: "ACCU-TIME SYSTEMS, INC.", - [3]byte{0, 96, 150}: "T.S. MICROTECH INC.", - [3]byte{0, 96, 151}: "3COM CORPORATION", - [3]byte{0, 96, 152}: "HT COMMUNICATIONS", - [3]byte{0, 96, 153}: "SBE, Inc.", - [3]byte{0, 96, 154}: "NJK TECHNO CO.", - [3]byte{0, 96, 155}: "ASTRO-MED, INC.", - [3]byte{0, 96, 156}: "Perkin-Elmer Incorporated", - [3]byte{0, 96, 157}: "PMI FOOD EQUIPMENT GROUP", - [3]byte{0, 96, 158}: "ASC X3 - INFORMATION TECHNOLOGY STANDARDS SECRETARIATS", - [3]byte{0, 96, 159}: "PHAST CORPORATION", - [3]byte{0, 96, 160}: "SWITCHED NETWORK TECHNOLOGIES, INC.", - [3]byte{0, 96, 161}: "VPNet, Inc.", - [3]byte{0, 96, 162}: "NIHON UNISYS LIMITED CO.", - [3]byte{0, 96, 163}: "CONTINUUM TECHNOLOGY CORP.", - [3]byte{0, 96, 164}: "GEW Technologies (PTY)Ltd", - [3]byte{0, 96, 165}: "PERFORMANCE TELECOM CORP.", - [3]byte{0, 96, 166}: "PARTICLE MEASURING SYSTEMS", - [3]byte{0, 96, 167}: "MICROSENS GmbH & CO. KG", - [3]byte{0, 96, 168}: "TIDOMAT AB", - [3]byte{0, 96, 169}: "GESYTEC MbH", - [3]byte{0, 96, 170}: "INTELLIGENT DEVICES INC. (IDI)", - [3]byte{0, 96, 171}: "LARSCOM INCORPORATED", - [3]byte{0, 96, 172}: "RESILIENCE CORPORATION", - [3]byte{0, 96, 173}: "MegaChips Corporation", - [3]byte{0, 96, 174}: "TRIO INFORMATION SYSTEMS AB", - [3]byte{0, 96, 175}: "PACIFIC MICRO DATA, INC.", - [3]byte{0, 96, 176}: "HEWLETT-PACKARD CO.", - [3]byte{0, 96, 177}: "INPUT/OUTPUT, INC.", - [3]byte{0, 96, 178}: "PROCESS CONTROL CORP.", - [3]byte{0, 96, 179}: "Z-COM, INC.", - [3]byte{0, 96, 180}: "GLENAYRE R&D INC.", - [3]byte{0, 96, 181}: "KEBA GmbH", - [3]byte{0, 96, 182}: "LAND COMPUTER CO., LTD.", - [3]byte{0, 96, 183}: "CHANNELMATIC, INC.", - [3]byte{0, 96, 184}: "CORELIS Inc.", - [3]byte{0, 96, 185}: "NEC Platforms, Ltd", - [3]byte{0, 96, 186}: "SAHARA NETWORKS, INC.", - [3]byte{0, 96, 187}: "CABLETRON - NETLINK, INC.", - [3]byte{0, 96, 188}: "KeunYoung Electronics & Communication Co., Ltd.", - [3]byte{0, 96, 189}: "HUBBELL-PULSECOM", - [3]byte{0, 96, 190}: "WEBTRONICS", - [3]byte{0, 96, 191}: "MACRAIGOR SYSTEMS, INC.", - [3]byte{0, 96, 192}: "Nera Networks AS", - [3]byte{0, 96, 193}: "WaveSpan Corporation", - [3]byte{0, 96, 194}: "MPL AG", - [3]byte{0, 96, 195}: "NETVISION CORPORATION", - [3]byte{0, 96, 196}: "SOLITON SYSTEMS K.K.", - [3]byte{0, 96, 197}: "ANCOT CORP.", - [3]byte{0, 96, 198}: "DCS AG", - [3]byte{0, 96, 199}: "AMATI COMMUNICATIONS CORP.", - [3]byte{0, 96, 200}: "KUKA WELDING SYSTEMS & ROBOTS", - [3]byte{0, 96, 201}: "ControlNet, Inc.", - [3]byte{0, 96, 202}: "HARMONIC SYSTEMS INCORPORATED", - [3]byte{0, 96, 203}: "HITACHI ZOSEN CORPORATION", - [3]byte{0, 96, 204}: "EMTRAK, INCORPORATED", - [3]byte{0, 96, 205}: "VideoServer, Inc.", - [3]byte{0, 96, 206}: "ACCLAIM COMMUNICATIONS", - [3]byte{0, 96, 207}: "ALTEON NETWORKS, INC.", - [3]byte{0, 96, 208}: "SNMP RESEARCH INCORPORATED", - [3]byte{0, 96, 209}: "CASCADE COMMUNICATIONS", - [3]byte{0, 96, 210}: "LUCENT TECHNOLOGIES TAIWAN TELECOMMUNICATIONS CO., LTD.", - [3]byte{0, 96, 211}: "AT&T", - [3]byte{0, 96, 212}: "ELDAT COMMUNICATION LTD.", - [3]byte{0, 96, 213}: "MIYACHI TECHNOS CORP.", - [3]byte{0, 96, 214}: "NovAtel Wireless Technologies Ltd.", - [3]byte{0, 96, 215}: "ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE (EPFL)", - [3]byte{0, 96, 216}: "ELMIC SYSTEMS, INC.", - [3]byte{0, 96, 217}: "TRANSYS NETWORKS INC.", - [3]byte{0, 96, 218}: "JBM ELECTRONICS CO.", - [3]byte{0, 96, 219}: "NTP ELEKTRONIK A/S", - [3]byte{0, 96, 220}: "Toyo Network Systems & System Integration Co. LTD", - [3]byte{0, 96, 221}: "MYRICOM, INC.", - [3]byte{0, 96, 222}: "Kayser-Threde GmbH", - [3]byte{0, 96, 223}: "Brocade Communications Systems, Inc.", - [3]byte{0, 96, 224}: "AXIOM TECHNOLOGY CO., LTD.", - [3]byte{0, 96, 225}: "ORCKIT COMMUNICATIONS LTD.", - [3]byte{0, 96, 226}: "QUEST ENGINEERING & DEVELOPMENT", - [3]byte{0, 96, 227}: "ARBIN INSTRUMENTS", - [3]byte{0, 96, 228}: "COMPUSERVE, INC.", - [3]byte{0, 96, 229}: "FUJI AUTOMATION CO., LTD.", - [3]byte{0, 96, 230}: "SHOMITI SYSTEMS INCORPORATED", - [3]byte{0, 96, 231}: "RANDATA", - [3]byte{0, 96, 232}: "HITACHI COMPUTER PRODUCTS (AMERICA), INC.", - [3]byte{0, 96, 233}: "ATOP TECHNOLOGIES, INC.", - [3]byte{0, 96, 234}: "StreamLogic", - [3]byte{0, 96, 235}: "FOURTHTRACK SYSTEMS", - [3]byte{0, 96, 236}: "HERMARY OPTO ELECTRONICS INC.", - [3]byte{0, 96, 237}: "RICARDO TEST AUTOMATION LTD.", - [3]byte{0, 96, 238}: "APOLLO", - [3]byte{0, 96, 239}: "FLYTECH TECHNOLOGY CO., LTD.", - [3]byte{0, 96, 240}: "JOHNSON & JOHNSON MEDICAL, INC", - [3]byte{0, 96, 241}: "EXP COMPUTER, INC.", - [3]byte{0, 96, 242}: "LASERGRAPHICS, INC.", - [3]byte{0, 96, 243}: "Performance Analysis Broadband, Spirent plc", - [3]byte{0, 96, 244}: "ADVANCED COMPUTER SOLUTIONS, Inc.", - [3]byte{0, 96, 245}: "ICON WEST, INC.", - [3]byte{0, 96, 246}: "NEXTEST COMMUNICATIONS PRODUCTS, INC.", - [3]byte{0, 96, 247}: "DATAFUSION SYSTEMS", - [3]byte{0, 96, 248}: "Loran International Technologies Inc.", - [3]byte{0, 96, 249}: "DIAMOND LANE COMMUNICATIONS", - [3]byte{0, 96, 250}: "EDUCATIONAL TECHNOLOGY RESOURCES, INC.", - [3]byte{0, 96, 251}: "PACKETEER, INC.", - [3]byte{0, 96, 252}: "CONSERVATION THROUGH INNOVATION LTD.", - [3]byte{0, 96, 253}: "NetICs, Inc.", - [3]byte{0, 96, 254}: "LYNX SYSTEM DEVELOPERS, INC.", - [3]byte{0, 96, 255}: "QuVis, Inc.", - [3]byte{0, 97, 113}: "Apple", - [3]byte{0, 100, 64}: "CISCO SYSTEMS, INC.", - [3]byte{0, 100, 166}: "Maquet CardioVascular", - [3]byte{0, 102, 75}: "Huawei Technologies Co., Ltd", - [3]byte{0, 107, 142}: "Shanghai Feixun Communication Co.,Ltd.", - [3]byte{0, 107, 158}: "VIZIO Inc", - [3]byte{0, 107, 160}: "SHENZHEN UNIVERSAL INTELLISYS PTE LTD", - [3]byte{0, 109, 251}: "Vutrix (UK) Ltd", - [3]byte{0, 112, 176}: "M/A-COM INC. COMPANIES", - [3]byte{0, 112, 179}: "DATA RECALL LTD.", - [3]byte{0, 113, 204}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{0, 115, 141}: "Tinno Mobile Technology Corp", - [3]byte{0, 115, 224}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 117, 50}: "INID BV", - [3]byte{0, 117, 225}: "Ampt, LLC", - [3]byte{0, 120, 158}: "SAGEMCOM", - [3]byte{0, 125, 250}: "Volkswagen Group of America", - [3]byte{0, 127, 40}: "Actiontec Electronics, Inc", - [3]byte{0, 128, 0}: "MULTITECH SYSTEMS, INC.", - [3]byte{0, 128, 1}: "PERIPHONICS CORPORATION", - [3]byte{0, 128, 2}: "SATELCOM (UK) LTD", - [3]byte{0, 128, 3}: "HYTEC ELECTRONICS LTD.", - [3]byte{0, 128, 4}: "ANTLOW COMMUNICATIONS, LTD.", - [3]byte{0, 128, 5}: "CACTUS COMPUTER INC.", - [3]byte{0, 128, 6}: "COMPUADD CORPORATION", - [3]byte{0, 128, 7}: "DLOG NC-SYSTEME", - [3]byte{0, 128, 8}: "DYNATECH COMPUTER SYSTEMS", - [3]byte{0, 128, 9}: "JUPITER SYSTEMS, INC.", - [3]byte{0, 128, 10}: "JAPAN COMPUTER CORP.", - [3]byte{0, 128, 11}: "CSK CORPORATION", - [3]byte{0, 128, 12}: "VIDECOM LIMITED", - [3]byte{0, 128, 13}: "VOSSWINKEL F.U.", - [3]byte{0, 128, 14}: "ATLANTIX CORPORATION", - [3]byte{0, 128, 15}: "STANDARD MICROSYSTEMS", - [3]byte{0, 128, 16}: "COMMODORE INTERNATIONAL", - [3]byte{0, 128, 17}: "DIGITAL SYSTEMS INT'L. INC.", - [3]byte{0, 128, 18}: "INTEGRATED MEASUREMENT SYSTEMS", - [3]byte{0, 128, 19}: "THOMAS-CONRAD CORPORATION", - [3]byte{0, 128, 20}: "ESPRIT SYSTEMS", - [3]byte{0, 128, 21}: "SEIKO SYSTEMS, INC.", - [3]byte{0, 128, 22}: "WANDEL AND GOLTERMANN", - [3]byte{0, 128, 23}: "PFU LIMITED", - [3]byte{0, 128, 24}: "KOBE STEEL, LTD.", - [3]byte{0, 128, 25}: "DAYNA COMMUNICATIONS, INC.", - [3]byte{0, 128, 26}: "BELL ATLANTIC", - [3]byte{0, 128, 27}: "KODIAK TECHNOLOGY", - [3]byte{0, 128, 28}: "NEWPORT SYSTEMS SOLUTIONS", - [3]byte{0, 128, 29}: "INTEGRATED INFERENCE MACHINES", - [3]byte{0, 128, 30}: "XINETRON, INC.", - [3]byte{0, 128, 31}: "KRUPP ATLAS ELECTRONIK GMBH", - [3]byte{0, 128, 32}: "NETWORK PRODUCTS", - [3]byte{0, 128, 33}: "Alcatel Canada Inc.", - [3]byte{0, 128, 34}: "SCAN-OPTICS", - [3]byte{0, 128, 35}: "INTEGRATED BUSINESS NETWORKS", - [3]byte{0, 128, 36}: "KALPANA, INC.", - [3]byte{0, 128, 37}: "STOLLMANN GMBH", - [3]byte{0, 128, 38}: "NETWORK PRODUCTS CORPORATION", - [3]byte{0, 128, 39}: "ADAPTIVE SYSTEMS, INC.", - [3]byte{0, 128, 40}: "TRADPOST (HK) LTD", - [3]byte{0, 128, 41}: "EAGLE TECHNOLOGY, INC.", - [3]byte{0, 128, 42}: "TEST SYSTEMS & SIMULATIONS INC", - [3]byte{0, 128, 43}: "INTEGRATED MARKETING CO", - [3]byte{0, 128, 44}: "THE SAGE GROUP PLC", - [3]byte{0, 128, 45}: "XYLOGICS INC", - [3]byte{0, 128, 46}: "CASTLE ROCK COMPUTING", - [3]byte{0, 128, 47}: "NATIONAL INSTRUMENTS CORP.", - [3]byte{0, 128, 48}: "NEXUS ELECTRONICS", - [3]byte{0, 128, 49}: "BASYS, CORP.", - [3]byte{0, 128, 50}: "ACCESS CO., LTD.", - [3]byte{0, 128, 51}: "EMS Aviation, Inc.", - [3]byte{0, 128, 52}: "SMT GOUPIL", - [3]byte{0, 128, 53}: "TECHNOLOGY WORKS, INC.", - [3]byte{0, 128, 54}: "REFLEX MANUFACTURING SYSTEMS", - [3]byte{0, 128, 55}: "Ericsson Group", - [3]byte{0, 128, 56}: "DATA RESEARCH & APPLICATIONS", - [3]byte{0, 128, 57}: "ALCATEL STC AUSTRALIA", - [3]byte{0, 128, 58}: "VARITYPER, INC.", - [3]byte{0, 128, 59}: "APT COMMUNICATIONS, INC.", - [3]byte{0, 128, 60}: "TVS ELECTRONICS LTD", - [3]byte{0, 128, 61}: "SURIGIKEN CO., LTD.", - [3]byte{0, 128, 62}: "SYNERNETICS", - [3]byte{0, 128, 63}: "TATUNG COMPANY", - [3]byte{0, 128, 64}: "JOHN FLUKE MANUFACTURING CO.", - [3]byte{0, 128, 65}: "VEB KOMBINAT ROBOTRON", - [3]byte{0, 128, 66}: "Artesyn Embedded Technologies", - [3]byte{0, 128, 67}: "NETWORLD, INC.", - [3]byte{0, 128, 68}: "SYSTECH COMPUTER CORP.", - [3]byte{0, 128, 69}: "MATSUSHITA ELECTRIC IND. CO", - [3]byte{0, 128, 70}: "Tattile SRL", - [3]byte{0, 128, 71}: "IN-NET CORP.", - [3]byte{0, 128, 72}: "COMPEX INCORPORATED", - [3]byte{0, 128, 73}: "NISSIN ELECTRIC CO., LTD.", - [3]byte{0, 128, 74}: "PRO-LOG", - [3]byte{0, 128, 75}: "EAGLE TECHNOLOGIES PTY.LTD.", - [3]byte{0, 128, 76}: "CONTEC CO., LTD.", - [3]byte{0, 128, 77}: "CYCLONE MICROSYSTEMS, INC.", - [3]byte{0, 128, 78}: "APEX COMPUTER COMPANY", - [3]byte{0, 128, 79}: "DAIKIN INDUSTRIES, LTD.", - [3]byte{0, 128, 80}: "ZIATECH CORPORATION", - [3]byte{0, 128, 81}: "FIBERMUX", - [3]byte{0, 128, 82}: "TECHNICALLY ELITE CONCEPTS", - [3]byte{0, 128, 83}: "INTELLICOM, INC.", - [3]byte{0, 128, 84}: "FRONTIER TECHNOLOGIES CORP.", - [3]byte{0, 128, 85}: "FERMILAB", - [3]byte{0, 128, 86}: "SPHINX ELEKTRONIK GMBH", - [3]byte{0, 128, 87}: "ADSOFT, LTD.", - [3]byte{0, 128, 88}: "PRINTER SYSTEMS CORPORATION", - [3]byte{0, 128, 89}: "STANLEY ELECTRIC CO., LTD", - [3]byte{0, 128, 90}: "TULIP COMPUTERS INTERNAT'L B.V", - [3]byte{0, 128, 91}: "CONDOR SYSTEMS, INC.", - [3]byte{0, 128, 92}: "AGILIS CORPORATION", - [3]byte{0, 128, 93}: "CANSTAR", - [3]byte{0, 128, 94}: "LSI LOGIC CORPORATION", - [3]byte{0, 128, 95}: "Hewlett-Packard Company", - [3]byte{0, 128, 96}: "NETWORK INTERFACE CORPORATION", - [3]byte{0, 128, 97}: "LITTON SYSTEMS, INC.", - [3]byte{0, 128, 98}: "INTERFACE CO.", - [3]byte{0, 128, 99}: "Hirschmann Automation and Control GmbH", - [3]byte{0, 128, 100}: "WYSE TECHNOLOGY LLC", - [3]byte{0, 128, 101}: "CYBERGRAPHIC SYSTEMS PTY LTD.", - [3]byte{0, 128, 102}: "ARCOM CONTROL SYSTEMS, LTD.", - [3]byte{0, 128, 103}: "SQUARE D COMPANY", - [3]byte{0, 128, 104}: "YAMATECH SCIENTIFIC LTD.", - [3]byte{0, 128, 105}: "COMPUTONE SYSTEMS", - [3]byte{0, 128, 106}: "ERI (EMPAC RESEARCH INC.)", - [3]byte{0, 128, 107}: "SCHMID TELECOMMUNICATION", - [3]byte{0, 128, 108}: "CEGELEC PROJECTS LTD", - [3]byte{0, 128, 109}: "CENTURY SYSTEMS CORP.", - [3]byte{0, 128, 110}: "NIPPON STEEL CORPORATION", - [3]byte{0, 128, 111}: "ONELAN LTD.", - [3]byte{0, 128, 112}: "COMPUTADORAS MICRON", - [3]byte{0, 128, 113}: "SAI TECHNOLOGY", - [3]byte{0, 128, 114}: "MICROPLEX SYSTEMS LTD.", - [3]byte{0, 128, 115}: "DWB ASSOCIATES", - [3]byte{0, 128, 116}: "FISHER CONTROLS", - [3]byte{0, 128, 117}: "PARSYTEC GMBH", - [3]byte{0, 128, 118}: "MCNC", - [3]byte{0, 128, 119}: "BROTHER INDUSTRIES, LTD.", - [3]byte{0, 128, 120}: "PRACTICAL PERIPHERALS, INC.", - [3]byte{0, 128, 121}: "MICROBUS DESIGNS LTD.", - [3]byte{0, 128, 122}: "AITECH SYSTEMS LTD.", - [3]byte{0, 128, 123}: "ARTEL COMMUNICATIONS CORP.", - [3]byte{0, 128, 124}: "FIBERCOM, INC.", - [3]byte{0, 128, 125}: "EQUINOX SYSTEMS INC.", - [3]byte{0, 128, 126}: "SOUTHERN PACIFIC LTD.", - [3]byte{0, 128, 127}: "DY-4 INCORPORATED", - [3]byte{0, 128, 128}: "DATAMEDIA CORPORATION", - [3]byte{0, 128, 129}: "KENDALL SQUARE RESEARCH CORP.", - [3]byte{0, 128, 130}: "PEP MODULAR COMPUTERS GMBH", - [3]byte{0, 128, 131}: "AMDAHL", - [3]byte{0, 128, 132}: "THE CLOUD INC.", - [3]byte{0, 128, 133}: "H-THREE SYSTEMS CORPORATION", - [3]byte{0, 128, 134}: "COMPUTER GENERATION INC.", - [3]byte{0, 128, 135}: "OKI ELECTRIC INDUSTRY CO., LTD", - [3]byte{0, 128, 136}: "VICTOR COMPANY OF JAPAN, LTD.", - [3]byte{0, 128, 137}: "TECNETICS (PTY) LTD.", - [3]byte{0, 128, 138}: "SUMMIT MICROSYSTEMS CORP.", - [3]byte{0, 128, 139}: "DACOLL LIMITED", - [3]byte{0, 128, 140}: "NetScout Systems, Inc.", - [3]byte{0, 128, 141}: "WESTCOAST TECHNOLOGY B.V.", - [3]byte{0, 128, 142}: "RADSTONE TECHNOLOGY", - [3]byte{0, 128, 143}: "C. ITOH ELECTRONICS, INC.", - [3]byte{0, 128, 144}: "MICROTEK INTERNATIONAL, INC.", - [3]byte{0, 128, 145}: "TOKYO ELECTRIC CO.,LTD", - [3]byte{0, 128, 146}: "Silex Technology, Inc.", - [3]byte{0, 128, 147}: "XYRON CORPORATION", - [3]byte{0, 128, 148}: "ALFA LAVAL AUTOMATION AB", - [3]byte{0, 128, 149}: "BASIC MERTON HANDELSGES.M.B.H.", - [3]byte{0, 128, 150}: "HUMAN DESIGNED SYSTEMS, INC.", - [3]byte{0, 128, 151}: "CENTRALP AUTOMATISMES", - [3]byte{0, 128, 152}: "TDK CORPORATION", - [3]byte{0, 128, 153}: "Eaton Industries GmbH", - [3]byte{0, 128, 154}: "NOVUS NETWORKS LTD", - [3]byte{0, 128, 155}: "JUSTSYSTEM CORPORATION", - [3]byte{0, 128, 156}: "LUXCOM, INC.", - [3]byte{0, 128, 157}: "Commscraft Ltd.", - [3]byte{0, 128, 158}: "DATUS GMBH", - [3]byte{0, 128, 159}: "ALCATEL BUSINESS SYSTEMS", - [3]byte{0, 128, 160}: "EDISA HEWLETT PACKARD S/A", - [3]byte{0, 128, 161}: "MICROTEST, INC.", - [3]byte{0, 128, 162}: "CREATIVE ELECTRONIC SYSTEMS", - [3]byte{0, 128, 163}: "Lantronix", - [3]byte{0, 128, 164}: "LIBERTY ELECTRONICS", - [3]byte{0, 128, 165}: "SPEED INTERNATIONAL", - [3]byte{0, 128, 166}: "REPUBLIC TECHNOLOGY, INC.", - [3]byte{0, 128, 167}: "Honeywell International Inc", - [3]byte{0, 128, 168}: "VITACOM CORPORATION", - [3]byte{0, 128, 169}: "CLEARPOINT RESEARCH", - [3]byte{0, 128, 170}: "MAXPEED", - [3]byte{0, 128, 171}: "DUKANE NETWORK INTEGRATION", - [3]byte{0, 128, 172}: "IMLOGIX, DIVISION OF GENESYS", - [3]byte{0, 128, 173}: "CNET TECHNOLOGY, INC.", - [3]byte{0, 128, 174}: "HUGHES NETWORK SYSTEMS", - [3]byte{0, 128, 175}: "ALLUMER CO., LTD.", - [3]byte{0, 128, 176}: "ADVANCED INFORMATION", - [3]byte{0, 128, 177}: "SOFTCOM A/S", - [3]byte{0, 128, 178}: "NETWORK EQUIPMENT TECHNOLOGIES", - [3]byte{0, 128, 179}: "AVAL DATA CORPORATION", - [3]byte{0, 128, 180}: "SOPHIA SYSTEMS", - [3]byte{0, 128, 181}: "UNITED NETWORKS INC.", - [3]byte{0, 128, 182}: "THEMIS COMPUTER", - [3]byte{0, 128, 183}: "STELLAR COMPUTER", - [3]byte{0, 128, 184}: "B.U.G. MORISEIKI, INCORPORATED", - [3]byte{0, 128, 185}: "ARCHE TECHNOLIGIES INC.", - [3]byte{0, 128, 186}: "SPECIALIX (ASIA) PTE, LTD", - [3]byte{0, 128, 187}: "HUGHES LAN SYSTEMS", - [3]byte{0, 128, 188}: "HITACHI ENGINEERING CO., LTD", - [3]byte{0, 128, 189}: "THE FURUKAWA ELECTRIC CO., LTD", - [3]byte{0, 128, 190}: "ARIES RESEARCH", - [3]byte{0, 128, 191}: "TAKAOKA ELECTRIC MFG. CO. LTD.", - [3]byte{0, 128, 192}: "PENRIL DATACOMM", - [3]byte{0, 128, 193}: "LANEX CORPORATION", - [3]byte{0, 128, 194}: "IEEE 802.1 COMMITTEE", - [3]byte{0, 128, 195}: "BICC INFORMATION SYSTEMS & SVC", - [3]byte{0, 128, 196}: "DOCUMENT TECHNOLOGIES, INC.", - [3]byte{0, 128, 197}: "NOVELLCO DE MEXICO", - [3]byte{0, 128, 198}: "NATIONAL DATACOMM CORPORATION", - [3]byte{0, 128, 199}: "XIRCOM", - [3]byte{0, 128, 200}: "D-LINK SYSTEMS, INC.", - [3]byte{0, 128, 201}: "ALBERTA MICROELECTRONIC CENTRE", - [3]byte{0, 128, 202}: "NETCOM RESEARCH INCORPORATED", - [3]byte{0, 128, 203}: "FALCO DATA PRODUCTS", - [3]byte{0, 128, 204}: "MICROWAVE BYPASS SYSTEMS", - [3]byte{0, 128, 205}: "MICRONICS COMPUTER, INC.", - [3]byte{0, 128, 206}: "BROADCAST TELEVISION SYSTEMS", - [3]byte{0, 128, 207}: "EMBEDDED PERFORMANCE INC.", - [3]byte{0, 128, 208}: "COMPUTER PERIPHERALS, INC.", - [3]byte{0, 128, 209}: "KIMTRON CORPORATION", - [3]byte{0, 128, 210}: "SHINNIHONDENKO CO., LTD.", - [3]byte{0, 128, 211}: "SHIVA CORP.", - [3]byte{0, 128, 212}: "CHASE RESEARCH LTD.", - [3]byte{0, 128, 213}: "CADRE TECHNOLOGIES", - [3]byte{0, 128, 214}: "NUVOTECH, INC.", - [3]byte{0, 128, 215}: "Fantum Engineering", - [3]byte{0, 128, 216}: "NETWORK PERIPHERALS INC.", - [3]byte{0, 128, 217}: "EMK Elektronik GmbH & Co. KG", - [3]byte{0, 128, 218}: "Bruel & Kjaer Sound & Vibration Measurement A/S", - [3]byte{0, 128, 219}: "GRAPHON CORPORATION", - [3]byte{0, 128, 220}: "PICKER INTERNATIONAL", - [3]byte{0, 128, 221}: "GMX INC/GIMIX", - [3]byte{0, 128, 222}: "GIPSI S.A.", - [3]byte{0, 128, 223}: "ADC CODENOLL TECHNOLOGY CORP.", - [3]byte{0, 128, 224}: "XTP SYSTEMS, INC.", - [3]byte{0, 128, 225}: "STMICROELECTRONICS", - [3]byte{0, 128, 226}: "T.D.I. CO., LTD.", - [3]byte{0, 128, 227}: "CORAL NETWORK CORPORATION", - [3]byte{0, 128, 228}: "NORTHWEST DIGITAL SYSTEMS, INC", - [3]byte{0, 128, 229}: "NetApp, Inc", - [3]byte{0, 128, 230}: "PEER NETWORKS, INC.", - [3]byte{0, 128, 231}: "LYNWOOD SCIENTIFIC DEV. LTD.", - [3]byte{0, 128, 232}: "CUMULUS CORPORATIION", - [3]byte{0, 128, 233}: "Madge Ltd.", - [3]byte{0, 128, 234}: "ADVA Optical Networking Ltd.", - [3]byte{0, 128, 235}: "COMPCONTROL B.V.", - [3]byte{0, 128, 236}: "SUPERCOMPUTING SOLUTIONS, INC.", - [3]byte{0, 128, 237}: "IQ TECHNOLOGIES, INC.", - [3]byte{0, 128, 238}: "THOMSON CSF", - [3]byte{0, 128, 239}: "RATIONAL", - [3]byte{0, 128, 240}: "Panasonic Communications Co., Ltd.", - [3]byte{0, 128, 241}: "OPUS SYSTEMS", - [3]byte{0, 128, 242}: "RAYCOM SYSTEMS INC", - [3]byte{0, 128, 243}: "SUN ELECTRONICS CORP.", - [3]byte{0, 128, 244}: "TELEMECANIQUE ELECTRIQUE", - [3]byte{0, 128, 245}: "Quantel Ltd", - [3]byte{0, 128, 246}: "SYNERGY MICROSYSTEMS", - [3]byte{0, 128, 247}: "ZENITH ELECTRONICS", - [3]byte{0, 128, 248}: "MIZAR, INC.", - [3]byte{0, 128, 249}: "HEURIKON CORPORATION", - [3]byte{0, 128, 250}: "RWT GMBH", - [3]byte{0, 128, 251}: "BVM LIMITED", - [3]byte{0, 128, 252}: "AVATAR CORPORATION", - [3]byte{0, 128, 253}: "EXSCEED CORPRATION", - [3]byte{0, 128, 254}: "AZURE TECHNOLOGIES, INC.", - [3]byte{0, 128, 255}: "SOC. DE TELEINFORMATIQUE RTC", - [3]byte{0, 134, 160}: "PRIVATE", - [3]byte{0, 136, 101}: "Apple", - [3]byte{0, 139, 67}: "RFTECH", - [3]byte{0, 140, 16}: "Black Box Corp.", - [3]byte{0, 140, 84}: "ADB Broadband Italia", - [3]byte{0, 140, 250}: "Inventec Corporation", - [3]byte{0, 141, 78}: "CJSC NII STT", - [3]byte{0, 141, 218}: "Link One Co., Ltd.", - [3]byte{0, 142, 242}: "NETGEAR INC.,", - [3]byte{0, 144, 0}: "DIAMOND MULTIMEDIA", - [3]byte{0, 144, 1}: "NISHIMU ELECTRONICS INDUSTRIES CO., LTD.", - [3]byte{0, 144, 2}: "ALLGON AB", - [3]byte{0, 144, 3}: "APLIO", - [3]byte{0, 144, 4}: "3COM EUROPE LTD.", - [3]byte{0, 144, 5}: "PROTECH SYSTEMS CO., LTD.", - [3]byte{0, 144, 6}: "HAMAMATSU PHOTONICS K.K.", - [3]byte{0, 144, 7}: "DOMEX TECHNOLOGY CORP.", - [3]byte{0, 144, 8}: "HanA Systems Inc.", - [3]byte{0, 144, 9}: "I Controls, Inc.", - [3]byte{0, 144, 10}: "PROTON ELECTRONIC INDUSTRIAL CO., LTD.", - [3]byte{0, 144, 11}: "LANNER ELECTRONICS, INC.", - [3]byte{0, 144, 12}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 13}: "Overland Storage Inc.", - [3]byte{0, 144, 14}: "HANDLINK TECHNOLOGIES, INC.", - [3]byte{0, 144, 15}: "KAWASAKI HEAVY INDUSTRIES, LTD", - [3]byte{0, 144, 16}: "SIMULATION LABORATORIES, INC.", - [3]byte{0, 144, 17}: "WAVTrace, Inc.", - [3]byte{0, 144, 18}: "GLOBESPAN SEMICONDUCTOR, INC.", - [3]byte{0, 144, 19}: "SAMSAN CORP.", - [3]byte{0, 144, 20}: "ROTORK INSTRUMENTS, LTD.", - [3]byte{0, 144, 21}: "CENTIGRAM COMMUNICATIONS CORP.", - [3]byte{0, 144, 22}: "ZAC", - [3]byte{0, 144, 23}: "Zypcom, Inc", - [3]byte{0, 144, 24}: "ITO ELECTRIC INDUSTRY CO, LTD.", - [3]byte{0, 144, 25}: "HERMES ELECTRONICS CO., LTD.", - [3]byte{0, 144, 26}: "UNISPHERE SOLUTIONS", - [3]byte{0, 144, 27}: "DIGITAL CONTROLS", - [3]byte{0, 144, 28}: "mps Software Gmbh", - [3]byte{0, 144, 29}: "PEC (NZ) LTD.", - [3]byte{0, 144, 30}: "Selesta Ingegneria S.p.A.", - [3]byte{0, 144, 31}: "ADTEC PRODUCTIONS, INC.", - [3]byte{0, 144, 32}: "PHILIPS ANALYTICAL X-RAY B.V.", - [3]byte{0, 144, 33}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 34}: "IVEX", - [3]byte{0, 144, 35}: "ZILOG INC.", - [3]byte{0, 144, 36}: "PIPELINKS, INC.", - [3]byte{0, 144, 37}: "BAE Systems Australia (Electronic Systems) Pty Ltd", - [3]byte{0, 144, 38}: "ADVANCED SWITCHING COMMUNICATIONS, INC.", - [3]byte{0, 144, 39}: "INTEL CORPORATION", - [3]byte{0, 144, 40}: "NIPPON SIGNAL CO., LTD.", - [3]byte{0, 144, 41}: "CRYPTO AG", - [3]byte{0, 144, 42}: "COMMUNICATION DEVICES, INC.", - [3]byte{0, 144, 43}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 44}: "DATA & CONTROL EQUIPMENT LTD.", - [3]byte{0, 144, 45}: "DATA ELECTRONICS (AUST.) PTY, LTD.", - [3]byte{0, 144, 46}: "NAMCO LIMITED", - [3]byte{0, 144, 47}: "NETCORE SYSTEMS, INC.", - [3]byte{0, 144, 48}: "HONEYWELL-DATING", - [3]byte{0, 144, 49}: "MYSTICOM, LTD.", - [3]byte{0, 144, 50}: "PELCOMBE GROUP LTD.", - [3]byte{0, 144, 51}: "INNOVAPHONE AG", - [3]byte{0, 144, 52}: "IMAGIC, INC.", - [3]byte{0, 144, 53}: "ALPHA TELECOM, INC.", - [3]byte{0, 144, 54}: "ens, inc.", - [3]byte{0, 144, 55}: "ACUCOMM, INC.", - [3]byte{0, 144, 56}: "FOUNTAIN TECHNOLOGIES, INC.", - [3]byte{0, 144, 57}: "SHASTA NETWORKS", - [3]byte{0, 144, 58}: "NIHON MEDIA TOOL INC.", - [3]byte{0, 144, 59}: "TriEMS Research Lab, Inc.", - [3]byte{0, 144, 60}: "ATLANTIC NETWORK SYSTEMS", - [3]byte{0, 144, 61}: "BIOPAC SYSTEMS, INC.", - [3]byte{0, 144, 62}: "N.V. PHILIPS INDUSTRIAL ACTIVITIES", - [3]byte{0, 144, 63}: "AZTEC RADIOMEDIA", - [3]byte{0, 144, 64}: "Siemens Network Convergence LLC", - [3]byte{0, 144, 65}: "APPLIED DIGITAL ACCESS", - [3]byte{0, 144, 66}: "ECCS, Inc.", - [3]byte{0, 144, 67}: "Tattile SRL", - [3]byte{0, 144, 68}: "ASSURED DIGITAL, INC.", - [3]byte{0, 144, 69}: "Marconi Communications", - [3]byte{0, 144, 70}: "DEXDYNE, LTD.", - [3]byte{0, 144, 71}: "GIGA FAST E. LTD.", - [3]byte{0, 144, 72}: "ZEAL CORPORATION", - [3]byte{0, 144, 73}: "ENTRIDIA CORPORATION", - [3]byte{0, 144, 74}: "CONCUR SYSTEM TECHNOLOGIES", - [3]byte{0, 144, 75}: "GemTek Technology Co., Ltd.", - [3]byte{0, 144, 76}: "EPIGRAM, INC.", - [3]byte{0, 144, 77}: "SPEC S.A.", - [3]byte{0, 144, 78}: "DELEM BV", - [3]byte{0, 144, 79}: "ABB POWER T&D COMPANY, INC.", - [3]byte{0, 144, 80}: "TELESTE OY", - [3]byte{0, 144, 81}: "ULTIMATE TECHNOLOGY CORP.", - [3]byte{0, 144, 82}: "SELCOM ELETTRONICA S.R.L.", - [3]byte{0, 144, 83}: "DAEWOO ELECTRONICS CO., LTD.", - [3]byte{0, 144, 84}: "INNOVATIVE SEMICONDUCTORS, INC", - [3]byte{0, 144, 85}: "PARKER HANNIFIN CORPORATION COMPUMOTOR DIVISION", - [3]byte{0, 144, 86}: "TELESTREAM, INC.", - [3]byte{0, 144, 87}: "AANetcom, Inc.", - [3]byte{0, 144, 88}: "Ultra Electronics Ltd., Command and Control Systems", - [3]byte{0, 144, 89}: "TELECOM DEVICE K.K.", - [3]byte{0, 144, 90}: "DEARBORN GROUP, INC.", - [3]byte{0, 144, 91}: "RAYMOND AND LAE ENGINEERING", - [3]byte{0, 144, 92}: "EDMI", - [3]byte{0, 144, 93}: "NETCOM SICHERHEITSTECHNIK GmbH", - [3]byte{0, 144, 94}: "RAULAND-BORG CORPORATION", - [3]byte{0, 144, 95}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 96}: "SYSTEM CREATE CORP.", - [3]byte{0, 144, 97}: "PACIFIC RESEARCH & ENGINEERING CORPORATION", - [3]byte{0, 144, 98}: "ICP VORTEX COMPUTERSYSTEME GmbH", - [3]byte{0, 144, 99}: "COHERENT COMMUNICATIONS SYSTEMS CORPORATION", - [3]byte{0, 144, 100}: "Thomson Inc.", - [3]byte{0, 144, 101}: "FINISAR CORPORATION", - [3]byte{0, 144, 102}: "Troika Networks, Inc.", - [3]byte{0, 144, 103}: "WalkAbout Computers, Inc.", - [3]byte{0, 144, 104}: "DVT CORP.", - [3]byte{0, 144, 105}: "JUNIPER NETWORKS, INC.", - [3]byte{0, 144, 106}: "TURNSTONE SYSTEMS, INC.", - [3]byte{0, 144, 107}: "APPLIED RESOURCES, INC.", - [3]byte{0, 144, 108}: "Sartorius Hamburg GmbH", - [3]byte{0, 144, 109}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 110}: "PRAXON, INC.", - [3]byte{0, 144, 111}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 112}: "NEO NETWORKS, INC.", - [3]byte{0, 144, 113}: "Applied Innovation Inc.", - [3]byte{0, 144, 114}: "SIMRAD AS", - [3]byte{0, 144, 115}: "GAIO TECHNOLOGY", - [3]byte{0, 144, 116}: "ARGON NETWORKS, INC.", - [3]byte{0, 144, 117}: "NEC DO BRASIL S.A.", - [3]byte{0, 144, 118}: "FMT AIRCRAFT GATE SUPPORT SYSTEMS AB", - [3]byte{0, 144, 119}: "ADVANCED FIBRE COMMUNICATIONS", - [3]byte{0, 144, 120}: "MER TELEMANAGEMENT SOLUTIONS, LTD.", - [3]byte{0, 144, 121}: "ClearOne, Inc.", - [3]byte{0, 144, 122}: "Spectralink, Inc", - [3]byte{0, 144, 123}: "E-TECH, INC.", - [3]byte{0, 144, 124}: "DIGITALCAST, INC.", - [3]byte{0, 144, 125}: "Lake Communications", - [3]byte{0, 144, 126}: "VETRONIX CORP.", - [3]byte{0, 144, 127}: "WatchGuard Technologies, Inc.", - [3]byte{0, 144, 128}: "NOT LIMITED, INC.", - [3]byte{0, 144, 129}: "ALOHA NETWORKS, INC.", - [3]byte{0, 144, 130}: "FORCE INSTITUTE", - [3]byte{0, 144, 131}: "TURBO COMMUNICATION, INC.", - [3]byte{0, 144, 132}: "ATECH SYSTEM", - [3]byte{0, 144, 133}: "GOLDEN ENTERPRISES, INC.", - [3]byte{0, 144, 134}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 135}: "ITIS", - [3]byte{0, 144, 136}: "BAXALL SECURITY LTD.", - [3]byte{0, 144, 137}: "SOFTCOM MICROSYSTEMS, INC.", - [3]byte{0, 144, 138}: "BAYLY COMMUNICATIONS, INC.", - [3]byte{0, 144, 139}: "Tattile SRL", - [3]byte{0, 144, 140}: "ETREND ELECTRONICS, INC.", - [3]byte{0, 144, 141}: "VICKERS ELECTRONICS SYSTEMS", - [3]byte{0, 144, 142}: "Nortel Networks Broadband Access", - [3]byte{0, 144, 143}: "AUDIO CODES LTD.", - [3]byte{0, 144, 144}: "I-BUS", - [3]byte{0, 144, 145}: "DigitalScape, Inc.", - [3]byte{0, 144, 146}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 147}: "NANAO CORPORATION", - [3]byte{0, 144, 148}: "OSPREY TECHNOLOGIES, INC.", - [3]byte{0, 144, 149}: "UNIVERSAL AVIONICS", - [3]byte{0, 144, 150}: "ASKEY COMPUTER CORP.", - [3]byte{0, 144, 151}: "Sycamore Networks", - [3]byte{0, 144, 152}: "SBC DESIGNS, INC.", - [3]byte{0, 144, 153}: "ALLIED TELESIS, K.K.", - [3]byte{0, 144, 154}: "ONE WORLD SYSTEMS, INC.", - [3]byte{0, 144, 155}: "MARKEM-IMAJE", - [3]byte{0, 144, 156}: "ARRIS Group, Inc.", - [3]byte{0, 144, 157}: "NovaTech Process Solutions, LLC", - [3]byte{0, 144, 158}: "Critical IO, LLC", - [3]byte{0, 144, 159}: "DIGI-DATA CORPORATION", - [3]byte{0, 144, 160}: "8X8 INC.", - [3]byte{0, 144, 161}: "Flying Pig Systems/High End Systems Inc.", - [3]byte{0, 144, 162}: "CYBERTAN TECHNOLOGY, INC.", - [3]byte{0, 144, 163}: "Corecess Inc.", - [3]byte{0, 144, 164}: "ALTIGA NETWORKS", - [3]byte{0, 144, 165}: "SPECTRA LOGIC", - [3]byte{0, 144, 166}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 167}: "CLIENTEC CORPORATION", - [3]byte{0, 144, 168}: "NineTiles Networks, Ltd.", - [3]byte{0, 144, 169}: "WESTERN DIGITAL", - [3]byte{0, 144, 170}: "INDIGO ACTIVE VISION SYSTEMS LIMITED", - [3]byte{0, 144, 171}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 172}: "OPTIVISION, INC.", - [3]byte{0, 144, 173}: "ASPECT ELECTRONICS, INC.", - [3]byte{0, 144, 174}: "ITALTEL S.p.A.", - [3]byte{0, 144, 175}: "J. MORITA MFG. CORP.", - [3]byte{0, 144, 176}: "VADEM", - [3]byte{0, 144, 177}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 178}: "AVICI SYSTEMS INC.", - [3]byte{0, 144, 179}: "AGRANAT SYSTEMS", - [3]byte{0, 144, 180}: "WILLOWBROOK TECHNOLOGIES", - [3]byte{0, 144, 181}: "NIKON CORPORATION", - [3]byte{0, 144, 182}: "FIBEX SYSTEMS", - [3]byte{0, 144, 183}: "DIGITAL LIGHTWAVE, INC.", - [3]byte{0, 144, 184}: "ROHDE & SCHWARZ GMBH & CO. KG", - [3]byte{0, 144, 185}: "BERAN INSTRUMENTS LTD.", - [3]byte{0, 144, 186}: "VALID NETWORKS, INC.", - [3]byte{0, 144, 187}: "TAINET COMMUNICATION SYSTEM Corp.", - [3]byte{0, 144, 188}: "TELEMANN CO., LTD.", - [3]byte{0, 144, 189}: "OMNIA COMMUNICATIONS, INC.", - [3]byte{0, 144, 190}: "IBC/INTEGRATED BUSINESS COMPUTERS", - [3]byte{0, 144, 191}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 192}: "K.J. LAW ENGINEERS, INC.", - [3]byte{0, 144, 193}: "Peco II, Inc.", - [3]byte{0, 144, 194}: "JK microsystems, Inc.", - [3]byte{0, 144, 195}: "TOPIC SEMICONDUCTOR CORP.", - [3]byte{0, 144, 196}: "JAVELIN SYSTEMS, INC.", - [3]byte{0, 144, 197}: "INTERNET MAGIC, INC.", - [3]byte{0, 144, 198}: "OPTIM SYSTEMS, INC.", - [3]byte{0, 144, 199}: "ICOM INC.", - [3]byte{0, 144, 200}: "WAVERIDER COMMUNICATIONS (CANADA) INC.", - [3]byte{0, 144, 201}: "DPAC Technologies", - [3]byte{0, 144, 202}: "ACCORD VIDEO TELECOMMUNICATIONS, LTD.", - [3]byte{0, 144, 203}: "Wireless OnLine, Inc.", - [3]byte{0, 144, 204}: "Planex Communications", - [3]byte{0, 144, 205}: "ENT-EMPRESA NACIONAL DE TELECOMMUNICACOES, S.A.", - [3]byte{0, 144, 206}: "TETRA GmbH", - [3]byte{0, 144, 207}: "NORTEL", - [3]byte{0, 144, 208}: "Thomson Telecom Belgium", - [3]byte{0, 144, 209}: "LEICHU ENTERPRISE CO., LTD.", - [3]byte{0, 144, 210}: "ARTEL VIDEO SYSTEMS", - [3]byte{0, 144, 211}: "GIESECKE & DEVRIENT GmbH", - [3]byte{0, 144, 212}: "BindView Development Corp.", - [3]byte{0, 144, 213}: "EUPHONIX, INC.", - [3]byte{0, 144, 214}: "CRYSTAL GROUP", - [3]byte{0, 144, 215}: "NetBoost Corp.", - [3]byte{0, 144, 216}: "WHITECROSS SYSTEMS", - [3]byte{0, 144, 217}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 218}: "DYNARC, INC.", - [3]byte{0, 144, 219}: "NEXT LEVEL COMMUNICATIONS", - [3]byte{0, 144, 220}: "TECO INFORMATION SYSTEMS", - [3]byte{0, 144, 221}: "MIHARU COMMUNICATIONS Inc", - [3]byte{0, 144, 222}: "CARDKEY SYSTEMS, INC.", - [3]byte{0, 144, 223}: "MITSUBISHI CHEMICAL AMERICA, INC.", - [3]byte{0, 144, 224}: "SYSTRAN CORP.", - [3]byte{0, 144, 225}: "TELENA S.P.A.", - [3]byte{0, 144, 226}: "DISTRIBUTED PROCESSING TECHNOLOGY", - [3]byte{0, 144, 227}: "AVEX ELECTRONICS INC.", - [3]byte{0, 144, 228}: "NEC AMERICA, INC.", - [3]byte{0, 144, 229}: "TEKNEMA, INC.", - [3]byte{0, 144, 230}: "ALi Corporation", - [3]byte{0, 144, 231}: "HORSCH ELEKTRONIK AG", - [3]byte{0, 144, 232}: "MOXA TECHNOLOGIES CORP., LTD.", - [3]byte{0, 144, 233}: "JANZ COMPUTER AG", - [3]byte{0, 144, 234}: "ALPHA TECHNOLOGIES, INC.", - [3]byte{0, 144, 235}: "SENTRY TELECOM SYSTEMS", - [3]byte{0, 144, 236}: "PYRESCOM", - [3]byte{0, 144, 237}: "CENTRAL SYSTEM RESEARCH CO., LTD.", - [3]byte{0, 144, 238}: "PERSONAL COMMUNICATIONS TECHNOLOGIES", - [3]byte{0, 144, 239}: "INTEGRIX, INC.", - [3]byte{0, 144, 240}: "Harmonic Video Systems Ltd.", - [3]byte{0, 144, 241}: "DOT HILL SYSTEMS CORPORATION", - [3]byte{0, 144, 242}: "CISCO SYSTEMS, INC.", - [3]byte{0, 144, 243}: "ASPECT COMMUNICATIONS", - [3]byte{0, 144, 244}: "LIGHTNING INSTRUMENTATION", - [3]byte{0, 144, 245}: "CLEVO CO.", - [3]byte{0, 144, 246}: "ESCALATE NETWORKS, INC.", - [3]byte{0, 144, 247}: "NBASE COMMUNICATIONS LTD.", - [3]byte{0, 144, 248}: "MEDIATRIX TELECOM", - [3]byte{0, 144, 249}: "LEITCH", - [3]byte{0, 144, 250}: "Emulex Corporation", - [3]byte{0, 144, 251}: "PORTWELL, INC.", - [3]byte{0, 144, 252}: "NETWORK COMPUTING DEVICES", - [3]byte{0, 144, 253}: "CopperCom, Inc.", - [3]byte{0, 144, 254}: "ELECOM CO., LTD. (LANEED DIV.)", - [3]byte{0, 144, 255}: "TELLUS TECHNOLOGY INC.", - [3]byte{0, 145, 214}: "Crystal Group, Inc.", - [3]byte{0, 145, 250}: "Synapse Product Development", - [3]byte{0, 146, 250}: "SHENZHEN WISKY TECHNOLOGY CO.,LTD", - [3]byte{0, 147, 99}: "Uni-Link Technology Co., Ltd.", - [3]byte{0, 149, 105}: "LSD Science and Technology Co.,Ltd.", - [3]byte{0, 151, 255}: "Heimann Sensor GmbH", - [3]byte{0, 156, 2}: "Hewlett-Packard Company", - [3]byte{0, 157, 142}: "CARDIAC RECORDERS, INC.", - [3]byte{0, 158, 200}: "Beijing Xiaomi Electronic Products Co., Ltd.", - [3]byte{0, 160, 0}: "CENTILLION NETWORKS, INC.", - [3]byte{0, 160, 1}: "DRS Signal Solutions", - [3]byte{0, 160, 2}: "LEEDS & NORTHRUP AUSTRALIA PTY LTD", - [3]byte{0, 160, 3}: "Siemens Switzerland Ltd., I B T HVP", - [3]byte{0, 160, 4}: "NETPOWER, INC.", - [3]byte{0, 160, 5}: "DANIEL INSTRUMENTS, LTD.", - [3]byte{0, 160, 6}: "IMAGE DATA PROCESSING SYSTEM GROUP", - [3]byte{0, 160, 7}: "APEXX TECHNOLOGY, INC.", - [3]byte{0, 160, 8}: "NETCORP", - [3]byte{0, 160, 9}: "WHITETREE NETWORK", - [3]byte{0, 160, 10}: "Airspan", - [3]byte{0, 160, 11}: "COMPUTEX CO., LTD.", - [3]byte{0, 160, 12}: "KINGMAX TECHNOLOGY, INC.", - [3]byte{0, 160, 13}: "THE PANDA PROJECT", - [3]byte{0, 160, 14}: "VISUAL NETWORKS, INC.", - [3]byte{0, 160, 15}: "Broadband Technologies", - [3]byte{0, 160, 16}: "SYSLOGIC DATENTECHNIK AG", - [3]byte{0, 160, 17}: "MUTOH INDUSTRIES LTD.", - [3]byte{0, 160, 18}: "Telco Systems, Inc.", - [3]byte{0, 160, 19}: "TELTREND LTD.", - [3]byte{0, 160, 20}: "CSIR", - [3]byte{0, 160, 21}: "WYLE", - [3]byte{0, 160, 22}: "MICROPOLIS CORP.", - [3]byte{0, 160, 23}: "J B M CORPORATION", - [3]byte{0, 160, 24}: "CREATIVE CONTROLLERS, INC.", - [3]byte{0, 160, 25}: "NEBULA CONSULTANTS, INC.", - [3]byte{0, 160, 26}: "BINAR ELEKTRONIK AB", - [3]byte{0, 160, 27}: "PREMISYS COMMUNICATIONS, INC.", - [3]byte{0, 160, 28}: "NASCENT NETWORKS CORPORATION", - [3]byte{0, 160, 29}: "SIXNET", - [3]byte{0, 160, 30}: "EST CORPORATION", - [3]byte{0, 160, 31}: "TRICORD SYSTEMS, INC.", - [3]byte{0, 160, 32}: "CITICORP/TTI", - [3]byte{0, 160, 33}: "General Dynamics", - [3]byte{0, 160, 34}: "CENTRE FOR DEVELOPMENT OF ADVANCED COMPUTING", - [3]byte{0, 160, 35}: "APPLIED CREATIVE TECHNOLOGY, INC.", - [3]byte{0, 160, 36}: "3COM CORPORATION", - [3]byte{0, 160, 37}: "REDCOM LABS INC.", - [3]byte{0, 160, 38}: "TELDAT, S.A.", - [3]byte{0, 160, 39}: "FIREPOWER SYSTEMS, INC.", - [3]byte{0, 160, 40}: "CONNER PERIPHERALS", - [3]byte{0, 160, 41}: "COULTER CORPORATION", - [3]byte{0, 160, 42}: "TRANCELL SYSTEMS", - [3]byte{0, 160, 43}: "TRANSITIONS RESEARCH CORP.", - [3]byte{0, 160, 44}: "interWAVE Communications", - [3]byte{0, 160, 45}: "1394 Trade Association", - [3]byte{0, 160, 46}: "BRAND COMMUNICATIONS, LTD.", - [3]byte{0, 160, 47}: "PIRELLI CAVI", - [3]byte{0, 160, 48}: "CAPTOR NV/SA", - [3]byte{0, 160, 49}: "HAZELTINE CORPORATION, MS 1-17", - [3]byte{0, 160, 50}: "GES SINGAPORE PTE. LTD.", - [3]byte{0, 160, 51}: "imc MeBsysteme GmbH", - [3]byte{0, 160, 52}: "AXEL", - [3]byte{0, 160, 53}: "CYLINK CORPORATION", - [3]byte{0, 160, 54}: "APPLIED NETWORK TECHNOLOGY", - [3]byte{0, 160, 55}: "Mindray DS USA, Inc.", - [3]byte{0, 160, 56}: "EMAIL ELECTRONICS", - [3]byte{0, 160, 57}: "ROSS TECHNOLOGY, INC.", - [3]byte{0, 160, 58}: "KUBOTEK CORPORATION", - [3]byte{0, 160, 59}: "TOSHIN ELECTRIC CO., LTD.", - [3]byte{0, 160, 60}: "EG&G NUCLEAR INSTRUMENTS", - [3]byte{0, 160, 61}: "OPTO-22", - [3]byte{0, 160, 62}: "ATM FORUM", - [3]byte{0, 160, 63}: "COMPUTER SOCIETY MICROPROCESSOR & MICROPROCESSOR STANDARDS C", - [3]byte{0, 160, 64}: "Apple", - [3]byte{0, 160, 65}: "INFICON", - [3]byte{0, 160, 66}: "SPUR PRODUCTS CORP.", - [3]byte{0, 160, 67}: "AMERICAN TECHNOLOGY LABS, INC.", - [3]byte{0, 160, 68}: "NTT IT CO., LTD.", - [3]byte{0, 160, 69}: "PHOENIX CONTACT GMBH & CO.", - [3]byte{0, 160, 70}: "SCITEX CORP. LTD.", - [3]byte{0, 160, 71}: "INTEGRATED FITNESS CORP.", - [3]byte{0, 160, 72}: "QUESTECH, LTD.", - [3]byte{0, 160, 73}: "DIGITECH INDUSTRIES, INC.", - [3]byte{0, 160, 74}: "NISSHIN ELECTRIC CO., LTD.", - [3]byte{0, 160, 75}: "TFL LAN INC.", - [3]byte{0, 160, 76}: "INNOVATIVE SYSTEMS & TECHNOLOGIES, INC.", - [3]byte{0, 160, 77}: "EDA INSTRUMENTS, INC.", - [3]byte{0, 160, 78}: "VOELKER TECHNOLOGIES, INC.", - [3]byte{0, 160, 79}: "AMERITEC CORP.", - [3]byte{0, 160, 80}: "CYPRESS SEMICONDUCTOR", - [3]byte{0, 160, 81}: "ANGIA COMMUNICATIONS. INC.", - [3]byte{0, 160, 82}: "STANILITE ELECTRONICS PTY. LTD", - [3]byte{0, 160, 83}: "COMPACT DEVICES, INC.", - [3]byte{0, 160, 84}: "PRIVATE", - [3]byte{0, 160, 85}: "Data Device Corporation", - [3]byte{0, 160, 86}: "MICROPROSS", - [3]byte{0, 160, 87}: "LANCOM Systems GmbH", - [3]byte{0, 160, 88}: "GLORY, LTD.", - [3]byte{0, 160, 89}: "HAMILTON HALLMARK", - [3]byte{0, 160, 90}: "KOFAX IMAGE PRODUCTS", - [3]byte{0, 160, 91}: "MARQUIP, INC.", - [3]byte{0, 160, 92}: "INVENTORY CONVERSION, INC./", - [3]byte{0, 160, 93}: "CS COMPUTER SYSTEME GmbH", - [3]byte{0, 160, 94}: "MYRIAD LOGIC INC.", - [3]byte{0, 160, 95}: "BTG Electronics Design BV", - [3]byte{0, 160, 96}: "ACER PERIPHERALS, INC.", - [3]byte{0, 160, 97}: "PURITAN BENNETT", - [3]byte{0, 160, 98}: "AES PRODATA", - [3]byte{0, 160, 99}: "JRL SYSTEMS, INC.", - [3]byte{0, 160, 100}: "KVB/ANALECT", - [3]byte{0, 160, 101}: "Symantec Corporation", - [3]byte{0, 160, 102}: "ISA CO., LTD.", - [3]byte{0, 160, 103}: "NETWORK SERVICES GROUP", - [3]byte{0, 160, 104}: "BHP LIMITED", - [3]byte{0, 160, 105}: "Symmetricom, Inc.", - [3]byte{0, 160, 106}: "Verilink Corporation", - [3]byte{0, 160, 107}: "DMS DORSCH MIKROSYSTEM GMBH", - [3]byte{0, 160, 108}: "SHINDENGEN ELECTRIC MFG. CO., LTD.", - [3]byte{0, 160, 109}: "MANNESMANN TALLY CORPORATION", - [3]byte{0, 160, 110}: "AUSTRON, INC.", - [3]byte{0, 160, 111}: "THE APPCON GROUP, INC.", - [3]byte{0, 160, 112}: "COASTCOM", - [3]byte{0, 160, 113}: "VIDEO LOTTERY TECHNOLOGIES,INC", - [3]byte{0, 160, 114}: "OVATION SYSTEMS LTD.", - [3]byte{0, 160, 115}: "COM21, INC.", - [3]byte{0, 160, 116}: "PERCEPTION TECHNOLOGY", - [3]byte{0, 160, 117}: "MICRON TECHNOLOGY, INC.", - [3]byte{0, 160, 118}: "CARDWARE LAB, INC.", - [3]byte{0, 160, 119}: "FUJITSU NEXION, INC.", - [3]byte{0, 160, 120}: "Marconi Communications", - [3]byte{0, 160, 121}: "ALPS ELECTRIC (USA), INC.", - [3]byte{0, 160, 122}: "ADVANCED PERIPHERALS TECHNOLOGIES, INC.", - [3]byte{0, 160, 123}: "DAWN COMPUTER INCORPORATION", - [3]byte{0, 160, 124}: "TONYANG NYLON CO., LTD.", - [3]byte{0, 160, 125}: "SEEQ TECHNOLOGY, INC.", - [3]byte{0, 160, 126}: "AVID TECHNOLOGY, INC.", - [3]byte{0, 160, 127}: "GSM-SYNTEL, LTD.", - [3]byte{0, 160, 128}: "Tattile SRL", - [3]byte{0, 160, 129}: "ALCATEL DATA NETWORKS", - [3]byte{0, 160, 130}: "NKT ELEKTRONIK A/S", - [3]byte{0, 160, 131}: "ASIMMPHONY TURKEY", - [3]byte{0, 160, 132}: "Dataplex Pty Ltd", - [3]byte{0, 160, 133}: "PRIVATE", - [3]byte{0, 160, 134}: "AMBER WAVE SYSTEMS, INC.", - [3]byte{0, 160, 135}: "Microsemi Corporation", - [3]byte{0, 160, 136}: "ESSENTIAL COMMUNICATIONS", - [3]byte{0, 160, 137}: "XPOINT TECHNOLOGIES, INC.", - [3]byte{0, 160, 138}: "BROOKTROUT TECHNOLOGY, INC.", - [3]byte{0, 160, 139}: "ASTON ELECTRONIC DESIGNS LTD.", - [3]byte{0, 160, 140}: "MultiMedia LANs, Inc.", - [3]byte{0, 160, 141}: "JACOMO CORPORATION", - [3]byte{0, 160, 142}: "Check Point Software Technologies", - [3]byte{0, 160, 143}: "DESKNET SYSTEMS, INC.", - [3]byte{0, 160, 144}: "TimeStep Corporation", - [3]byte{0, 160, 145}: "APPLICOM INTERNATIONAL", - [3]byte{0, 160, 146}: "H. BOLLMANN MANUFACTURERS, LTD", - [3]byte{0, 160, 147}: "B/E AEROSPACE, Inc.", - [3]byte{0, 160, 148}: "COMSAT CORPORATION", - [3]byte{0, 160, 149}: "ACACIA NETWORKS, INC.", - [3]byte{0, 160, 150}: "MITSUMI ELECTRIC CO., LTD.", - [3]byte{0, 160, 151}: "JC INFORMATION SYSTEMS", - [3]byte{0, 160, 152}: "NetApp", - [3]byte{0, 160, 153}: "K-NET LTD.", - [3]byte{0, 160, 154}: "NIHON KOHDEN AMERICA", - [3]byte{0, 160, 155}: "QPSX COMMUNICATIONS, LTD.", - [3]byte{0, 160, 156}: "Xyplex, Inc.", - [3]byte{0, 160, 157}: "JOHNATHON FREEMAN TECHNOLOGIES", - [3]byte{0, 160, 158}: "ICTV", - [3]byte{0, 160, 159}: "COMMVISION CORP.", - [3]byte{0, 160, 160}: "COMPACT DATA, LTD.", - [3]byte{0, 160, 161}: "EPIC DATA INC.", - [3]byte{0, 160, 162}: "DIGICOM S.P.A.", - [3]byte{0, 160, 163}: "RELIABLE POWER METERS", - [3]byte{0, 160, 164}: "MICROS SYSTEMS, INC.", - [3]byte{0, 160, 165}: "TEKNOR MICROSYSTEME, INC.", - [3]byte{0, 160, 166}: "M.I. SYSTEMS, K.K.", - [3]byte{0, 160, 167}: "VORAX CORPORATION", - [3]byte{0, 160, 168}: "RENEX CORPORATION", - [3]byte{0, 160, 169}: "NAVTEL COMMUNICATIONS INC.", - [3]byte{0, 160, 170}: "SPACELABS MEDICAL", - [3]byte{0, 160, 171}: "NETCS INFORMATIONSTECHNIK GMBH", - [3]byte{0, 160, 172}: "GILAT SATELLITE NETWORKS, LTD.", - [3]byte{0, 160, 173}: "MARCONI SPA", - [3]byte{0, 160, 174}: "NUCOM SYSTEMS, INC.", - [3]byte{0, 160, 175}: "WMS INDUSTRIES", - [3]byte{0, 160, 176}: "I-O DATA DEVICE, INC.", - [3]byte{0, 160, 177}: "FIRST VIRTUAL CORPORATION", - [3]byte{0, 160, 178}: "SHIMA SEIKI", - [3]byte{0, 160, 179}: "ZYKRONIX", - [3]byte{0, 160, 180}: "TEXAS MICROSYSTEMS, INC.", - [3]byte{0, 160, 181}: "3H TECHNOLOGY", - [3]byte{0, 160, 182}: "SANRITZ AUTOMATION CO., LTD.", - [3]byte{0, 160, 183}: "CORDANT, INC.", - [3]byte{0, 160, 184}: "SYMBIOS LOGIC INC.", - [3]byte{0, 160, 185}: "EAGLE TECHNOLOGY, INC.", - [3]byte{0, 160, 186}: "PATTON ELECTRONICS CO.", - [3]byte{0, 160, 187}: "HILAN GMBH", - [3]byte{0, 160, 188}: "VIASAT, INCORPORATED", - [3]byte{0, 160, 189}: "I-TECH CORP.", - [3]byte{0, 160, 190}: "INTEGRATED CIRCUIT SYSTEMS, INC. COMMUNICATIONS GROUP", - [3]byte{0, 160, 191}: "WIRELESS DATA GROUP MOTOROLA", - [3]byte{0, 160, 192}: "DIGITAL LINK CORP.", - [3]byte{0, 160, 193}: "ORTIVUS MEDICAL AB", - [3]byte{0, 160, 194}: "R.A. SYSTEMS CO., LTD.", - [3]byte{0, 160, 195}: "UNICOMPUTER GMBH", - [3]byte{0, 160, 196}: "CRISTIE ELECTRONICS LTD.", - [3]byte{0, 160, 197}: "ZYXEL COMMUNICATION", - [3]byte{0, 160, 198}: "QUALCOMM INCORPORATED", - [3]byte{0, 160, 199}: "TADIRAN TELECOMMUNICATIONS", - [3]byte{0, 160, 200}: "ADTRAN INC.", - [3]byte{0, 160, 201}: "INTEL CORPORATION - HF1-06", - [3]byte{0, 160, 202}: "FUJITSU DENSO LTD.", - [3]byte{0, 160, 203}: "ARK TELECOMMUNICATIONS, INC.", - [3]byte{0, 160, 204}: "LITE-ON COMMUNICATIONS, INC.", - [3]byte{0, 160, 205}: "DR. JOHANNES HEIDENHAIN GmbH", - [3]byte{0, 160, 206}: "Ecessa", - [3]byte{0, 160, 207}: "SOTAS, INC.", - [3]byte{0, 160, 208}: "TEN X TECHNOLOGY, INC.", - [3]byte{0, 160, 209}: "INVENTEC CORPORATION", - [3]byte{0, 160, 210}: "ALLIED TELESIS INTERNATIONAL CORPORATION", - [3]byte{0, 160, 211}: "INSTEM COMPUTER SYSTEMS, LTD.", - [3]byte{0, 160, 212}: "RADIOLAN, INC.", - [3]byte{0, 160, 213}: "SIERRA WIRELESS INC.", - [3]byte{0, 160, 214}: "SBE, INC.", - [3]byte{0, 160, 215}: "KASTEN CHASE APPLIED RESEARCH", - [3]byte{0, 160, 216}: "SPECTRA - TEK", - [3]byte{0, 160, 217}: "CONVEX COMPUTER CORPORATION", - [3]byte{0, 160, 218}: "INTEGRATED SYSTEMS Technology, Inc.", - [3]byte{0, 160, 219}: "FISHER & PAYKEL PRODUCTION", - [3]byte{0, 160, 220}: "O.N. ELECTRONIC CO., LTD.", - [3]byte{0, 160, 221}: "AZONIX CORPORATION", - [3]byte{0, 160, 222}: "YAMAHA CORPORATION", - [3]byte{0, 160, 223}: "STS TECHNOLOGIES, INC.", - [3]byte{0, 160, 224}: "TENNYSON TECHNOLOGIES PTY LTD", - [3]byte{0, 160, 225}: "WESTPORT RESEARCH ASSOCIATES, INC.", - [3]byte{0, 160, 226}: "Keisokugiken Corporation", - [3]byte{0, 160, 227}: "XKL SYSTEMS CORP.", - [3]byte{0, 160, 228}: "OPTIQUEST", - [3]byte{0, 160, 229}: "NHC COMMUNICATIONS", - [3]byte{0, 160, 230}: "DIALOGIC CORPORATION", - [3]byte{0, 160, 231}: "CENTRAL DATA CORPORATION", - [3]byte{0, 160, 232}: "REUTERS HOLDINGS PLC", - [3]byte{0, 160, 233}: "ELECTRONIC RETAILING SYSTEMS INTERNATIONAL", - [3]byte{0, 160, 234}: "ETHERCOM CORP.", - [3]byte{0, 160, 235}: "Encore Networks, Inc.", - [3]byte{0, 160, 236}: "TRANSMITTON LTD.", - [3]byte{0, 160, 237}: "Brooks Automation, Inc.", - [3]byte{0, 160, 238}: "NASHOBA NETWORKS", - [3]byte{0, 160, 239}: "LUCIDATA LTD.", - [3]byte{0, 160, 240}: "TORONTO MICROELECTRONICS INC.", - [3]byte{0, 160, 241}: "MTI", - [3]byte{0, 160, 242}: "INFOTEK COMMUNICATIONS, INC.", - [3]byte{0, 160, 243}: "STAUBLI", - [3]byte{0, 160, 244}: "GE", - [3]byte{0, 160, 245}: "RADGUARD LTD.", - [3]byte{0, 160, 246}: "AutoGas Systems Inc.", - [3]byte{0, 160, 247}: "V.I COMPUTER CORP.", - [3]byte{0, 160, 248}: "SYMBOL TECHNOLOGIES, INC.", - [3]byte{0, 160, 249}: "BINTEC COMMUNICATIONS GMBH", - [3]byte{0, 160, 250}: "Marconi Communication GmbH", - [3]byte{0, 160, 251}: "TORAY ENGINEERING CO., LTD.", - [3]byte{0, 160, 252}: "IMAGE SCIENCES, INC.", - [3]byte{0, 160, 253}: "SCITEX DIGITAL PRINTING, INC.", - [3]byte{0, 160, 254}: "BOSTON TECHNOLOGY, INC.", - [3]byte{0, 160, 255}: "TELLABS OPERATIONS, INC.", - [3]byte{0, 161, 222}: "ShenZhen ShiHua Technology CO.,LTD", - [3]byte{0, 162, 218}: "INAT GmbH", - [3]byte{0, 162, 245}: "Guangzhou Yuanyun Network Technology Co.,Ltd", - [3]byte{0, 162, 255}: "abatec group AG", - [3]byte{0, 170, 0}: "INTEL CORPORATION", - [3]byte{0, 170, 1}: "INTEL CORPORATION", - [3]byte{0, 170, 2}: "INTEL CORPORATION", - [3]byte{0, 170, 60}: "OLIVETTI TELECOM SPA (OLTECO)", - [3]byte{0, 170, 112}: "LG Electronics", - [3]byte{0, 172, 224}: "ARRIS Group, Inc.", - [3]byte{0, 174, 250}: "Murata Manufacturing Co., Ltd.", - [3]byte{0, 176, 9}: "Grass Valley Group", - [3]byte{0, 176, 23}: "InfoGear Technology Corp.", - [3]byte{0, 176, 25}: "UTC CCS", - [3]byte{0, 176, 28}: "Westport Technologies", - [3]byte{0, 176, 30}: "Rantic Labs, Inc.", - [3]byte{0, 176, 42}: "ORSYS GmbH", - [3]byte{0, 176, 45}: "ViaGate Technologies, Inc.", - [3]byte{0, 176, 51}: "OAO \"Izhevskiy radiozavod\"", - [3]byte{0, 176, 59}: "HiQ Networks", - [3]byte{0, 176, 72}: "Marconi Communications Inc.", - [3]byte{0, 176, 74}: "CISCO SYSTEMS, INC.", - [3]byte{0, 176, 82}: "Atheros Communications", - [3]byte{0, 176, 100}: "CISCO SYSTEMS, INC.", - [3]byte{0, 176, 105}: "Honewell Oy", - [3]byte{0, 176, 109}: "Jones Futurex Inc.", - [3]byte{0, 176, 128}: "Mannesmann Ipulsys B.V.", - [3]byte{0, 176, 134}: "LocSoft Limited", - [3]byte{0, 176, 142}: "CISCO SYSTEMS, INC.", - [3]byte{0, 176, 145}: "Transmeta Corp.", - [3]byte{0, 176, 148}: "Alaris, Inc.", - [3]byte{0, 176, 154}: "Morrow Technologies Corp.", - [3]byte{0, 176, 157}: "Point Grey Research Inc.", - [3]byte{0, 176, 172}: "SIAE-Microelettronica S.p.A.", - [3]byte{0, 176, 174}: "Symmetricom", - [3]byte{0, 176, 179}: "Xstreamis PLC", - [3]byte{0, 176, 194}: "CISCO SYSTEMS, INC.", - [3]byte{0, 176, 199}: "Tellabs Operations, Inc.", - [3]byte{0, 176, 206}: "TECHNOLOGY RESCUE", - [3]byte{0, 176, 208}: "Dell Computer Corp.", - [3]byte{0, 176, 219}: "Nextcell, Inc.", - [3]byte{0, 176, 223}: "Starboard Storage Systems", - [3]byte{0, 176, 231}: "British Federal Ltd.", - [3]byte{0, 176, 236}: "EACEM", - [3]byte{0, 176, 238}: "Ajile Systems, Inc.", - [3]byte{0, 176, 240}: "CALY NETWORKS", - [3]byte{0, 176, 245}: "NetWorth Technologies, Inc.", - [3]byte{0, 179, 56}: "Kontron Design Manufacturing Services (M) Sdn. Bhd", - [3]byte{0, 179, 66}: "MacroSAN Technologies Co., Ltd.", - [3]byte{0, 181, 109}: "David Electronics Co., LTD.", - [3]byte{0, 181, 214}: "Omnibit Inc.", - [3]byte{0, 183, 141}: "Nanjing Shining Electric Automation Co., Ltd", - [3]byte{0, 185, 246}: "Shenzhen Super Rich Electronics Co.,Ltd", - [3]byte{0, 186, 192}: "Biometric Access Company", - [3]byte{0, 187, 1}: "OCTOTHORPE CORP.", - [3]byte{0, 187, 58}: "PRIVATE", - [3]byte{0, 187, 142}: "HME Co., Ltd.", - [3]byte{0, 187, 240}: "UNGERMANN-BASS INC.", - [3]byte{0, 189, 39}: "Exar Corp.", - [3]byte{0, 189, 58}: "Nokia Corporation", - [3]byte{0, 191, 21}: "Genetec Inc.", - [3]byte{0, 192, 0}: "LANOPTICS, LTD.", - [3]byte{0, 192, 1}: "DIATEK PATIENT MANAGMENT", - [3]byte{0, 192, 2}: "SERCOMM CORPORATION", - [3]byte{0, 192, 3}: "GLOBALNET COMMUNICATIONS", - [3]byte{0, 192, 4}: "JAPAN BUSINESS COMPUTER CO.LTD", - [3]byte{0, 192, 5}: "LIVINGSTON ENTERPRISES, INC.", - [3]byte{0, 192, 6}: "NIPPON AVIONICS CO., LTD.", - [3]byte{0, 192, 7}: "PINNACLE DATA SYSTEMS, INC.", - [3]byte{0, 192, 8}: "SECO SRL", - [3]byte{0, 192, 9}: "KT TECHNOLOGY (S) PTE LTD", - [3]byte{0, 192, 10}: "MICRO CRAFT", - [3]byte{0, 192, 11}: "NORCONTROL A.S.", - [3]byte{0, 192, 12}: "RELIA TECHNOLGIES", - [3]byte{0, 192, 13}: "ADVANCED LOGIC RESEARCH, INC.", - [3]byte{0, 192, 14}: "PSITECH, INC.", - [3]byte{0, 192, 15}: "QUANTUM SOFTWARE SYSTEMS LTD.", - [3]byte{0, 192, 16}: "HIRAKAWA HEWTECH CORP.", - [3]byte{0, 192, 17}: "INTERACTIVE COMPUTING DEVICES", - [3]byte{0, 192, 18}: "NETSPAN CORPORATION", - [3]byte{0, 192, 19}: "NETRIX", - [3]byte{0, 192, 20}: "TELEMATICS CALABASAS INT'L,INC", - [3]byte{0, 192, 21}: "NEW MEDIA CORPORATION", - [3]byte{0, 192, 22}: "ELECTRONIC THEATRE CONTROLS", - [3]byte{0, 192, 23}: "Fluke Corporation", - [3]byte{0, 192, 24}: "LANART CORPORATION", - [3]byte{0, 192, 25}: "LEAP TECHNOLOGY, INC.", - [3]byte{0, 192, 26}: "COROMETRICS MEDICAL SYSTEMS", - [3]byte{0, 192, 27}: "SOCKET COMMUNICATIONS, INC.", - [3]byte{0, 192, 28}: "INTERLINK COMMUNICATIONS LTD.", - [3]byte{0, 192, 29}: "GRAND JUNCTION NETWORKS, INC.", - [3]byte{0, 192, 30}: "LA FRANCAISE DES JEUX", - [3]byte{0, 192, 31}: "S.E.R.C.E.L.", - [3]byte{0, 192, 32}: "ARCO ELECTRONIC, CONTROL LTD.", - [3]byte{0, 192, 33}: "NETEXPRESS", - [3]byte{0, 192, 34}: "LASERMASTER TECHNOLOGIES, INC.", - [3]byte{0, 192, 35}: "TUTANKHAMON ELECTRONICS", - [3]byte{0, 192, 36}: "EDEN SISTEMAS DE COMPUTACAO SA", - [3]byte{0, 192, 37}: "DATAPRODUCTS CORPORATION", - [3]byte{0, 192, 38}: "LANS TECHNOLOGY CO., LTD.", - [3]byte{0, 192, 39}: "CIPHER SYSTEMS, INC.", - [3]byte{0, 192, 40}: "JASCO CORPORATION", - [3]byte{0, 192, 41}: "Nexans Deutschland GmbH - ANS", - [3]byte{0, 192, 42}: "OHKURA ELECTRIC CO., LTD.", - [3]byte{0, 192, 43}: "GERLOFF GESELLSCHAFT FUR", - [3]byte{0, 192, 44}: "CENTRUM COMMUNICATIONS, INC.", - [3]byte{0, 192, 45}: "FUJI PHOTO FILM CO., LTD.", - [3]byte{0, 192, 46}: "NETWIZ", - [3]byte{0, 192, 47}: "OKUMA CORPORATION", - [3]byte{0, 192, 48}: "INTEGRATED ENGINEERING B. V.", - [3]byte{0, 192, 49}: "DESIGN RESEARCH SYSTEMS, INC.", - [3]byte{0, 192, 50}: "I-CUBED LIMITED", - [3]byte{0, 192, 51}: "TELEBIT COMMUNICATIONS APS", - [3]byte{0, 192, 52}: "TRANSACTION NETWORK", - [3]byte{0, 192, 53}: "QUINTAR COMPANY", - [3]byte{0, 192, 54}: "RAYTECH ELECTRONIC CORP.", - [3]byte{0, 192, 55}: "DYNATEM", - [3]byte{0, 192, 56}: "RASTER IMAGE PROCESSING SYSTEM", - [3]byte{0, 192, 57}: "Teridian Semiconductor Corporation", - [3]byte{0, 192, 58}: "MEN-MIKRO ELEKTRONIK GMBH", - [3]byte{0, 192, 59}: "MULTIACCESS COMPUTING CORP.", - [3]byte{0, 192, 60}: "TOWER TECH S.R.L.", - [3]byte{0, 192, 61}: "WIESEMANN & THEIS GMBH", - [3]byte{0, 192, 62}: "FA. GEBR. HELLER GMBH", - [3]byte{0, 192, 63}: "STORES AUTOMATED SYSTEMS, INC.", - [3]byte{0, 192, 64}: "ECCI", - [3]byte{0, 192, 65}: "DIGITAL TRANSMISSION SYSTEMS", - [3]byte{0, 192, 66}: "DATALUX CORP.", - [3]byte{0, 192, 67}: "STRATACOM", - [3]byte{0, 192, 68}: "EMCOM CORPORATION", - [3]byte{0, 192, 69}: "ISOLATION SYSTEMS, LTD.", - [3]byte{0, 192, 70}: "Blue Chip Technology Ltd", - [3]byte{0, 192, 71}: "UNIMICRO SYSTEMS, INC.", - [3]byte{0, 192, 72}: "BAY TECHNICAL ASSOCIATES", - [3]byte{0, 192, 73}: "U.S. ROBOTICS, INC.", - [3]byte{0, 192, 74}: "GROUP 2000 AG", - [3]byte{0, 192, 75}: "CREATIVE MICROSYSTEMS", - [3]byte{0, 192, 76}: "DEPARTMENT OF FOREIGN AFFAIRS", - [3]byte{0, 192, 77}: "MITEC, INC.", - [3]byte{0, 192, 78}: "COMTROL CORPORATION", - [3]byte{0, 192, 79}: "DELL COMPUTER CORPORATION", - [3]byte{0, 192, 80}: "TOYO DENKI SEIZO K.K.", - [3]byte{0, 192, 81}: "ADVANCED INTEGRATION RESEARCH", - [3]byte{0, 192, 82}: "BURR-BROWN", - [3]byte{0, 192, 83}: "Aspect Software Inc.", - [3]byte{0, 192, 84}: "NETWORK PERIPHERALS, LTD.", - [3]byte{0, 192, 85}: "MODULAR COMPUTING TECHNOLOGIES", - [3]byte{0, 192, 86}: "SOMELEC", - [3]byte{0, 192, 87}: "MYCO ELECTRONICS", - [3]byte{0, 192, 88}: "DATAEXPERT CORP.", - [3]byte{0, 192, 89}: "DENSO CORPORATION", - [3]byte{0, 192, 90}: "SEMAPHORE COMMUNICATIONS CORP.", - [3]byte{0, 192, 91}: "NETWORKS NORTHWEST, INC.", - [3]byte{0, 192, 92}: "ELONEX PLC", - [3]byte{0, 192, 93}: "L&N TECHNOLOGIES", - [3]byte{0, 192, 94}: "VARI-LITE, INC.", - [3]byte{0, 192, 95}: "FINE-PAL COMPANY LIMITED", - [3]byte{0, 192, 96}: "ID SCANDINAVIA AS", - [3]byte{0, 192, 97}: "SOLECTEK CORPORATION", - [3]byte{0, 192, 98}: "IMPULSE TECHNOLOGY", - [3]byte{0, 192, 99}: "MORNING STAR TECHNOLOGIES, INC", - [3]byte{0, 192, 100}: "GENERAL DATACOMM IND. INC.", - [3]byte{0, 192, 101}: "SCOPE COMMUNICATIONS, INC.", - [3]byte{0, 192, 102}: "DOCUPOINT, INC.", - [3]byte{0, 192, 103}: "UNITED BARCODE INDUSTRIES", - [3]byte{0, 192, 104}: "HME Clear-Com LTD.", - [3]byte{0, 192, 105}: "Axxcelera Broadband Wireless", - [3]byte{0, 192, 106}: "ZAHNER-ELEKTRIK GMBH & CO. KG", - [3]byte{0, 192, 107}: "OSI PLUS CORPORATION", - [3]byte{0, 192, 108}: "SVEC COMPUTER CORP.", - [3]byte{0, 192, 109}: "BOCA RESEARCH, INC.", - [3]byte{0, 192, 110}: "HAFT TECHNOLOGY, INC.", - [3]byte{0, 192, 111}: "KOMATSU LTD.", - [3]byte{0, 192, 112}: "SECTRA SECURE-TRANSMISSION AB", - [3]byte{0, 192, 113}: "AREANEX COMMUNICATIONS, INC.", - [3]byte{0, 192, 114}: "KNX LTD.", - [3]byte{0, 192, 115}: "XEDIA CORPORATION", - [3]byte{0, 192, 116}: "TOYODA AUTOMATIC LOOM", - [3]byte{0, 192, 117}: "XANTE CORPORATION", - [3]byte{0, 192, 118}: "I-DATA INTERNATIONAL A-S", - [3]byte{0, 192, 119}: "DAEWOO TELECOM LTD.", - [3]byte{0, 192, 120}: "COMPUTER SYSTEMS ENGINEERING", - [3]byte{0, 192, 121}: "FONSYS CO.,LTD.", - [3]byte{0, 192, 122}: "PRIVA B.V.", - [3]byte{0, 192, 123}: "ASCEND COMMUNICATIONS, INC.", - [3]byte{0, 192, 124}: "HIGHTECH INFORMATION", - [3]byte{0, 192, 125}: "RISC DEVELOPMENTS LTD.", - [3]byte{0, 192, 126}: "KUBOTA CORPORATION ELECTRONIC", - [3]byte{0, 192, 127}: "NUPON COMPUTING CORP.", - [3]byte{0, 192, 128}: "NETSTAR, INC.", - [3]byte{0, 192, 129}: "METRODATA LTD.", - [3]byte{0, 192, 130}: "MOORE PRODUCTS CO.", - [3]byte{0, 192, 131}: "TRACE MOUNTAIN PRODUCTS, INC.", - [3]byte{0, 192, 132}: "DATA LINK CORP. LTD.", - [3]byte{0, 192, 133}: "ELECTRONICS FOR IMAGING, INC.", - [3]byte{0, 192, 134}: "THE LYNK CORPORATION", - [3]byte{0, 192, 135}: "UUNET TECHNOLOGIES, INC.", - [3]byte{0, 192, 136}: "EKF ELEKTRONIK GMBH", - [3]byte{0, 192, 137}: "TELINDUS DISTRIBUTION", - [3]byte{0, 192, 138}: "Lauterbach GmbH", - [3]byte{0, 192, 139}: "RISQ MODULAR SYSTEMS, INC.", - [3]byte{0, 192, 140}: "PERFORMANCE TECHNOLOGIES, INC.", - [3]byte{0, 192, 141}: "TRONIX PRODUCT DEVELOPMENT", - [3]byte{0, 192, 142}: "NETWORK INFORMATION TECHNOLOGY", - [3]byte{0, 192, 143}: "Panasonic Electric Works Co., Ltd.", - [3]byte{0, 192, 144}: "PRAIM S.R.L.", - [3]byte{0, 192, 145}: "JABIL CIRCUIT, INC.", - [3]byte{0, 192, 146}: "MENNEN MEDICAL INC.", - [3]byte{0, 192, 147}: "ALTA RESEARCH CORP.", - [3]byte{0, 192, 148}: "VMX INC.", - [3]byte{0, 192, 149}: "ZNYX", - [3]byte{0, 192, 150}: "TAMURA CORPORATION", - [3]byte{0, 192, 151}: "ARCHIPEL SA", - [3]byte{0, 192, 152}: "CHUNTEX ELECTRONIC CO., LTD.", - [3]byte{0, 192, 153}: "YOSHIKI INDUSTRIAL CO.,LTD.", - [3]byte{0, 192, 154}: "PHOTONICS CORPORATION", - [3]byte{0, 192, 155}: "RELIANCE COMM/TEC, R-TEC", - [3]byte{0, 192, 156}: "HIOKI E.E. CORPORATION", - [3]byte{0, 192, 157}: "DISTRIBUTED SYSTEMS INT'L, INC", - [3]byte{0, 192, 158}: "CACHE COMPUTERS, INC.", - [3]byte{0, 192, 159}: "QUANTA COMPUTER, INC.", - [3]byte{0, 192, 160}: "ADVANCE MICRO RESEARCH, INC.", - [3]byte{0, 192, 161}: "TOKYO DENSHI SEKEI CO.", - [3]byte{0, 192, 162}: "INTERMEDIUM A/S", - [3]byte{0, 192, 163}: "DUAL ENTERPRISES CORPORATION", - [3]byte{0, 192, 164}: "UNIGRAF OY", - [3]byte{0, 192, 165}: "DICKENS DATA SYSTEMS", - [3]byte{0, 192, 166}: "EXICOM AUSTRALIA PTY. LTD", - [3]byte{0, 192, 167}: "SEEL LTD.", - [3]byte{0, 192, 168}: "GVC CORPORATION", - [3]byte{0, 192, 169}: "BARRON MCCANN LTD.", - [3]byte{0, 192, 170}: "SILICON VALLEY COMPUTER", - [3]byte{0, 192, 171}: "Telco Systems, Inc.", - [3]byte{0, 192, 172}: "GAMBIT COMPUTER COMMUNICATIONS", - [3]byte{0, 192, 173}: "MARBEN COMMUNICATION SYSTEMS", - [3]byte{0, 192, 174}: "TOWERCOM CO. INC. DBA PC HOUSE", - [3]byte{0, 192, 175}: "TEKLOGIX INC.", - [3]byte{0, 192, 176}: "GCC TECHNOLOGIES,INC.", - [3]byte{0, 192, 177}: "GENIUS NET CO.", - [3]byte{0, 192, 178}: "NORAND CORPORATION", - [3]byte{0, 192, 179}: "COMSTAT DATACOMM CORPORATION", - [3]byte{0, 192, 180}: "MYSON TECHNOLOGY, INC.", - [3]byte{0, 192, 181}: "CORPORATE NETWORK SYSTEMS,INC.", - [3]byte{0, 192, 182}: "Overland Storage, Inc.", - [3]byte{0, 192, 183}: "AMERICAN POWER CONVERSION CORP", - [3]byte{0, 192, 184}: "FRASER'S HILL LTD.", - [3]byte{0, 192, 185}: "FUNK SOFTWARE, INC.", - [3]byte{0, 192, 186}: "NETVANTAGE", - [3]byte{0, 192, 187}: "FORVAL CREATIVE, INC.", - [3]byte{0, 192, 188}: "TELECOM AUSTRALIA/CSSC", - [3]byte{0, 192, 189}: "INEX TECHNOLOGIES, INC.", - [3]byte{0, 192, 190}: "ALCATEL - SEL", - [3]byte{0, 192, 191}: "TECHNOLOGY CONCEPTS, LTD.", - [3]byte{0, 192, 192}: "SHORE MICROSYSTEMS, INC.", - [3]byte{0, 192, 193}: "QUAD/GRAPHICS, INC.", - [3]byte{0, 192, 194}: "INFINITE NETWORKS LTD.", - [3]byte{0, 192, 195}: "ACUSON COMPUTED SONOGRAPHY", - [3]byte{0, 192, 196}: "COMPUTER OPERATIONAL", - [3]byte{0, 192, 197}: "SID INFORMATICA", - [3]byte{0, 192, 198}: "PERSONAL MEDIA CORP.", - [3]byte{0, 192, 199}: "SPARKTRUM MICROSYSTEMS, INC.", - [3]byte{0, 192, 200}: "MICRO BYTE PTY. LTD.", - [3]byte{0, 192, 201}: "ELSAG BAILEY PROCESS", - [3]byte{0, 192, 202}: "ALFA, INC.", - [3]byte{0, 192, 203}: "CONTROL TECHNOLOGY CORPORATION", - [3]byte{0, 192, 204}: "TELESCIENCES CO SYSTEMS, INC.", - [3]byte{0, 192, 205}: "COMELTA, S.A.", - [3]byte{0, 192, 206}: "CEI SYSTEMS & ENGINEERING PTE", - [3]byte{0, 192, 207}: "IMATRAN VOIMA OY", - [3]byte{0, 192, 208}: "RATOC SYSTEM INC.", - [3]byte{0, 192, 209}: "COMTREE TECHNOLOGY CORPORATION", - [3]byte{0, 192, 210}: "SYNTELLECT, INC.", - [3]byte{0, 192, 211}: "OLYMPUS IMAGE SYSTEMS, INC.", - [3]byte{0, 192, 212}: "AXON NETWORKS, INC.", - [3]byte{0, 192, 213}: "Werbeagentur Jürgen Siebert", - [3]byte{0, 192, 214}: "J1 SYSTEMS, INC.", - [3]byte{0, 192, 215}: "TAIWAN TRADING CENTER DBA", - [3]byte{0, 192, 216}: "UNIVERSAL DATA SYSTEMS", - [3]byte{0, 192, 217}: "QUINTE NETWORK CONFIDENTIALITY", - [3]byte{0, 192, 218}: "NICE SYSTEMS LTD.", - [3]byte{0, 192, 219}: "IPC CORPORATION (PTE) LTD.", - [3]byte{0, 192, 220}: "EOS TECHNOLOGIES, INC.", - [3]byte{0, 192, 221}: "QLogic Corporation", - [3]byte{0, 192, 222}: "ZCOMM, INC.", - [3]byte{0, 192, 223}: "KYE Systems Corp.", - [3]byte{0, 192, 224}: "DSC COMMUNICATION CORP.", - [3]byte{0, 192, 225}: "SONIC SOLUTIONS", - [3]byte{0, 192, 226}: "CALCOMP, INC.", - [3]byte{0, 192, 227}: "OSITECH COMMUNICATIONS, INC.", - [3]byte{0, 192, 228}: "SIEMENS BUILDING", - [3]byte{0, 192, 229}: "GESPAC, S.A.", - [3]byte{0, 192, 230}: "Verilink Corporation", - [3]byte{0, 192, 231}: "FIBERDATA AB", - [3]byte{0, 192, 232}: "PLEXCOM, INC.", - [3]byte{0, 192, 233}: "OAK SOLUTIONS, LTD.", - [3]byte{0, 192, 234}: "ARRAY TECHNOLOGY LTD.", - [3]byte{0, 192, 235}: "SEH COMPUTERTECHNIK GMBH", - [3]byte{0, 192, 236}: "DAUPHIN TECHNOLOGY", - [3]byte{0, 192, 237}: "US ARMY ELECTRONIC", - [3]byte{0, 192, 238}: "KYOCERA CORPORATION", - [3]byte{0, 192, 239}: "ABIT CORPORATION", - [3]byte{0, 192, 240}: "KINGSTON TECHNOLOGY CORP.", - [3]byte{0, 192, 241}: "SHINKO ELECTRIC CO., LTD.", - [3]byte{0, 192, 242}: "TRANSITION NETWORKS", - [3]byte{0, 192, 243}: "NETWORK COMMUNICATIONS CORP.", - [3]byte{0, 192, 244}: "INTERLINK SYSTEM CO., LTD.", - [3]byte{0, 192, 245}: "METACOMP, INC.", - [3]byte{0, 192, 246}: "CELAN TECHNOLOGY INC.", - [3]byte{0, 192, 247}: "ENGAGE COMMUNICATION, INC.", - [3]byte{0, 192, 248}: "ABOUT COMPUTING INC.", - [3]byte{0, 192, 249}: "Artesyn Embedded Technologies", - [3]byte{0, 192, 250}: "CANARY COMMUNICATIONS, INC.", - [3]byte{0, 192, 251}: "ADVANCED TECHNOLOGY LABS", - [3]byte{0, 192, 252}: "ELASTIC REALITY, INC.", - [3]byte{0, 192, 253}: "PROSUM", - [3]byte{0, 192, 254}: "APTEC COMPUTER SYSTEMS, INC.", - [3]byte{0, 192, 255}: "DOT HILL SYSTEMS CORPORATION", - [3]byte{0, 193, 79}: "DDL Co,.ltd.", - [3]byte{0, 194, 198}: "Intel Corporate", - [3]byte{0, 197, 219}: "Datatech Sistemas Digitales Avanzados SL", - [3]byte{0, 198, 16}: "Apple", - [3]byte{0, 203, 189}: "Cambridge Broadband Networks Ltd.", - [3]byte{0, 205, 144}: "MAS Elektronik AG", - [3]byte{0, 207, 28}: "COMMUNICATION MACHINERY CORP.", - [3]byte{0, 208, 0}: "FERRAN SCIENTIFIC, INC.", - [3]byte{0, 208, 1}: "VST TECHNOLOGIES, INC.", - [3]byte{0, 208, 2}: "DITECH CORPORATION", - [3]byte{0, 208, 3}: "COMDA ENTERPRISES CORP.", - [3]byte{0, 208, 4}: "PENTACOM LTD.", - [3]byte{0, 208, 5}: "ZHS ZEITMANAGEMENTSYSTEME", - [3]byte{0, 208, 6}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 7}: "MIC ASSOCIATES, INC.", - [3]byte{0, 208, 8}: "MACTELL CORPORATION", - [3]byte{0, 208, 9}: "HSING TECH. ENTERPRISE CO. LTD", - [3]byte{0, 208, 10}: "LANACCESS TELECOM S.A.", - [3]byte{0, 208, 11}: "RHK TECHNOLOGY, INC.", - [3]byte{0, 208, 12}: "SNIJDER MICRO SYSTEMS", - [3]byte{0, 208, 13}: "MICROMERITICS INSTRUMENT", - [3]byte{0, 208, 14}: "PLURIS, INC.", - [3]byte{0, 208, 15}: "SPEECH DESIGN GMBH", - [3]byte{0, 208, 16}: "CONVERGENT NETWORKS, INC.", - [3]byte{0, 208, 17}: "PRISM VIDEO, INC.", - [3]byte{0, 208, 18}: "GATEWORKS CORP.", - [3]byte{0, 208, 19}: "PRIMEX AEROSPACE COMPANY", - [3]byte{0, 208, 20}: "ROOT, INC.", - [3]byte{0, 208, 21}: "UNIVEX MICROTECHNOLOGY CORP.", - [3]byte{0, 208, 22}: "SCM MICROSYSTEMS, INC.", - [3]byte{0, 208, 23}: "SYNTECH INFORMATION CO., LTD.", - [3]byte{0, 208, 24}: "QWES. COM, INC.", - [3]byte{0, 208, 25}: "DAINIPPON SCREEN CORPORATE", - [3]byte{0, 208, 26}: "URMET TLC S.P.A.", - [3]byte{0, 208, 27}: "MIMAKI ENGINEERING CO., LTD.", - [3]byte{0, 208, 28}: "SBS TECHNOLOGIES,", - [3]byte{0, 208, 29}: "FURUNO ELECTRIC CO., LTD.", - [3]byte{0, 208, 30}: "PINGTEL CORP.", - [3]byte{0, 208, 31}: "Senetas Security", - [3]byte{0, 208, 32}: "AIM SYSTEM, INC.", - [3]byte{0, 208, 33}: "REGENT ELECTRONICS CORP.", - [3]byte{0, 208, 34}: "INCREDIBLE TECHNOLOGIES, INC.", - [3]byte{0, 208, 35}: "INFORTREND TECHNOLOGY, INC.", - [3]byte{0, 208, 36}: "Cognex Corporation", - [3]byte{0, 208, 37}: "XROSSTECH, INC.", - [3]byte{0, 208, 38}: "HIRSCHMANN AUSTRIA GMBH", - [3]byte{0, 208, 39}: "APPLIED AUTOMATION, INC.", - [3]byte{0, 208, 40}: "Harmonic, Inc", - [3]byte{0, 208, 41}: "WAKEFERN FOOD CORPORATION", - [3]byte{0, 208, 42}: "Voxent Systems Ltd.", - [3]byte{0, 208, 43}: "JETCELL, INC.", - [3]byte{0, 208, 44}: "CAMPBELL SCIENTIFIC, INC.", - [3]byte{0, 208, 45}: "ADEMCO", - [3]byte{0, 208, 46}: "COMMUNICATION AUTOMATION CORP.", - [3]byte{0, 208, 47}: "VLSI TECHNOLOGY INC.", - [3]byte{0, 208, 48}: "Safetran Systems Corp", - [3]byte{0, 208, 49}: "INDUSTRIAL LOGIC CORPORATION", - [3]byte{0, 208, 50}: "YANO ELECTRIC CO., LTD.", - [3]byte{0, 208, 51}: "DALIAN DAXIAN NETWORK", - [3]byte{0, 208, 52}: "ORMEC SYSTEMS CORP.", - [3]byte{0, 208, 53}: "BEHAVIOR TECH. COMPUTER CORP.", - [3]byte{0, 208, 54}: "TECHNOLOGY ATLANTA CORP.", - [3]byte{0, 208, 55}: "Pace France", - [3]byte{0, 208, 56}: "FIVEMERE, LTD.", - [3]byte{0, 208, 57}: "UTILICOM, INC.", - [3]byte{0, 208, 58}: "ZONEWORX, INC.", - [3]byte{0, 208, 59}: "VISION PRODUCTS PTY. LTD.", - [3]byte{0, 208, 60}: "Vieo, Inc.", - [3]byte{0, 208, 61}: "GALILEO TECHNOLOGY, LTD.", - [3]byte{0, 208, 62}: "ROCKETCHIPS, INC.", - [3]byte{0, 208, 63}: "AMERICAN COMMUNICATION", - [3]byte{0, 208, 64}: "SYSMATE CO., LTD.", - [3]byte{0, 208, 65}: "AMIGO TECHNOLOGY CO., LTD.", - [3]byte{0, 208, 66}: "MAHLO GMBH & CO. UG", - [3]byte{0, 208, 67}: "ZONAL RETAIL DATA SYSTEMS", - [3]byte{0, 208, 68}: "ALIDIAN NETWORKS, INC.", - [3]byte{0, 208, 69}: "KVASER AB", - [3]byte{0, 208, 70}: "DOLBY LABORATORIES, INC.", - [3]byte{0, 208, 71}: "XN TECHNOLOGIES", - [3]byte{0, 208, 72}: "ECTON, INC.", - [3]byte{0, 208, 73}: "IMPRESSTEK CO., LTD.", - [3]byte{0, 208, 74}: "PRESENCE TECHNOLOGY GMBH", - [3]byte{0, 208, 75}: "LA CIE GROUP S.A.", - [3]byte{0, 208, 76}: "EUROTEL TELECOM LTD.", - [3]byte{0, 208, 77}: "DIV OF RESEARCH & STATISTICS", - [3]byte{0, 208, 78}: "LOGIBAG", - [3]byte{0, 208, 79}: "BITRONICS, INC.", - [3]byte{0, 208, 80}: "ISKRATEL", - [3]byte{0, 208, 81}: "O2 MICRO, INC.", - [3]byte{0, 208, 82}: "ASCEND COMMUNICATIONS, INC.", - [3]byte{0, 208, 83}: "CONNECTED SYSTEMS", - [3]byte{0, 208, 84}: "SAS INSTITUTE INC.", - [3]byte{0, 208, 85}: "KATHREIN-WERKE KG", - [3]byte{0, 208, 86}: "SOMAT CORPORATION", - [3]byte{0, 208, 87}: "ULTRAK, INC.", - [3]byte{0, 208, 88}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 89}: "AMBIT MICROSYSTEMS CORP.", - [3]byte{0, 208, 90}: "SYMBIONICS, LTD.", - [3]byte{0, 208, 91}: "ACROLOOP MOTION CONTROL", - [3]byte{0, 208, 92}: "TECHNOTREND SYSTEMTECHNIK GMBH", - [3]byte{0, 208, 93}: "INTELLIWORXX, INC.", - [3]byte{0, 208, 94}: "STRATABEAM TECHNOLOGY, INC.", - [3]byte{0, 208, 95}: "VALCOM, INC.", - [3]byte{0, 208, 96}: "Panasonic Europe Ltd.", - [3]byte{0, 208, 97}: "TREMON ENTERPRISES CO., LTD.", - [3]byte{0, 208, 98}: "DIGIGRAM", - [3]byte{0, 208, 99}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 100}: "MULTITEL", - [3]byte{0, 208, 101}: "TOKO ELECTRIC", - [3]byte{0, 208, 102}: "WINTRISS ENGINEERING CORP.", - [3]byte{0, 208, 103}: "CAMPIO COMMUNICATIONS", - [3]byte{0, 208, 104}: "IWILL CORPORATION", - [3]byte{0, 208, 105}: "TECHNOLOGIC SYSTEMS", - [3]byte{0, 208, 106}: "LINKUP SYSTEMS CORPORATION", - [3]byte{0, 208, 107}: "SR TELECOM INC.", - [3]byte{0, 208, 108}: "SHAREWAVE, INC.", - [3]byte{0, 208, 109}: "ACRISON, INC.", - [3]byte{0, 208, 110}: "TRENDVIEW RECORDERS LTD.", - [3]byte{0, 208, 111}: "KMC CONTROLS", - [3]byte{0, 208, 112}: "LONG WELL ELECTRONICS CORP.", - [3]byte{0, 208, 113}: "ECHELON CORP.", - [3]byte{0, 208, 114}: "BROADLOGIC", - [3]byte{0, 208, 115}: "ACN ADVANCED COMMUNICATIONS", - [3]byte{0, 208, 116}: "TAQUA SYSTEMS, INC.", - [3]byte{0, 208, 117}: "ALARIS MEDICAL SYSTEMS, INC.", - [3]byte{0, 208, 118}: "Bank of America", - [3]byte{0, 208, 119}: "LUCENT TECHNOLOGIES", - [3]byte{0, 208, 120}: "Eltex of Sweden AB", - [3]byte{0, 208, 121}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 122}: "AMAQUEST COMPUTER CORP.", - [3]byte{0, 208, 123}: "COMCAM INTERNATIONAL INC", - [3]byte{0, 208, 124}: "KOYO ELECTRONICS INC. CO.,LTD.", - [3]byte{0, 208, 125}: "COSINE COMMUNICATIONS", - [3]byte{0, 208, 126}: "KEYCORP LTD.", - [3]byte{0, 208, 127}: "STRATEGY & TECHNOLOGY, LIMITED", - [3]byte{0, 208, 128}: "EXABYTE CORPORATION", - [3]byte{0, 208, 129}: "RTD Embedded Technologies, Inc.", - [3]byte{0, 208, 130}: "IOWAVE INC.", - [3]byte{0, 208, 131}: "INVERTEX, INC.", - [3]byte{0, 208, 132}: "NEXCOMM SYSTEMS, INC.", - [3]byte{0, 208, 133}: "OTIS ELEVATOR COMPANY", - [3]byte{0, 208, 134}: "FOVEON, INC.", - [3]byte{0, 208, 135}: "MICROFIRST INC.", - [3]byte{0, 208, 136}: "ARRIS Group, Inc.", - [3]byte{0, 208, 137}: "DYNACOLOR, INC.", - [3]byte{0, 208, 138}: "PHOTRON USA", - [3]byte{0, 208, 139}: "ADVA Optical Networking Ltd.", - [3]byte{0, 208, 140}: "GENOA TECHNOLOGY, INC.", - [3]byte{0, 208, 141}: "PHOENIX GROUP, INC.", - [3]byte{0, 208, 142}: "NVISION INC.", - [3]byte{0, 208, 143}: "ARDENT TECHNOLOGIES, INC.", - [3]byte{0, 208, 144}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 145}: "SMARTSAN SYSTEMS, INC.", - [3]byte{0, 208, 146}: "GLENAYRE WESTERN MULTIPLEX", - [3]byte{0, 208, 147}: "TQ - COMPONENTS GMBH", - [3]byte{0, 208, 148}: "TIMELINE VISTA, INC.", - [3]byte{0, 208, 149}: "Alcatel-Lucent, Enterprise Business Group", - [3]byte{0, 208, 150}: "3COM EUROPE LTD.", - [3]byte{0, 208, 151}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 152}: "Photon Dynamics Canada Inc.", - [3]byte{0, 208, 153}: "Elcard Wireless Systems Oy", - [3]byte{0, 208, 154}: "FILANET CORPORATION", - [3]byte{0, 208, 155}: "SPECTEL LTD.", - [3]byte{0, 208, 156}: "KAPADIA COMMUNICATIONS", - [3]byte{0, 208, 157}: "VERIS INDUSTRIES", - [3]byte{0, 208, 158}: "2WIRE, INC.", - [3]byte{0, 208, 159}: "NOVTEK TEST SYSTEMS", - [3]byte{0, 208, 160}: "MIPS DENMARK", - [3]byte{0, 208, 161}: "OSKAR VIERLING GMBH + CO. KG", - [3]byte{0, 208, 162}: "INTEGRATED DEVICE", - [3]byte{0, 208, 163}: "VOCAL DATA, INC.", - [3]byte{0, 208, 164}: "ALANTRO COMMUNICATIONS", - [3]byte{0, 208, 165}: "AMERICAN ARIUM", - [3]byte{0, 208, 166}: "LANBIRD TECHNOLOGY CO., LTD.", - [3]byte{0, 208, 167}: "TOKYO SOKKI KENKYUJO CO., LTD.", - [3]byte{0, 208, 168}: "NETWORK ENGINES, INC.", - [3]byte{0, 208, 169}: "SHINANO KENSHI CO., LTD.", - [3]byte{0, 208, 170}: "CHASE COMMUNICATIONS", - [3]byte{0, 208, 171}: "DELTAKABEL TELECOM CV", - [3]byte{0, 208, 172}: "GRAYSON WIRELESS", - [3]byte{0, 208, 173}: "TL INDUSTRIES", - [3]byte{0, 208, 174}: "ORESIS COMMUNICATIONS, INC.", - [3]byte{0, 208, 175}: "CUTLER-HAMMER, INC.", - [3]byte{0, 208, 176}: "BITSWITCH LTD.", - [3]byte{0, 208, 177}: "OMEGA ELECTRONICS SA", - [3]byte{0, 208, 178}: "XIOTECH CORPORATION", - [3]byte{0, 208, 179}: "DRS Technologies Canada Ltd", - [3]byte{0, 208, 180}: "KATSUJIMA CO., LTD.", - [3]byte{0, 208, 181}: "IPricot formerly DotCom", - [3]byte{0, 208, 182}: "CRESCENT NETWORKS, INC.", - [3]byte{0, 208, 183}: "INTEL CORPORATION", - [3]byte{0, 208, 184}: "Iomega Corporation", - [3]byte{0, 208, 185}: "MICROTEK INTERNATIONAL, INC.", - [3]byte{0, 208, 186}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 187}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 188}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 189}: "Silicon Image GmbH", - [3]byte{0, 208, 190}: "EMUTEC INC.", - [3]byte{0, 208, 191}: "PIVOTAL TECHNOLOGIES", - [3]byte{0, 208, 192}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 193}: "HARMONIC DATA SYSTEMS, LTD.", - [3]byte{0, 208, 194}: "BALTHAZAR TECHNOLOGY AB", - [3]byte{0, 208, 195}: "VIVID TECHNOLOGY PTE, LTD.", - [3]byte{0, 208, 196}: "TERATECH CORPORATION", - [3]byte{0, 208, 197}: "COMPUTATIONAL SYSTEMS, INC.", - [3]byte{0, 208, 198}: "THOMAS & BETTS CORP.", - [3]byte{0, 208, 199}: "PATHWAY, INC.", - [3]byte{0, 208, 200}: "Prevas A/S", - [3]byte{0, 208, 201}: "ADVANTECH CO., LTD.", - [3]byte{0, 208, 202}: "Intrinsyc Software International Inc.", - [3]byte{0, 208, 203}: "DASAN CO., LTD.", - [3]byte{0, 208, 204}: "TECHNOLOGIES LYRE INC.", - [3]byte{0, 208, 205}: "ATAN TECHNOLOGY INC.", - [3]byte{0, 208, 206}: "ASYST ELECTRONIC", - [3]byte{0, 208, 207}: "MORETON BAY", - [3]byte{0, 208, 208}: "ZHONGXING TELECOM LTD.", - [3]byte{0, 208, 209}: "Sycamore Networks", - [3]byte{0, 208, 210}: "EPILOG CORPORATION", - [3]byte{0, 208, 211}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 212}: "V-BITS, INC.", - [3]byte{0, 208, 213}: "GRUNDIG AG", - [3]byte{0, 208, 214}: "AETHRA TELECOMUNICAZIONI", - [3]byte{0, 208, 215}: "B2C2, INC.", - [3]byte{0, 208, 216}: "3Com Corporation", - [3]byte{0, 208, 217}: "DEDICATED MICROCOMPUTERS", - [3]byte{0, 208, 218}: "TAICOM DATA SYSTEMS CO., LTD.", - [3]byte{0, 208, 219}: "MCQUAY INTERNATIONAL", - [3]byte{0, 208, 220}: "MODULAR MINING SYSTEMS, INC.", - [3]byte{0, 208, 221}: "SUNRISE TELECOM, INC.", - [3]byte{0, 208, 222}: "PHILIPS MULTIMEDIA NETWORK", - [3]byte{0, 208, 223}: "KUZUMI ELECTRONICS, INC.", - [3]byte{0, 208, 224}: "DOOIN ELECTRONICS CO.", - [3]byte{0, 208, 225}: "AVIONITEK ISRAEL INC.", - [3]byte{0, 208, 226}: "MRT MICRO, INC.", - [3]byte{0, 208, 227}: "ELE-CHEM ENGINEERING CO., LTD.", - [3]byte{0, 208, 228}: "CISCO SYSTEMS, INC.", - [3]byte{0, 208, 229}: "SOLIDUM SYSTEMS CORP.", - [3]byte{0, 208, 230}: "IBOND INC.", - [3]byte{0, 208, 231}: "VCON TELECOMMUNICATION LTD.", - [3]byte{0, 208, 232}: "MAC SYSTEM CO., LTD.", - [3]byte{0, 208, 233}: "Advantage Century Telecommunication Corp.", - [3]byte{0, 208, 234}: "NEXTONE COMMUNICATIONS, INC.", - [3]byte{0, 208, 235}: "LIGHTERA NETWORKS, INC.", - [3]byte{0, 208, 236}: "NAKAYO TELECOMMUNICATIONS, INC", - [3]byte{0, 208, 237}: "XIOX", - [3]byte{0, 208, 238}: "DICTAPHONE CORPORATION", - [3]byte{0, 208, 239}: "IGT", - [3]byte{0, 208, 240}: "CONVISION TECHNOLOGY GMBH", - [3]byte{0, 208, 241}: "SEGA ENTERPRISES, LTD.", - [3]byte{0, 208, 242}: "MONTEREY NETWORKS", - [3]byte{0, 208, 243}: "SOLARI DI UDINE SPA", - [3]byte{0, 208, 244}: "CARINTHIAN TECH INSTITUTE", - [3]byte{0, 208, 245}: "ORANGE MICRO, INC.", - [3]byte{0, 208, 246}: "Alcatel Canada", - [3]byte{0, 208, 247}: "NEXT NETS CORPORATION", - [3]byte{0, 208, 248}: "FUJIAN STAR TERMINAL", - [3]byte{0, 208, 249}: "ACUTE COMMUNICATIONS CORP.", - [3]byte{0, 208, 250}: "Thales e-Security Ltd.", - [3]byte{0, 208, 251}: "TEK MICROSYSTEMS, INCORPORATED", - [3]byte{0, 208, 252}: "GRANITE MICROSYSTEMS", - [3]byte{0, 208, 253}: "OPTIMA TELE.COM, INC.", - [3]byte{0, 208, 254}: "ASTRAL POINT", - [3]byte{0, 208, 255}: "CISCO SYSTEMS, INC.", - [3]byte{0, 209, 28}: "ACETEL", - [3]byte{0, 211, 141}: "Hotel Technology Next Generation", - [3]byte{0, 214, 50}: "GE Energy", - [3]byte{0, 217, 209}: "Sony Computer Entertainment Inc.", - [3]byte{0, 219, 30}: "Albedo Telecom SL", - [3]byte{0, 219, 69}: "THAMWAY CO.,LTD.", - [3]byte{0, 219, 223}: "Intel Corporate", - [3]byte{0, 221, 0}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 1}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 2}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 3}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 4}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 5}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 6}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 7}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 8}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 9}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 10}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 11}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 12}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 13}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 14}: "UNGERMANN-BASS INC.", - [3]byte{0, 221, 15}: "UNGERMANN-BASS INC.", - [3]byte{0, 222, 251}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 0}: "Fujitsu Limited", - [3]byte{0, 224, 1}: "STRAND LIGHTING LIMITED", - [3]byte{0, 224, 2}: "CROSSROADS SYSTEMS, INC.", - [3]byte{0, 224, 3}: "NOKIA WIRELESS BUSINESS COMMUN", - [3]byte{0, 224, 4}: "PMC-SIERRA, INC.", - [3]byte{0, 224, 5}: "TECHNICAL CORP.", - [3]byte{0, 224, 6}: "SILICON INTEGRATED SYS. CORP.", - [3]byte{0, 224, 7}: "Avaya ECS Ltd", - [3]byte{0, 224, 8}: "AMAZING CONTROLS! INC.", - [3]byte{0, 224, 9}: "MARATHON TECHNOLOGIES CORP.", - [3]byte{0, 224, 10}: "DIBA, INC.", - [3]byte{0, 224, 11}: "ROOFTOP COMMUNICATIONS CORP.", - [3]byte{0, 224, 12}: "MOTOROLA", - [3]byte{0, 224, 13}: "RADIANT SYSTEMS", - [3]byte{0, 224, 14}: "AVALON IMAGING SYSTEMS, INC.", - [3]byte{0, 224, 15}: "SHANGHAI BAUD DATA", - [3]byte{0, 224, 16}: "HESS SB-AUTOMATENBAU GmbH", - [3]byte{0, 224, 17}: "Uniden Corporation", - [3]byte{0, 224, 18}: "PLUTO TECHNOLOGIES INTERNATIONAL INC.", - [3]byte{0, 224, 19}: "EASTERN ELECTRONIC CO., LTD.", - [3]byte{0, 224, 20}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 21}: "HEIWA CORPORATION", - [3]byte{0, 224, 22}: "RAPID CITY COMMUNICATIONS", - [3]byte{0, 224, 23}: "EXXACT GmbH", - [3]byte{0, 224, 24}: "ASUSTEK COMPUTER INC.", - [3]byte{0, 224, 25}: "ING. GIORDANO ELETTRONICA", - [3]byte{0, 224, 26}: "COMTEC SYSTEMS. CO., LTD.", - [3]byte{0, 224, 27}: "SPHERE COMMUNICATIONS, INC.", - [3]byte{0, 224, 28}: "Cradlepoint, Inc", - [3]byte{0, 224, 29}: "WebTV NETWORKS, INC.", - [3]byte{0, 224, 30}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 31}: "AVIDIA Systems, Inc.", - [3]byte{0, 224, 32}: "TECNOMEN OY", - [3]byte{0, 224, 33}: "FREEGATE CORP.", - [3]byte{0, 224, 34}: "Analog Devices Inc.", - [3]byte{0, 224, 35}: "TELRAD", - [3]byte{0, 224, 36}: "GADZOOX NETWORKS", - [3]byte{0, 224, 37}: "dit Co., Ltd.", - [3]byte{0, 224, 38}: "Redlake MASD LLC", - [3]byte{0, 224, 39}: "DUX, INC.", - [3]byte{0, 224, 40}: "APTIX CORPORATION", - [3]byte{0, 224, 41}: "STANDARD MICROSYSTEMS CORP.", - [3]byte{0, 224, 42}: "TANDBERG TELEVISION AS", - [3]byte{0, 224, 43}: "EXTREME NETWORKS", - [3]byte{0, 224, 44}: "AST COMPUTER", - [3]byte{0, 224, 45}: "InnoMediaLogic, Inc.", - [3]byte{0, 224, 46}: "SPC ELECTRONICS CORPORATION", - [3]byte{0, 224, 47}: "MCNS HOLDINGS, L.P.", - [3]byte{0, 224, 48}: "MELITA INTERNATIONAL CORP.", - [3]byte{0, 224, 49}: "HAGIWARA ELECTRIC CO., LTD.", - [3]byte{0, 224, 50}: "MISYS FINANCIAL SYSTEMS, LTD.", - [3]byte{0, 224, 51}: "E.E.P.D. GmbH", - [3]byte{0, 224, 52}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 53}: "Artesyn Embedded Technologies", - [3]byte{0, 224, 54}: "PIONEER CORPORATION", - [3]byte{0, 224, 55}: "CENTURY CORPORATION", - [3]byte{0, 224, 56}: "PROXIMA CORPORATION", - [3]byte{0, 224, 57}: "PARADYNE CORP.", - [3]byte{0, 224, 58}: "CABLETRON SYSTEMS, INC.", - [3]byte{0, 224, 59}: "PROMINET CORPORATION", - [3]byte{0, 224, 60}: "AdvanSys", - [3]byte{0, 224, 61}: "FOCON ELECTRONIC SYSTEMS A/S", - [3]byte{0, 224, 62}: "ALFATECH, INC.", - [3]byte{0, 224, 63}: "JATON CORPORATION", - [3]byte{0, 224, 64}: "DeskStation Technology, Inc.", - [3]byte{0, 224, 65}: "CSPI", - [3]byte{0, 224, 66}: "Pacom Systems Ltd.", - [3]byte{0, 224, 67}: "VitalCom", - [3]byte{0, 224, 68}: "LSICS CORPORATION", - [3]byte{0, 224, 69}: "TOUCHWAVE, INC.", - [3]byte{0, 224, 70}: "BENTLY NEVADA CORP.", - [3]byte{0, 224, 71}: "InFocus Corporation", - [3]byte{0, 224, 72}: "SDL COMMUNICATIONS, INC.", - [3]byte{0, 224, 73}: "MICROWI ELECTRONIC GmbH", - [3]byte{0, 224, 74}: "ENHANCED MESSAGING SYSTEMS, INC", - [3]byte{0, 224, 75}: "JUMP INDUSTRIELLE COMPUTERTECHNIK GmbH", - [3]byte{0, 224, 76}: "REALTEK SEMICONDUCTOR CORP.", - [3]byte{0, 224, 77}: "INTERNET INITIATIVE JAPAN, INC", - [3]byte{0, 224, 78}: "SANYO DENKI CO., LTD.", - [3]byte{0, 224, 79}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 80}: "EXECUTONE INFORMATION SYSTEMS, INC.", - [3]byte{0, 224, 81}: "TALX CORPORATION", - [3]byte{0, 224, 82}: "Brocade Communications Systems, Inc", - [3]byte{0, 224, 83}: "CELLPORT LABS, INC.", - [3]byte{0, 224, 84}: "KODAI HITEC CO., LTD.", - [3]byte{0, 224, 85}: "INGENIERIA ELECTRONICA COMERCIAL INELCOM S.A.", - [3]byte{0, 224, 86}: "HOLONTECH CORPORATION", - [3]byte{0, 224, 87}: "HAN MICROTELECOM. CO., LTD.", - [3]byte{0, 224, 88}: "PHASE ONE DENMARK A/S", - [3]byte{0, 224, 89}: "CONTROLLED ENVIRONMENTS, LTD.", - [3]byte{0, 224, 90}: "GALEA NETWORK SECURITY", - [3]byte{0, 224, 91}: "WEST END SYSTEMS CORP.", - [3]byte{0, 224, 92}: "MATSUSHITA KOTOBUKI ELECTRONICS INDUSTRIES, LTD.", - [3]byte{0, 224, 93}: "UNITEC CO., LTD.", - [3]byte{0, 224, 94}: "JAPAN AVIATION ELECTRONICS INDUSTRY, LTD.", - [3]byte{0, 224, 95}: "e-Net, Inc.", - [3]byte{0, 224, 96}: "SHERWOOD", - [3]byte{0, 224, 97}: "EdgePoint Networks, Inc.", - [3]byte{0, 224, 98}: "HOST ENGINEERING", - [3]byte{0, 224, 99}: "CABLETRON - YAGO SYSTEMS, INC.", - [3]byte{0, 224, 100}: "SAMSUNG ELECTRONICS", - [3]byte{0, 224, 101}: "OPTICAL ACCESS INTERNATIONAL", - [3]byte{0, 224, 102}: "ProMax Systems, Inc.", - [3]byte{0, 224, 103}: "eac AUTOMATION-CONSULTING GmbH", - [3]byte{0, 224, 104}: "MERRIMAC SYSTEMS INC.", - [3]byte{0, 224, 105}: "JAYCOR", - [3]byte{0, 224, 106}: "KAPSCH AG", - [3]byte{0, 224, 107}: "W&G SPECIAL PRODUCTS", - [3]byte{0, 224, 108}: "Ultra Electronics Limited (AEP Networks)", - [3]byte{0, 224, 109}: "COMPUWARE CORPORATION", - [3]byte{0, 224, 110}: "FAR SYSTEMS S.p.A.", - [3]byte{0, 224, 111}: "ARRIS Group, Inc.", - [3]byte{0, 224, 112}: "DH TECHNOLOGY", - [3]byte{0, 224, 113}: "EPIS MICROCOMPUTER", - [3]byte{0, 224, 114}: "LYNK", - [3]byte{0, 224, 115}: "NATIONAL AMUSEMENT NETWORK, INC.", - [3]byte{0, 224, 116}: "TIERNAN COMMUNICATIONS, INC.", - [3]byte{0, 224, 117}: "Verilink Corporation", - [3]byte{0, 224, 118}: "DEVELOPMENT CONCEPTS, INC.", - [3]byte{0, 224, 119}: "WEBGEAR, INC.", - [3]byte{0, 224, 120}: "BERKELEY NETWORKS", - [3]byte{0, 224, 121}: "A.T.N.R.", - [3]byte{0, 224, 122}: "MIKRODIDAKT AB", - [3]byte{0, 224, 123}: "BAY NETWORKS", - [3]byte{0, 224, 124}: "METTLER-TOLEDO, INC.", - [3]byte{0, 224, 125}: "NETRONIX, INC.", - [3]byte{0, 224, 126}: "WALT DISNEY IMAGINEERING", - [3]byte{0, 224, 127}: "LOGISTISTEM s.r.l.", - [3]byte{0, 224, 128}: "CONTROL RESOURCES CORPORATION", - [3]byte{0, 224, 129}: "TYAN COMPUTER CORP.", - [3]byte{0, 224, 130}: "ANERMA", - [3]byte{0, 224, 131}: "JATO TECHNOLOGIES, INC.", - [3]byte{0, 224, 132}: "COMPULITE R&D", - [3]byte{0, 224, 133}: "GLOBAL MAINTECH, INC.", - [3]byte{0, 224, 134}: "Emerson Network Power, Avocent Division", - [3]byte{0, 224, 135}: "LeCroy - Networking Productions Division", - [3]byte{0, 224, 136}: "LTX-Credence CORPORATION", - [3]byte{0, 224, 137}: "ION Networks, Inc.", - [3]byte{0, 224, 138}: "GEC AVERY, LTD.", - [3]byte{0, 224, 139}: "QLogic Corp.", - [3]byte{0, 224, 140}: "NEOPARADIGM LABS, INC.", - [3]byte{0, 224, 141}: "PRESSURE SYSTEMS, INC.", - [3]byte{0, 224, 142}: "UTSTARCOM", - [3]byte{0, 224, 143}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 144}: "BECKMAN LAB. AUTOMATION DIV.", - [3]byte{0, 224, 145}: "LG ELECTRONICS, INC.", - [3]byte{0, 224, 146}: "ADMTEK INCORPORATED", - [3]byte{0, 224, 147}: "ACKFIN NETWORKS", - [3]byte{0, 224, 148}: "OSAI SRL", - [3]byte{0, 224, 149}: "ADVANCED-VISION TECHNOLGIES CORP.", - [3]byte{0, 224, 150}: "SHIMADZU CORPORATION", - [3]byte{0, 224, 151}: "CARRIER ACCESS CORPORATION", - [3]byte{0, 224, 152}: "AboCom Systems, Inc.", - [3]byte{0, 224, 153}: "SAMSON AG", - [3]byte{0, 224, 154}: "Positron Inc.", - [3]byte{0, 224, 155}: "ENGAGE NETWORKS, INC.", - [3]byte{0, 224, 156}: "MII", - [3]byte{0, 224, 157}: "SARNOFF CORPORATION", - [3]byte{0, 224, 158}: "QUANTUM CORPORATION", - [3]byte{0, 224, 159}: "PIXEL VISION", - [3]byte{0, 224, 160}: "WILTRON CO.", - [3]byte{0, 224, 161}: "HIMA PAUL HILDEBRANDT GmbH Co. KG", - [3]byte{0, 224, 162}: "MICROSLATE INC.", - [3]byte{0, 224, 163}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 164}: "ESAOTE S.p.A.", - [3]byte{0, 224, 165}: "ComCore Semiconductor, Inc.", - [3]byte{0, 224, 166}: "TELOGY NETWORKS, INC.", - [3]byte{0, 224, 167}: "IPC INFORMATION SYSTEMS, INC.", - [3]byte{0, 224, 168}: "SAT GmbH & Co.", - [3]byte{0, 224, 169}: "FUNAI ELECTRIC CO., LTD.", - [3]byte{0, 224, 170}: "ELECTROSONIC LTD.", - [3]byte{0, 224, 171}: "DIMAT S.A.", - [3]byte{0, 224, 172}: "MIDSCO, INC.", - [3]byte{0, 224, 173}: "EES TECHNOLOGY, LTD.", - [3]byte{0, 224, 174}: "XAQTI CORPORATION", - [3]byte{0, 224, 175}: "GENERAL DYNAMICS INFORMATION SYSTEMS", - [3]byte{0, 224, 176}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 177}: "Alcatel-Lucent, Enterprise Business Group", - [3]byte{0, 224, 178}: "TELMAX COMMUNICATIONS CORP.", - [3]byte{0, 224, 179}: "EtherWAN Systems, Inc.", - [3]byte{0, 224, 180}: "TECHNO SCOPE CO., LTD.", - [3]byte{0, 224, 181}: "ARDENT COMMUNICATIONS CORP.", - [3]byte{0, 224, 182}: "Entrada Networks", - [3]byte{0, 224, 183}: "PI GROUP, LTD.", - [3]byte{0, 224, 184}: "GATEWAY 2000", - [3]byte{0, 224, 185}: "BYAS SYSTEMS", - [3]byte{0, 224, 186}: "BERGHOF AUTOMATIONSTECHNIK GmbH", - [3]byte{0, 224, 187}: "NBX CORPORATION", - [3]byte{0, 224, 188}: "SYMON COMMUNICATIONS, INC.", - [3]byte{0, 224, 189}: "INTERFACE SYSTEMS, INC.", - [3]byte{0, 224, 190}: "GENROCO INTERNATIONAL, INC.", - [3]byte{0, 224, 191}: "TORRENT NETWORKING TECHNOLOGIES CORP.", - [3]byte{0, 224, 192}: "SEIWA ELECTRIC MFG. CO., LTD.", - [3]byte{0, 224, 193}: "MEMOREX TELEX JAPAN, LTD.", - [3]byte{0, 224, 194}: "NECSY S.p.A.", - [3]byte{0, 224, 195}: "SAKAI SYSTEM DEVELOPMENT CORP.", - [3]byte{0, 224, 196}: "HORNER ELECTRIC, INC.", - [3]byte{0, 224, 197}: "BCOM ELECTRONICS INC.", - [3]byte{0, 224, 198}: "LINK2IT, L.L.C.", - [3]byte{0, 224, 199}: "EUROTECH SRL", - [3]byte{0, 224, 200}: "VIRTUAL ACCESS, LTD.", - [3]byte{0, 224, 201}: "AutomatedLogic Corporation", - [3]byte{0, 224, 202}: "BEST DATA PRODUCTS", - [3]byte{0, 224, 203}: "RESON, INC.", - [3]byte{0, 224, 204}: "HERO SYSTEMS, LTD.", - [3]byte{0, 224, 205}: "SAAB SENSIS CORPORATION", - [3]byte{0, 224, 206}: "ARN", - [3]byte{0, 224, 207}: "INTEGRATED DEVICE TECHNOLOGY, INC.", - [3]byte{0, 224, 208}: "NETSPEED, INC.", - [3]byte{0, 224, 209}: "TELSIS LIMITED", - [3]byte{0, 224, 210}: "VERSANET COMMUNICATIONS, INC.", - [3]byte{0, 224, 211}: "DATENTECHNIK GmbH", - [3]byte{0, 224, 212}: "EXCELLENT COMPUTER", - [3]byte{0, 224, 213}: "Emulex Corporation", - [3]byte{0, 224, 214}: "COMPUTER & COMMUNICATION RESEARCH LAB.", - [3]byte{0, 224, 215}: "SUNSHINE ELECTRONICS, INC.", - [3]byte{0, 224, 216}: "LANBit Computer, Inc.", - [3]byte{0, 224, 217}: "TAZMO CO., LTD.", - [3]byte{0, 224, 218}: "Alcatel North America ESD", - [3]byte{0, 224, 219}: "ViaVideo Communications, Inc.", - [3]byte{0, 224, 220}: "NEXWARE CORP.", - [3]byte{0, 224, 221}: "ZENITH ELECTRONICS CORPORATION", - [3]byte{0, 224, 222}: "DATAX NV", - [3]byte{0, 224, 223}: "KEYMILE GmbH", - [3]byte{0, 224, 224}: "SI ELECTRONICS, LTD.", - [3]byte{0, 224, 225}: "G2 NETWORKS, INC.", - [3]byte{0, 224, 226}: "INNOVA CORP.", - [3]byte{0, 224, 227}: "SK-ELEKTRONIK GmbH", - [3]byte{0, 224, 228}: "FANUC ROBOTICS NORTH AMERICA, Inc.", - [3]byte{0, 224, 229}: "CINCO NETWORKS, INC.", - [3]byte{0, 224, 230}: "INCAA DATACOM B.V.", - [3]byte{0, 224, 231}: "RAYTHEON E-SYSTEMS, INC.", - [3]byte{0, 224, 232}: "GRETACODER Data Systems AG", - [3]byte{0, 224, 233}: "DATA LABS, INC.", - [3]byte{0, 224, 234}: "INNOVAT COMMUNICATIONS, INC.", - [3]byte{0, 224, 235}: "DIGICOM SYSTEMS, INCORPORATED", - [3]byte{0, 224, 236}: "CELESTICA INC.", - [3]byte{0, 224, 237}: "SILICOM, LTD.", - [3]byte{0, 224, 238}: "MAREL HF", - [3]byte{0, 224, 239}: "DIONEX", - [3]byte{0, 224, 240}: "ABLER TECHNOLOGY, INC.", - [3]byte{0, 224, 241}: "THAT CORPORATION", - [3]byte{0, 224, 242}: "ARLOTTO COMNET, INC.", - [3]byte{0, 224, 243}: "WebSprint Communications, Inc.", - [3]byte{0, 224, 244}: "INSIDE Technology A/S", - [3]byte{0, 224, 245}: "TELES AG", - [3]byte{0, 224, 246}: "DECISION EUROPE", - [3]byte{0, 224, 247}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 248}: "DICNA CONTROL AB", - [3]byte{0, 224, 249}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 250}: "TRL TECHNOLOGY, LTD.", - [3]byte{0, 224, 251}: "LEIGHTRONIX, INC.", - [3]byte{0, 224, 252}: "HUAWEI TECHNOLOGIES CO., LTD.", - [3]byte{0, 224, 253}: "A-TREND TECHNOLOGY CO., LTD.", - [3]byte{0, 224, 254}: "CISCO SYSTEMS, INC.", - [3]byte{0, 224, 255}: "SECURITY DYNAMICS TECHNOLOGIES, Inc.", - [3]byte{0, 225, 109}: "Cisco", - [3]byte{0, 225, 117}: "AK-Systems Ltd", - [3]byte{0, 227, 178}: "Samsung Electronics Co.,Ltd", - [3]byte{0, 230, 102}: "ARIMA Communications Corp.", - [3]byte{0, 230, 211}: "NIXDORF COMPUTER CORP.", - [3]byte{0, 230, 232}: "Netzin Technology Corporation,.Ltd.", - [3]byte{0, 232, 171}: "Meggitt Training Systems, Inc.", - [3]byte{0, 235, 45}: "Sony Mobile Communications AB", - [3]byte{0, 238, 189}: "HTC Corporation", - [3]byte{0, 240, 81}: "KWB Gmbh", - [3]byte{0, 243, 219}: "WOO Sports", - [3]byte{0, 244, 3}: "Orbis Systems Oy", - [3]byte{0, 244, 111}: "Samsung Elec Co.,Ltd", - [3]byte{0, 244, 185}: "Apple", - [3]byte{0, 247, 111}: "Apple", - [3]byte{0, 248, 96}: "PT. Panggung Electric Citrabuana", - [3]byte{0, 250, 59}: "CLOOS ELECTRONIC GMBH", - [3]byte{0, 252, 88}: "WebSilicon Ltd.", - [3]byte{0, 252, 112}: "Intrepid Control Systems, Inc.", - [3]byte{0, 253, 76}: "NEVATEC", - [3]byte{2, 7, 1}: "RACAL-DATACOM", - [3]byte{2, 28, 124}: "PERQ SYSTEMS CORPORATION", - [3]byte{2, 96, 134}: "LOGIC REPLACEMENT TECH. LTD.", - [3]byte{2, 96, 140}: "3COM CORPORATION", - [3]byte{2, 112, 1}: "RACAL-DATACOM", - [3]byte{2, 112, 176}: "M/A-COM INC. COMPANIES", - [3]byte{2, 112, 179}: "DATA RECALL LTD", - [3]byte{2, 157, 142}: "CARDIAC RECORDERS INC.", - [3]byte{2, 170, 60}: "OLIVETTI TELECOMM SPA (OLTECO)", - [3]byte{2, 187, 1}: "OCTOTHORPE CORP.", - [3]byte{2, 192, 140}: "3COM CORPORATION", - [3]byte{2, 207, 28}: "COMMUNICATION MACHINERY CORP.", - [3]byte{2, 230, 211}: "NIXDORF COMPUTER CORPORATION", - [3]byte{4, 10, 131}: "Alcatel-Lucent", - [3]byte{4, 10, 224}: "XMIT AG COMPUTER NETWORKS", - [3]byte{4, 12, 206}: "Apple", - [3]byte{4, 14, 194}: "ViewSonic Mobile China Limited", - [3]byte{4, 21, 82}: "Apple", - [3]byte{4, 24, 15}: "Samsung Electronics Co.,Ltd", - [3]byte{4, 24, 182}: "PRIVATE", - [3]byte{4, 24, 214}: "Ubiquiti Networks", - [3]byte{4, 26, 4}: "WaveIP", - [3]byte{4, 27, 148}: "Host Mobility AB", - [3]byte{4, 27, 186}: "Samsung Electronics Co.,Ltd", - [3]byte{4, 29, 16}: "Dream Ware Inc.", - [3]byte{4, 30, 100}: "Apple", - [3]byte{4, 32, 154}: "Panasonic AVC Networks Company", - [3]byte{4, 34, 52}: "Wireless Standard Extensions", - [3]byte{4, 38, 5}: "GFR Gesellschaft für Regelungstechnik und Energieeinsparung mbH", - [3]byte{4, 38, 101}: "Apple", - [3]byte{4, 43, 187}: "PicoCELA, Inc.", - [3]byte{4, 47, 86}: "ATOCS (Shenzhen) LTD", - [3]byte{4, 50, 244}: "Partron", - [3]byte{4, 54, 4}: "Gyeyoung I&T", - [3]byte{4, 61, 152}: "ChongQing QingJia Electronics CO.,LTD", - [3]byte{4, 68, 161}: "TELECON GALICIA,S.A.", - [3]byte{4, 70, 101}: "Murata Manufacturing Co., Ltd.", - [3]byte{4, 72, 154}: "Apple", - [3]byte{4, 74, 80}: "Ramaxel Technology (Shenzhen) limited company", - [3]byte{4, 75, 255}: "GuangZhou Hedy Digital Technology Co., Ltd", - [3]byte{4, 76, 239}: "Fujian Sanao Technology Co.,Ltd", - [3]byte{4, 78, 6}: "Ericsson AB", - [3]byte{4, 79, 139}: "Adapteva, Inc.", - [3]byte{4, 79, 170}: "Ruckus Wireless", - [3]byte{4, 84, 83}: "Apple", - [3]byte{4, 85, 202}: "BriView (Xiamen) Corp.", - [3]byte{4, 87, 47}: "Sertel Electronics UK Ltd", - [3]byte{4, 88, 111}: "Sichuan Whayer information industry Co.,LTD", - [3]byte{4, 90, 149}: "Nokia Corporation", - [3]byte{4, 92, 6}: "Zmodo Technology Corporation", - [3]byte{4, 92, 142}: "gosund GROUP CO.,LTD", - [3]byte{4, 93, 86}: "camtron industrial inc.", - [3]byte{4, 95, 167}: "Shenzhen Yichen Technology Development Co.,LTD", - [3]byte{4, 98, 215}: "ALSTOM HYDRO FRANCE", - [3]byte{4, 99, 224}: "Nome Oy", - [3]byte{4, 103, 133}: "scemtec Hard- und Software fuer Mess- und Steuerungstechnik GmbH", - [3]byte{4, 109, 66}: "Bryston Ltd.", - [3]byte{4, 110, 73}: "TaiYear Electronic Technology (Suzhou) Co., Ltd", - [3]byte{4, 112, 188}: "Globalstar Inc.", - [3]byte{4, 116, 161}: "Aligera Equipamentos Digitais Ltda", - [3]byte{4, 117, 245}: "CSST", - [3]byte{4, 118, 110}: "ALPS Co,. Ltd.", - [3]byte{4, 125, 123}: "Quanta Computer Inc.", - [3]byte{4, 129, 174}: "Clack Corporation", - [3]byte{4, 132, 138}: "7INOVA TECHNOLOGY LIMITED", - [3]byte{4, 136, 140}: "Eifelwerk Butler Systeme GmbH", - [3]byte{4, 136, 226}: "Beats Electronics LLC", - [3]byte{4, 138, 21}: "Avaya, Inc", - [3]byte{4, 139, 66}: "Skspruce Technology Limited", - [3]byte{4, 140, 3}: "ThinPAD Technology (Shenzhen)CO.,LTD", - [3]byte{4, 141, 56}: "Netcore Technology Inc.", - [3]byte{4, 148, 161}: "CATCH THE WIND INC", - [3]byte{4, 152, 243}: "ALPS Electric Co,. Ltd.", - [3]byte{4, 153, 230}: "Shenzhen Yoostar Technology Co., Ltd", - [3]byte{4, 155, 156}: "Eadingcore Intelligent Technology Co., Ltd.", - [3]byte{4, 156, 98}: "BMT Medical Technology s.r.o.", - [3]byte{4, 159, 6}: "Smobile Co., Ltd.", - [3]byte{4, 159, 129}: "Netscout Systems, Inc.", - [3]byte{4, 161, 81}: "NETGEAR INC.,", - [3]byte{4, 163, 243}: "Emicon", - [3]byte{4, 168, 42}: "Nokia Corporation", - [3]byte{4, 179, 182}: "Seamap (UK) Ltd", - [3]byte{4, 180, 102}: "BSP Co., Ltd.", - [3]byte{4, 189, 112}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{4, 191, 168}: "ISB Corporation", - [3]byte{4, 192, 91}: "Tigo Energy", - [3]byte{4, 192, 111}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{4, 192, 156}: "Tellabs Inc.", - [3]byte{4, 193, 185}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{4, 197, 164}: "CISCO SYSTEMS, INC.", - [3]byte{4, 200, 128}: "Samtec Inc", - [3]byte{4, 201, 145}: "Phistek INC.", - [3]byte{4, 203, 29}: "Traka plc", - [3]byte{4, 206, 20}: "Wilocity LTD.", - [3]byte{4, 207, 37}: "MANYCOLORS, INC.", - [3]byte{4, 212, 55}: "ZNV", - [3]byte{4, 215, 131}: "Y&H E&C Co.,LTD.", - [3]byte{4, 218, 210}: "Cisco", - [3]byte{4, 219, 86}: "Apple, Inc.", - [3]byte{4, 219, 138}: "Suntech International Ltd.", - [3]byte{4, 221, 76}: "Velocytech", - [3]byte{4, 222, 219}: "Rockport Networks Inc", - [3]byte{4, 223, 105}: "Car Connectivity Consortium", - [3]byte{4, 224, 196}: "TRIUMPH-ADLER AG", - [3]byte{4, 225, 200}: "IMS Soluções em Energia Ltda.", - [3]byte{4, 226, 248}: "AEP Ticketing solutions srl", - [3]byte{4, 228, 81}: "Texas Instruments", - [3]byte{4, 229, 54}: "Apple", - [3]byte{4, 229, 72}: "Cohda Wireless Pty Ltd", - [3]byte{4, 230, 98}: "Acroname Inc.", - [3]byte{4, 230, 118}: "AMPAK Technology Inc.", - [3]byte{4, 233, 229}: "PJRC.COM, LLC", - [3]byte{4, 238, 145}: "x-fabric GmbH", - [3]byte{4, 240, 33}: "Compex Systems Pte Ltd", - [3]byte{4, 241, 62}: "Apple", - [3]byte{4, 241, 125}: "Tarana Wireless", - [3]byte{4, 244, 188}: "Xena Networks", - [3]byte{4, 247, 228}: "Apple", - [3]byte{4, 248, 194}: "Flaircomm Microelectronics, Inc.", - [3]byte{4, 249, 56}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{4, 254, 49}: "Samsung Electronics Co.,Ltd", - [3]byte{4, 254, 127}: "CISCO SYSTEMS, INC.", - [3]byte{4, 255, 81}: "NOVAMEDIA INNOVISION SP. Z O.O.", - [3]byte{8, 0, 1}: "COMPUTERVISION CORPORATION", - [3]byte{8, 0, 2}: "BRIDGE COMMUNICATIONS INC.", - [3]byte{8, 0, 3}: "ADVANCED COMPUTER COMM.", - [3]byte{8, 0, 4}: "CROMEMCO INCORPORATED", - [3]byte{8, 0, 5}: "SYMBOLICS INC.", - [3]byte{8, 0, 6}: "SIEMENS AG", - [3]byte{8, 0, 7}: "Apple", - [3]byte{8, 0, 8}: "BOLT BERANEK AND NEWMAN INC.", - [3]byte{8, 0, 9}: "HEWLETT PACKARD", - [3]byte{8, 0, 10}: "NESTAR SYSTEMS INCORPORATED", - [3]byte{8, 0, 11}: "UNISYS CORPORATION", - [3]byte{8, 0, 12}: "MIKLYN DEVELOPMENT CO.", - [3]byte{8, 0, 13}: "INTERNATIONAL COMPUTERS LTD.", - [3]byte{8, 0, 14}: "NCR CORPORATION", - [3]byte{8, 0, 15}: "MITEL CORPORATION", - [3]byte{8, 0, 17}: "TEKTRONIX INC.", - [3]byte{8, 0, 18}: "BELL ATLANTIC INTEGRATED SYST.", - [3]byte{8, 0, 19}: "EXXON", - [3]byte{8, 0, 20}: "EXCELAN", - [3]byte{8, 0, 21}: "STC BUSINESS SYSTEMS", - [3]byte{8, 0, 22}: "BARRISTER INFO SYS CORP", - [3]byte{8, 0, 23}: "NATIONAL SEMICONDUCTOR", - [3]byte{8, 0, 24}: "PIRELLI FOCOM NETWORKS", - [3]byte{8, 0, 25}: "GENERAL ELECTRIC CORPORATION", - [3]byte{8, 0, 26}: "TIARA/ 10NET", - [3]byte{8, 0, 27}: "EMC Corporation", - [3]byte{8, 0, 28}: "KDD-KOKUSAI DEBNSIN DENWA CO.", - [3]byte{8, 0, 29}: "ABLE COMMUNICATIONS INC.", - [3]byte{8, 0, 30}: "APOLLO COMPUTER INC.", - [3]byte{8, 0, 31}: "SHARP CORPORATION", - [3]byte{8, 0, 32}: "Oracle Corporation", - [3]byte{8, 0, 33}: "3M COMPANY", - [3]byte{8, 0, 34}: "NBI INC.", - [3]byte{8, 0, 35}: "Panasonic Communications Co., Ltd.", - [3]byte{8, 0, 36}: "10NET COMMUNICATIONS/DCA", - [3]byte{8, 0, 37}: "CONTROL DATA", - [3]byte{8, 0, 38}: "NORSK DATA A.S.", - [3]byte{8, 0, 39}: "CADMUS COMPUTER SYSTEMS", - [3]byte{8, 0, 40}: "Texas Instruments", - [3]byte{8, 0, 41}: "MEGATEK CORPORATION", - [3]byte{8, 0, 42}: "MOSAIC TECHNOLOGIES INC.", - [3]byte{8, 0, 43}: "DIGITAL EQUIPMENT CORPORATION", - [3]byte{8, 0, 44}: "BRITTON LEE INC.", - [3]byte{8, 0, 45}: "LAN-TEC INC.", - [3]byte{8, 0, 46}: "METAPHOR COMPUTER SYSTEMS", - [3]byte{8, 0, 47}: "PRIME COMPUTER INC.", - [3]byte{8, 0, 48}: "NETWORK RESEARCH CORPORATION", - [3]byte{8, 0, 48}: "CERN", - [3]byte{8, 0, 48}: "ROYAL MELBOURNE INST OF TECH", - [3]byte{8, 0, 49}: "LITTLE MACHINES INC.", - [3]byte{8, 0, 50}: "TIGAN INCORPORATED", - [3]byte{8, 0, 51}: "BAUSCH & LOMB", - [3]byte{8, 0, 52}: "FILENET CORPORATION", - [3]byte{8, 0, 53}: "MICROFIVE CORPORATION", - [3]byte{8, 0, 54}: "INTERGRAPH CORPORATION", - [3]byte{8, 0, 55}: "FUJI-XEROX CO. LTD.", - [3]byte{8, 0, 56}: "BULL S.A.S.", - [3]byte{8, 0, 57}: "SPIDER SYSTEMS LIMITED", - [3]byte{8, 0, 58}: "ORCATECH INC.", - [3]byte{8, 0, 59}: "TORUS SYSTEMS LIMITED", - [3]byte{8, 0, 60}: "SCHLUMBERGER WELL SERVICES", - [3]byte{8, 0, 61}: "CADNETIX CORPORATIONS", - [3]byte{8, 0, 62}: "CODEX CORPORATION", - [3]byte{8, 0, 63}: "FRED KOSCHARA ENTERPRISES", - [3]byte{8, 0, 64}: "FERRANTI COMPUTER SYS. LIMITED", - [3]byte{8, 0, 65}: "RACAL-MILGO INFORMATION SYS..", - [3]byte{8, 0, 66}: "JAPAN MACNICS CORP.", - [3]byte{8, 0, 67}: "PIXEL COMPUTER INC.", - [3]byte{8, 0, 68}: "DAVID SYSTEMS INC.", - [3]byte{8, 0, 69}: "CONCURRENT COMPUTER CORP.", - [3]byte{8, 0, 70}: "Sony Corporation", - [3]byte{8, 0, 71}: "SEQUENT COMPUTER SYSTEMS INC.", - [3]byte{8, 0, 72}: "EUROTHERM GAUGING SYSTEMS", - [3]byte{8, 0, 73}: "UNIVATION", - [3]byte{8, 0, 74}: "BANYAN SYSTEMS INC.", - [3]byte{8, 0, 75}: "PLANNING RESEARCH CORP.", - [3]byte{8, 0, 76}: "HYDRA COMPUTER SYSTEMS INC.", - [3]byte{8, 0, 77}: "CORVUS SYSTEMS INC.", - [3]byte{8, 0, 78}: "3COM EUROPE LTD.", - [3]byte{8, 0, 79}: "CYGNET SYSTEMS", - [3]byte{8, 0, 80}: "DAISY SYSTEMS CORP.", - [3]byte{8, 0, 81}: "EXPERDATA", - [3]byte{8, 0, 82}: "INSYSTEC", - [3]byte{8, 0, 83}: "MIDDLE EAST TECH. UNIVERSITY", - [3]byte{8, 0, 85}: "STANFORD TELECOMM. INC.", - [3]byte{8, 0, 86}: "STANFORD LINEAR ACCEL. CENTER", - [3]byte{8, 0, 87}: "EVANS & SUTHERLAND", - [3]byte{8, 0, 88}: "SYSTEMS CONCEPTS", - [3]byte{8, 0, 89}: "A/S MYCRON", - [3]byte{8, 0, 90}: "IBM Corp", - [3]byte{8, 0, 91}: "VTA TECHNOLOGIES INC.", - [3]byte{8, 0, 92}: "FOUR PHASE SYSTEMS", - [3]byte{8, 0, 93}: "GOULD INC.", - [3]byte{8, 0, 94}: "COUNTERPOINT COMPUTER INC.", - [3]byte{8, 0, 95}: "SABER TECHNOLOGY CORP.", - [3]byte{8, 0, 96}: "INDUSTRIAL NETWORKING INC.", - [3]byte{8, 0, 97}: "JAROGATE LTD.", - [3]byte{8, 0, 98}: "GENERAL DYNAMICS", - [3]byte{8, 0, 99}: "PLESSEY", - [3]byte{8, 0, 100}: "Sitasys AG", - [3]byte{8, 0, 101}: "GENRAD INC.", - [3]byte{8, 0, 102}: "AGFA CORPORATION", - [3]byte{8, 0, 103}: "COMDESIGN", - [3]byte{8, 0, 104}: "RIDGE COMPUTERS", - [3]byte{8, 0, 105}: "SILICON GRAPHICS INC.", - [3]byte{8, 0, 106}: "ATT BELL LABORATORIES", - [3]byte{8, 0, 107}: "ACCEL TECHNOLOGIES INC.", - [3]byte{8, 0, 108}: "SUNTEK TECHNOLOGY INT'L", - [3]byte{8, 0, 109}: "WHITECHAPEL COMPUTER WORKS", - [3]byte{8, 0, 110}: "MASSCOMP", - [3]byte{8, 0, 111}: "PHILIPS APELDOORN B.V.", - [3]byte{8, 0, 112}: "MITSUBISHI ELECTRIC CORP.", - [3]byte{8, 0, 113}: "MATRA (DSIE)", - [3]byte{8, 0, 114}: "XEROX CORP UNIV GRANT PROGRAM", - [3]byte{8, 0, 115}: "TECMAR INC.", - [3]byte{8, 0, 116}: "CASIO COMPUTER CO. LTD.", - [3]byte{8, 0, 117}: "DANSK DATA ELECTRONIK", - [3]byte{8, 0, 118}: "PC LAN TECHNOLOGIES", - [3]byte{8, 0, 119}: "TSL COMMUNICATIONS LTD.", - [3]byte{8, 0, 120}: "ACCELL CORPORATION", - [3]byte{8, 0, 121}: "THE DROID WORKS", - [3]byte{8, 0, 122}: "INDATA", - [3]byte{8, 0, 123}: "SANYO ELECTRIC CO. LTD.", - [3]byte{8, 0, 124}: "VITALINK COMMUNICATIONS CORP.", - [3]byte{8, 0, 126}: "AMALGAMATED WIRELESS(AUS) LTD", - [3]byte{8, 0, 127}: "CARNEGIE-MELLON UNIVERSITY", - [3]byte{8, 0, 128}: "AES DATA INC.", - [3]byte{8, 0, 129}: "ASTECH INC.", - [3]byte{8, 0, 130}: "VERITAS SOFTWARE", - [3]byte{8, 0, 131}: "Seiko Instruments Inc.", - [3]byte{8, 0, 132}: "TOMEN ELECTRONICS CORP.", - [3]byte{8, 0, 133}: "ELXSI", - [3]byte{8, 0, 134}: "KONICA MINOLTA HOLDINGS, INC.", - [3]byte{8, 0, 135}: "XYPLEX", - [3]byte{8, 0, 136}: "Brocade Communications Systems, Inc.", - [3]byte{8, 0, 137}: "KINETICS", - [3]byte{8, 0, 138}: "PerfTech, Inc.", - [3]byte{8, 0, 139}: "PYRAMID TECHNOLOGY CORP.", - [3]byte{8, 0, 140}: "NETWORK RESEARCH CORPORATION", - [3]byte{8, 0, 141}: "XYVISION INC.", - [3]byte{8, 0, 142}: "TANDEM COMPUTERS", - [3]byte{8, 0, 143}: "CHIPCOM CORPORATION", - [3]byte{8, 0, 144}: "SONOMA SYSTEMS", - [3]byte{8, 3, 113}: "KRG CORPORATE", - [3]byte{8, 5, 205}: "DongGuang EnMai Electronic Product Co.Ltd.", - [3]byte{8, 8, 194}: "Samsung Electronics", - [3]byte{8, 8, 234}: "AMSC", - [3]byte{8, 9, 182}: "Masimo Corp", - [3]byte{8, 12, 11}: "SysMik GmbH Dresden", - [3]byte{8, 12, 201}: "Mission Technology Group, dba Magma", - [3]byte{8, 13, 132}: "GECO, Inc.", - [3]byte{8, 14, 168}: "Velex s.r.l.", - [3]byte{8, 15, 250}: "KSP INC.", - [3]byte{8, 17, 94}: "Bitel Co., Ltd.", - [3]byte{8, 17, 150}: "Intel Corporate", - [3]byte{8, 20, 67}: "UNIBRAIN S.A.", - [3]byte{8, 22, 81}: "Shenzhen Sea Star Technology Co.,Ltd", - [3]byte{8, 23, 53}: "CISCO SYSTEMS, INC.", - [3]byte{8, 23, 244}: "IBM Corp", - [3]byte{8, 24, 26}: "zte corporation", - [3]byte{8, 24, 76}: "A. S. Thomas, Inc.", - [3]byte{8, 25, 166}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{8, 29, 251}: "Shanghai Mexon Communication Technology Co.,Ltd", - [3]byte{8, 31, 63}: "WondaLink Inc.", - [3]byte{8, 31, 243}: "CISCO SYSTEMS, INC.", - [3]byte{8, 37, 34}: "ADVANSEE", - [3]byte{8, 39, 25}: "APS systems/electronic AG", - [3]byte{8, 42, 208}: "SRD Innovations Inc.", - [3]byte{8, 46, 95}: "Hewlett Packard", - [3]byte{8, 53, 113}: "CASwell INC.", - [3]byte{8, 55, 61}: "Samsung Electronics Co.,Ltd", - [3]byte{8, 55, 156}: "Topaz Co. LTD.", - [3]byte{8, 56, 165}: "Funkwerk plettac electronic GmbH", - [3]byte{8, 58, 184}: "Shinoda Plasma Co., Ltd.", - [3]byte{8, 61, 136}: "Samsung Electronics Co.,Ltd", - [3]byte{8, 62, 12}: "ARRIS Group, Inc.", - [3]byte{8, 62, 142}: "Hon Hai Precision Ind.Co.Ltd", - [3]byte{8, 63, 62}: "WSH GmbH", - [3]byte{8, 63, 118}: "Intellian Technologies, Inc.", - [3]byte{8, 64, 39}: "Gridstore Inc.", - [3]byte{8, 70, 86}: "VODALYS Ingénierie", - [3]byte{8, 72, 44}: "Raycore Taiwan Co., LTD.", - [3]byte{8, 78, 28}: "H2A Systems, LLC", - [3]byte{8, 78, 191}: "Broad Net Mux Corporation", - [3]byte{8, 81, 46}: "Orion Diagnostica Oy", - [3]byte{8, 82, 64}: "EbV Elektronikbau- und Vertriebs GmbH", - [3]byte{8, 87, 0}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{8, 90, 224}: "Recovision Technology Co., Ltd.", - [3]byte{8, 91, 14}: "Fortinet, Inc.", - [3]byte{8, 93, 221}: "Mercury Corporation", - [3]byte{8, 96, 110}: "ASUSTek COMPUTER INC.", - [3]byte{8, 99, 97}: "Huawei Technologies Co., Ltd", - [3]byte{8, 104, 208}: "Japan System Design", - [3]byte{8, 104, 234}: "EITO ELECTRONICS CO., LTD.", - [3]byte{8, 109, 242}: "Shenzhen MIMOWAVE Technology Co.,Ltd", - [3]byte{8, 112, 69}: "Apple", - [3]byte{8, 116, 246}: "Winterhalter Gastronom GmbH", - [3]byte{8, 117, 114}: "Obelux Oy", - [3]byte{8, 118, 24}: "ViE Technologies Sdn. Bhd.", - [3]byte{8, 118, 149}: "Auto Industrial Co., Ltd.", - [3]byte{8, 118, 255}: "Thomson Telecom Belgium", - [3]byte{8, 121, 153}: "AIM GmbH", - [3]byte{8, 122, 76}: "Huawei Technologies Co., Ltd", - [3]byte{8, 123, 170}: "SVYAZKOMPLEKTSERVICE, LLC", - [3]byte{8, 124, 190}: "Quintic Corp.", - [3]byte{8, 125, 33}: "Altasec technology corporation", - [3]byte{8, 128, 57}: "Cisco SPVTG", - [3]byte{8, 129, 188}: "HongKong Ipro Technology Co., Limited", - [3]byte{8, 129, 244}: "Juniper Networks", - [3]byte{8, 134, 59}: "Belkin International, Inc.", - [3]byte{8, 141, 200}: "Ryowa Electronics Co.,Ltd", - [3]byte{8, 142, 79}: "SF Software Solutions", - [3]byte{8, 143, 44}: "Hills Sound Vision & Lighting", - [3]byte{8, 150, 215}: "AVM GmbH", - [3]byte{8, 151, 88}: "Shenzhen Strong Rising Electronics Co.,Ltd DongGuan Subsidiary", - [3]byte{8, 158, 1}: "QUANTA COMPUTER INC.", - [3]byte{8, 159, 151}: "LEROY AUTOMATION", - [3]byte{8, 161, 43}: "ShenZhen EZL Technology Co., Ltd", - [3]byte{8, 165, 200}: "Sunnovo International Limited", - [3]byte{8, 169, 90}: "Azurewave", - [3]byte{8, 172, 165}: "Benu Video, Inc.", - [3]byte{8, 175, 120}: "Totus Solutions, Inc.", - [3]byte{8, 178, 163}: "Cynny Italia S.r.L.", - [3]byte{8, 180, 207}: "Abicom International", - [3]byte{8, 183, 56}: "Lite-On Technogy Corp.", - [3]byte{8, 183, 236}: "Wireless Seismic", - [3]byte{8, 187, 204}: "AK-NORD EDV VERTRIEBSGES. mbH", - [3]byte{8, 189, 67}: "NETGEAR INC.,", - [3]byte{8, 190, 9}: "Astrol Electronic AG", - [3]byte{8, 202, 69}: "Toyou Feiji Electronics Co., Ltd.", - [3]byte{8, 204, 104}: "Cisco", - [3]byte{8, 205, 155}: "samtec automotive electronics & software GmbH", - [3]byte{8, 208, 159}: "CISCO SYSTEMS, INC.", - [3]byte{8, 210, 154}: "Proformatique", - [3]byte{8, 212, 12}: "Intel Corporate", - [3]byte{8, 212, 43}: "Samsung Electronics", - [3]byte{8, 213, 192}: "Seers Technology Co., Ltd", - [3]byte{8, 216, 51}: "Shenzhen RF Technology Co,.Ltd", - [3]byte{8, 223, 31}: "Bose Corporation", - [3]byte{8, 229, 218}: "NANJING FUJITSU COMPUTER PRODUCTS CO.,LTD.", - [3]byte{8, 230, 114}: "JEBSEE ELECTRONICS CO.,LTD.", - [3]byte{8, 232, 79}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{8, 234, 68}: "Aerohive Networks, Inc.", - [3]byte{8, 235, 41}: "Jiangsu Huitong Group Co.,Ltd.", - [3]byte{8, 235, 116}: "Humax", - [3]byte{8, 235, 237}: "World Elite Technology Co.,LTD", - [3]byte{8, 237, 185}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{8, 238, 139}: "Samsung Elec Co.,Ltd", - [3]byte{8, 239, 59}: "MCS Logic Inc.", - [3]byte{8, 239, 171}: "SAYME WIRELESS SENSOR NETWORK", - [3]byte{8, 241, 183}: "Towerstream Corpration", - [3]byte{8, 242, 244}: "Net One Partners Co.,Ltd.", - [3]byte{8, 246, 248}: "GET Engineering", - [3]byte{8, 247, 40}: "GLOBO Multimedia Sp. z o.o. Sp.k.", - [3]byte{8, 250, 224}: "Fohhn Audio AG", - [3]byte{8, 252, 82}: "OpenXS BV", - [3]byte{8, 252, 136}: "Samsung Electronics Co.,Ltd", - [3]byte{8, 253, 14}: "Samsung Electronics Co.,Ltd", - [3]byte{12, 4, 0}: "Jantar d.o.o.", - [3]byte{12, 5, 53}: "Juniper Systems", - [3]byte{12, 17, 5}: "Ringslink (Xiamen) Network Communication Technologies Co., Ltd", - [3]byte{12, 18, 98}: "zte corporation", - [3]byte{12, 19, 11}: "Uniqoteq Ltd.", - [3]byte{12, 20, 32}: "Samsung Electronics Co.,Ltd", - [3]byte{12, 21, 197}: "SDTEC Co., Ltd.", - [3]byte{12, 23, 241}: "TELECSYS", - [3]byte{12, 25, 31}: "Inform Electronik", - [3]byte{12, 29, 175}: "Beijing Xiaomi communications co.,ltd", - [3]byte{12, 29, 194}: "SeAH Networks", - [3]byte{12, 32, 38}: "noax Technologies AG", - [3]byte{12, 39, 36}: "Cisco", - [3]byte{12, 39, 85}: "Valuable Techologies Limited", - [3]byte{12, 42, 105}: "electric imp, incorporated", - [3]byte{12, 42, 231}: "Beijing General Research Institute of Mining and Metallurgy", - [3]byte{12, 45, 137}: "QiiQ Communications Inc.", - [3]byte{12, 48, 33}: "Apple", - [3]byte{12, 55, 220}: "Huawei Technologies Co., Ltd", - [3]byte{12, 56, 62}: "Fanvil Technology Co., Ltd.", - [3]byte{12, 57, 86}: "Observator instruments", - [3]byte{12, 60, 101}: "Dome Imaging Inc", - [3]byte{12, 62, 159}: "Apple, Inc", - [3]byte{12, 70, 157}: "MS Sedco", - [3]byte{12, 71, 61}: "Hitron Technologies. Inc", - [3]byte{12, 76, 57}: "Mitrastar Technology", - [3]byte{12, 77, 233}: "Apple", - [3]byte{12, 79, 90}: "ASA-RT s.r.l.", - [3]byte{12, 81, 247}: "CHAUVIN ARNOUX", - [3]byte{12, 84, 165}: "PEGATRON CORPORATION", - [3]byte{12, 85, 33}: "Axiros GmbH", - [3]byte{12, 86, 92}: "HyBroad Vision (Hong Kong) Technology Co Ltd", - [3]byte{12, 87, 235}: "Mueller Systems", - [3]byte{12, 90, 25}: "Axtion Sdn Bhd", - [3]byte{12, 92, 216}: "DOLI Elektronik GmbH", - [3]byte{12, 96, 118}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{12, 99, 252}: "Nanjing Signway Technology Co., Ltd", - [3]byte{12, 104, 3}: "Cisco", - [3]byte{12, 110, 79}: "PrimeVOLT Co., Ltd.", - [3]byte{12, 113, 93}: "Samsung Electronics Co.,Ltd", - [3]byte{12, 114, 44}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{12, 116, 194}: "Apple", - [3]byte{12, 117, 35}: "BEIJING GEHUA CATV NETWORK CO.,LTD", - [3]byte{12, 119, 26}: "Apple", - [3]byte{12, 125, 124}: "Kexiang Information Technology Co, Ltd.", - [3]byte{12, 129, 18}: "PRIVATE", - [3]byte{12, 130, 48}: "SHENZHEN MAGNUS TECHNOLOGIES CO.,LTD", - [3]byte{12, 130, 104}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{12, 130, 106}: "Wuhan Huagong Genuine Optics Technology Co., Ltd", - [3]byte{12, 132, 17}: "A.O. Smith Water Products", - [3]byte{12, 132, 132}: "Zenovia Electronics Inc.", - [3]byte{12, 132, 220}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{12, 133, 37}: "CISCO SYSTEMS, INC.", - [3]byte{12, 137, 16}: "Samsung Electronics Co.,LTD", - [3]byte{12, 139, 253}: "Intel Corporate", - [3]byte{12, 140, 143}: "Kamo Technology Limited", - [3]byte{12, 140, 220}: "Suunto Oy", - [3]byte{12, 141, 152}: "TOP EIGHT IND CORP", - [3]byte{12, 146, 78}: "Rice Lake Weighing Systems", - [3]byte{12, 147, 1}: "PT. Prasimax Inovasi Teknologi", - [3]byte{12, 147, 251}: "BNS Solutions", - [3]byte{12, 150, 191}: "Huawei Technologies Co., Ltd", - [3]byte{12, 155, 19}: "Shanghai Magic Mobile Telecommunication Co.Ltd.", - [3]byte{12, 157, 86}: "Consort Controls Ltd", - [3]byte{12, 158, 145}: "Sankosha Corporation", - [3]byte{12, 161, 56}: "Blinq Wireless Inc.", - [3]byte{12, 162, 244}: "Chameleon Technology (UK) Limited", - [3]byte{12, 164, 2}: "Alcatel Lucent IPD", - [3]byte{12, 164, 42}: "OB Telecom Electronic Technology Co., Ltd", - [3]byte{12, 166, 148}: "Sunitec Enterprise Co.,Ltd", - [3]byte{12, 172, 5}: "Unitend Technologies Inc.", - [3]byte{12, 175, 90}: "GENUS POWER INFRASTRUCTURES LIMITED", - [3]byte{12, 179, 25}: "Samsung Elec Co.,Ltd", - [3]byte{12, 180, 239}: "Digience Co.,Ltd.", - [3]byte{12, 189, 81}: "TCT Mobile Limited", - [3]byte{12, 191, 21}: "Genetec", - [3]byte{12, 192, 192}: "MAGNETI MARELLI SISTEMAS ELECTRONICOS MEXICO", - [3]byte{12, 195, 167}: "Meritec", - [3]byte{12, 196, 122}: "Super Micro Computer, Inc.", - [3]byte{12, 196, 126}: "EUCAST Co., Ltd.", - [3]byte{12, 198, 85}: "Wuxi YSTen Technology Co.,Ltd.", - [3]byte{12, 198, 106}: "Nokia Corporation", - [3]byte{12, 198, 172}: "DAGS", - [3]byte{12, 200, 31}: "Summer Infant, Inc.", - [3]byte{12, 201, 198}: "Samwin Hong Kong Limited", - [3]byte{12, 203, 141}: "ASCO Numatics GmbH", - [3]byte{12, 205, 211}: "EASTRIVER TECHNOLOGY CO., LTD.", - [3]byte{12, 205, 251}: "EDIC Systems Inc.", - [3]byte{12, 207, 209}: "SPRINGWAVE Co., Ltd", - [3]byte{12, 210, 146}: "Intel Corporate", - [3]byte{12, 210, 181}: "Binatone Telecommunication Pvt. Ltd", - [3]byte{12, 213, 2}: "Westell", - [3]byte{12, 214, 150}: "Amimon Ltd", - [3]byte{12, 215, 194}: "Axium Technologies, Inc.", - [3]byte{12, 217, 150}: "CISCO SYSTEMS, INC.", - [3]byte{12, 217, 193}: "Visteon Corporation", - [3]byte{12, 218, 65}: "Hangzhou H3C Technologies Co., Limited", - [3]byte{12, 220, 204}: "Inala Technologies", - [3]byte{12, 221, 239}: "Nokia Corporation", - [3]byte{12, 223, 164}: "Samsung Electronics Co.,Ltd", - [3]byte{12, 224, 228}: "Plantronics, Inc", - [3]byte{12, 229, 211}: "DH electronics GmbH", - [3]byte{12, 231, 9}: "Fox Crypto B.V.", - [3]byte{12, 232, 47}: "Bonfiglioli Vectron GmbH", - [3]byte{12, 233, 54}: "ELIMOS srl", - [3]byte{12, 238, 230}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{12, 239, 124}: "AnaCom Inc", - [3]byte{12, 240, 25}: "Malgn Technology Co., Ltd.", - [3]byte{12, 240, 180}: "Globalsat International Technology Ltd", - [3]byte{12, 243, 97}: "Java Information", - [3]byte{12, 243, 238}: "EM Microelectronic", - [3]byte{12, 244, 5}: "Beijing Signalway Technologies Co.,Ltd", - [3]byte{12, 248, 147}: "ARRIS Group, Inc.", - [3]byte{12, 252, 131}: "Airoha Technology Corp.,", - [3]byte{16, 0, 0}: "PRIVATE", - [3]byte{16, 0, 90}: "IBM Corp", - [3]byte{16, 0, 232}: "NATIONAL SEMICONDUCTOR", - [3]byte{16, 0, 253}: "LaonPeople", - [3]byte{16, 1, 202}: "Ashley Butterworth", - [3]byte{16, 5, 202}: "Cisco", - [3]byte{16, 7, 35}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{16, 8, 177}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{16, 9, 12}: "Janome Sewing Machine Co., Ltd.", - [3]byte{16, 11, 169}: "Intel Corporate", - [3]byte{16, 12, 36}: "pomdevices, LLC", - [3]byte{16, 13, 47}: "Online Security Pty. Ltd.", - [3]byte{16, 13, 50}: "Embedian, Inc.", - [3]byte{16, 13, 127}: "NETGEAR INC.,", - [3]byte{16, 14, 43}: "NEC CASIO Mobile Communications", - [3]byte{16, 14, 126}: "Juniper networks", - [3]byte{16, 15, 24}: "Fu Gang Electronic(KunShan)CO.,LTD", - [3]byte{16, 16, 182}: "McCain Inc", - [3]byte{16, 18, 18}: "Vivo International Corporation Pty Ltd", - [3]byte{16, 18, 24}: "Korins Inc.", - [3]byte{16, 18, 72}: "ITG, Inc.", - [3]byte{16, 19, 238}: "Justec International Technology INC.", - [3]byte{16, 24, 158}: "Elmo Motion Control", - [3]byte{16, 27, 84}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{16, 28, 12}: "Apple", - [3]byte{16, 29, 81}: "ON-Q LLC dba ON-Q Mesh Networks", - [3]byte{16, 29, 192}: "Samsung Electronics Co.,Ltd", - [3]byte{16, 31, 116}: "Hewlett-Packard Company", - [3]byte{16, 34, 121}: "ZeroDesktop, Inc.", - [3]byte{16, 39, 190}: "TVIP", - [3]byte{16, 40, 49}: "Morion Inc.", - [3]byte{16, 45, 150}: "Looxcie Inc.", - [3]byte{16, 46, 175}: "Texas Instruments", - [3]byte{16, 47, 107}: "Microsoft Corporation", - [3]byte{16, 48, 71}: "Samsung Electronics Co.,Ltd", - [3]byte{16, 51, 120}: "FLECTRON Co., LTD", - [3]byte{16, 55, 17}: "Simlink AS", - [3]byte{16, 59, 89}: "Samsung Electronics Co.,Ltd", - [3]byte{16, 61, 234}: "HFC Technology (Beijing) Ltd. Co.", - [3]byte{16, 64, 243}: "Apple", - [3]byte{16, 67, 105}: "Soundmax Electronic Limited", - [3]byte{16, 68, 90}: "Shaanxi Hitech Electronic Co., LTD", - [3]byte{16, 69, 190}: "Norphonic AS", - [3]byte{16, 69, 248}: "LNT-Automation GmbH", - [3]byte{16, 71, 128}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{16, 72, 177}: "Beijing Duokan Technology Limited", - [3]byte{16, 75, 70}: "Mitsubishi Electric Corporation", - [3]byte{16, 77, 119}: "Innovative Computer Engineering", - [3]byte{16, 78, 7}: "Shanghai Genvision Industries Co.,Ltd", - [3]byte{16, 81, 114}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{16, 86, 202}: "Peplink International Ltd.", - [3]byte{16, 92, 59}: "Perma-Pipe, Inc.", - [3]byte{16, 92, 191}: "DuroByte Inc", - [3]byte{16, 95, 6}: "Actiontec Electronics, Inc", - [3]byte{16, 95, 73}: "Cisco SPVTG", - [3]byte{16, 96, 75}: "Hewlett Packard", - [3]byte{16, 98, 201}: "Adatis GmbH & Co. KG", - [3]byte{16, 100, 226}: "ADFweb.com s.r.l.", - [3]byte{16, 101, 163}: "Core Brands LLC", - [3]byte{16, 101, 207}: "IQSIM", - [3]byte{16, 102, 130}: "NEC Platforms, Ltd.", - [3]byte{16, 104, 63}: "LG Electronics", - [3]byte{16, 111, 63}: "Buffalo Inc.", - [3]byte{16, 111, 239}: "Ad-Sol Nissin Corp", - [3]byte{16, 113, 249}: "Cloud Telecomputers, LLC", - [3]byte{16, 118, 138}: "EoCell", - [3]byte{16, 119, 177}: "Samsung Electronics Co.,LTD", - [3]byte{16, 120, 206}: "Hanvit SI, Inc.", - [3]byte{16, 120, 210}: "ELITEGROUP COMPUTER SYSTEM CO., LTD.", - [3]byte{16, 122, 134}: "U&U ENGINEERING INC.", - [3]byte{16, 123, 239}: "ZyXEL Communications Corp", - [3]byte{16, 131, 210}: "Microseven Systems, LLC", - [3]byte{16, 136, 15}: "Daruma Telecomunicações e Informática S.A.", - [3]byte{16, 136, 206}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{16, 138, 27}: "RAONIX Inc.", - [3]byte{16, 140, 207}: "CISCO SYSTEMS, INC.", - [3]byte{16, 146, 102}: "Samsung Electronics Co.,Ltd", - [3]byte{16, 147, 233}: "Apple", - [3]byte{16, 154, 185}: "Tosibox Oy", - [3]byte{16, 154, 221}: "Apple", - [3]byte{16, 159, 169}: "Actiontec Electronics, Inc", - [3]byte{16, 161, 59}: "FUJIKURA RUBBER LTD.", - [3]byte{16, 165, 208}: "Murata Manufacturing Co.,Ltd.", - [3]byte{16, 167, 67}: "SK Mtek Limited", - [3]byte{16, 169, 50}: "Beijing Cyber Cloud Technology Co. ,Ltd.", - [3]byte{16, 174, 96}: "PRIVATE", - [3]byte{16, 178, 107}: "base Co.,Ltd.", - [3]byte{16, 183, 19}: "PRIVATE", - [3]byte{16, 183, 246}: "Plastoform Industries Ltd.", - [3]byte{16, 185, 254}: "Lika srl", - [3]byte{16, 186, 165}: "GANA I&C CO., LTD", - [3]byte{16, 189, 24}: "CISCO SYSTEMS, INC.", - [3]byte{16, 191, 72}: "ASUSTEK COMPUTER INC.", - [3]byte{16, 194, 186}: "UTT Co., Ltd.", - [3]byte{16, 195, 123}: "ASUSTek COMPUTER INC.", - [3]byte{16, 197, 134}: "BIO SOUND LAB CO., LTD.", - [3]byte{16, 198, 31}: "Huawei Technologies Co., Ltd", - [3]byte{16, 198, 126}: "SHENZHEN JUCHIN TECHNOLOGY CO., LTD", - [3]byte{16, 198, 252}: "Garmin International", - [3]byte{16, 199, 63}: "Midas Klark Teknik Ltd", - [3]byte{16, 202, 129}: "PRECIA", - [3]byte{16, 204, 219}: "AXIMUM PRODUITS ELECTRONIQUES", - [3]byte{16, 209, 220}: "INSTAR Deutschland GmbH", - [3]byte{16, 213, 66}: "Samsung Electronics Co.,Ltd", - [3]byte{16, 221, 177}: "Apple", - [3]byte{16, 221, 244}: "Maxway Electronics CO.,LTD", - [3]byte{16, 222, 228}: "automationNEXT GmbH", - [3]byte{16, 226, 213}: "Qi Hardware Inc.", - [3]byte{16, 227, 199}: "Seohwa Telecom", - [3]byte{16, 228, 175}: "APR, LLC", - [3]byte{16, 230, 174}: "Source Technologies, LLC", - [3]byte{16, 232, 238}: "PhaseSpace", - [3]byte{16, 234, 89}: "Cisco SPVTG", - [3]byte{16, 238, 217}: "Canoga Perkins Corporation", - [3]byte{16, 243, 17}: "Cisco", - [3]byte{16, 243, 219}: "Gridco Systems, Inc.", - [3]byte{16, 244, 154}: "T3 Innovation", - [3]byte{16, 246, 129}: "vivo Mobile Communication Co., Ltd.", - [3]byte{16, 249, 111}: "LG Electronics", - [3]byte{16, 249, 238}: "Nokia Corporation", - [3]byte{16, 250, 206}: "Reacheng Communication Technology Co.,Ltd", - [3]byte{16, 251, 240}: "KangSheng LTD.", - [3]byte{16, 252, 84}: "Shany Electronic Co., Ltd.", - [3]byte{16, 254, 237}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{17, 0, 170}: "PRIVATE", - [3]byte{20, 7, 8}: "PRIVATE", - [3]byte{20, 7, 224}: "Abrantix AG", - [3]byte{20, 12, 118}: "FREEBOX SAS", - [3]byte{20, 13, 79}: "Flextronics International", - [3]byte{20, 16, 159}: "Apple", - [3]byte{20, 19, 48}: "Anakreon UK LLP", - [3]byte{20, 20, 75}: "FUJIAN STAR-NET COMMUNICATION CO.,LTD", - [3]byte{20, 26, 81}: "Treetech Sistemas Digitais", - [3]byte{20, 27, 189}: "Volex Inc.", - [3]byte{20, 27, 240}: "Intellimedia Systems Ltd", - [3]byte{20, 31, 186}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{20, 35, 215}: "EUTRONIX CO., LTD.", - [3]byte{20, 43, 210}: "Armtel Ltd.", - [3]byte{20, 43, 214}: "Guangdong Appscomm Co.,Ltd", - [3]byte{20, 45, 39}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{20, 45, 139}: "Incipio Technologies, Inc", - [3]byte{20, 45, 245}: "Amphitech", - [3]byte{20, 48, 122}: "Avermetrics", - [3]byte{20, 48, 198}: "Motorola Mobility LLC", - [3]byte{20, 53, 139}: "Mediabridge Products, LLC.", - [3]byte{20, 53, 179}: "Future Designs, Inc.", - [3]byte{20, 54, 5}: "Nokia Corporation", - [3]byte{20, 54, 198}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{20, 55, 59}: "PROCOM Systems", - [3]byte{20, 58, 234}: "Dynapower Company LLC", - [3]byte{20, 61, 242}: "Beijing Shidai Hongyuan Network Communication Co.,Ltd", - [3]byte{20, 62, 96}: "Alcatel-Lucent", - [3]byte{20, 65, 226}: "Monaco Enterprises, Inc.", - [3]byte{20, 67, 25}: "Creative&Link Technology Limited", - [3]byte{20, 70, 228}: "AVISTEL", - [3]byte{20, 72, 139}: "Shenzhen Doov Technology Co.,Ltd", - [3]byte{20, 73, 120}: "Digital Control Incorporated", - [3]byte{20, 73, 224}: "Samsung Electro Mechanics co.,LTD.", - [3]byte{20, 76, 26}: "Max Communication GmbH", - [3]byte{20, 84, 18}: "Entis Co., Ltd.", - [3]byte{20, 86, 69}: "Savitech Corp.", - [3]byte{20, 88, 208}: "Hewlett Packard", - [3]byte{20, 90, 5}: "Apple", - [3]byte{20, 91, 209}: "ARRIS Group, Inc.", - [3]byte{20, 96, 128}: "zte corporation", - [3]byte{20, 99, 8}: "JABIL CIRCUIT (SHANGHAI) LTD.", - [3]byte{20, 106, 11}: "Cypress Electronics Limited", - [3]byte{20, 110, 10}: "PRIVATE", - [3]byte{20, 115, 115}: "TUBITAK UEKAE", - [3]byte{20, 116, 17}: "RIM", - [3]byte{20, 117, 144}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{20, 125, 179}: "JOA TELECOM.CO.,LTD", - [3]byte{20, 125, 197}: "Murata Manufacturing Co., Ltd.", - [3]byte{20, 130, 91}: "Hefei Radio Communication Technology Co., Ltd", - [3]byte{20, 134, 146}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{20, 137, 253}: "Samsung Electronics", - [3]byte{20, 138, 112}: "ADS GmbH", - [3]byte{20, 143, 198}: "Apple", - [3]byte{20, 144, 144}: "KongTop industrial(shen zhen)CO.,LTD", - [3]byte{20, 148, 72}: "BLU CASTLE S.A.", - [3]byte{20, 153, 226}: "Apple, Inc", - [3]byte{20, 159, 232}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{20, 163, 100}: "Samsung Electronics Co.,Ltd", - [3]byte{20, 166, 44}: "S.M. Dezac S.A.", - [3]byte{20, 168, 107}: "ShenZhen Telacom Science&Technology Co., Ltd", - [3]byte{20, 169, 227}: "MST CORPORATION", - [3]byte{20, 171, 240}: "ARRIS Group, Inc.", - [3]byte{20, 177, 38}: "Industrial Software Co", - [3]byte{20, 177, 200}: "InfiniWing, Inc.", - [3]byte{20, 180, 132}: "Samsung Electronics Co.,Ltd", - [3]byte{20, 183, 61}: "ARCHEAN Technologies", - [3]byte{20, 185, 104}: "Huawei Technologies Co., Ltd", - [3]byte{20, 192, 137}: "DUNE HD LTD", - [3]byte{20, 193, 38}: "Nokia Corporation", - [3]byte{20, 194, 29}: "Sabtech Industries", - [3]byte{20, 204, 32}: "TP-LINK TECHNOLOGIES CO.,LTD", - [3]byte{20, 207, 141}: "OHSUNG ELECTRONICS CO., LTD.", - [3]byte{20, 207, 146}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{20, 207, 226}: "ARRIS Group, Inc.", - [3]byte{20, 212, 254}: "Pace plc", - [3]byte{20, 214, 77}: "D-Link International", - [3]byte{20, 215, 110}: "CONCH ELECTRONIC Co.,Ltd", - [3]byte{20, 218, 233}: "ASUSTek COMPUTER INC.", - [3]byte{20, 219, 133}: "S NET MEDIA", - [3]byte{20, 228, 236}: "mLogic LLC", - [3]byte{20, 230, 228}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{20, 235, 51}: "BSMediasoft Co., Ltd.", - [3]byte{20, 237, 165}: "Wächter GmbH Sicherheitssysteme", - [3]byte{20, 237, 228}: "Kaiam Corporation", - [3]byte{20, 238, 157}: "AirNav Systems LLC", - [3]byte{20, 240, 197}: "Xtremio Ltd.", - [3]byte{20, 242, 142}: "ShenYang ZhongKe-Allwin Technology Co.LTD", - [3]byte{20, 244, 42}: "Samsung Electronics", - [3]byte{20, 246, 90}: "Xiaomi inc.", - [3]byte{20, 248, 147}: "Wuhan FiberHome Digital Technology Co.,Ltd.", - [3]byte{20, 254, 175}: "SAGITTAR LIMITED", - [3]byte{20, 254, 181}: "Dell Inc", - [3]byte{24, 0, 45}: "Sony Mobile Communications AB", - [3]byte{24, 0, 219}: "Fitbit Inc.", - [3]byte{24, 1, 227}: "Elektrobit Wireless Communications Ltd", - [3]byte{24, 3, 115}: "Dell Inc", - [3]byte{24, 3, 250}: "IBT Interfaces", - [3]byte{24, 6, 117}: "DILAX Intelcom GmbH", - [3]byte{24, 11, 82}: "Nanotron Technologies GmbH", - [3]byte{24, 12, 20}: "iSonea Limited", - [3]byte{24, 12, 119}: "Westinghouse Electric Company, LLC", - [3]byte{24, 12, 172}: "CANON INC.", - [3]byte{24, 16, 78}: "CEDINT-UPM", - [3]byte{24, 20, 32}: "TEB SAS", - [3]byte{24, 20, 86}: "Nokia Corporation", - [3]byte{24, 23, 20}: "DAEWOOIS", - [3]byte{24, 23, 37}: "Cameo Communications, Inc.", - [3]byte{24, 25, 63}: "Tamtron Oy", - [3]byte{24, 27, 235}: "Actiontec Electronics, Inc", - [3]byte{24, 30, 120}: "SAGEMCOM", - [3]byte{24, 30, 176}: "Samsung Electronics Co.,Ltd", - [3]byte{24, 32, 18}: "Aztech Associates Inc.", - [3]byte{24, 32, 50}: "Apple", - [3]byte{24, 32, 166}: "Sage Co., Ltd.", - [3]byte{24, 34, 126}: "Samsung Electronics Co.,Ltd", - [3]byte{24, 38, 102}: "Samsung Electronics Co.,Ltd", - [3]byte{24, 40, 97}: "AirTies Wireless Networks", - [3]byte{24, 42, 123}: "Nintendo Co., Ltd.", - [3]byte{24, 43, 5}: "8D Technologies", - [3]byte{24, 44, 145}: "Concept Development, Inc.", - [3]byte{24, 48, 9}: "Woojin Industrial Systems Co., Ltd.", - [3]byte{24, 50, 162}: "LAON TECHNOLOGY CO., LTD.", - [3]byte{24, 51, 157}: "CISCO SYSTEMS, INC.", - [3]byte{24, 52, 81}: "Apple", - [3]byte{24, 54, 252}: "Elecsys International Corporation", - [3]byte{24, 56, 37}: "Wuhan Lingjiu High-tech Co.,Ltd.", - [3]byte{24, 57, 25}: "Unicoi Systems", - [3]byte{24, 59, 210}: "BYD Precision Manufacture Company Ltd.", - [3]byte{24, 61, 162}: "Intel Corporate", - [3]byte{24, 63, 71}: "Samsung Electronics Co.,Ltd", - [3]byte{24, 66, 29}: "PRIVATE", - [3]byte{24, 66, 47}: "Alcatel Lucent", - [3]byte{24, 68, 98}: "Riava Networks, Inc.", - [3]byte{24, 70, 23}: "Samsung Electronics", - [3]byte{24, 72, 216}: "Fastback Networks", - [3]byte{24, 74, 111}: "Alcatel-Lucent Shanghai Bell Co., Ltd", - [3]byte{24, 78, 148}: "MESSOA TECHNOLOGIES INC.", - [3]byte{24, 82, 83}: "Pixord Corporation", - [3]byte{24, 83, 224}: "Hanyang Digitech Co.Ltd", - [3]byte{24, 85, 15}: "Cisco SPVTG", - [3]byte{24, 89, 51}: "Cisco SPVTG", - [3]byte{24, 90, 232}: "Zenotech.Co.,Ltd", - [3]byte{24, 98, 44}: "SAGEMCOM SAS", - [3]byte{24, 100, 114}: "Aruba Networks", - [3]byte{24, 101, 113}: "Top Victory Electronics (Taiwan) Co., Ltd.", - [3]byte{24, 102, 227}: "Veros Systems, Inc.", - [3]byte{24, 103, 63}: "Hanover Displays Limited", - [3]byte{24, 103, 81}: "KOMEG Industrielle Messtechnik GmbH", - [3]byte{24, 103, 176}: "Samsung Electronics Co.,LTD", - [3]byte{24, 109, 153}: "Adanis Inc.", - [3]byte{24, 113, 23}: "eta plus electronic gmbh", - [3]byte{24, 121, 162}: "GMJ ELECTRIC LIMITED", - [3]byte{24, 122, 147}: "AMICCOM Electronics Corporation", - [3]byte{24, 124, 129}: "Valeo Vision Systems", - [3]byte{24, 126, 213}: "shenzhen kaism technology Co. Ltd", - [3]byte{24, 128, 206}: "Barberry Solutions Ltd", - [3]byte{24, 128, 245}: "Alcatel-Lucent Shanghai Bell Co., Ltd", - [3]byte{24, 130, 25}: "Alibaba Cloud Computing Ltd.", - [3]byte{24, 131, 49}: "Samsung Electronics Co.,Ltd", - [3]byte{24, 131, 191}: "Arcadyan Technology Corporation", - [3]byte{24, 132, 16}: "CoreTrust Inc.", - [3]byte{24, 134, 58}: "DIGITAL ART SYSTEM", - [3]byte{24, 134, 172}: "Nokia Danmark A/S", - [3]byte{24, 135, 150}: "HTC Corporation", - [3]byte{24, 136, 87}: "Beijing Jinhong Xi-Dian Information Technology Corp.", - [3]byte{24, 137, 223}: "CerebrEX Inc.", - [3]byte{24, 142, 213}: "TP Vision Belgium N.V. - innovation site Brugge", - [3]byte{24, 146, 44}: "Virtual Instruments", - [3]byte{24, 151, 255}: "TechFaith Wireless Technology Limited", - [3]byte{24, 154, 103}: "CSE-Servelec Limited", - [3]byte{24, 156, 93}: "Cisco", - [3]byte{24, 158, 252}: "Apple", - [3]byte{24, 169, 5}: "Hewlett-Packard Company", - [3]byte{24, 169, 88}: "PROVISION THAI CO., LTD.", - [3]byte{24, 169, 155}: "Dell Inc", - [3]byte{24, 170, 69}: "Fon Technology", - [3]byte{24, 171, 245}: "Ultra Electronics - Electrics", - [3]byte{24, 173, 77}: "Polostar Technology Corporation", - [3]byte{24, 174, 187}: "Siemens Convergence Creators GmbH&Co.KG", - [3]byte{24, 175, 97}: "Apple, Inc", - [3]byte{24, 175, 143}: "Apple", - [3]byte{24, 175, 159}: "DIGITRONIC Automationsanlagen GmbH", - [3]byte{24, 178, 9}: "Torrey Pines Logic, Inc", - [3]byte{24, 179, 186}: "Netlogic AB", - [3]byte{24, 180, 48}: "Nest Labs Inc.", - [3]byte{24, 181, 145}: "I-Storm", - [3]byte{24, 183, 158}: "Invoxia", - [3]byte{24, 192, 134}: "Broadcom Corporation", - [3]byte{24, 196, 81}: "Tucson Embedded Systems", - [3]byte{24, 200, 231}: "Shenzhen Hualistone Technology Co.,Ltd", - [3]byte{24, 204, 35}: "Philio Technology Corporation", - [3]byte{24, 207, 94}: "Liteon Technology Corporation", - [3]byte{24, 208, 113}: "DASAN CO., LTD.", - [3]byte{24, 213, 182}: "SMG Holdings LLC", - [3]byte{24, 214, 106}: "Inmarsat", - [3]byte{24, 214, 207}: "Kurth Electronic GmbH", - [3]byte{24, 217, 73}: "Qvis Labs, LLC", - [3]byte{24, 220, 86}: "Yulong Computer Telecommunication Scientific(shenzhen)Co.,Lt", - [3]byte{24, 226, 136}: "STT Condigi", - [3]byte{24, 226, 194}: "Samsung Electronics", - [3]byte{24, 231, 40}: "Cisco", - [3]byte{24, 231, 244}: "Apple", - [3]byte{24, 232, 15}: "Viking Electronics Inc.", - [3]byte{24, 232, 221}: "MODULETEK", - [3]byte{24, 239, 99}: "CISCO SYSTEMS, INC.", - [3]byte{24, 244, 106}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{24, 246, 80}: "Multimedia Pacific Limited", - [3]byte{24, 248, 122}: "i3 International Inc.", - [3]byte{24, 250, 111}: "ISC applied systems corp", - [3]byte{24, 251, 123}: "Dell Inc", - [3]byte{24, 252, 159}: "Changhe Electronics Co., Ltd.", - [3]byte{24, 254, 52}: "Espressif Inc.", - [3]byte{24, 255, 46}: "Shenzhen Rui Ying Da Technology Co., Ltd", - [3]byte{28, 6, 86}: "IDY Corporation", - [3]byte{28, 8, 193}: "Lg Innotek", - [3]byte{28, 11, 82}: "EPICOM S.A", - [3]byte{28, 15, 207}: "Sypro Optics GmbH", - [3]byte{28, 17, 225}: "Wartsila Finland Oy", - [3]byte{28, 18, 157}: "IEEE PES PSRC/SUB", - [3]byte{28, 20, 72}: "ARRIS Group, Inc.", - [3]byte{28, 23, 211}: "CISCO SYSTEMS, INC.", - [3]byte{28, 24, 74}: "ShenZhen RicherLink Technologies Co.,LTD", - [3]byte{28, 25, 222}: "eyevis GmbH", - [3]byte{28, 26, 192}: "Apple", - [3]byte{28, 27, 104}: "ARRIS Group, Inc.", - [3]byte{28, 28, 253}: "Dalian Hi-Think Computer Technology, Corp", - [3]byte{28, 29, 103}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{28, 29, 134}: "Cisco", - [3]byte{28, 51, 77}: "ITS Telecom", - [3]byte{28, 52, 119}: "Innovation Wireless", - [3]byte{28, 53, 241}: "NEW Lift Neue Elektronische Wege Steuerungsbau GmbH", - [3]byte{28, 55, 191}: "Cloudium Systems Ltd.", - [3]byte{28, 58, 79}: "AccuSpec Electronics, LLC", - [3]byte{28, 61, 231}: "Sigma Koki Co.,Ltd.", - [3]byte{28, 62, 132}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{28, 65, 88}: "Gemalto M2M GmbH", - [3]byte{28, 67, 236}: "JAPAN CIRCUIT CO.,LTD", - [3]byte{28, 69, 147}: "Texas Instruments", - [3]byte{28, 72, 64}: "IMS Messsysteme GmbH", - [3]byte{28, 72, 249}: "GN Netcom A/S", - [3]byte{28, 74, 247}: "AMON INC", - [3]byte{28, 75, 185}: "SMG ENTERPRISE, LLC", - [3]byte{28, 75, 214}: "AzureWave", - [3]byte{28, 81, 181}: "Techaya LTD", - [3]byte{28, 82, 22}: "DONGGUAN HELE ELECTRONICS CO., LTD", - [3]byte{28, 82, 214}: "FLAT DISPLAY TECHNOLOGY CORPORATION", - [3]byte{28, 90, 62}: "Samsung Eletronics Co., Ltd (Visual Display Divison)", - [3]byte{28, 90, 107}: "Philips Electronics Nederland BV", - [3]byte{28, 92, 85}: "PRIMA Cinema, Inc", - [3]byte{28, 92, 96}: "Shenzhen Belzon Technology Co.,LTD.", - [3]byte{28, 95, 255}: "Beijing Ereneben Information Technology Co.,Ltd Shenzhen Branch", - [3]byte{28, 98, 184}: "Samsung Electronics Co.,Ltd", - [3]byte{28, 99, 183}: "OpenProducts 237 AB", - [3]byte{28, 101, 157}: "Liteon Technology Corporation", - [3]byte{28, 102, 109}: "Hon Hai Precision Ind.Co.Ltd", - [3]byte{28, 102, 170}: "Samsung Electronics", - [3]byte{28, 105, 165}: "Research In Motion", - [3]byte{28, 106, 122}: "Cisco", - [3]byte{28, 107, 202}: "Mitsunami Co., Ltd.", - [3]byte{28, 111, 101}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{28, 117, 8}: "COMPAL INFORMATION (KUNSHAN) CO., LTD.", - [3]byte{28, 118, 202}: "Terasic Technologies Inc.", - [3]byte{28, 120, 57}: "Shenzhen Tencent Computer System Co., Ltd.", - [3]byte{28, 123, 33}: "Sony Mobile Communications AB", - [3]byte{28, 124, 17}: "EID", - [3]byte{28, 124, 69}: "Vitek Industrial Video Products, Inc.", - [3]byte{28, 124, 199}: "Coriant GmbH", - [3]byte{28, 126, 81}: "3bumen.com", - [3]byte{28, 126, 229}: "D-Link International", - [3]byte{28, 131, 176}: "Linked IP GmbH", - [3]byte{28, 132, 100}: "FORMOSA WIRELESS COMMUNICATION CORP.", - [3]byte{28, 134, 173}: "MCT CO., LTD.", - [3]byte{28, 142, 142}: "DB Communication & Systems Co., ltd.", - [3]byte{28, 143, 138}: "Phase Motion Control SpA", - [3]byte{28, 145, 121}: "Integrated System Technologies Ltd", - [3]byte{28, 148, 146}: "RUAG Schweiz AG", - [3]byte{28, 149, 93}: "I-LAX ELECTRONICS INC.", - [3]byte{28, 149, 159}: "Veethree Electronics And Marine LLC", - [3]byte{28, 150, 90}: "Weifang goertek Electronics CO.,LTD", - [3]byte{28, 151, 61}: "PRICOM Design", - [3]byte{28, 153, 76}: "Murata Manufactuaring Co.,Ltd.", - [3]byte{28, 156, 38}: "Zoovel Technologies", - [3]byte{28, 158, 203}: "Beijing Nari Smartchip Microelectronics Company Limited", - [3]byte{28, 162, 177}: "ruwido austria gmbh", - [3]byte{28, 167, 112}: "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LT", - [3]byte{28, 170, 7}: "CISCO SYSTEMS, INC.", - [3]byte{28, 171, 1}: "Innovolt", - [3]byte{28, 171, 167}: "Apple", - [3]byte{28, 175, 5}: "Samsung Electronics Co.,Ltd", - [3]byte{28, 175, 247}: "D-LINK INTERNATIONAL PTE LIMITED", - [3]byte{28, 176, 148}: "HTC Corporation", - [3]byte{28, 177, 127}: "NEC Platforms, Ltd.", - [3]byte{28, 178, 67}: "TDC A/S", - [3]byte{28, 186, 140}: "Texas Instruments", - [3]byte{28, 187, 168}: "OJSC \"Ufimskiy Zavod \"Promsvyaz\"", - [3]byte{28, 189, 14}: "Amplified Engineering Pty Ltd", - [3]byte{28, 189, 185}: "D-LINK INTERNATIONAL PTE LIMITED", - [3]byte{28, 193, 26}: "Wavetronix", - [3]byte{28, 193, 222}: "Hewlett-Packard Company", - [3]byte{28, 195, 22}: "MileSight Technology Co., Ltd.", - [3]byte{28, 198, 60}: "Arcadyan Technology Corporation", - [3]byte{28, 212, 12}: "Kriwan Industrie-Elektronik GmbH", - [3]byte{28, 222, 167}: "Cisco", - [3]byte{28, 223, 15}: "CISCO SYSTEMS, INC.", - [3]byte{28, 225, 101}: "Marshal Corporation", - [3]byte{28, 225, 146}: "Qisda Corporation", - [3]byte{28, 226, 204}: "Texas Instruments", - [3]byte{28, 230, 43}: "Apple", - [3]byte{28, 230, 199}: "Cisco", - [3]byte{28, 238, 232}: "Ilshin Elecom", - [3]byte{28, 240, 97}: "SCAPS GmbH", - [3]byte{28, 244, 202}: "PRIVATE", - [3]byte{28, 245, 231}: "Turtle Industry Co., Ltd.", - [3]byte{28, 250, 104}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{28, 252, 187}: "Realfiction ApS", - [3]byte{28, 254, 167}: "IDentytech Solutins Ltd.", - [3]byte{32, 1, 79}: "Linea Research Ltd", - [3]byte{32, 2, 175}: "Murata Manufactuaring Co.,Ltd.", - [3]byte{32, 5, 5}: "RADMAX COMMUNICATION PRIVATE LIMITED", - [3]byte{32, 5, 232}: "OOO InProMedia", - [3]byte{32, 8, 237}: "Huawei Technologies Co., Ltd", - [3]byte{32, 10, 94}: "Xiangshan Giant Eagle Technology Developing co.,LTD", - [3]byte{32, 11, 199}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{32, 12, 200}: "NETGEAR INC.,", - [3]byte{32, 14, 149}: "IEC – TC9 WG43", - [3]byte{32, 16, 122}: "Gemtek Technology Co., Ltd.", - [3]byte{32, 18, 87}: "Most Lucky Trading Ltd", - [3]byte{32, 18, 213}: "Scientech Materials Corporation", - [3]byte{32, 19, 224}: "Samsung Electronics Co.,Ltd", - [3]byte{32, 22, 216}: "Liteon Technology Corporation", - [3]byte{32, 24, 14}: "Shenzhen Sunchip Technology Co., Ltd", - [3]byte{32, 26, 6}: "COMPAL INFORMATION (KUNSHAN) CO., LTD.", - [3]byte{32, 29, 3}: "Elatec GmbH", - [3]byte{32, 33, 165}: "LG Electronics Inc", - [3]byte{32, 37, 100}: "PEGATRON CORPORATION", - [3]byte{32, 37, 152}: "Teleview", - [3]byte{32, 43, 193}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{32, 44, 183}: "Kong Yue Electronics & Information Industry (Xinhui) Ltd.", - [3]byte{32, 55, 6}: "CISCO SYSTEMS, INC.", - [3]byte{32, 55, 188}: "Kuipers Electronic Engineering BV", - [3]byte{32, 58, 7}: "Cisco", - [3]byte{32, 64, 5}: "feno GmbH", - [3]byte{32, 65, 90}: "Smarteh d.o.o.", - [3]byte{32, 68, 58}: "Schneider Electric Asia Pacific Ltd", - [3]byte{32, 70, 161}: "VECOW Co., Ltd", - [3]byte{32, 70, 249}: "Advanced Network Devices (dba:AND)", - [3]byte{32, 74, 170}: "Hanscan Spain S.A.", - [3]byte{32, 76, 109}: "Hugo Brennenstuhl Gmbh & Co. KG.", - [3]byte{32, 78, 107}: "Axxana(israel) ltd", - [3]byte{32, 78, 127}: "NETGEAR", - [3]byte{32, 83, 202}: "Risk Technology Ltd", - [3]byte{32, 84, 118}: "Sony Mobile Communications AB", - [3]byte{32, 87, 33}: "Salix Technology CO., Ltd.", - [3]byte{32, 89, 160}: "Paragon Technologies Inc.", - [3]byte{32, 90, 0}: "Coval", - [3]byte{32, 91, 42}: "PRIVATE", - [3]byte{32, 91, 94}: "Shenzhen Wonhe Technology Co., Ltd", - [3]byte{32, 92, 250}: "Yangzhou ChangLian Network Technology Co,ltd.", - [3]byte{32, 100, 50}: "SAMSUNG ELECTRO MECHANICS CO.,LTD.", - [3]byte{32, 103, 177}: "Pluto inc.", - [3]byte{32, 104, 157}: "Liteon Technology Corporation", - [3]byte{32, 106, 138}: "Wistron InfoComm Manufacturing(Kunshan)Co.,Ltd.", - [3]byte{32, 106, 255}: "Atlas Elektronik UK Limited", - [3]byte{32, 110, 156}: "Samsung Electronics Co.,Ltd", - [3]byte{32, 111, 236}: "Braemac CA LLC", - [3]byte{32, 115, 85}: "ARRIS Group, Inc.", - [3]byte{32, 116, 207}: "Shenzhen Voxtech Co.,Ltd", - [3]byte{32, 118, 0}: "Actiontec Electronics, Inc", - [3]byte{32, 118, 147}: "Lenovo (Beijing) Limited.", - [3]byte{32, 124, 143}: "Quanta Microsystems,Inc.", - [3]byte{32, 125, 116}: "Apple", - [3]byte{32, 133, 140}: "Assa", - [3]byte{32, 135, 172}: "AES motomation", - [3]byte{32, 137, 132}: "COMPAL INFORMATION (KUNSHAN) CO., LTD", - [3]byte{32, 137, 134}: "zte corporation", - [3]byte{32, 145, 138}: "PROFALUX", - [3]byte{32, 145, 217}: "I'M SPA", - [3]byte{32, 147, 77}: "Fujian Star-net Communication Co., Ltd", - [3]byte{32, 154, 233}: "Volacomm Co., Ltd", - [3]byte{32, 155, 165}: "JIAXING GLEAD Electronics Co.,Ltd", - [3]byte{32, 162, 231}: "Lee-Dickens Ltd", - [3]byte{32, 167, 135}: "Bointec Taiwan Corporation Limited", - [3]byte{32, 169, 155}: "Microsoft Corporation", - [3]byte{32, 170, 37}: "IP-NET LLC", - [3]byte{32, 170, 75}: "Cisco-Linksys, LLC", - [3]byte{32, 176, 247}: "Enclustra GmbH", - [3]byte{32, 179, 153}: "Enterasys", - [3]byte{32, 181, 198}: "Mimosa Networks", - [3]byte{32, 183, 192}: "Omicron electronics GmbH", - [3]byte{32, 187, 192}: "Cisco", - [3]byte{32, 187, 198}: "Jabil Circuit Hungary Ltd.", - [3]byte{32, 191, 219}: "DVL", - [3]byte{32, 193, 175}: "i Wit Digital Co., Limited", - [3]byte{32, 195, 143}: "Texas Instruments Inc", - [3]byte{32, 198, 13}: "Shanghai annijie Information technology Co.,LTD", - [3]byte{32, 198, 235}: "Panasonic Corporation AVC Networks Company", - [3]byte{32, 200, 179}: "SHENZHEN BUL-TECH CO.,LTD.", - [3]byte{32, 201, 208}: "Apple", - [3]byte{32, 205, 57}: "Texas Instruments, Inc", - [3]byte{32, 206, 196}: "Peraso Technologies", - [3]byte{32, 207, 48}: "ASUSTek COMPUTER INC.", - [3]byte{32, 210, 31}: "Wincal Technology Corp.", - [3]byte{32, 211, 144}: "Samsung Electronics Co.,Ltd", - [3]byte{32, 213, 171}: "Korea Infocom Co.,Ltd.", - [3]byte{32, 213, 191}: "Samsung Eletronics Co., Ltd", - [3]byte{32, 214, 7}: "Nokia Corporation", - [3]byte{32, 217, 6}: "Iota, Inc.", - [3]byte{32, 220, 147}: "Cheetah Hi-Tech, Inc.", - [3]byte{32, 220, 230}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{32, 223, 63}: "Nanjing SAC Power Grid Automation Co., Ltd.", - [3]byte{32, 229, 42}: "NETGEAR INC.,", - [3]byte{32, 229, 100}: "ARRIS Group, Inc.", - [3]byte{32, 231, 145}: "Siemens Healthcare Diagnostics, Inc", - [3]byte{32, 234, 199}: "SHENZHEN RIOPINE ELECTRONICS CO., LTD", - [3]byte{32, 237, 116}: "Ability enterprise co.,Ltd.", - [3]byte{32, 238, 198}: "Elefirst Science & Tech Co ., ltd", - [3]byte{32, 240, 2}: "MTData Developments Pty. Ltd.", - [3]byte{32, 243, 163}: "Huawei Technologies Co., Ltd", - [3]byte{32, 248, 94}: "Delta Electronics", - [3]byte{32, 250, 187}: "Cambridge Executive Limited", - [3]byte{32, 253, 241}: "3COM EUROPE LTD", - [3]byte{32, 254, 205}: "System In Frontier Inc.", - [3]byte{32, 254, 219}: "M2M Solution S.A.S.", - [3]byte{36, 1, 199}: "Cisco", - [3]byte{36, 5, 15}: "MTN Electronic Co. Ltd", - [3]byte{36, 9, 23}: "Devlin Electronics Limited", - [3]byte{36, 10, 17}: "TCT Mobile Limited", - [3]byte{36, 10, 100}: "AzureWaveTechnologies,Inc", - [3]byte{36, 11, 42}: "Viettel Group", - [3]byte{36, 11, 177}: "KOSTAL Industrie Elektrik GmbH", - [3]byte{36, 16, 100}: "Shenzhen Ecsino Tecnical Co. Ltd", - [3]byte{36, 17, 37}: "Hutek Co., Ltd.", - [3]byte{36, 17, 72}: "Entropix, LLC", - [3]byte{36, 17, 208}: "Chongqing Ehs Science and Technology Development Co.,Ltd.", - [3]byte{36, 26, 140}: "Squarehead Technology AS", - [3]byte{36, 27, 19}: "Shanghai Nutshell Electronic Co., Ltd.", - [3]byte{36, 31, 44}: "Calsys, Inc.", - [3]byte{36, 33, 171}: "Sony Ericsson Mobile Communications", - [3]byte{36, 38, 66}: "SHARP Corporation.", - [3]byte{36, 47, 250}: "Toshiba Global Commerce Solutions", - [3]byte{36, 51, 108}: "PRIVATE", - [3]byte{36, 55, 76}: "Cisco SPVTG", - [3]byte{36, 55, 239}: "EMC Electronic Media Communication SA", - [3]byte{36, 60, 32}: "Dynamode Group", - [3]byte{36, 66, 188}: "Alinco,incorporated", - [3]byte{36, 69, 151}: "GEMUE Gebr. Mueller Apparatebau", - [3]byte{36, 71, 14}: "PentronicAB", - [3]byte{36, 73, 123}: "Innovative Converged Devices Inc", - [3]byte{36, 79, 29}: "iRule LLC", - [3]byte{36, 95, 223}: "KYOCERA Corporation", - [3]byte{36, 98, 120}: "sysmocom - systems for mobile communications GmbH", - [3]byte{36, 100, 239}: "CYG SUNRI CO.,LTD.", - [3]byte{36, 101, 17}: "AVM GmbH", - [3]byte{36, 105, 74}: "Jasmine Systems Inc.", - [3]byte{36, 105, 165}: "Huawei Technologies Co., Ltd", - [3]byte{36, 106, 171}: "IT-IS International", - [3]byte{36, 118, 125}: "Cisco SPVTG", - [3]byte{36, 119, 3}: "Intel Corporate", - [3]byte{36, 128, 0}: "Westcontrol AS", - [3]byte{36, 129, 170}: "KSH International Co., Ltd.", - [3]byte{36, 130, 138}: "Prowave Technologies Ltd.", - [3]byte{36, 134, 244}: "Ctek, Inc.", - [3]byte{36, 135, 7}: "SEnergy Corporation", - [3]byte{36, 147, 202}: "Voxtronic Technology Computer-Systeme GmbH", - [3]byte{36, 148, 66}: "OPEN ROAD SOLUTIONS , INC.", - [3]byte{36, 149, 4}: "SFR", - [3]byte{36, 151, 237}: "Techvision Intelligent Technology Limited", - [3]byte{36, 162, 225}: "Apple, Inc", - [3]byte{36, 164, 44}: "KOUKAAM a.s.", - [3]byte{36, 164, 60}: "Ubiquiti Networks, INC", - [3]byte{36, 164, 149}: "Thales Canada Inc.", - [3]byte{36, 168, 125}: "Panasonic Automotive Systems Asia Pacific(Thailand)Co.,Ltd.", - [3]byte{36, 169, 55}: "PURE Storage", - [3]byte{36, 171, 129}: "Apple", - [3]byte{36, 175, 74}: "Alcatel-Lucent-IPD", - [3]byte{36, 175, 84}: "NEXGEN Mediatech Inc.", - [3]byte{36, 182, 87}: "CISCO SYSTEMS, INC.", - [3]byte{36, 182, 184}: "FRIEM SPA", - [3]byte{36, 182, 253}: "Dell Inc", - [3]byte{36, 184, 140}: "Crenus Co.,Ltd.", - [3]byte{36, 184, 210}: "Opzoon Technology Co.,Ltd.", - [3]byte{36, 186, 48}: "Technical Consumer Products, Inc.", - [3]byte{36, 187, 193}: "Absolute Analysis", - [3]byte{36, 188, 130}: "Dali Wireless, Inc.", - [3]byte{36, 190, 5}: "Hewlett Packard", - [3]byte{36, 191, 116}: "PRIVATE", - [3]byte{36, 192, 179}: "RSF", - [3]byte{36, 198, 150}: "Samsung Electronics Co.,Ltd", - [3]byte{36, 200, 72}: "mywerk system GmbH", - [3]byte{36, 200, 110}: "Chaney Instrument Co.", - [3]byte{36, 201, 161}: "Ruckus Wireless", - [3]byte{36, 201, 222}: "Genoray", - [3]byte{36, 203, 231}: "MYK, Inc.", - [3]byte{36, 207, 33}: "Shenzhen State Micro Technology Co., Ltd", - [3]byte{36, 209, 63}: "MEXUS CO.,LTD", - [3]byte{36, 210, 204}: "SmartDrive Systems Inc.", - [3]byte{36, 217, 33}: "Avaya, Inc", - [3]byte{36, 218, 182}: "Sistemas de Gestión Energética S.A. de C.V", - [3]byte{36, 219, 172}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{36, 219, 173}: "ShopperTrak RCT Corporation", - [3]byte{36, 219, 237}: "Samsung Electronics Co.,Ltd", - [3]byte{36, 222, 198}: "Aruba Networks", - [3]byte{36, 226, 113}: "Qingdao Hisense Communications Co.,Ltd", - [3]byte{36, 227, 20}: "Apple", - [3]byte{36, 230, 186}: "JSC Zavod im. Kozitsky", - [3]byte{36, 233, 179}: "Cisco", - [3]byte{36, 234, 64}: "Systeme Helmholz GmbH", - [3]byte{36, 235, 101}: "SAET I.S. S.r.l.", - [3]byte{36, 236, 153}: "Askey Computer Corp", - [3]byte{36, 236, 214}: "CSG Science & Technology Co.,Ltd.Hefei", - [3]byte{36, 238, 58}: "Chengdu Yingji Electronic Hi-tech Co Ltd", - [3]byte{36, 240, 255}: "GHT Co., Ltd.", - [3]byte{36, 242, 221}: "Radiant Zemax LLC", - [3]byte{36, 245, 170}: "Samsung Electronics Co.,LTD", - [3]byte{36, 253, 82}: "Liteon Technology Corporation", - [3]byte{40, 4, 224}: "FERMAX ELECTRONICA S.A.U.", - [3]byte{40, 6, 30}: "NINGBO GLOBAL USEFUL ELECTRIC CO.,LTD", - [3]byte{40, 6, 141}: "ITL, LLC", - [3]byte{40, 11, 92}: "Apple", - [3]byte{40, 12, 184}: "Mikrosay Yazilim ve Elektronik A.S.", - [3]byte{40, 13, 252}: "Sony Computer Entertainment Inc.", - [3]byte{40, 16, 123}: "D-Link International", - [3]byte{40, 20, 113}: "Lantis co., LTD.", - [3]byte{40, 22, 46}: "2Wire", - [3]byte{40, 23, 206}: "Omnisense Ltd", - [3]byte{40, 24, 120}: "Microsoft Corporation", - [3]byte{40, 24, 253}: "Aditya Infotech Ltd.", - [3]byte{40, 34, 70}: "Beijing Sinoix Communication Co., LTD", - [3]byte{40, 38, 166}: "PBR electronics GmbH", - [3]byte{40, 40, 93}: "ZyXEL Communications Corporation", - [3]byte{40, 41, 204}: "Corsa Technology Incorporated", - [3]byte{40, 41, 217}: "GlobalBeiMing technology (Beijing)Co. Ltd", - [3]byte{40, 44, 178}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{40, 49, 82}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{40, 50, 197}: "Humax.co.,ltd", - [3]byte{40, 52, 16}: "Enigma Diagnostics Limited", - [3]byte{40, 52, 162}: "Cisco", - [3]byte{40, 55, 55}: "Apple", - [3]byte{40, 56, 207}: "Gen2wave", - [3]byte{40, 57, 231}: "Preceno Technology Pte.Ltd.", - [3]byte{40, 59, 150}: "Cool Control LTD", - [3]byte{40, 60, 228}: "Huawei Technologies Co., Ltd", - [3]byte{40, 64, 26}: "C8 MediSensors, Inc.", - [3]byte{40, 65, 33}: "OptiSense Network, LLC", - [3]byte{40, 68, 48}: "GenesisTechnical Systems (UK) Ltd", - [3]byte{40, 71, 170}: "Nokia Corporation", - [3]byte{40, 72, 70}: "GridCentric Inc.", - [3]byte{40, 76, 83}: "Intune Networks", - [3]byte{40, 77, 146}: "Luminator", - [3]byte{40, 78, 215}: "OutSmart Power Systems, Inc.", - [3]byte{40, 79, 206}: "Liaoning Wontel Science and Technology Development Co.,Ltd.", - [3]byte{40, 81, 50}: "Shenzhen Prayfly Technology Co.,Ltd", - [3]byte{40, 87, 103}: "Echostar Technologies Corp", - [3]byte{40, 95, 219}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{40, 96, 70}: "Lantech Communications Global, Inc.", - [3]byte{40, 96, 148}: "CAPELEC", - [3]byte{40, 99, 54}: "Siemens AG - Industrial Automation - EWA", - [3]byte{40, 101, 107}: "Keystone Microtech Corporation", - [3]byte{40, 106, 184}: "Apple", - [3]byte{40, 106, 186}: "Apple", - [3]byte{40, 109, 151}: "SAMJIN Co., Ltd.", - [3]byte{40, 110, 212}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{40, 113, 132}: "Spire Payments", - [3]byte{40, 114, 197}: "Smartmatic Corp", - [3]byte{40, 114, 240}: "ATHENA", - [3]byte{40, 121, 148}: "Realplay Digital Technology(Shenzhen) Co.,Ltd", - [3]byte{40, 128, 35}: "Hewlett Packard", - [3]byte{40, 133, 45}: "Touch Networks", - [3]byte{40, 137, 21}: "CashGuard Sverige AB", - [3]byte{40, 138, 28}: "Juniper networks", - [3]byte{40, 145, 208}: "Stage Tec Entwicklungsgesellschaft für professionelle Audiotechnik mbH", - [3]byte{40, 146, 74}: "Hewlett Packard", - [3]byte{40, 147, 254}: "CISCO SYSTEMS, INC.", - [3]byte{40, 148, 15}: "CISCO SYSTEMS, INC.", - [3]byte{40, 148, 175}: "Samhwa Telecom", - [3]byte{40, 152, 123}: "Samsung Electronics Co.,Ltd", - [3]byte{40, 154, 75}: "SteelSeries ApS", - [3]byte{40, 154, 250}: "TCT Mobile Limited", - [3]byte{40, 158, 223}: "Danfoss Turbocor Compressors, Inc", - [3]byte{40, 161, 134}: "enblink", - [3]byte{40, 161, 146}: "GERP Solution", - [3]byte{40, 161, 235}: "ETEK TECHNOLOGY (SHENZHEN) CO.,LTD", - [3]byte{40, 162, 65}: "exlar corp", - [3]byte{40, 165, 116}: "Miller Electric Mfg. Co.", - [3]byte{40, 165, 238}: "Shenzhen SDGI CATV Co., Ltd", - [3]byte{40, 175, 10}: "Sirius XM Radio Inc", - [3]byte{40, 176, 204}: "Xenya d.o.o.", - [3]byte{40, 178, 189}: "Intel Corporate", - [3]byte{40, 179, 171}: "Genmark Automation", - [3]byte{40, 186, 24}: "NextNav, LLC", - [3]byte{40, 186, 181}: "Samsung Electronics Co.,Ltd", - [3]byte{40, 187, 89}: "RNET Technologies, Inc.", - [3]byte{40, 190, 155}: "Technicolor USA Inc.", - [3]byte{40, 192, 218}: "Juniper Networks", - [3]byte{40, 198, 113}: "Yota Devices OY", - [3]byte{40, 198, 142}: "NETGEAR INC.,", - [3]byte{40, 199, 24}: "Altierre", - [3]byte{40, 199, 206}: "Cisco", - [3]byte{40, 200, 37}: "DellKing Industrial Co., Ltd", - [3]byte{40, 201, 20}: "Taimag Corporation", - [3]byte{40, 203, 235}: "One", - [3]byte{40, 204, 1}: "Samsung Electronics Co.,Ltd", - [3]byte{40, 204, 255}: "Corporacion Empresarial Altra SL", - [3]byte{40, 205, 28}: "Espotel Oy", - [3]byte{40, 205, 76}: "Individual Computers GmbH", - [3]byte{40, 205, 156}: "Shenzhen Dynamax Software Development Co.,Ltd.", - [3]byte{40, 207, 218}: "Apple", - [3]byte{40, 207, 233}: "Apple", - [3]byte{40, 209, 175}: "Nokia Corporation", - [3]byte{40, 210, 68}: "LCFC(HeFei) Electronics Technology Co., Ltd.", - [3]byte{40, 213, 118}: "Premier Wireless, Inc.", - [3]byte{40, 217, 62}: "Telecor Inc.", - [3]byte{40, 217, 138}: "Hangzhou Konke Technology Co.,Ltd.", - [3]byte{40, 217, 151}: "Yuduan Mobile Co., Ltd.", - [3]byte{40, 219, 129}: "Shanghai Guao Electronic Technology Co., Ltd", - [3]byte{40, 222, 246}: "bioMerieux Inc.", - [3]byte{40, 224, 44}: "Apple", - [3]byte{40, 225, 76}: "Apple, Inc.", - [3]byte{40, 226, 151}: "Shanghai InfoTM Microelectronics Co.,Ltd.", - [3]byte{40, 227, 31}: "Xiaomi inc.", - [3]byte{40, 227, 71}: "Liteon Technology Corporation", - [3]byte{40, 230, 8}: "Tokheim", - [3]byte{40, 230, 233}: "SIS Sat Internet Services GmbH", - [3]byte{40, 231, 148}: "Microtime Computer Inc.", - [3]byte{40, 231, 207}: "Apple", - [3]byte{40, 237, 88}: "JAG Jakob AG", - [3]byte{40, 238, 44}: "Frontline Test Equipment", - [3]byte{40, 239, 1}: "PRIVATE", - [3]byte{40, 243, 88}: "2C - Trifonov & Co", - [3]byte{40, 245, 50}: "ADD-Engineering BV", - [3]byte{40, 246, 6}: "Syes srl", - [3]byte{40, 251, 211}: "Ragentek Technology Group", - [3]byte{40, 252, 81}: "The Electric Controller and Manufacturing Co., LLC", - [3]byte{40, 252, 246}: "Shenzhen Xin KingBrand enterprises Co.,Ltd", - [3]byte{44, 0, 44}: "UNOWHY", - [3]byte{44, 0, 51}: "EControls, LLC", - [3]byte{44, 0, 247}: "XOS", - [3]byte{44, 1, 11}: "NASCENT Technology, LLC - RemKon", - [3]byte{44, 6, 35}: "Win Leader Inc.", - [3]byte{44, 7, 60}: "DEVLINE LIMITED", - [3]byte{44, 16, 193}: "Nintendo Co., Ltd.", - [3]byte{44, 24, 174}: "Trend Electronics Co., Ltd.", - [3]byte{44, 25, 132}: "IDN Telecom, Inc.", - [3]byte{44, 26, 49}: "Electronics Company Limited", - [3]byte{44, 30, 234}: "AERODEV", - [3]byte{44, 33, 114}: "Juniper Networks", - [3]byte{44, 36, 95}: "Babolat VS", - [3]byte{44, 38, 197}: "zte corporation", - [3]byte{44, 39, 215}: "Hewlett-Packard Company", - [3]byte{44, 40, 45}: "BBK COMMUNICATIAO TECHNOLOGY CO.,LTD.", - [3]byte{44, 41, 151}: "Microsoft Corporation", - [3]byte{44, 45, 72}: "bct electronic GesmbH", - [3]byte{44, 48, 104}: "Pantech Co.,Ltd", - [3]byte{44, 51, 122}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{44, 52, 39}: "ERCO & GENER", - [3]byte{44, 53, 87}: "ELLIY Power CO..Ltd", - [3]byte{44, 54, 160}: "Capisco Limited", - [3]byte{44, 54, 248}: "CISCO SYSTEMS, INC.", - [3]byte{44, 55, 49}: "ShenZhen Yifang Digital Technology Co.,LTD", - [3]byte{44, 55, 150}: "CYBO CO.,LTD.", - [3]byte{44, 57, 150}: "SAGEMCOM", - [3]byte{44, 57, 193}: "Ciena Corporation", - [3]byte{44, 58, 40}: "Fagor Electrónica", - [3]byte{44, 59, 253}: "Netstor Technology Co., Ltd.", - [3]byte{44, 62, 207}: "Cisco", - [3]byte{44, 63, 56}: "CISCO SYSTEMS, INC.", - [3]byte{44, 63, 62}: "Alge-Timing GmbH", - [3]byte{44, 65, 56}: "Hewlett-Packard Company", - [3]byte{44, 68, 1}: "Samsung Electronics Co.,Ltd", - [3]byte{44, 68, 27}: "Spectrum Medical Limited", - [3]byte{44, 68, 253}: "Hewlett Packard", - [3]byte{44, 80, 137}: "Shenzhen Kaixuan Visual Technology Co.,Limited", - [3]byte{44, 83, 74}: "Shenzhen Winyao Electronic Limited", - [3]byte{44, 84, 45}: "CISCO SYSTEMS, INC.", - [3]byte{44, 84, 207}: "LG Electronics", - [3]byte{44, 85, 60}: "Gainspeed, Inc.", - [3]byte{44, 89, 229}: "Hewlett Packard", - [3]byte{44, 90, 5}: "Nokia Corporation", - [3]byte{44, 90, 163}: "PROMATE ELECTRONIC CO.LTD", - [3]byte{44, 91, 225}: "Centripetal Networks, Inc", - [3]byte{44, 93, 147}: "Ruckus Wireless", - [3]byte{44, 95, 243}: "Pertronic Industries", - [3]byte{44, 96, 12}: "QUANTA COMPUTER INC.", - [3]byte{44, 98, 90}: "Finest Security Systems Co., Ltd", - [3]byte{44, 98, 137}: "Regenersis (Glenrothes) Ltd", - [3]byte{44, 103, 251}: "ShenZhen Zhengjili Electronics Co., LTD", - [3]byte{44, 105, 186}: "RF Controls, LLC", - [3]byte{44, 107, 245}: "Juniper networks", - [3]byte{44, 113, 85}: "HiveMotion", - [3]byte{44, 114, 195}: "Soundmatters", - [3]byte{44, 117, 15}: "Shanghai Dongzhou-Lawton Communication Technology Co. Ltd.", - [3]byte{44, 118, 138}: "Hewlett-Packard Company", - [3]byte{44, 123, 90}: "Milper Ltd", - [3]byte{44, 123, 132}: "OOO Petr Telegin", - [3]byte{44, 126, 207}: "Onzo Ltd", - [3]byte{44, 128, 101}: "HARTING Inc. of North America", - [3]byte{44, 129, 88}: "Hon Hai Precision Ind. Co.,Ltd", - [3]byte{44, 138, 114}: "HTC Corporation", - [3]byte{44, 139, 242}: "Hitachi Metals America Ltd", - [3]byte{44, 145, 39}: "Eintechno Corporation", - [3]byte{44, 146, 44}: "Kishu Giken Kogyou Company Ltd,.", - [3]byte{44, 148, 100}: "Cincoze Co., Ltd.", - [3]byte{44, 149, 127}: "zte corporation", - [3]byte{44, 151, 23}: "I.C.Y. B.V.", - [3]byte{44, 154, 164}: "NGI SpA", - [3]byte{44, 158, 95}: "ARRIS Group, Inc.", - [3]byte{44, 158, 252}: "CANON INC.", - [3]byte{44, 161, 87}: "acromate, Inc.", - [3]byte{44, 163, 14}: "POWER DRAGON DEVELOPMENT LIMITED", - [3]byte{44, 167, 128}: "True Technologies Inc.", - [3]byte{44, 168, 53}: "RIM", - [3]byte{44, 171, 37}: "Shenzhen Gongjin Electronics Co.,Ltd", - [3]byte{44, 171, 164}: "Cisco SPVTG", - [3]byte{44, 176, 93}: "NETGEAR", - [3]byte{44, 176, 223}: "Soliton Technologies Pvt Ltd", - [3]byte{44, 180, 58}: "Apple", - [3]byte{44, 182, 147}: "Radware", - [3]byte{44, 182, 157}: "RED Digital Cinema", - [3]byte{44, 190, 8}: "Apple", - [3]byte{44, 190, 151}: "Ingenieurbuero Bickele und Buehler GmbH", - [3]byte{44, 194, 96}: "Ravello Systems", - [3]byte{44, 204, 21}: "Nokia Corporation", - [3]byte{44, 205, 39}: "Precor Inc", - [3]byte{44, 205, 67}: "Summit Technology Group", - [3]byte{44, 205, 105}: "Aqavi.com", - [3]byte{44, 208, 90}: "Liteon Technology Corporation", - [3]byte{44, 209, 218}: "Sanjole, Inc.", - [3]byte{44, 210, 231}: "Nokia Corporation", - [3]byte{44, 212, 68}: "Fujitsu Limited", - [3]byte{44, 221, 12}: "Discovergy GmbH", - [3]byte{44, 226, 168}: "DeviceDesign", - [3]byte{44, 228, 18}: "SAGEMCOM SAS", - [3]byte{44, 230, 204}: "Ruckus Wireless", - [3]byte{44, 232, 113}: "Alert Metalguard ApS", - [3]byte{44, 237, 235}: "Alpheus Digital Company Limited", - [3]byte{44, 238, 38}: "Petroleum Geo-Services", - [3]byte{44, 240, 238}: "Apple", - [3]byte{44, 242, 3}: "EMKO ELEKTRONIK SAN VE TIC AS", - [3]byte{44, 244, 197}: "Avaya, Inc", - [3]byte{44, 247, 241}: "Seeed Technology Inc.", - [3]byte{44, 250, 162}: "Alcatel-Lucent", - [3]byte{48, 5, 92}: "Brother industries, LTD.", - [3]byte{48, 11, 156}: "Delta Mobile Systems, Inc.", - [3]byte{48, 13, 42}: "Zhejiang Wellcom Technology Co.,Ltd.", - [3]byte{48, 14, 213}: "Hon Hai Precision Ind.Co.Ltd", - [3]byte{48, 16, 179}: "Liteon Technology Corporation", - [3]byte{48, 16, 228}: "Apple, Inc.", - [3]byte{48, 20, 45}: "Piciorgros GmbH", - [3]byte{48, 20, 74}: "Wistron Neweb Corp.", - [3]byte{48, 21, 24}: "Ubiquitous Communication Co. ltd.", - [3]byte{48, 22, 141}: "ProLon", - [3]byte{48, 23, 200}: "Sony Ericsson Mobile Communications AB", - [3]byte{48, 24, 207}: "DEOS control systems GmbH", - [3]byte{48, 25, 102}: "Samsung Electronics Co.,Ltd", - [3]byte{48, 26, 40}: "Mako Networks Ltd", - [3]byte{48, 33, 91}: "Shenzhen Ostar Display Electronic Co.,Ltd", - [3]byte{48, 45, 232}: "JDA, LLC (JDA Systems)", - [3]byte{48, 50, 148}: "W-IE-NE-R Plein & Baus GmbH", - [3]byte{48, 50, 212}: "Hanilstm Co., Ltd.", - [3]byte{48, 51, 53}: "Boosty", - [3]byte{48, 55, 166}: "CISCO SYSTEMS, INC.", - [3]byte{48, 56, 85}: "Nokia Corporation", - [3]byte{48, 57, 38}: "Sony Ericsson Mobile Communications AB", - [3]byte{48, 57, 85}: "Shenzhen Jinhengjia Electronic Co., Ltd.", - [3]byte{48, 57, 242}: "ADB Broadband Italia", - [3]byte{48, 58, 100}: "Intel Corporate", - [3]byte{48, 61, 8}: "GLINTT TES S.A.", - [3]byte{48, 62, 173}: "Sonavox Canada Inc", - [3]byte{48, 65, 116}: "ALTEC LANSING LLC", - [3]byte{48, 66, 37}: "BURG-WÄCHTER KG", - [3]byte{48, 68, 73}: "PLATH GmbH", - [3]byte{48, 70, 154}: "NETGEAR", - [3]byte{48, 73, 59}: "Nanjing Z-Com Wireless Co.,Ltd", - [3]byte{48, 76, 126}: "Panasonic Electric Works Automation Controls Techno Co.,Ltd.", - [3]byte{48, 78, 195}: "Tianjin Techua Technology Co., Ltd.", - [3]byte{48, 81, 248}: "BYK-Gardner GmbH", - [3]byte{48, 82, 90}: "NST Co., LTD", - [3]byte{48, 85, 237}: "Trex Network LLC", - [3]byte{48, 87, 172}: "IRLAB LTD.", - [3]byte{48, 89, 91}: "streamnow AG", - [3]byte{48, 89, 183}: "Microsoft", - [3]byte{48, 93, 56}: "Beissbarth", - [3]byte{48, 96, 35}: "ARRIS Group, Inc.", - [3]byte{48, 97, 18}: "PAV GmbH", - [3]byte{48, 97, 24}: "Paradom Inc.", - [3]byte{48, 101, 236}: "Wistron (ChongQing)", - [3]byte{48, 104, 140}: "Reach Technology Inc.", - [3]byte{48, 105, 75}: "RIM", - [3]byte{48, 108, 190}: "Skymotion Technology (HK) Limited", - [3]byte{48, 110, 92}: "Validus Technologies", - [3]byte{48, 113, 178}: "Hangzhou Prevail Optoelectronic Equipment Co.,LTD.", - [3]byte{48, 115, 80}: "Inpeco SA", - [3]byte{48, 117, 18}: "Sony Mobile Communications AB", - [3]byte{48, 118, 111}: "LG Electronics", - [3]byte{48, 119, 203}: "Maike Industry(Shenzhen)CO.,LTD", - [3]byte{48, 120, 107}: "TIANJIN Golden Pentagon Electronics Co., Ltd.", - [3]byte{48, 120, 194}: "Innowireless, Co. Ltd.", - [3]byte{48, 124, 48}: "RIM", - [3]byte{48, 126, 203}: "SFR", - [3]byte{48, 133, 169}: "Asustek Computer Inc", - [3]byte{48, 135, 48}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{48, 137, 153}: "Guangdong East Power Co.,", - [3]byte{48, 140, 251}: "Dropcam", - [3]byte{48, 144, 171}: "Apple", - [3]byte{48, 145, 143}: "Technicolor", - [3]byte{48, 146, 246}: "SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD", - [3]byte{48, 155, 173}: "BBK Electronics Corp., Ltd.,", - [3]byte{48, 168, 219}: "Sony Mobile Communications AB", - [3]byte{48, 170, 189}: "Shanghai Reallytek Information Technology Co.,Ltd", - [3]byte{48, 174, 123}: "Deqing Dusun Electron CO., LTD", - [3]byte{48, 174, 246}: "Radio Mobile Access", - [3]byte{48, 178, 22}: "Hytec Geraetebau GmbH", - [3]byte{48, 179, 162}: "Shenzhen Heguang Measurement & Control Technology Co.,Ltd", - [3]byte{48, 181, 194}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{48, 181, 241}: "Aitexin Technology Co., Ltd", - [3]byte{48, 199, 80}: "MIC Technology Group", - [3]byte{48, 199, 174}: "Samsung Electronics Co.,Ltd", - [3]byte{48, 200, 42}: "Wi-Next s.r.l.", - [3]byte{48, 205, 167}: "Samsung Electronics ITS, Printer division", - [3]byte{48, 209, 126}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{48, 211, 87}: "Logosol, Inc.", - [3]byte{48, 212, 106}: "Autosales Incorporated", - [3]byte{48, 213, 135}: "Samsung Electronics Co.,Ltd", - [3]byte{48, 214, 201}: "Samsung Electronics Co.,Ltd", - [3]byte{48, 222, 134}: "Cedac Software S.r.l.", - [3]byte{48, 228, 142}: "Vodafone UK", - [3]byte{48, 228, 219}: "CISCO SYSTEMS, INC.", - [3]byte{48, 235, 37}: "INTEK DIGITAL", - [3]byte{48, 239, 209}: "Alstom Strongwish (Shenzhen) Co., Ltd.", - [3]byte{48, 243, 29}: "zte corporation", - [3]byte{48, 243, 58}: "+plugg srl", - [3]byte{48, 244, 47}: "ESP", - [3]byte{48, 247, 13}: "Cisco Systems", - [3]byte{48, 247, 197}: "Apple", - [3]byte{48, 247, 215}: "Thread Technology Co., Ltd", - [3]byte{48, 249, 237}: "Sony Corporation", - [3]byte{48, 250, 183}: "Tunai Creative", - [3]byte{48, 253, 17}: "MACROTECH (USA) INC.", - [3]byte{52, 0, 163}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{52, 2, 134}: "Intel Corporate", - [3]byte{52, 2, 155}: "CloudBerry Technologies Private Limited", - [3]byte{52, 7, 251}: "Ericsson AB", - [3]byte{52, 8, 4}: "D-Link Corporation", - [3]byte{52, 10, 255}: "Qingdao Hisense Communications Co.,Ltd", - [3]byte{52, 19, 168}: "Mediplan Limited", - [3]byte{52, 19, 232}: "Intel Corporate", - [3]byte{52, 21, 158}: "Apple", - [3]byte{52, 23, 235}: "Dell Inc", - [3]byte{52, 26, 76}: "SHENZHEN WEIBU ELECTRONICS CO.,LTD.", - [3]byte{52, 27, 34}: "Grandbeing Technology Co., Ltd", - [3]byte{52, 33, 9}: "Jensen Scandinavia AS", - [3]byte{52, 35, 135}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{52, 35, 186}: "Samsung Electro Mechanics co.,LTD.", - [3]byte{52, 37, 93}: "Shenzhen Loadcom Technology Co.,Ltd", - [3]byte{52, 40, 240}: "ATN International Limited", - [3]byte{52, 41, 234}: "MCD ELECTRONICS SP. Z O.O.", - [3]byte{52, 47, 110}: "Anywire corporation", - [3]byte{52, 49, 17}: "Samsung Electronics Co.,Ltd", - [3]byte{52, 49, 196}: "AVM GmbH", - [3]byte{52, 56, 175}: "Inlab Software GmbH", - [3]byte{52, 64, 181}: "IBM", - [3]byte{52, 70, 111}: "HiTEM Engineering", - [3]byte{52, 75, 61}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{52, 75, 80}: "ZTE Corporation", - [3]byte{52, 77, 234}: "zte corporation", - [3]byte{52, 77, 247}: "LG Electronics", - [3]byte{52, 79, 63}: "IO-Power Technology Co., Ltd.", - [3]byte{52, 79, 92}: "R&M AG", - [3]byte{52, 79, 105}: "EKINOPS SAS", - [3]byte{52, 81, 170}: "JID GLOBAL", - [3]byte{52, 81, 201}: "Apple", - [3]byte{52, 91, 17}: "EVI HEAT AB", - [3]byte{52, 92, 64}: "Cargt Holdings LLC", - [3]byte{52, 93, 16}: "Wytek", - [3]byte{52, 97, 120}: "The Boeing Company", - [3]byte{52, 98, 136}: "Cisco", - [3]byte{52, 100, 169}: "Hewlett Packard", - [3]byte{52, 104, 74}: "Teraworks Co., Ltd.", - [3]byte{52, 107, 211}: "Huawei Technologies Co., Ltd", - [3]byte{52, 110, 138}: "Ecosense", - [3]byte{52, 111, 144}: "Cisco", - [3]byte{52, 111, 146}: "White Rodgers Division", - [3]byte{52, 117, 199}: "Avaya, Inc", - [3]byte{52, 118, 197}: "I-O DATA DEVICE, INC.", - [3]byte{52, 120, 119}: "O-NET Communications(Shenzhen) Limited", - [3]byte{52, 126, 57}: "Nokia Danmark A/S", - [3]byte{52, 129, 55}: "UNICARD SA", - [3]byte{52, 129, 196}: "AVM GmbH", - [3]byte{52, 130, 222}: "Kayo Technology, Inc.", - [3]byte{52, 131, 2}: "iFORCOM Co., Ltd", - [3]byte{52, 132, 70}: "Ericsson AB", - [3]byte{52, 134, 42}: "Heinz Lackmann GmbH & Co KG", - [3]byte{52, 136, 93}: "Logitech Far East", - [3]byte{52, 138, 174}: "SAGEMCOM SAS", - [3]byte{52, 149, 219}: "Logitec Corporation", - [3]byte{52, 151, 251}: "ADVANCED RF TECHNOLOGIES INC", - [3]byte{52, 153, 111}: "VPI Engineering", - [3]byte{52, 153, 215}: "Universal Flow Monitors, Inc.", - [3]byte{52, 154, 13}: "ZBD Displays Ltd", - [3]byte{52, 157, 144}: "Heinzmann GmbH & CO. KG", - [3]byte{52, 161, 131}: "AWare, Inc", - [3]byte{52, 163, 191}: "Terewave. Inc.", - [3]byte{52, 165, 93}: "TECHNOSOFT INTERNATIONAL SRL", - [3]byte{52, 165, 225}: "Sensorist ApS", - [3]byte{52, 166, 140}: "Shine Profit Development Limited", - [3]byte{52, 167, 9}: "Trevil srl", - [3]byte{52, 167, 186}: "Fischer International Systems Corporation", - [3]byte{52, 168, 67}: "KYOCERA Display Corporation", - [3]byte{52, 168, 78}: "Cisco", - [3]byte{52, 170, 139}: "Samsung Electronics Co.,Ltd", - [3]byte{52, 170, 153}: "Alcatel-Lucent", - [3]byte{52, 170, 238}: "Mikrovisatos Servisas UAB", - [3]byte{52, 173, 228}: "Shanghai Chint Power Systems Co., Ltd.", - [3]byte{52, 175, 44}: "Nintendo Co., Ltd.", - [3]byte{52, 177, 247}: "Texas Instruments", - [3]byte{52, 181, 113}: "PLDS", - [3]byte{52, 183, 253}: "Guangzhou Younghead Electronic Technology Co.,Ltd", - [3]byte{52, 186, 81}: "Se-Kure Controls, Inc.", - [3]byte{52, 186, 154}: "Asiatelco Technologies Co.", - [3]byte{52, 187, 31}: "Research In Motion", - [3]byte{52, 187, 38}: "Motorola Mobility LLC", - [3]byte{52, 188, 166}: "Beijing Ding Qing Technology, Ltd.", - [3]byte{52, 189, 200}: "Cisco Systems", - [3]byte{52, 189, 249}: "Shanghai WDK Industrial Co.,Ltd.", - [3]byte{52, 189, 250}: "Cisco SPVTG", - [3]byte{52, 190, 0}: "Samsung Electronics Co.,Ltd", - [3]byte{52, 191, 144}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{52, 192, 89}: "Apple", - [3]byte{52, 195, 172}: "Samsung Electronics", - [3]byte{52, 197, 208}: "Hagleitner Hygiene International GmbH", - [3]byte{52, 198, 154}: "Enecsys Ltd", - [3]byte{52, 199, 49}: "ALPS Co,. Ltd.", - [3]byte{52, 200, 3}: "Nokia Corporation", - [3]byte{52, 201, 157}: "EIDOLON COMMUNICATIONS TECHNOLOGY CO. LTD.", - [3]byte{52, 205, 109}: "CommSky Technologies", - [3]byte{52, 205, 190}: "Huawei Technologies Co., Ltd", - [3]byte{52, 206, 148}: "Parsec (Pty) Ltd", - [3]byte{52, 208, 155}: "MobilMAX Technology Inc.", - [3]byte{52, 210, 196}: "RENA GmbH Print Systeme", - [3]byte{52, 215, 180}: "Tributary Systems, Inc.", - [3]byte{52, 219, 253}: "Cisco", - [3]byte{52, 222, 26}: "Intel Corporate", - [3]byte{52, 222, 52}: "zte corporation", - [3]byte{52, 223, 42}: "Fujikon Industrial Co.,Limited", - [3]byte{52, 224, 207}: "zte corporation", - [3]byte{52, 224, 215}: "DONGGUAN QISHENG ELECTRONICS INDUSTRIAL CO., LTD", - [3]byte{52, 226, 253}: "Apple", - [3]byte{52, 228, 42}: "Automatic Bar Controls Inc.", - [3]byte{52, 230, 173}: "Intel Corporate", - [3]byte{52, 230, 215}: "Dell Inc.", - [3]byte{52, 239, 68}: "2Wire", - [3]byte{52, 239, 139}: "NTT Communications Corporation", - [3]byte{52, 240, 202}: "Shenzhen Linghangyuan Digital Technology Co.,Ltd.", - [3]byte{52, 243, 155}: "WizLAN Ltd.", - [3]byte{52, 246, 45}: "SHARP Corporation", - [3]byte{52, 246, 210}: "Panasonic Taiwan Co.,Ltd.", - [3]byte{52, 249, 104}: "ATEK Products, LLC", - [3]byte{52, 250, 64}: "Guangzhou Robustel Technologies Co., Limited", - [3]byte{52, 252, 111}: "ALCEA", - [3]byte{56, 1, 151}: "Toshiba Samsung Storage Technolgoy Korea Corporation", - [3]byte{56, 6, 180}: "A.D.C. GmbH", - [3]byte{56, 8, 253}: "Silca Spa", - [3]byte{56, 10, 10}: "Sky-City Communication and Electronics Limited Company", - [3]byte{56, 10, 148}: "Samsung Electronics Co.,Ltd", - [3]byte{56, 11, 64}: "Samsung Electronics Co.,Ltd", - [3]byte{56, 13, 212}: "Primax Electronics LTD.", - [3]byte{56, 14, 123}: "V.P.S. Thai Co., Ltd", - [3]byte{56, 15, 74}: "Apple", - [3]byte{56, 15, 228}: "Dedicated Network Partners Oy", - [3]byte{56, 22, 209}: "Samsung Electronics Co.,Ltd", - [3]byte{56, 23, 102}: "PROMZAKAZ LTD.", - [3]byte{56, 25, 47}: "Nokia Corporation", - [3]byte{56, 28, 26}: "Cisco", - [3]byte{56, 28, 74}: "SIMCom Wireless Solutions Co.,Ltd.", - [3]byte{56, 34, 157}: "Pirelli Tyre S.p.A.", - [3]byte{56, 34, 214}: "H3C Technologies Co., Limited", - [3]byte{56, 38, 43}: "UTran Technology", - [3]byte{56, 38, 205}: "ANDTEK", - [3]byte{56, 40, 234}: "Fujian Netcom Technology Co., LTD", - [3]byte{56, 44, 74}: "ASUSTek COMPUTER INC.", - [3]byte{56, 45, 209}: "Samsung Electronics Co.,Ltd", - [3]byte{56, 49, 172}: "WEG", - [3]byte{56, 59, 200}: "2wire", - [3]byte{56, 63, 16}: "DBL Technology Ltd.", - [3]byte{56, 66, 51}: "Wildeboer Bauteile GmbH", - [3]byte{56, 66, 166}: "Ingenieurbuero Stahlkopf", - [3]byte{56, 67, 105}: "Patrol Products Consortium LLC", - [3]byte{56, 69, 140}: "MyCloud Technology corporation", - [3]byte{56, 70, 8}: "ZTE Corporation", - [3]byte{56, 72, 76}: "Apple", - [3]byte{56, 75, 118}: "AIRTAME ApS", - [3]byte{56, 79, 240}: "Azurewave Technologies, Inc.", - [3]byte{56, 82, 26}: "Alcatel-Lucent 7705", - [3]byte{56, 88, 12}: "Panaccess Systems GmbH", - [3]byte{56, 89, 248}: "MindMade sp. z o.o.", - [3]byte{56, 89, 249}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{56, 90, 168}: "Beijing Zhongdun Security Technology Development Co.", - [3]byte{56, 95, 195}: "Yu Jeong System, Co.Ltd", - [3]byte{56, 96, 119}: "PEGATRON CORPORATION", - [3]byte{56, 99, 187}: "Hewlett Packard", - [3]byte{56, 99, 246}: "3NOD MULTIMEDIA(SHENZHEN)CO.,LTD", - [3]byte{56, 102, 69}: "OOSIC Technology CO.,Ltd", - [3]byte{56, 103, 147}: "Asia Optical Co., Inc.", - [3]byte{56, 107, 187}: "ARRIS Group, Inc.", - [3]byte{56, 108, 155}: "Ivy Biomedical", - [3]byte{56, 110, 33}: "Wasion Group Ltd.", - [3]byte{56, 114, 192}: "COMTREND", - [3]byte{56, 123, 71}: "AKELA, Inc.", - [3]byte{56, 131, 69}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{56, 137, 220}: "Opticon Sensors Europe B.V.", - [3]byte{56, 138, 183}: "ITC Networks", - [3]byte{56, 142, 231}: "Fanhattan LLC", - [3]byte{56, 145, 251}: "Xenox Holding BV", - [3]byte{56, 148, 150}: "Samsung Elec Co.,Ltd", - [3]byte{56, 149, 146}: "Beijing Tendyron Corporation", - [3]byte{56, 159, 131}: "OTN Systems N.V.", - [3]byte{56, 165, 60}: "Veenstra Instruments", - [3]byte{56, 165, 182}: "SHENZHEN MEGMEET ELECTRICAL CO.,LTD", - [3]byte{56, 168, 81}: "Moog, Ing", - [3]byte{56, 168, 107}: "Orga BV", - [3]byte{56, 169, 95}: "Actifio Inc", - [3]byte{56, 170, 60}: "SAMSUNG ELECTRO-MECHANICS", - [3]byte{56, 177, 45}: "Sonotronic Nagel GmbH", - [3]byte{56, 177, 219}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{56, 181, 189}: "E.G.O. Elektro-Ger", - [3]byte{56, 183, 77}: "Fijowave Limited", - [3]byte{56, 187, 35}: "OzVision America LLC", - [3]byte{56, 187, 60}: "Avaya, Inc", - [3]byte{56, 188, 26}: "Meizu technology co.,ltd", - [3]byte{56, 191, 47}: "Espec Corp.", - [3]byte{56, 191, 51}: "NEC CASIO Mobile Communications", - [3]byte{56, 192, 150}: "ALPS ELECTRIC CO.,LTD.", - [3]byte{56, 199, 186}: "CS Services Co.,Ltd.", - [3]byte{56, 200, 92}: "Cisco SPVTG", - [3]byte{56, 201, 169}: "SMART High Reliability Solutions, Inc.", - [3]byte{56, 202, 151}: "Contour Design LLC", - [3]byte{56, 209, 53}: "EasyIO Corporation Sdn. Bhd.", - [3]byte{56, 219, 187}: "Sunbow Telecom Co., Ltd.", - [3]byte{56, 222, 96}: "Mohlenhoff GmbH", - [3]byte{56, 224, 142}: "Mitsubishi Electric Corporation", - [3]byte{56, 229, 149}: "Shenzhen Gongjin Electronics Co.,Ltd", - [3]byte{56, 231, 216}: "HTC Corporation", - [3]byte{56, 232, 223}: "b gmbh medien + datenbanken", - [3]byte{56, 233, 140}: "Reco S.p.A.", - [3]byte{56, 234, 167}: "Hewlett Packard", - [3]byte{56, 236, 17}: "Novatek Microelectronics Corp.", - [3]byte{56, 236, 228}: "Samsung Electronics", - [3]byte{56, 238, 157}: "Anedo Ltd.", - [3]byte{56, 240, 152}: "Vapor Stone Rail Systems", - [3]byte{56, 243, 63}: "TATSUNO CORPORATION", - [3]byte{56, 245, 151}: "home2net GmbH", - [3]byte{56, 247, 8}: "National Resource Management, Inc.", - [3]byte{56, 248, 137}: "Huawei Technologies Co., Ltd", - [3]byte{56, 248, 183}: "V2COM PARTICIPACOES S.A.", - [3]byte{56, 254, 197}: "Ellips B.V.", - [3]byte{60, 2, 177}: "Creation Technologies LP", - [3]byte{60, 4, 191}: "PRAVIS SYSTEMS Co.Ltd.,", - [3]byte{60, 5, 171}: "Product Creation Studio", - [3]byte{60, 7, 84}: "Apple", - [3]byte{60, 7, 113}: "Sony Corporation", - [3]byte{60, 8, 30}: "Beijing Yupont Electric Power Technology Co.,Ltd", - [3]byte{60, 8, 246}: "Cisco", - [3]byte{60, 9, 109}: "Powerhouse Dynamics", - [3]byte{60, 12, 72}: "Servergy, Inc.", - [3]byte{60, 14, 35}: "Cisco", - [3]byte{60, 15, 193}: "KBC Networks", - [3]byte{60, 16, 64}: "daesung network", - [3]byte{60, 16, 111}: "ALBAHITH TECHNOLOGIES", - [3]byte{60, 21, 194}: "Apple", - [3]byte{60, 21, 234}: "TESCOM CO., LTD.", - [3]byte{60, 24, 159}: "Nokia Corporation", - [3]byte{60, 24, 160}: "Luxshare Precision Industry Co.,Ltd.", - [3]byte{60, 25, 21}: "GFI Chrono Time", - [3]byte{60, 25, 125}: "Ericsson AB", - [3]byte{60, 26, 87}: "Cardiopulmonary Corp", - [3]byte{60, 26, 121}: "Huayuan Technology CO.,LTD", - [3]byte{60, 28, 190}: "JADAK LLC", - [3]byte{60, 30, 19}: "HANGZHOU SUNRISE TECHNOLOGY CO., LTD", - [3]byte{60, 37, 215}: "Nokia Corporation", - [3]byte{60, 38, 213}: "Sotera Wireless", - [3]byte{60, 39, 99}: "SLE quality engineering GmbH & Co. KG", - [3]byte{60, 45, 183}: "Texas Instruments", - [3]byte{60, 47, 58}: "SFORZATO Corp.", - [3]byte{60, 48, 12}: "Dewar Electronics Pty Ltd", - [3]byte{60, 54, 61}: "Nokia Corporation", - [3]byte{60, 54, 228}: "Arris Group, Inc.", - [3]byte{60, 56, 136}: "ConnectQuest, llc", - [3]byte{60, 57, 195}: "JW Electronics Co., Ltd.", - [3]byte{60, 57, 231}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{60, 58, 115}: "Avaya, Inc", - [3]byte{60, 64, 79}: "Guangdong Pisen Electronics Co. Ltd.", - [3]byte{60, 67, 142}: "ARRIS Group, Inc.", - [3]byte{60, 70, 216}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{60, 73, 55}: "ASSMANN Electronic GmbH", - [3]byte{60, 74, 146}: "Hewlett-Packard Company", - [3]byte{60, 76, 105}: "Infinity System S.L.", - [3]byte{60, 78, 71}: "Etronic A/S", - [3]byte{60, 87, 189}: "Kessler Crane Inc.", - [3]byte{60, 87, 213}: "FiveCo", - [3]byte{60, 90, 55}: "Samsung Electronics", - [3]byte{60, 90, 180}: "Google", - [3]byte{60, 95, 1}: "Synerchip Co., Ltd.", - [3]byte{60, 97, 4}: "Juniper Networks", - [3]byte{60, 98, 0}: "Samsung electronics CO., LTD", - [3]byte{60, 98, 120}: "SHENZHEN JETNET TECHNOLOGY CO.,LTD.", - [3]byte{60, 103, 44}: "Sciovid Inc.", - [3]byte{60, 106, 125}: "Niigata Power Systems Co., Ltd.", - [3]byte{60, 110, 99}: "Mitron OY", - [3]byte{60, 111, 69}: "Fiberpro Inc.", - [3]byte{60, 111, 247}: "EnTek Systems, Inc.", - [3]byte{60, 112, 89}: "MakerBot Industries", - [3]byte{60, 116, 55}: "RIM", - [3]byte{60, 117, 74}: "ARRIS Group, Inc.", - [3]byte{60, 119, 230}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{60, 125, 177}: "Texas Instruments", - [3]byte{60, 129, 216}: "SAGEMCOM SAS", - [3]byte{60, 131, 181}: "Advance Vision Electronics Co. Ltd.", - [3]byte{60, 134, 168}: "Sangshin elecom .co,, LTD", - [3]byte{60, 137, 166}: "KAPELSE", - [3]byte{60, 138, 176}: "Juniper Networks", - [3]byte{60, 138, 229}: "Tensun Information Technology(Hangzhou) Co.,LTD", - [3]byte{60, 139, 254}: "Samsung Electronics", - [3]byte{60, 145, 87}: "Hangzhou Yulong Conmunication Co.,Ltd", - [3]byte{60, 145, 116}: "ALONG COMMUNICATION TECHNOLOGY", - [3]byte{60, 148, 213}: "Juniper Networks", - [3]byte{60, 151, 14}: "Wistron InfoComm(Kunshan)Co.,Ltd.", - [3]byte{60, 151, 126}: "IPS Technology Limited", - [3]byte{60, 152, 191}: "Quest Controls, Inc.", - [3]byte{60, 153, 247}: "Lansentechnology AB", - [3]byte{60, 159, 129}: "Shenzhen CATIC Bit Communications Technology Co.,Ltd", - [3]byte{60, 161, 13}: "Samsung Electronics Co.,Ltd", - [3]byte{60, 163, 21}: "Bless Information & Communications Co., Ltd", - [3]byte{60, 167, 43}: "MRV Communications (Networks) LTD", - [3]byte{60, 169, 244}: "Intel Corporate", - [3]byte{60, 170, 63}: "iKey, Ltd.", - [3]byte{60, 171, 142}: "Apple", - [3]byte{60, 174, 105}: "ESA Elektroschaltanlagen Grimma GmbH", - [3]byte{60, 177, 91}: "Avaya, Inc", - [3]byte{60, 177, 127}: "Wattwatchers Pty Ld", - [3]byte{60, 184, 122}: "PRIVATE", - [3]byte{60, 185, 166}: "Belden Deutschland GmbH", - [3]byte{60, 189, 216}: "LG ELECTRONICS INC", - [3]byte{60, 192, 198}: "d&b audiotechnik GmbH", - [3]byte{60, 193, 44}: "AES Corporation", - [3]byte{60, 193, 246}: "Melange Systems Pvt. Ltd.", - [3]byte{60, 194, 67}: "Nokia Corporation", - [3]byte{60, 201, 158}: "Huiyang Technology Co., Ltd", - [3]byte{60, 202, 135}: "Iders Incorporated", - [3]byte{60, 205, 90}: "Technische Alternative GmbH", - [3]byte{60, 205, 147}: "LG ELECTRONICS INC", - [3]byte{60, 206, 115}: "CISCO SYSTEMS, INC.", - [3]byte{60, 208, 248}: "Apple", - [3]byte{60, 209, 110}: "Telepower Communication Co., Ltd", - [3]byte{60, 212, 214}: "WirelessWERX, Inc", - [3]byte{60, 215, 218}: "SK Mtek microelectronics(shenzhen)limited", - [3]byte{60, 217, 43}: "Hewlett-Packard Company", - [3]byte{60, 217, 206}: "Eclipse WiFi", - [3]byte{60, 223, 30}: "CISCO SYSTEMS, INC.", - [3]byte{60, 223, 189}: "Huawei Technologies Co., Ltd", - [3]byte{60, 224, 114}: "Apple", - [3]byte{60, 229, 166}: "Hangzhou H3C Technologies Co., Ltd.", - [3]byte{60, 229, 180}: "KIDASEN INDUSTRIA E COMERCIO DE ANTENAS LTDA", - [3]byte{60, 230, 36}: "LG Display", - [3]byte{60, 234, 79}: "2Wire", - [3]byte{60, 234, 251}: "NSE AG", - [3]byte{60, 243, 146}: "Virtualtek. Co. Ltd", - [3]byte{60, 245, 44}: "DSPECIALISTS GmbH", - [3]byte{60, 247, 42}: "Nokia Corporation", - [3]byte{60, 247, 72}: "Shenzhen Linsn Technology Development Co.,Ltd", - [3]byte{60, 248, 8}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{60, 251, 150}: "Emcraft Systems LLC", - [3]byte{64, 1, 7}: "Arista Corp", - [3]byte{64, 1, 198}: "3COM EUROPE LTD", - [3]byte{64, 4, 12}: "A&T", - [3]byte{64, 7, 192}: "Railtec Systems GmbH", - [3]byte{64, 14, 103}: "Tremol Ltd.", - [3]byte{64, 14, 133}: "Samsung Electro Mechanics co.,LTD.", - [3]byte{64, 18, 228}: "Compass-EOS", - [3]byte{64, 19, 217}: "Global ES", - [3]byte{64, 21, 151}: "Protect America, Inc.", - [3]byte{64, 22, 126}: "ASUSTek COMPUTER INC.", - [3]byte{64, 22, 159}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{64, 22, 250}: "EKM Metering", - [3]byte{64, 24, 177}: "Aerohive Networks Inc.", - [3]byte{64, 24, 215}: "Wyle Telemetry and Data Systems", - [3]byte{64, 29, 89}: "Biometric Associates, LP", - [3]byte{64, 34, 237}: "Digital Projection Ltd", - [3]byte{64, 37, 194}: "Intel Corporate", - [3]byte{64, 39, 11}: "Mobileeco Co., Ltd", - [3]byte{64, 43, 161}: "Sony Ericsson Mobile Communications AB", - [3]byte{64, 44, 244}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{64, 48, 4}: "Apple", - [3]byte{64, 48, 103}: "Conlog (Pty) Ltd", - [3]byte{64, 51, 108}: "Godrej & Boyce Mfg. co. ltd", - [3]byte{64, 55, 173}: "Macro Image Technology, Inc.", - [3]byte{64, 60, 252}: "Apple", - [3]byte{64, 64, 34}: "ZIV", - [3]byte{64, 64, 107}: "Icomera", - [3]byte{64, 69, 218}: "Spreadtrum Communications (Shanghai) Co., Ltd.", - [3]byte{64, 74, 3}: "ZyXEL Communications Corporation", - [3]byte{64, 74, 24}: "Addrek Smart Solutions", - [3]byte{64, 77, 142}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{64, 78, 235}: "Higher Way Electronic Co., Ltd.", - [3]byte{64, 80, 224}: "Milton Security Group LLC", - [3]byte{64, 81, 108}: "Grandex International Corporation", - [3]byte{64, 82, 13}: "Pico Technology", - [3]byte{64, 85, 57}: "CISCO SYSTEMS, INC.", - [3]byte{64, 86, 12}: "In Home Displays Ltd", - [3]byte{64, 90, 155}: "ANOVO", - [3]byte{64, 95, 190}: "RIM", - [3]byte{64, 95, 194}: "Texas Instruments", - [3]byte{64, 96, 90}: "Hawkeye Tech Co. Ltd", - [3]byte{64, 97, 134}: "MICRO-STAR INT'L CO.,LTD", - [3]byte{64, 97, 142}: "Stella-Green Co", - [3]byte{64, 102, 122}: "mediola - connected living AG", - [3]byte{64, 104, 38}: "Thales UK Limited", - [3]byte{64, 106, 171}: "RIM", - [3]byte{64, 108, 143}: "Apple", - [3]byte{64, 111, 42}: "Research In Motion", - [3]byte{64, 112, 9}: "ARRIS Group, Inc.", - [3]byte{64, 112, 74}: "Power Idea Technology Limited", - [3]byte{64, 112, 116}: "Life Technology (China) Co., Ltd", - [3]byte{64, 116, 150}: "aFUN TECHNOLOGY INC.", - [3]byte{64, 120, 106}: "Motorola Mobility LLC", - [3]byte{64, 120, 117}: "IMBEL - Industria de Material Belico do Brasil", - [3]byte{64, 122, 128}: "Nokia Corporation", - [3]byte{64, 123, 27}: "Mettle Networks Inc.", - [3]byte{64, 130, 86}: "Continental Automotive GmbH", - [3]byte{64, 131, 222}: "Motorola", - [3]byte{64, 132, 147}: "Clavister AB", - [3]byte{64, 136, 224}: "Beijing Ereneben Information Technology Limited Shenzhen Branch", - [3]byte{64, 138, 154}: "TITENG CO., Ltd.", - [3]byte{64, 139, 7}: "Actiontec Electronics, Inc", - [3]byte{64, 139, 246}: "Shenzhen TCL New Technology Co; Ltd.", - [3]byte{64, 149, 88}: "Aisino Corporation", - [3]byte{64, 151, 209}: "BK Electronics cc", - [3]byte{64, 152, 76}: "Casacom Solutions AG", - [3]byte{64, 152, 78}: "Texas Instruments", - [3]byte{64, 152, 123}: "Aisino Corporation", - [3]byte{64, 155, 13}: "Shenzhen Yourf Kwan Industrial Co., Ltd", - [3]byte{64, 159, 199}: "BAEKCHUN I&C Co., Ltd.", - [3]byte{64, 166, 164}: "PassivSystems Ltd", - [3]byte{64, 166, 217}: "Apple", - [3]byte{64, 168, 240}: "Hewlett Packard", - [3]byte{64, 172, 141}: "Data Management, Inc.", - [3]byte{64, 176, 250}: "LG Electronics", - [3]byte{64, 178, 200}: "Nortel Networks", - [3]byte{64, 179, 149}: "Apple", - [3]byte{64, 179, 205}: "Chiyoda Electronics Co.,Ltd.", - [3]byte{64, 179, 252}: "Logital Co. Limited", - [3]byte{64, 180, 240}: "Juniper Networks", - [3]byte{64, 182, 177}: "SUNGSAM CO,.Ltd", - [3]byte{64, 183, 243}: "ARRIS Group, Inc.", - [3]byte{64, 186, 97}: "Arima Communications Corp.", - [3]byte{64, 188, 115}: "Cronoplast S.L.", - [3]byte{64, 188, 139}: "itelio GmbH", - [3]byte{64, 189, 158}: "Physio-Control, Inc", - [3]byte{64, 191, 23}: "Digistar Telecom. SA", - [3]byte{64, 194, 69}: "Shenzhen Hexicom Technology Co., Ltd.", - [3]byte{64, 196, 214}: "ChongQing Camyu Technology Development Co.,Ltd.", - [3]byte{64, 198, 42}: "Shanghai Jing Ren Electronic Technology Co., Ltd.", - [3]byte{64, 199, 201}: "Naviit Inc.", - [3]byte{64, 203, 168}: "Huawei Technologies Co., Ltd", - [3]byte{64, 205, 58}: "Z3 Technology", - [3]byte{64, 211, 45}: "Apple", - [3]byte{64, 212, 14}: "Biodata Ltd", - [3]byte{64, 213, 89}: "MICRO S.E.R.I.", - [3]byte{64, 216, 85}: "IEEE REGISTRATION AUTHORITY", - [3]byte{64, 226, 48}: "AzureWave Technologies, Inc.", - [3]byte{64, 231, 48}: "DEY Storage Systems, Inc.", - [3]byte{64, 231, 147}: "Shenzhen Siviton Technology Co.,Ltd", - [3]byte{64, 234, 206}: "FOUNDER BROADBAND NETWORK SERVICE CO.,LTD", - [3]byte{64, 236, 248}: "Siemens AG", - [3]byte{64, 239, 76}: "Fihonest communication co.,Ltd", - [3]byte{64, 240, 47}: "Liteon Technology Corporation", - [3]byte{64, 241, 76}: "ISE Europe SPRL", - [3]byte{64, 242, 1}: "SAGEMCOM", - [3]byte{64, 242, 233}: "IBM", - [3]byte{64, 243, 8}: "Murata Manufactuaring Co.,Ltd.", - [3]byte{64, 244, 7}: "Nintendo Co., Ltd.", - [3]byte{64, 244, 236}: "CISCO SYSTEMS, INC.", - [3]byte{64, 245, 46}: "Leica Microsystems (Schweiz) AG", - [3]byte{64, 252, 137}: "ARRIS Group, Inc.", - [3]byte{68, 3, 167}: "Cisco", - [3]byte{68, 12, 253}: "NetMan Co., Ltd.", - [3]byte{68, 17, 194}: "Telegartner Karl Gartner GmbH", - [3]byte{68, 19, 25}: "WKK TECHNOLOGY LTD.", - [3]byte{68, 24, 79}: "Fitview", - [3]byte{68, 25, 182}: "Hangzhou Hikvision Digital Technology Co.,Ltd.", - [3]byte{68, 30, 145}: "ARVIDA Intelligent Electronics Technology Co.,Ltd.", - [3]byte{68, 30, 161}: "Hewlett-Packard Company", - [3]byte{68, 35, 170}: "Farmage Co., Ltd.", - [3]byte{68, 37, 187}: "Bamboo Entertainment Corporation", - [3]byte{68, 41, 56}: "NietZsche enterprise Co.Ltd.", - [3]byte{68, 42, 96}: "Apple", - [3]byte{68, 42, 255}: "E3 Technology, Inc.", - [3]byte{68, 43, 3}: "CISCO SYSTEMS, INC.", - [3]byte{68, 49, 146}: "Hewlett Packard", - [3]byte{68, 50, 42}: "Avaya, Inc", - [3]byte{68, 50, 200}: "Technicolor USA Inc.", - [3]byte{68, 51, 76}: "Shenzhen Bilian electronic CO.,LTD", - [3]byte{68, 52, 143}: "MXT INDUSTRIAL LTDA", - [3]byte{68, 55, 25}: "2 Save Energy Ltd", - [3]byte{68, 55, 111}: "Young Electric Sign Co", - [3]byte{68, 55, 230}: "Hon Hai Precision Ind.Co.Ltd", - [3]byte{68, 56, 57}: "Cumulus Networks, inc", - [3]byte{68, 57, 196}: "Universal Global Scientific Industrial Co.,Ltd", - [3]byte{68, 60, 156}: "Pintsch Tiefenbach GmbH", - [3]byte{68, 61, 33}: "Nuvolt", - [3]byte{68, 62, 178}: "DEOTRON Co., LTD.", - [3]byte{68, 72, 145}: "HDMI Licensing, LLC", - [3]byte{68, 74, 101}: "Silverflare Ltd.", - [3]byte{68, 76, 12}: "Apple", - [3]byte{68, 78, 26}: "Samsung Electronics Co.,Ltd", - [3]byte{68, 79, 94}: "Pan Studios Co.,Ltd.", - [3]byte{68, 81, 219}: "Raytheon BBN Technologies", - [3]byte{68, 84, 192}: "Thompson Aerospace", - [3]byte{68, 86, 141}: "PNC Technologies Co., Ltd.", - [3]byte{68, 86, 183}: "Spawn Labs, Inc", - [3]byte{68, 88, 41}: "Cisco SPVTG", - [3]byte{68, 89, 159}: "Criticare Systems, Inc", - [3]byte{68, 94, 243}: "Tonalite Holding B.V.", - [3]byte{68, 95, 122}: "Shihlin Electric & Engineering Corp.", - [3]byte{68, 97, 50}: "ecobee inc", - [3]byte{68, 97, 156}: "FONsystem co. ltd.", - [3]byte{68, 102, 110}: "IP-LINE", - [3]byte{68, 103, 85}: "Orbit Irrigation", - [3]byte{68, 104, 171}: "JUIN COMPANY, LIMITED", - [3]byte{68, 108, 36}: "Reallin Electronic Co.,Ltd", - [3]byte{68, 109, 87}: "Liteon Technology Corporation", - [3]byte{68, 109, 108}: "Samsung Elec Co.,Ltd", - [3]byte{68, 112, 11}: "IFFU", - [3]byte{68, 112, 152}: "MING HONG TECHNOLOGY (SHEN ZHEN) LIMITED", - [3]byte{68, 116, 108}: "Sony Mobile Communications AB", - [3]byte{68, 123, 196}: "DualShine Technology(SZ)Co.,Ltd", - [3]byte{68, 124, 127}: "Innolight Technology Corporation", - [3]byte{68, 125, 165}: "VTION INFORMATION TECHNOLOGY (FUJIAN) CO.,LTD", - [3]byte{68, 126, 118}: "Trek Technology (S) Pte Ltd", - [3]byte{68, 126, 149}: "Alpha and Omega, Inc", - [3]byte{68, 131, 18}: "Star-Net", - [3]byte{68, 133, 0}: "Intel Corporate", - [3]byte{68, 134, 193}: "Siemens Low Voltage & Products", - [3]byte{68, 135, 252}: "ELITEGROUP COMPUTER SYSTEM CO., LTD.", - [3]byte{68, 136, 203}: "Camco Technologies NV", - [3]byte{68, 138, 91}: "Micro-Star INT'L CO., LTD.", - [3]byte{68, 140, 82}: "KTIS CO., Ltd", - [3]byte{68, 142, 18}: "DT Research, Inc.", - [3]byte{68, 142, 129}: "VIG", - [3]byte{68, 145, 219}: "Shanghai Huaqin Telecom Technology Co.,Ltd", - [3]byte{68, 148, 252}: "NETGEAR INC.,", - [3]byte{68, 149, 250}: "Qingdao Santong Digital Technology Co.Ltd", - [3]byte{68, 155, 120}: "The Now Factory", - [3]byte{68, 156, 181}: "Alcomp, Inc", - [3]byte{68, 164, 45}: "TCT Mobile Limited", - [3]byte{68, 166, 137}: "PROMAX ELECTRONICA SA", - [3]byte{68, 166, 229}: "THINKING TECHNOLOGY CO.,LTD", - [3]byte{68, 167, 207}: "Murata Manufacturing Co., Ltd.", - [3]byte{68, 168, 194}: "SEWOO TECH CO., LTD", - [3]byte{68, 170, 39}: "udworks Co., Ltd.", - [3]byte{68, 170, 232}: "Nanotec Electronic GmbH & Co. KG", - [3]byte{68, 173, 217}: "Cisco", - [3]byte{68, 179, 130}: "Kuang-chi Institute of Advanced Technology", - [3]byte{68, 193, 92}: "Texas Instruments", - [3]byte{68, 194, 51}: "Guangzhou Comet Technology Development Co.Ltd", - [3]byte{68, 195, 6}: "SIFROM Inc.", - [3]byte{68, 195, 155}: "OOO RUBEZH NPO", - [3]byte{68, 196, 169}: "Opticom Communication, LLC", - [3]byte{68, 197, 111}: "NGN Easy Satfinder (Tianjin) Electronic Co., Ltd", - [3]byte{68, 201, 162}: "Greenwald Industries", - [3]byte{68, 206, 125}: "SFR", - [3]byte{68, 209, 94}: "Shanghai Kingto Information Technology Ltd", - [3]byte{68, 210, 202}: "Anvia TV Oy", - [3]byte{68, 211, 202}: "CISCO SYSTEMS, INC.", - [3]byte{68, 212, 224}: "Sony Mobile Communications AB", - [3]byte{68, 214, 61}: "Talari Networks", - [3]byte{68, 216, 50}: "Azurewave Technologies, Inc.", - [3]byte{68, 216, 132}: "Apple", - [3]byte{68, 220, 145}: "PLANEX COMMUNICATIONS INC.", - [3]byte{68, 220, 203}: "SEMINDIA SYSTEMS PVT LTD", - [3]byte{68, 224, 142}: "Cisco SPVTG", - [3]byte{68, 225, 55}: "ARRIS Group, Inc.", - [3]byte{68, 228, 154}: "OMNITRONICS PTY LTD", - [3]byte{68, 228, 217}: "CISCO SYSTEMS, INC.", - [3]byte{68, 232, 165}: "Myreka Technologies Sdn. Bhd.", - [3]byte{68, 237, 87}: "Longicorn, inc.", - [3]byte{68, 238, 48}: "Budelmann Elektronik GmbH", - [3]byte{68, 244, 89}: "Samsung Electronics", - [3]byte{68, 248, 73}: "Union Pacific Railroad", - [3]byte{68, 251, 66}: "Apple", - [3]byte{72, 2, 42}: "B-Link Electronic Limited", - [3]byte{72, 3, 98}: "DESAY ELECTRONICS(HUIZHOU)CO.,LTD", - [3]byte{72, 12, 73}: "NAKAYO TELECOMMUNICATIONS,INC", - [3]byte{72, 18, 73}: "Luxcom Technologies Inc.", - [3]byte{72, 19, 243}: "BBK Electronics Corp., Ltd.", - [3]byte{72, 23, 76}: "MicroPower technologies", - [3]byte{72, 24, 66}: "Shanghai Winaas Co. Equipment Co. Ltd.", - [3]byte{72, 26, 132}: "Pointer Telocation Ltd", - [3]byte{72, 27, 210}: "Intron Scientific co., ltd.", - [3]byte{72, 38, 232}: "Tek-Air Systems, Inc.", - [3]byte{72, 40, 47}: "ZTE Corporation", - [3]byte{72, 44, 234}: "Motorola Inc Business Light Radios", - [3]byte{72, 51, 221}: "ZENNIO AVANCE Y TECNOLOGIA, S.L.", - [3]byte{72, 52, 61}: "IEP GmbH", - [3]byte{72, 61, 50}: "Syscor Controls & Automation", - [3]byte{72, 68, 135}: "Cisco SPVTG", - [3]byte{72, 68, 247}: "Samsung Electronics Co., LTD", - [3]byte{72, 70, 241}: "Uros Oy", - [3]byte{72, 70, 251}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{72, 81, 183}: "Intel Corporate", - [3]byte{72, 82, 97}: "SOREEL", - [3]byte{72, 87, 221}: "Facebook", - [3]byte{72, 89, 41}: "LG Electronics", - [3]byte{72, 90, 63}: "WISOL", - [3]byte{72, 90, 182}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{72, 91, 57}: "ASUSTek COMPUTER INC.", - [3]byte{72, 93, 96}: "Azurewave Technologies, Inc.", - [3]byte{72, 96, 188}: "Apple", - [3]byte{72, 97, 163}: "Concern \"Axion\" JSC", - [3]byte{72, 98, 118}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{72, 107, 44}: "BBK Electronics Corp., Ltd.,", - [3]byte{72, 107, 145}: "Fleetwood Group Inc.", - [3]byte{72, 110, 115}: "Pica8, Inc.", - [3]byte{72, 111, 210}: "StorSimple Inc", - [3]byte{72, 113, 25}: "SGB GROUP LTD.", - [3]byte{72, 116, 110}: "Apple", - [3]byte{72, 118, 4}: "PRIVATE", - [3]byte{72, 130, 68}: "Life Fitness / Div. of Brunswick", - [3]byte{72, 142, 66}: "DIGALOG GmbH", - [3]byte{72, 145, 83}: "Weinmann Geräte für Medizin GmbH + Co. KG", - [3]byte{72, 145, 246}: "Shenzhen Reach software technology CO.,LTD", - [3]byte{72, 155, 226}: "SCI Innovations Ltd", - [3]byte{72, 157, 24}: "Flashbay Limited", - [3]byte{72, 157, 36}: "Research In Motion", - [3]byte{72, 162, 45}: "Shenzhen Huaxuchang Telecom Technology Co.,Ltd", - [3]byte{72, 162, 183}: "Kodofon JSC", - [3]byte{72, 166, 210}: "GJsun Optical Science and Tech Co.,Ltd.", - [3]byte{72, 170, 93}: "Store Electronic Systems", - [3]byte{72, 178, 83}: "Marketaxess Corporation", - [3]byte{72, 181, 167}: "Glory Horse Industries Ltd.", - [3]byte{72, 184, 222}: "HOMEWINS TECHNOLOGY CO.,LTD.", - [3]byte{72, 185, 119}: "PulseOn Oy", - [3]byte{72, 185, 194}: "Teletics Inc.", - [3]byte{72, 190, 45}: "Symanitron", - [3]byte{72, 193, 172}: "PLANTRONICS, INC.", - [3]byte{72, 200, 98}: "Simo Wireless,Inc.", - [3]byte{72, 200, 182}: "SysTec GmbH", - [3]byte{72, 203, 110}: "Cello Electronics (UK) Ltd", - [3]byte{72, 208, 207}: "Universal Electronics, Inc.", - [3]byte{72, 209, 142}: "Metis Communication Co.,Ltd", - [3]byte{72, 210, 36}: "Liteon Technology Corporation", - [3]byte{72, 213, 76}: "Jeda Networks", - [3]byte{72, 215, 5}: "Apple", - [3]byte{72, 215, 255}: "BLANKOM Antennentechnik GmbH", - [3]byte{72, 216, 85}: "Telvent", - [3]byte{72, 216, 254}: "ClarIDy Solutions, Inc.", - [3]byte{72, 220, 251}: "Nokia Corporation", - [3]byte{72, 223, 28}: "Wuhan NEC Fibre Optic Communications industry Co. Ltd", - [3]byte{72, 225, 175}: "Vity", - [3]byte{72, 234, 99}: "Zhejiang Uniview Technologies Co., Ltd.", - [3]byte{72, 235, 48}: "ETERNA TECHNOLOGY, INC.", - [3]byte{72, 237, 128}: "daesung eltec", - [3]byte{72, 238, 7}: "Silver Palm Technologies LLC", - [3]byte{72, 238, 134}: "UTStarcom (China) Co.,Ltd", - [3]byte{72, 242, 48}: "Ubizcore Co.,LTD", - [3]byte{72, 243, 23}: "PRIVATE", - [3]byte{72, 244, 125}: "TechVision Holding Internation Limited", - [3]byte{72, 247, 241}: "Alcatel-Lucent", - [3]byte{72, 248, 179}: "Cisco-Linksys, LLC", - [3]byte{72, 248, 225}: "Alcatel Lucent WT", - [3]byte{72, 249, 37}: "Maestronic", - [3]byte{72, 252, 184}: "Woodstream Corporation", - [3]byte{72, 254, 234}: "HOMA B.V.", - [3]byte{76, 0, 130}: "Cisco", - [3]byte{76, 2, 46}: "CMR KOREA CO., LTD", - [3]byte{76, 2, 137}: "LEX COMPUTECH CO., LTD", - [3]byte{76, 6, 138}: "Basler Electric Company", - [3]byte{76, 7, 201}: "COMPUTER OFFICE Co.,Ltd.", - [3]byte{76, 9, 180}: "zte corporation", - [3]byte{76, 11, 58}: "TCT Mobile Limited", - [3]byte{76, 11, 190}: "Microsoft", - [3]byte{76, 13, 238}: "JABIL CIRCUIT (SHANGHAI) LTD.", - [3]byte{76, 15, 110}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{76, 15, 199}: "Earda Electronics Co.,Ltd", - [3]byte{76, 17, 191}: "ZHEJIANG DAHUA TECHNOLOGY CO.,LTD.", - [3]byte{76, 20, 128}: "NOREGON SYSTEMS, INC", - [3]byte{76, 20, 163}: "TCL Technoly Electronics (Huizhou) Co., Ltd.", - [3]byte{76, 22, 241}: "zte corporation", - [3]byte{76, 23, 235}: "SAGEMCOM", - [3]byte{76, 26, 58}: "PRIMA Research And Production Enterprise Ltd.", - [3]byte{76, 26, 149}: "Novakon Co., Ltd.", - [3]byte{76, 31, 204}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{76, 33, 208}: "Sony Mobile Communications AB", - [3]byte{76, 34, 88}: "cozybit, Inc.", - [3]byte{76, 37, 120}: "Nokia Corporation", - [3]byte{76, 38, 231}: "Welgate Co., Ltd.", - [3]byte{76, 44, 128}: "Beijing Skyway Technologies Co.,Ltd", - [3]byte{76, 44, 131}: "Zhejiang KaNong Network Technology Co.,Ltd.", - [3]byte{76, 47, 157}: "ICM Controls", - [3]byte{76, 48, 137}: "Thales Transportation Systems GmbH", - [3]byte{76, 50, 45}: "TELEDATA NETWORKS", - [3]byte{76, 50, 217}: "M Rutty Holdings Pty. Ltd.", - [3]byte{76, 57, 9}: "HPL Electric & Power Private Limited", - [3]byte{76, 57, 16}: "Newtek Electronics co., Ltd.", - [3]byte{76, 59, 116}: "VOGTEC(H.K.) Co., Ltd", - [3]byte{76, 60, 22}: "Samsung Electronics Co.,Ltd", - [3]byte{76, 72, 218}: "Beijing Autelan Technology Co.,Ltd", - [3]byte{76, 75, 104}: "Mobile Device, Inc.", - [3]byte{76, 78, 53}: "Cisco", - [3]byte{76, 84, 39}: "Linepro Sp. z o.o.", - [3]byte{76, 84, 153}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{76, 85, 133}: "Hamilton Systems", - [3]byte{76, 85, 184}: "Turkcell Teknoloji", - [3]byte{76, 85, 204}: "ACKme Networks Pty Ltd", - [3]byte{76, 93, 205}: "Oy Finnish Electric Vehicle Technologies Ltd", - [3]byte{76, 94, 12}: "Routerboard.com", - [3]byte{76, 95, 210}: "Alcatel-Lucent", - [3]byte{76, 96, 213}: "airPointe of New Hampshire", - [3]byte{76, 96, 222}: "NETGEAR", - [3]byte{76, 98, 85}: "SANMINA-SCI SYSTEM DE MEXICO S.A. DE C.V.", - [3]byte{76, 99, 235}: "Application Solutions (Electronics and Vision) Ltd", - [3]byte{76, 100, 217}: "Guangdong Leawin Group Co., Ltd", - [3]byte{76, 110, 110}: "Comnect Technology CO.,LTD", - [3]byte{76, 114, 185}: "Pegatron Corporation", - [3]byte{76, 115, 103}: "Genius Bytes Software Solutions GmbH", - [3]byte{76, 115, 165}: "KOVE", - [3]byte{76, 116, 3}: "Mundo Reader (bq)", - [3]byte{76, 119, 79}: "Embedded Wireless Labs", - [3]byte{76, 120, 151}: "Arrowhead Alarm Products Ltd", - [3]byte{76, 121, 186}: "Intel Corporate", - [3]byte{76, 127, 98}: "Nokia Corporation", - [3]byte{76, 128, 79}: "Armstrong Monitoring Corp", - [3]byte{76, 128, 147}: "Intel Corporate", - [3]byte{76, 130, 207}: "Echostar Technologies", - [3]byte{76, 131, 222}: "Cisco SPVTG", - [3]byte{76, 139, 48}: "Actiontec Electronics, Inc", - [3]byte{76, 139, 85}: "Grupo Digicon", - [3]byte{76, 139, 239}: "Huawei Technologies Co., Ltd", - [3]byte{76, 141, 121}: "Apple", - [3]byte{76, 143, 165}: "Jastec", - [3]byte{76, 150, 20}: "Juniper Networks", - [3]byte{76, 152, 239}: "Zeo", - [3]byte{76, 158, 128}: "KYOKKO ELECTRIC Co., Ltd.", - [3]byte{76, 158, 228}: "Hanyang Navicom Co.,Ltd.", - [3]byte{76, 158, 255}: "ZyXEL Communications Corp", - [3]byte{76, 165, 109}: "Samsung Electronics Co.,Ltd", - [3]byte{76, 167, 75}: "Alcatel Lucent", - [3]byte{76, 170, 22}: "AzureWave Technologies (Shanghai) Inc.", - [3]byte{76, 171, 51}: "KST technology", - [3]byte{76, 172, 10}: "ZTE Corporation", - [3]byte{76, 177, 108}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{76, 177, 153}: "Apple", - [3]byte{76, 180, 234}: "HRD (S) PTE., LTD.", - [3]byte{76, 184, 28}: "SAM Electronics GmbH", - [3]byte{76, 185, 200}: "CONET CO., LTD.", - [3]byte{76, 186, 163}: "Bison Electronics Inc.", - [3]byte{76, 187, 88}: "Chicony Electronics Co., Ltd.", - [3]byte{76, 188, 66}: "Shenzhen Hangsheng Electronics Co.,Ltd.", - [3]byte{76, 188, 165}: "Samsung Electronics Co.,Ltd", - [3]byte{76, 196, 82}: "Shang Hai Tyd. Electon Technology Ltd.", - [3]byte{76, 198, 2}: "Radios, Inc.", - [3]byte{76, 201, 79}: "Alcatel-Lucent", - [3]byte{76, 202, 83}: "Skyera, Inc.", - [3]byte{76, 203, 245}: "zte corporation", - [3]byte{76, 204, 52}: "Motorola Solutions Inc.", - [3]byte{76, 214, 55}: "Qsono Electronics Co., Ltd", - [3]byte{76, 215, 182}: "Helmer Scientific", - [3]byte{76, 217, 196}: "Magneti Marelli Automotive Electronics (Guangzhou) Co. Ltd", - [3]byte{76, 223, 61}: "TEAM ENGINEERS ADVANCE TECHNOLOGIES INDIA PVT LTD", - [3]byte{76, 225, 187}: "Zhuhai HiFocus Technology Co., Ltd.", - [3]byte{76, 226, 241}: "sclak srl", - [3]byte{76, 230, 118}: "Buffalo Inc.", - [3]byte{76, 233, 51}: "RailComm, LLC", - [3]byte{76, 235, 66}: "Intel Corporate", - [3]byte{76, 237, 222}: "Askey Computer Corp", - [3]byte{76, 240, 46}: "Vifa Denmark A/S", - [3]byte{76, 242, 191}: "Cambridge Industries(Group) Co.,Ltd.", - [3]byte{76, 244, 91}: "Blue Clover Devices", - [3]byte{76, 245, 160}: "Scalable Network Technologies Inc", - [3]byte{76, 247, 55}: "SamJi Electronics Co., Ltd", - [3]byte{80, 0, 140}: "Hong Kong Telecommunications (HKT) Limited", - [3]byte{80, 1, 187}: "Samsung Electronics", - [3]byte{80, 5, 61}: "CyWee Group Ltd", - [3]byte{80, 6, 4}: "Cisco", - [3]byte{80, 11, 50}: "Foxda Technology Industrial(ShenZhen)Co.,LTD", - [3]byte{80, 14, 109}: "TrafficCast International", - [3]byte{80, 17, 235}: "SilverNet Ltd", - [3]byte{80, 20, 181}: "Richfit Information Technology Co., Ltd", - [3]byte{80, 23, 255}: "Cisco", - [3]byte{80, 26, 197}: "Microsoft", - [3]byte{80, 28, 191}: "Cisco", - [3]byte{80, 32, 107}: "Emerson Climate Technologies Transportation Solutions", - [3]byte{80, 34, 103}: "PixeLINK", - [3]byte{80, 37, 43}: "Nethra Imaging Incorporated", - [3]byte{80, 38, 144}: "Fujitsu Limited", - [3]byte{80, 39, 199}: "TECHNART Co.,Ltd", - [3]byte{80, 41, 77}: "NANJING IOT SENSOR TECHNOLOGY CO,LTD", - [3]byte{80, 42, 126}: "Smart electronic GmbH", - [3]byte{80, 42, 139}: "Telekom Research and Development Sdn Bhd", - [3]byte{80, 45, 29}: "Nokia Corporation", - [3]byte{80, 45, 162}: "Intel Corporate", - [3]byte{80, 45, 244}: "Phytec Messtechnik GmbH", - [3]byte{80, 46, 92}: "HTC Corporation", - [3]byte{80, 46, 206}: "Asahi Electronics Co.,Ltd", - [3]byte{80, 50, 117}: "Samsung Electronics Co.,Ltd", - [3]byte{80, 57, 85}: "Cisco SPVTG", - [3]byte{80, 60, 196}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{80, 61, 229}: "CISCO SYSTEMS, INC.", - [3]byte{80, 63, 86}: "Syncmold Enterprise Corp", - [3]byte{80, 70, 93}: "ASUSTek COMPUTER INC.", - [3]byte{80, 72, 235}: "BEIJING HAIHEJINSHENG NETWORK TECHNOLOGY CO. LTD.", - [3]byte{80, 74, 94}: "Masimo Corporation", - [3]byte{80, 74, 110}: "NETGEAR INC.,", - [3]byte{80, 79, 148}: "Loxone Electronics GmbH", - [3]byte{80, 80, 101}: "TAKT Corporation", - [3]byte{80, 86, 99}: "Texas Instruments", - [3]byte{80, 86, 168}: "Jolla Ltd", - [3]byte{80, 86, 191}: "Samsung Electronics Co.,LTD", - [3]byte{80, 87, 168}: "CISCO SYSTEMS, INC.", - [3]byte{80, 88, 0}: "WyTec International, Inc.", - [3]byte{80, 90, 198}: "GUANGDONG SUPER TELECOM CO.,LTD.", - [3]byte{80, 96, 40}: "Xirrus Inc.", - [3]byte{80, 97, 132}: "Avaya, Inc", - [3]byte{80, 97, 214}: "Indu-Sol GmbH", - [3]byte{80, 99, 19}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{80, 100, 65}: "Greenlee", - [3]byte{80, 103, 135}: "iTellus", - [3]byte{80, 103, 174}: "Cisco", - [3]byte{80, 103, 240}: "ZyXEL Communications Corporation", - [3]byte{80, 111, 154}: "Wi-Fi Alliance", - [3]byte{80, 112, 229}: "He Shan World Fair Electronics Technology Limited", - [3]byte{80, 114, 77}: "BEG Brueck Electronic GmbH", - [3]byte{80, 118, 145}: "Tekpea, Inc.", - [3]byte{80, 118, 166}: "Ecil Informatica Ind. Com. Ltda", - [3]byte{80, 121, 91}: "Interexport Telecomunicaciones S.A.", - [3]byte{80, 125, 2}: "BIODIT", - [3]byte{80, 126, 93}: "Arcadyan Technology Corporation", - [3]byte{80, 133, 105}: "Samsung Electronics Co.,LTD", - [3]byte{80, 135, 137}: "Cisco", - [3]byte{80, 135, 184}: "Nuvyyo Inc", - [3]byte{80, 138, 66}: "Uptmate Technology Co., LTD", - [3]byte{80, 138, 203}: "SHENZHEN MAXMADE TECHNOLOGY CO., LTD.", - [3]byte{80, 140, 119}: "DIRMEIER Schanktechnik GmbH &Co KG", - [3]byte{80, 141, 111}: "CHAHOO Limited", - [3]byte{80, 147, 79}: "Gradual Tecnologia Ltda.", - [3]byte{80, 151, 114}: "Westinghouse Digital", - [3]byte{80, 152, 113}: "Inventum Technologies Private Limited", - [3]byte{80, 159, 39}: "Huawei Technologies Co., Ltd", - [3]byte{80, 160, 84}: "Actineon", - [3]byte{80, 160, 191}: "Alba Fiber Systems Inc.", - [3]byte{80, 164, 200}: "Samsung Electronics Co.,Ltd", - [3]byte{80, 166, 227}: "David Clark Company", - [3]byte{80, 167, 21}: "Aboundi, Inc.", - [3]byte{80, 167, 51}: "Ruckus Wireless", - [3]byte{80, 171, 191}: "Hoseo Telecom", - [3]byte{80, 173, 213}: "Dynalec Corporation", - [3]byte{80, 175, 115}: "Shenzhen Bitland Information Technology Co., Ltd.", - [3]byte{80, 182, 149}: "Micropoint Biotechnologies,Inc.", - [3]byte{80, 183, 195}: "Samsung Electronics CO., LTD", - [3]byte{80, 184, 136}: "wi2be Tecnologia S/A", - [3]byte{80, 184, 162}: "ImTech Technologies LLC,", - [3]byte{80, 189, 95}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{80, 192, 6}: "Carmanah Signs", - [3]byte{80, 194, 113}: "SECURETECH INC", - [3]byte{80, 197, 141}: "Juniper Networks", - [3]byte{80, 199, 191}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{80, 201, 113}: "GN Netcom A/S", - [3]byte{80, 201, 160}: "SKIPPER Electronics AS", - [3]byte{80, 204, 248}: "Samsung Electro Mechanics", - [3]byte{80, 205, 50}: "NanJing Chaoran Science & Technology Co.,Ltd.", - [3]byte{80, 206, 117}: "Measy Electronics Ltd", - [3]byte{80, 210, 116}: "Steffes Corporation", - [3]byte{80, 214, 215}: "Takahata Precision", - [3]byte{80, 224, 199}: "TurControlSystme AG", - [3]byte{80, 225, 74}: "PRIVATE", - [3]byte{80, 229, 73}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{80, 234, 214}: "Apple", - [3]byte{80, 235, 26}: "Brocade Communications Systems, Inc.", - [3]byte{80, 237, 120}: "Changzhou Yongse Infotech Co.,Ltd", - [3]byte{80, 237, 148}: "Egatel SL", - [3]byte{80, 240, 3}: "Open Stack, Inc.", - [3]byte{80, 244, 60}: "Leeo Inc", - [3]byte{80, 245, 32}: "Samsung Electronics Co.,Ltd", - [3]byte{80, 246, 26}: "Kunshan JADE Technologies co., Ltd.", - [3]byte{80, 250, 171}: "L-tek d.o.o.", - [3]byte{80, 252, 48}: "Treehouse Labs", - [3]byte{80, 252, 159}: "Samsung Electronics Co.,Ltd", - [3]byte{80, 254, 242}: "Sify Technologies Ltd", - [3]byte{84, 3, 245}: "EBN Technology Corp.", - [3]byte{84, 4, 150}: "Gigawave LTD", - [3]byte{84, 4, 166}: "ASUSTek COMPUTER INC.", - [3]byte{84, 5, 54}: "Vivago Oy", - [3]byte{84, 5, 95}: "Alcatel Lucent", - [3]byte{84, 9, 141}: "deister electronic GmbH", - [3]byte{84, 17, 47}: "Sulzer Pump Solutions Finland Oy", - [3]byte{84, 17, 95}: "Atamo Pty Ltd", - [3]byte{84, 27, 93}: "Techno-Innov", - [3]byte{84, 29, 251}: "Freestyle Energy Ltd", - [3]byte{84, 31, 213}: "Advantage Electronics", - [3]byte{84, 32, 24}: "Tely Labs", - [3]byte{84, 33, 96}: "Resolution Products", - [3]byte{84, 34, 248}: "zte corporation", - [3]byte{84, 38, 150}: "Apple", - [3]byte{84, 39, 30}: "AzureWave Technonloies, Inc.", - [3]byte{84, 42, 156}: "LSY Defense, LLC.", - [3]byte{84, 42, 162}: "Alpha Networks Inc.", - [3]byte{84, 44, 234}: "PROTECTRON", - [3]byte{84, 47, 137}: "Euclid Laboratories, Inc.", - [3]byte{84, 49, 49}: "Raster Vision Ltd", - [3]byte{84, 53, 48}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{84, 53, 223}: "Symeo GmbH", - [3]byte{84, 57, 104}: "Edgewater Networks Inc", - [3]byte{84, 57, 223}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{84, 61, 55}: "Ruckus Wireless", - [3]byte{84, 66, 73}: "Sony Corporation", - [3]byte{84, 68, 8}: "Nokia Corporation", - [3]byte{84, 70, 107}: "Shenzhen CZTIC Electronic Technology Co., Ltd", - [3]byte{84, 74, 0}: "Cisco", - [3]byte{84, 74, 5}: "wenglor sensoric gmbh", - [3]byte{84, 74, 22}: "Texas Instruments", - [3]byte{84, 81, 70}: "AMG Systems Ltd.", - [3]byte{84, 83, 237}: "Sony Corporation", - [3]byte{84, 84, 20}: "Digital RF Corea, Inc", - [3]byte{84, 94, 189}: "NL Technologies", - [3]byte{84, 95, 169}: "Teracom Limited", - [3]byte{84, 97, 234}: "Zaplox AB", - [3]byte{84, 114, 79}: "Apple", - [3]byte{84, 115, 152}: "Toyo Electronics Corporation", - [3]byte{84, 116, 230}: "Webtech Wireless", - [3]byte{84, 117, 208}: "CISCO SYSTEMS, INC.", - [3]byte{84, 120, 26}: "Cisco", - [3]byte{84, 121, 117}: "Nokia Corporation", - [3]byte{84, 127, 84}: "INGENICO", - [3]byte{84, 127, 168}: "TELCO systems, s.r.o.", - [3]byte{84, 127, 238}: "CISCO SYSTEMS, INC.", - [3]byte{84, 129, 173}: "Eagle Research Corporation", - [3]byte{84, 132, 123}: "Digital Devices GmbH", - [3]byte{84, 136, 14}: "Samsung Electro Mechanics co., LTD.", - [3]byte{84, 137, 34}: "Zelfy Inc", - [3]byte{84, 137, 152}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{84, 146, 190}: "Samsung Electronics Co.,Ltd", - [3]byte{84, 147, 89}: "SHENZHEN TWOWING TECHNOLOGIES CO.,LTD.", - [3]byte{84, 148, 120}: "Silvershore Technology Partners", - [3]byte{84, 154, 22}: "Uzushio Electric Co.,Ltd.", - [3]byte{84, 155, 18}: "Samsung Electronics", - [3]byte{84, 157, 133}: "EnerAccess inc", - [3]byte{84, 159, 53}: "Dell Inc.", - [3]byte{84, 160, 79}: "t-mac Technologies Ltd", - [3]byte{84, 160, 80}: "ASUSTek COMPUTER INC.", - [3]byte{84, 163, 27}: "Shenzhen Linkworld Technology Co,.LTD", - [3]byte{84, 165, 27}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{84, 165, 75}: "NSC Communications Siberia Ltd", - [3]byte{84, 166, 25}: "Alcatel-Lucent Shanghai Bell Co., Ltd", - [3]byte{84, 169, 212}: "Minibar Systems", - [3]byte{84, 174, 39}: "Apple", - [3]byte{84, 182, 32}: "SUHDOL E&C Co.Ltd.", - [3]byte{84, 183, 83}: "Hunan Fenghui Yinjia Science And Technology Co.,Ltd", - [3]byte{84, 190, 247}: "PEGATRON CORPORATION", - [3]byte{84, 200, 15}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{84, 205, 167}: "Fujian Shenzhou Electronic Co.,Ltd", - [3]byte{84, 205, 238}: "ShenZhen Apexis Electronic Co.,Ltd", - [3]byte{84, 208, 237}: "AXIM Communications", - [3]byte{84, 209, 99}: "MAX-TECH,INC", - [3]byte{84, 209, 176}: "Universal Laser Systems, Inc", - [3]byte{84, 212, 111}: "Cisco SPVTG", - [3]byte{84, 223, 0}: "Ulterius Technologies, LLC", - [3]byte{84, 223, 99}: "Intrakey technologies GmbH", - [3]byte{84, 224, 50}: "Juniper Networks", - [3]byte{84, 226, 224}: "Pace plc", - [3]byte{84, 227, 176}: "JVL Industri Elektronik", - [3]byte{84, 228, 58}: "Apple, Inc.", - [3]byte{84, 228, 189}: "FN-LINK TECHNOLOGY LIMITED", - [3]byte{84, 230, 63}: "ShenZhen LingKeWeiEr Technology Co., Ltd.", - [3]byte{84, 230, 252}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{84, 234, 168}: "Apple, Inc.", - [3]byte{84, 238, 117}: "Wistron InfoComm(Kunshan)Co.,Ltd.", - [3]byte{84, 239, 146}: "Shenzhen Elink Technology Co., LTD", - [3]byte{84, 245, 182}: "ORIENTAL PACIFIC INTERNATIONAL LIMITED", - [3]byte{84, 246, 102}: "Berthold Technologies GmbH and Co.KG", - [3]byte{84, 248, 118}: "ABB AG", - [3]byte{84, 250, 62}: "Samsung Electronics Co.,LTD", - [3]byte{84, 251, 88}: "WISEWARE, Lda", - [3]byte{84, 253, 191}: "Scheidt & Bachmann GmbH", - [3]byte{84, 255, 207}: "Mopria Alliance", - [3]byte{88, 5, 40}: "LABRIS NETWORKS", - [3]byte{88, 5, 86}: "Elettronica GF S.r.L.", - [3]byte{88, 8, 250}: "Fiber Optic & telecommunication INC.", - [3]byte{88, 9, 67}: "PRIVATE", - [3]byte{88, 9, 229}: "Kivic Inc.", - [3]byte{88, 10, 32}: "Cisco", - [3]byte{88, 16, 140}: "Intelbras", - [3]byte{88, 18, 67}: "AcSiP Technology Corp.", - [3]byte{88, 22, 38}: "Avaya, Inc", - [3]byte{88, 23, 12}: "Sony Ericsson Mobile Communications AB", - [3]byte{88, 28, 189}: "Affinegy", - [3]byte{88, 29, 145}: "Advanced Mobile Telecom co.,ltd.", - [3]byte{88, 31, 103}: "Open-m technology limited", - [3]byte{88, 31, 170}: "Apple", - [3]byte{88, 31, 239}: "Tuttnaer LTD", - [3]byte{88, 33, 54}: "KMB systems, s.r.o.", - [3]byte{88, 35, 140}: "Technicolor CH USA", - [3]byte{88, 46, 254}: "Lighting Science Group", - [3]byte{88, 47, 66}: "Universal Electric Corporation", - [3]byte{88, 52, 59}: "Glovast Technology Ltd.", - [3]byte{88, 53, 217}: "CISCO SYSTEMS, INC.", - [3]byte{88, 60, 198}: "Omneality Ltd.", - [3]byte{88, 66, 228}: "Sigma International General Medical Apparatus, LLC.", - [3]byte{88, 70, 143}: "Koncar Electronics and Informatics", - [3]byte{88, 70, 225}: "Baxter Healthcare", - [3]byte{88, 72, 192}: "COFLEC", - [3]byte{88, 73, 59}: "Palo Alto Networks", - [3]byte{88, 73, 186}: "Chitai Electronic Corp.", - [3]byte{88, 76, 25}: "Chongqing Guohong Technology Development Company Limited", - [3]byte{88, 76, 238}: "Digital One Technologies, Limited", - [3]byte{88, 80, 118}: "Linear Equipamentos Eletronicos SA", - [3]byte{88, 80, 171}: "TLS Corporation", - [3]byte{88, 80, 230}: "Best Buy Corporation", - [3]byte{88, 85, 202}: "Apple", - [3]byte{88, 86, 232}: "ARRIS Group, Inc.", - [3]byte{88, 87, 13}: "Danfoss Solar Inverters", - [3]byte{88, 99, 154}: "TPL SYSTEMES", - [3]byte{88, 101, 230}: "INFOMARK CO., LTD.", - [3]byte{88, 102, 186}: "Hangzhou H3C Technologies Co., Limited", - [3]byte{88, 103, 26}: "BARNES&NOBLE.COM", - [3]byte{88, 103, 127}: "Clare Controls Inc.", - [3]byte{88, 105, 108}: "Fujian Ruijie Networks co, ltd", - [3]byte{88, 105, 249}: "Fusion Transactive Ltd.", - [3]byte{88, 106, 177}: "Hangzhou H3C Technologies Co., Limited", - [3]byte{88, 109, 143}: "Cisco-Linksys, LLC", - [3]byte{88, 110, 214}: "PRIVATE", - [3]byte{88, 117, 33}: "CJSC RTSoft", - [3]byte{88, 118, 117}: "Beijing ECHO Technologies Co.,Ltd", - [3]byte{88, 118, 197}: "DIGI I'S LTD", - [3]byte{88, 122, 77}: "Stonesoft Corporation", - [3]byte{88, 123, 233}: "AirPro Technology India Pvt. Ltd", - [3]byte{88, 126, 97}: "Hisense Electric Co., Ltd", - [3]byte{88, 127, 183}: "SONAR INDUSTRIAL CO., LTD.", - [3]byte{88, 127, 200}: "S2M", - [3]byte{88, 132, 228}: "IP500 Alliance e.V.", - [3]byte{88, 135, 76}: "LITE-ON CLEAN ENERGY TECHNOLOGY CORP.", - [3]byte{88, 135, 226}: "Shenzhen Coship Electronics Co., Ltd.", - [3]byte{88, 141, 9}: "CISCO SYSTEMS, INC.", - [3]byte{88, 145, 207}: "Intel Corporate", - [3]byte{88, 146, 13}: "Kinetic Avionics Limited", - [3]byte{88, 147, 150}: "Ruckus Wireless", - [3]byte{88, 148, 107}: "Intel Corporate", - [3]byte{88, 148, 207}: "Vertex Standard LMR, Inc.", - [3]byte{88, 151, 30}: "Cisco", - [3]byte{88, 152, 53}: "Technicolor", - [3]byte{88, 152, 111}: "Revolution Display", - [3]byte{88, 156, 252}: "FreeBSD Foundation", - [3]byte{88, 162, 181}: "LG Electronics", - [3]byte{88, 167, 111}: "iD corporation", - [3]byte{88, 176, 53}: "Apple", - [3]byte{88, 176, 212}: "ZuniData Systems Inc.", - [3]byte{88, 185, 97}: "SOLEM Electronique", - [3]byte{88, 185, 225}: "Crystalfontz America, Inc.", - [3]byte{88, 188, 39}: "CISCO SYSTEMS, INC.", - [3]byte{88, 189, 163}: "Nintendo Co., Ltd.", - [3]byte{88, 189, 249}: "Sigrand", - [3]byte{88, 191, 234}: "CISCO SYSTEMS, INC.", - [3]byte{88, 194, 50}: "NEC Corporation", - [3]byte{88, 195, 139}: "Samsung Electronics", - [3]byte{88, 207, 75}: "Lufkin Industries", - [3]byte{88, 208, 113}: "BW Broadcast", - [3]byte{88, 208, 143}: "IEEE 1904.1 Working Group", - [3]byte{88, 214, 211}: "Dairy Cheq Inc", - [3]byte{88, 219, 141}: "Fast Co., Ltd.", - [3]byte{88, 224, 44}: "Micro Technic A/S", - [3]byte{88, 227, 38}: "Compass Technologies Inc.", - [3]byte{88, 228, 118}: "CENTRON COMMUNICATIONS TECHNOLOGIES FUJIAN CO.,LTD", - [3]byte{88, 230, 54}: "EVRsafe Technologies", - [3]byte{88, 231, 71}: "Deltanet AG", - [3]byte{88, 232, 8}: "AUTONICS CORPORATION", - [3]byte{88, 235, 20}: "Proteus Digital Health", - [3]byte{88, 236, 225}: "Newport Corporation", - [3]byte{88, 238, 206}: "Icon Time Systems", - [3]byte{88, 243, 135}: "HCCP", - [3]byte{88, 243, 156}: "Cisco", - [3]byte{88, 246, 123}: "Xia Men UnionCore Technology LTD.", - [3]byte{88, 246, 191}: "Kyoto University", - [3]byte{88, 249, 142}: "SECUDOS GmbH", - [3]byte{88, 252, 219}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{88, 253, 32}: "Bravida Sakerhet AB", - [3]byte{92, 2, 106}: "Applied Vision Corporation", - [3]byte{92, 7, 111}: "Thought Creator", - [3]byte{92, 10, 91}: "SAMSUNG ELECTRO-MECHANICS CO., LTD.", - [3]byte{92, 12, 187}: "CELIZION Inc.", - [3]byte{92, 14, 139}: "Motorola", - [3]byte{92, 17, 147}: "Seal One AG", - [3]byte{92, 20, 55}: "Thyssenkrupp Aufzugswerke GmbH", - [3]byte{92, 21, 21}: "ADVAN", - [3]byte{92, 21, 225}: "AIDC TECHNOLOGY (S) PTE LTD", - [3]byte{92, 22, 199}: "Big Switch Networks", - [3]byte{92, 23, 55}: "I-View Now, LLC.", - [3]byte{92, 23, 211}: "LGE", - [3]byte{92, 24, 181}: "Talon Communications", - [3]byte{92, 32, 208}: "Asoni Communication Co., Ltd.", - [3]byte{92, 34, 196}: "DAE EUN ELETRONICS CO., LTD", - [3]byte{92, 36, 121}: "Baltech AG", - [3]byte{92, 37, 76}: "Avire Global Pte Ltd", - [3]byte{92, 38, 10}: "Dell Inc.", - [3]byte{92, 42, 239}: "Open Access Pty Ltd", - [3]byte{92, 43, 245}: "Vivint", - [3]byte{92, 46, 89}: "Samsung Electronics Co.,Ltd", - [3]byte{92, 46, 210}: "ABC(XiSheng) Electronics Co.,Ltd", - [3]byte{92, 49, 62}: "Texas Instruments", - [3]byte{92, 51, 39}: "Spazio Italia srl", - [3]byte{92, 51, 92}: "Swissphone Telecom AG", - [3]byte{92, 51, 142}: "Alpha Networkc Inc.", - [3]byte{92, 53, 59}: "Compal Broadband Networks Inc.", - [3]byte{92, 53, 218}: "There Corporation Oy", - [3]byte{92, 54, 184}: "TCL King Electrical Appliances (Huizhou) Ltd.", - [3]byte{92, 56, 224}: "Shanghai Super Electronics Technology Co.,LTD", - [3]byte{92, 60, 39}: "Samsung Electronics Co.,Ltd", - [3]byte{92, 64, 88}: "Jefferson Audio Video Systems, Inc.", - [3]byte{92, 67, 210}: "HAZEMEYER", - [3]byte{92, 74, 38}: "Enguity Technology Corp", - [3]byte{92, 76, 169}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{92, 80, 21}: "CISCO SYSTEMS, INC.", - [3]byte{92, 81, 79}: "Intel Corporate", - [3]byte{92, 86, 237}: "3pleplay Electronics Private Limited", - [3]byte{92, 87, 26}: "ARRIS Group, Inc.", - [3]byte{92, 87, 200}: "Nokia Corporation", - [3]byte{92, 89, 72}: "Apple", - [3]byte{92, 91, 194}: "YIK Corporation", - [3]byte{92, 94, 171}: "Juniper Networks", - [3]byte{92, 99, 191}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{92, 105, 132}: "NUVICO", - [3]byte{92, 106, 125}: "KENTKART EGE ELEKTRONIK SAN. VE TIC. LTD. STI.", - [3]byte{92, 107, 50}: "Texas Instruments", - [3]byte{92, 109, 32}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{92, 111, 79}: "S.A. SISTEL", - [3]byte{92, 119, 87}: "Haivision Network Video", - [3]byte{92, 125, 94}: "Huawei Technologies Co., Ltd", - [3]byte{92, 132, 134}: "Brightsource Industries Israel LTD", - [3]byte{92, 134, 74}: "Secret Labs LLC", - [3]byte{92, 135, 120}: "Cybertelbridge co.,ltd", - [3]byte{92, 137, 212}: "Beijing Banner Electric Co.,Ltd", - [3]byte{92, 141, 78}: "Apple", - [3]byte{92, 143, 224}: "ARRIS Group, Inc.", - [3]byte{92, 147, 162}: "Liteon Technology Corporation", - [3]byte{92, 149, 174}: "Apple", - [3]byte{92, 150, 106}: "RTNET", - [3]byte{92, 150, 157}: "Apple", - [3]byte{92, 151, 243}: "Apple", - [3]byte{92, 154, 216}: "Fujitsu Limited", - [3]byte{92, 163, 157}: "SAMSUNG ELECTRO-MECHANICS CO., LTD.", - [3]byte{92, 163, 235}: "Lokel s.r.o.", - [3]byte{92, 164, 138}: "Cisco", - [3]byte{92, 170, 253}: "Sonos, Inc.", - [3]byte{92, 172, 76}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{92, 181, 36}: "Sony Ericsson Mobile Communications AB", - [3]byte{92, 182, 204}: "NovaComm Technologies Inc.", - [3]byte{92, 184, 203}: "Allis Communications", - [3]byte{92, 189, 158}: "HONGKONG MIRACLE EAGLE TECHNOLOGY(GROUP) LIMITED", - [3]byte{92, 194, 19}: "Fr. Sauter AG", - [3]byte{92, 197, 212}: "Intel Corporate", - [3]byte{92, 198, 208}: "Skyworth Digital technology(shenzhen)co.ltd.", - [3]byte{92, 201, 211}: "PALLADIUM ENERGY ELETRONICA DA AMAZONIA LTDA", - [3]byte{92, 202, 50}: "Theben AG", - [3]byte{92, 206, 173}: "CDYNE Corporation", - [3]byte{92, 209, 53}: "Xtreme Power Systems", - [3]byte{92, 210, 228}: "Intel Corporate", - [3]byte{92, 212, 27}: "UCZOON Technology Co., LTD", - [3]byte{92, 212, 171}: "Zektor", - [3]byte{92, 214, 31}: "Qardio, Inc", - [3]byte{92, 217, 152}: "D-Link Corporation", - [3]byte{92, 218, 212}: "Murata Manufacturing Co., Ltd.", - [3]byte{92, 221, 112}: "Hangzhou H3C Technologies Co., Limited", - [3]byte{92, 224, 197}: "Intel Corporate", - [3]byte{92, 224, 202}: "FeiTian United (Beijing) System Technology Co., Ltd.", - [3]byte{92, 224, 246}: "NIC.br- Nucleo de Informacao e Coordenacao do Ponto BR", - [3]byte{92, 226, 35}: "Delphin Technology AG", - [3]byte{92, 226, 134}: "Nortel Networks", - [3]byte{92, 226, 244}: "AcSiP Technology Corp.", - [3]byte{92, 231, 191}: "New Singularity International Technical Development Co.,Ltd", - [3]byte{92, 232, 235}: "Samsung Electronics", - [3]byte{92, 235, 78}: "R. STAHL HMI Systems GmbH", - [3]byte{92, 238, 121}: "Global Digitech Co LTD", - [3]byte{92, 242, 7}: "Speco Technologies", - [3]byte{92, 243, 112}: "CC&C Technologies, Inc", - [3]byte{92, 243, 252}: "IBM Corp", - [3]byte{92, 244, 171}: "ZyXEL Communications Corp", - [3]byte{92, 245, 13}: "Institute of microelectronic applications", - [3]byte{92, 246, 220}: "Samsung Electronics Co.,LTD", - [3]byte{92, 248, 161}: "Murata Manufactuaring Co.,Ltd.", - [3]byte{92, 249, 56}: "Apple, Inc", - [3]byte{92, 249, 106}: "Huawei Technologies Co., Ltd", - [3]byte{92, 249, 221}: "Dell Inc", - [3]byte{92, 249, 240}: "Atomos Engineering P/L", - [3]byte{92, 255, 53}: "Wistron Corporation", - [3]byte{92, 255, 255}: "Shenzhen Kezhonglong Optoelectronic Technology Co., Ltd", - [3]byte{96, 2, 146}: "PEGATRON CORPORATION", - [3]byte{96, 2, 180}: "Wistron NeWeb Corp.", - [3]byte{96, 3, 8}: "Apple", - [3]byte{96, 3, 71}: "Billion Electric Co. Ltd.", - [3]byte{96, 4, 23}: "POSBANK CO.,LTD", - [3]byte{96, 15, 119}: "SilverPlus, Inc", - [3]byte{96, 17, 153}: "Siama Systems Inc", - [3]byte{96, 18, 131}: "Soluciones Tecnologicas para la Salud y el Bienestar SA", - [3]byte{96, 21, 199}: "IdaTech", - [3]byte{96, 25, 12}: "RRAMAC", - [3]byte{96, 25, 41}: "VOLTRONIC POWER TECHNOLOGY(SHENZHEN) CORP.", - [3]byte{96, 29, 15}: "Midnite Solar", - [3]byte{96, 30, 2}: "EltexAlatau", - [3]byte{96, 33, 3}: "STCUBE.INC", - [3]byte{96, 33, 192}: "Murata Manufactuaring Co.,Ltd.", - [3]byte{96, 36, 193}: "Jiangsu Zhongxun Electronic Technology Co., Ltd", - [3]byte{96, 42, 84}: "CardioTek B.V.", - [3]byte{96, 42, 208}: "Cisco SPVTG", - [3]byte{96, 50, 240}: "Mplus technology", - [3]byte{96, 51, 75}: "Apple", - [3]byte{96, 53, 83}: "Buwon Technology", - [3]byte{96, 54, 150}: "The Sapling Company", - [3]byte{96, 54, 221}: "Intel Corporate", - [3]byte{96, 56, 14}: "Alps Electric Co.,", - [3]byte{96, 57, 31}: "ABB Ltd", - [3]byte{96, 63, 197}: "COX CO., LTD", - [3]byte{96, 68, 245}: "Easy Digital Ltd.", - [3]byte{96, 69, 94}: "Liptel s.r.o.", - [3]byte{96, 69, 189}: "Microsoft", - [3]byte{96, 70, 22}: "XIAMEN VANN INTELLIGENT CO., LTD", - [3]byte{96, 71, 212}: "FORICS Electronic Technology Co., Ltd.", - [3]byte{96, 72, 38}: "Newbridge Technologies Int. Ltd.", - [3]byte{96, 74, 28}: "SUYIN Corporation", - [3]byte{96, 80, 193}: "Kinetek Sports", - [3]byte{96, 81, 44}: "TCT mobile limited", - [3]byte{96, 82, 208}: "FACTS Engineering", - [3]byte{96, 84, 100}: "Eyedro Green Solutions Inc.", - [3]byte{96, 87, 24}: "Intel Corporate", - [3]byte{96, 96, 31}: "SZ DJI TECHNOLOGY CO.,LTD", - [3]byte{96, 99, 253}: "Transcend Communication Beijing Co.,Ltd.", - [3]byte{96, 100, 161}: "RADiflow Ltd.", - [3]byte{96, 103, 32}: "Intel Corporate", - [3]byte{96, 105, 68}: "Apple, Inc", - [3]byte{96, 105, 155}: "isepos GmbH", - [3]byte{96, 107, 189}: "Samsung Electronics Co., LTD", - [3]byte{96, 108, 102}: "Intel Corporate", - [3]byte{96, 115, 92}: "Cisco", - [3]byte{96, 116, 141}: "Atmaca Elektronik", - [3]byte{96, 118, 136}: "Velodyne", - [3]byte{96, 119, 226}: "Samsung Electronics Co.,Ltd", - [3]byte{96, 129, 43}: "Custom Control Concepts", - [3]byte{96, 129, 249}: "Helium Systems, Inc", - [3]byte{96, 131, 178}: "GkWare e.K.", - [3]byte{96, 132, 59}: "Soladigm, Inc.", - [3]byte{96, 134, 69}: "Avery Weigh-Tronix, LLC", - [3]byte{96, 137, 60}: "Thermo Fisher Scientific P.O.A.", - [3]byte{96, 137, 177}: "Key Digital Systems", - [3]byte{96, 137, 183}: "KAEL MÃœHENDÄ°SLÄ°K ELEKTRONÄ°K TÄ°CARET SANAYÄ° LÄ°MÄ°TED ŞİRKETÄ°", - [3]byte{96, 140, 43}: "Hanson Technology", - [3]byte{96, 141, 23}: "Sentrus Government Systems Division, Inc", - [3]byte{96, 143, 92}: "Samsung Electronics Co.,Ltd", - [3]byte{96, 144, 132}: "DSSD Inc", - [3]byte{96, 146, 23}: "Apple", - [3]byte{96, 150, 32}: "PRIVATE", - [3]byte{96, 153, 209}: "Vuzix / Lenovo", - [3]byte{96, 154, 164}: "GVI SECURITY INC.", - [3]byte{96, 158, 100}: "Vivonic GmbH", - [3]byte{96, 159, 157}: "CloudSwitch", - [3]byte{96, 161, 10}: "Samsung Electronics Co.,Ltd", - [3]byte{96, 164, 76}: "ASUSTek COMPUTER INC.", - [3]byte{96, 168, 254}: "Nokia Solutions and Networks", - [3]byte{96, 169, 176}: "Merchandising Technologies, Inc", - [3]byte{96, 177, 133}: "ATH system", - [3]byte{96, 179, 196}: "Elber Srl", - [3]byte{96, 182, 6}: "Phorus", - [3]byte{96, 182, 23}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{96, 185, 51}: "Deutron Electronics Corp.", - [3]byte{96, 185, 130}: "RO.VE.R. Laboratories S.p.A.", - [3]byte{96, 187, 12}: "Beijing HuaqinWorld Technology Co,Ltd", - [3]byte{96, 188, 76}: "EWM Hightec Welding GmbH", - [3]byte{96, 189, 145}: "Move Innovation", - [3]byte{96, 190, 181}: "Motorola Mobility LLC", - [3]byte{96, 193, 203}: "Fujian Great Power PLC Equipment Co.,Ltd", - [3]byte{96, 195, 151}: "2Wire Inc", - [3]byte{96, 197, 71}: "Apple", - [3]byte{96, 197, 168}: "Beijing LT Honway Technology Co.,Ltd", - [3]byte{96, 199, 152}: "Verifone, Inc.", - [3]byte{96, 201, 128}: "Trymus", - [3]byte{96, 203, 251}: "AirScape Inc.", - [3]byte{96, 205, 169}: "Abloomy", - [3]byte{96, 205, 197}: "Taiwan Carol Electronics., Ltd", - [3]byte{96, 208, 169}: "Samsung Electronics Co.,Ltd", - [3]byte{96, 209, 170}: "Vishal Telecommunications Pvt Ltd", - [3]byte{96, 210, 185}: "REALAND BIO CO., LTD.", - [3]byte{96, 211, 10}: "Quatius Limited", - [3]byte{96, 216, 25}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{96, 217, 199}: "Apple", - [3]byte{96, 218, 35}: "Estech Co.,Ltd", - [3]byte{96, 219, 42}: "HNS", - [3]byte{96, 222, 68}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{96, 224, 14}: "SHINSEI ELECTRONICS CO LTD", - [3]byte{96, 227, 39}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{96, 231, 1}: "Huawei Technologies Co., Ltd", - [3]byte{96, 233, 86}: "Ayla Networks, Inc", - [3]byte{96, 235, 105}: "Quanta computer Inc.", - [3]byte{96, 241, 61}: "JABLOCOM s.r.o.", - [3]byte{96, 242, 129}: "TRANWO TECHNOLOGY CO., LTD.", - [3]byte{96, 242, 239}: "VisionVera International Co., Ltd.", - [3]byte{96, 243, 218}: "Logic Way GmbH", - [3]byte{96, 244, 148}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{96, 245, 156}: "CRU-Dataport", - [3]byte{96, 246, 115}: "TERUMO CORPORATION", - [3]byte{96, 250, 205}: "Apple", - [3]byte{96, 251, 66}: "Apple", - [3]byte{96, 254, 30}: "China Palms Telecom.Ltd", - [3]byte{96, 254, 32}: "2 Wire", - [3]byte{96, 254, 197}: "Apple", - [3]byte{96, 254, 249}: "Thomas & Betts", - [3]byte{96, 255, 221}: "C.E. ELECTRONICS, INC", - [3]byte{100, 0, 45}: "Powerlinq Co., LTD", - [3]byte{100, 0, 241}: "CISCO SYSTEMS, INC.", - [3]byte{100, 5, 190}: "NEW LIGHT LED", - [3]byte{100, 9, 76}: "Beijing Superbee Wireless Technology Co.,Ltd", - [3]byte{100, 9, 128}: "XIAOMI Electronics,CO.,LTD", - [3]byte{100, 11, 74}: "Digital Telecom Technology Limited", - [3]byte{100, 14, 54}: "TAZTAG", - [3]byte{100, 14, 148}: "Pluribus Networks, Inc.", - [3]byte{100, 15, 40}: "2wire", - [3]byte{100, 16, 132}: "HEXIUM Technical Development Co., Ltd.", - [3]byte{100, 18, 37}: "Cisco", - [3]byte{100, 22, 141}: "CISCO SYSTEMS, INC.", - [3]byte{100, 22, 240}: "Shehzhen Huawei Communication Technologies Co., Ltd.", - [3]byte{100, 26, 34}: "Heliospectra/Woodhill Investments", - [3]byte{100, 28, 103}: "DIGIBRAS INDUSTRIA DO BRASILS/A", - [3]byte{100, 30, 129}: "Dowslake Microsystems", - [3]byte{100, 32, 12}: "Apple", - [3]byte{100, 33, 132}: "Nippon Denki Kagaku Co.,LTD", - [3]byte{100, 34, 22}: "Shandong Taixin Electronic co.,Ltd", - [3]byte{100, 36, 0}: "Xorcom Ltd.", - [3]byte{100, 39, 55}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{100, 45, 183}: "SEUNGIL ELECTRONICS", - [3]byte{100, 49, 80}: "Hewlett-Packard Company", - [3]byte{100, 49, 126}: "Dexin Corporation", - [3]byte{100, 52, 9}: "BITwave Pte Ltd", - [3]byte{100, 62, 140}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{100, 63, 95}: "Exablaze", - [3]byte{100, 66, 20}: "Swisscom Energy Solutions AG", - [3]byte{100, 67, 70}: "GuangDong Quick Network Computer CO.,LTD", - [3]byte{100, 75, 195}: "Shanghai WOASiS Telecommunications Ltd., Co.", - [3]byte{100, 75, 240}: "CalDigit, Inc", - [3]byte{100, 77, 112}: "dSPACE GmbH", - [3]byte{100, 79, 116}: "LENUS Co., Ltd.", - [3]byte{100, 79, 176}: "Hyunjin.com", - [3]byte{100, 81, 6}: "Hewlett Packard", - [3]byte{100, 81, 126}: "LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD.", - [3]byte{100, 82, 153}: "The Chamberlain Group, Inc", - [3]byte{100, 83, 93}: "Frauscher Sensortechnik", - [3]byte{100, 84, 34}: "Equinox Payments", - [3]byte{100, 85, 99}: "Intelight Inc.", - [3]byte{100, 85, 127}: "NSFOCUS Information Technology Co., Ltd.", - [3]byte{100, 85, 177}: "ARRIS Group, Inc.", - [3]byte{100, 86, 1}: "TP-LINK TECHNOLOGIES CO.,LTD", - [3]byte{100, 90, 4}: "Chicony Electronics Co., Ltd.", - [3]byte{100, 93, 215}: "Shenzhen Lifesense Medical Electronics Co., Ltd.", - [3]byte{100, 94, 190}: "Yahoo! JAPAN", - [3]byte{100, 95, 255}: "Nicolet Neuro", - [3]byte{100, 98, 35}: "Cellient Co., Ltd.", - [3]byte{100, 100, 155}: "juniper networks", - [3]byte{100, 101, 192}: "Nuvon, Inc", - [3]byte{100, 102, 179}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{100, 103, 7}: "Beijing Omnific Technology, Ltd.", - [3]byte{100, 104, 12}: "COMTREND", - [3]byte{100, 105, 188}: "Hytera Communications Co .,ltd", - [3]byte{100, 108, 178}: "Samsung Electronics Co.,Ltd", - [3]byte{100, 110, 108}: "Radio Datacom LLC", - [3]byte{100, 110, 234}: "Iskratel d.o.o.", - [3]byte{100, 112, 2}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{100, 114, 216}: "GooWi Technology Co.,Limited", - [3]byte{100, 115, 226}: "Arbiter Systems, Inc.", - [3]byte{100, 118, 87}: "Innovative Security Designs", - [3]byte{100, 118, 186}: "Apple", - [3]byte{100, 119, 145}: "Samsung Electronics Co.,Ltd", - [3]byte{100, 123, 212}: "Texas Instruments", - [3]byte{100, 124, 52}: "Ubee Interactive Corp.", - [3]byte{100, 125, 129}: "YOKOTA INDUSTRIAL CO,.LTD", - [3]byte{100, 127, 218}: "TEKTELIC Communications Inc.", - [3]byte{100, 128, 139}: "VG Controls, Inc.", - [3]byte{100, 128, 153}: "Intel Corporate", - [3]byte{100, 129, 37}: "Alphatron Marine BV", - [3]byte{100, 135, 136}: "Juniper Networks", - [3]byte{100, 135, 215}: "Pirelli Tyre S.p.A.", - [3]byte{100, 136, 255}: "Sichuan Changhong Electric Ltd.", - [3]byte{100, 137, 154}: "LG Electronics", - [3]byte{100, 141, 158}: "IVT Electronic Co.,Ltd", - [3]byte{100, 153, 93}: "LGE", - [3]byte{100, 153, 104}: "Elentec", - [3]byte{100, 153, 160}: "AG Elektronik AB", - [3]byte{100, 155, 36}: "V Technology Co., Ltd.", - [3]byte{100, 156, 129}: "Qualcomm iSkoot, Inc.", - [3]byte{100, 156, 142}: "Texas Instruments", - [3]byte{100, 158, 243}: "CISCO SYSTEMS, INC.", - [3]byte{100, 159, 247}: "Kone OYj", - [3]byte{100, 160, 231}: "CISCO SYSTEMS, INC.", - [3]byte{100, 162, 50}: "OOO Samlight", - [3]byte{100, 163, 65}: "Wonderlan (Beijing) Technology Co., Ltd.", - [3]byte{100, 163, 203}: "Apple", - [3]byte{100, 167, 105}: "HTC Corporation", - [3]byte{100, 167, 221}: "Avaya, Inc", - [3]byte{100, 168, 55}: "Juni Korea Co., Ltd", - [3]byte{100, 174, 12}: "CISCO SYSTEMS, INC.", - [3]byte{100, 174, 136}: "Polytec GmbH", - [3]byte{100, 178, 29}: "Chengdu Phycom Tech Co., Ltd.", - [3]byte{100, 179, 16}: "Samsung Electronics Co.,Ltd", - [3]byte{100, 179, 112}: "PowerComm Solutons LLC", - [3]byte{100, 180, 115}: "Xiaomi inc.", - [3]byte{100, 182, 74}: "ViVOtech, Inc.", - [3]byte{100, 184, 83}: "Samsung Elec Co.,Ltd", - [3]byte{100, 185, 232}: "Apple", - [3]byte{100, 186, 189}: "SDJ Technologies, Inc.", - [3]byte{100, 188, 17}: "CombiQ AB", - [3]byte{100, 197, 170}: "South African Broadcasting Corporation", - [3]byte{100, 198, 103}: "Barnes&Noble", - [3]byte{100, 198, 175}: "AXERRA Networks Ltd", - [3]byte{100, 201, 68}: "LARK Technologies, Inc", - [3]byte{100, 208, 45}: "Next Generation Integration (NGI)", - [3]byte{100, 209, 163}: "Sitecom Europe BV", - [3]byte{100, 210, 65}: "Keith & Koep GmbH", - [3]byte{100, 212, 189}: "ALPS ELECTRIC CO.,LTD.", - [3]byte{100, 212, 218}: "Intel Corporate", - [3]byte{100, 216, 20}: "CISCO SYSTEMS, INC.", - [3]byte{100, 217, 18}: "Solidica, Inc.", - [3]byte{100, 217, 84}: "TAICANG AND W ELECTRONICS CO LTD", - [3]byte{100, 217, 137}: "CISCO SYSTEMS, INC.", - [3]byte{100, 219, 24}: "OpenPattern", - [3]byte{100, 220, 1}: "Static Systems Group PLC", - [3]byte{100, 222, 28}: "Kingnetic Pte Ltd", - [3]byte{100, 225, 97}: "DEP Corp.", - [3]byte{100, 229, 153}: "EFM Networks", - [3]byte{100, 230, 37}: "Woxu Wireless Co., Ltd", - [3]byte{100, 230, 130}: "Apple", - [3]byte{100, 232, 79}: "Serialway Communication Technology Co. Ltd", - [3]byte{100, 232, 146}: "Morio Denki Co., Ltd.", - [3]byte{100, 232, 230}: "global moisture management system", - [3]byte{100, 233, 80}: "Cisco", - [3]byte{100, 234, 197}: "SiboTech Automation Co., Ltd.", - [3]byte{100, 235, 140}: "Seiko Epson Corporation", - [3]byte{100, 237, 87}: "ARRIS Group, Inc.", - [3]byte{100, 237, 98}: "WOORI SYSTEMS Co., Ltd", - [3]byte{100, 242, 66}: "Gerdes Aktiengesellschaft", - [3]byte{100, 245, 14}: "Kinion Technology Company Limited", - [3]byte{100, 249, 112}: "Kenade Electronics Technology Co.,LTD.", - [3]byte{100, 249, 135}: "Avvasi Inc.", - [3]byte{100, 252, 140}: "Zonar Systems", - [3]byte{104, 5, 113}: "Samsung Electronics Co.,Ltd", - [3]byte{104, 5, 202}: "Intel Corporate", - [3]byte{104, 9, 39}: "Apple", - [3]byte{104, 10, 215}: "Yancheng Kecheng Optoelectronic Technology Co., Ltd", - [3]byte{104, 18, 45}: "Special Instrument Development Co., Ltd.", - [3]byte{104, 21, 144}: "SAGEMCOM SAS", - [3]byte{104, 21, 211}: "Zaklady Elektroniki i Mechaniki Precyzyjnej R&G S.A.", - [3]byte{104, 22, 5}: "Systems And Electronic Development FZCO", - [3]byte{104, 23, 41}: "Intel Corporate", - [3]byte{104, 25, 63}: "Digital Airways", - [3]byte{104, 26, 178}: "zte corporation", - [3]byte{104, 28, 162}: "Rosewill Inc.", - [3]byte{104, 29, 100}: "Sunwave Communications Co., Ltd", - [3]byte{104, 30, 139}: "InfoSight Corporation", - [3]byte{104, 31, 216}: "Advanced Telemetry", - [3]byte{104, 35, 75}: "Nihon Dengyo Kousaku", - [3]byte{104, 40, 186}: "Dejai", - [3]byte{104, 45, 220}: "Wuhan Changjiang Electro-Communication Equipment CO.,LTD", - [3]byte{104, 54, 181}: "DriveScale, Inc.", - [3]byte{104, 59, 30}: "Countwise LTD", - [3]byte{104, 62, 236}: "ERECA", - [3]byte{104, 67, 82}: "Bhuu Limited", - [3]byte{104, 72, 152}: "Samsung Electronics Co.,Ltd", - [3]byte{104, 75, 136}: "Galtronics Telemetry Inc.", - [3]byte{104, 76, 168}: "Shenzhen Herotel Tech. Co., Ltd.", - [3]byte{104, 81, 183}: "PowerCloud Systems, Inc.", - [3]byte{104, 84, 237}: "Alcatel-Lucent - Nuage", - [3]byte{104, 84, 245}: "enLighted Inc", - [3]byte{104, 89, 127}: "Alcatel Lucent", - [3]byte{104, 91, 53}: "Apple", - [3]byte{104, 91, 54}: "POWERTECH INDUSTRIAL CO., LTD.", - [3]byte{104, 93, 67}: "Intel Corporate", - [3]byte{104, 94, 107}: "PowerRay Co., Ltd.", - [3]byte{104, 99, 89}: "Advanced Digital Broadcast SA", - [3]byte{104, 105, 46}: "Zycoo Co.,Ltd", - [3]byte{104, 105, 242}: "ComAp s.r.o.", - [3]byte{104, 110, 35}: "Wi3 Inc.", - [3]byte{104, 110, 72}: "Prophet Electronic Technology Corp.,Ltd", - [3]byte{104, 114, 81}: "Ubiquiti Networks", - [3]byte{104, 114, 220}: "CETORY.TV Company Limited", - [3]byte{104, 118, 79}: "Sony Mobile Communications AB", - [3]byte{104, 120, 72}: "Westunitis Co., Ltd.", - [3]byte{104, 120, 76}: "Nortel Networks", - [3]byte{104, 121, 36}: "ELS-GmbH & Co. KG", - [3]byte{104, 121, 237}: "SHARP Corporation", - [3]byte{104, 124, 200}: "Measurement Systems S. de R.L.", - [3]byte{104, 124, 213}: "Y Soft Corporation, a.s.", - [3]byte{104, 127, 116}: "Cisco-Linksys, LLC", - [3]byte{104, 131, 26}: "Pandora Mobility Corporation", - [3]byte{104, 132, 112}: "eSSys Co.,Ltd", - [3]byte{104, 133, 64}: "IGI Mobile, Inc.", - [3]byte{104, 133, 106}: "OuterLink Corporation", - [3]byte{104, 134, 167}: "Cisco", - [3]byte{104, 134, 231}: "Orbotix, Inc.", - [3]byte{104, 135, 107}: "INQ Mobile Limited", - [3]byte{104, 138, 181}: "EDP Servicos", - [3]byte{104, 146, 52}: "Ruckus Wireless", - [3]byte{104, 148, 35}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{104, 150, 123}: "Apple", - [3]byte{104, 151, 75}: "Shenzhen Costar Electronics Co. Ltd.", - [3]byte{104, 151, 232}: "Society of Motion Picture & Television Engineers", - [3]byte{104, 153, 205}: "Cisco", - [3]byte{104, 156, 94}: "AcSiP Technology Corp.", - [3]byte{104, 156, 112}: "Apple", - [3]byte{104, 160, 246}: "Huawei Technologies Co., Ltd", - [3]byte{104, 161, 183}: "Honghao Mingchuan Technology (Beijing) CO.,Ltd.", - [3]byte{104, 163, 196}: "Liteon Technology Corporation", - [3]byte{104, 164, 14}: "BSH Bosch and Siemens Home Appliances GmbH", - [3]byte{104, 168, 109}: "Apple", - [3]byte{104, 170, 210}: "DATECS LTD.,", - [3]byte{104, 171, 138}: "RF IDeas", - [3]byte{104, 174, 32}: "Apple", - [3]byte{104, 175, 19}: "Futura Mobility", - [3]byte{104, 176, 148}: "INESA ELECTRON CO.,LTD", - [3]byte{104, 180, 58}: "WaterFurnace International, Inc.", - [3]byte{104, 181, 153}: "Hewlett-Packard Company", - [3]byte{104, 182, 252}: "Hitron Technologies. Inc", - [3]byte{104, 184, 217}: "Act KDE, Inc.", - [3]byte{104, 188, 12}: "CISCO SYSTEMS, INC.", - [3]byte{104, 189, 171}: "CISCO SYSTEMS, INC.", - [3]byte{104, 201, 11}: "Texas Instruments", - [3]byte{104, 202, 0}: "Octopus Systems Limited", - [3]byte{104, 204, 156}: "Mine Site Technologies", - [3]byte{104, 205, 15}: "U Tek Company Limited", - [3]byte{104, 206, 78}: "L-3 Communications Infrared Products", - [3]byte{104, 209, 253}: "Shenzhen Trimax Technology Co.,Ltd", - [3]byte{104, 210, 71}: "Portalis LC", - [3]byte{104, 217, 37}: "ProSys Development Services", - [3]byte{104, 217, 60}: "Apple", - [3]byte{104, 219, 103}: "Nantong Coship Electronics Co., Ltd", - [3]byte{104, 219, 150}: "OPWILL Technologies CO .,LTD", - [3]byte{104, 220, 232}: "PacketStorm Communications", - [3]byte{104, 223, 221}: "Xiaomi inc.", - [3]byte{104, 225, 102}: "PRIVATE", - [3]byte{104, 228, 31}: "Unglaube Identech GmbH", - [3]byte{104, 235, 174}: "Samsung Electronics Co.,Ltd", - [3]byte{104, 235, 197}: "Angstrem Telecom", - [3]byte{104, 236, 98}: "YODO Technology Corp. Ltd.", - [3]byte{104, 237, 67}: "Research In Motion", - [3]byte{104, 238, 150}: "Cisco SPVTG", - [3]byte{104, 239, 189}: "CISCO SYSTEMS, INC.", - [3]byte{104, 240, 109}: "ALONG INDUSTRIAL CO., LIMITED", - [3]byte{104, 241, 37}: "Data Controls Inc.", - [3]byte{104, 247, 40}: "LCFC(HeFei) Electronics Technology co., ltd", - [3]byte{104, 248, 149}: "Redflow Limited", - [3]byte{104, 251, 149}: "Generalplus Technology Inc.", - [3]byte{104, 252, 179}: "Next Level Security Systems, Inc.", - [3]byte{108, 2, 115}: "Shenzhen Jin Yun Video Equipment Co., Ltd.", - [3]byte{108, 4, 96}: "RBH Access Technologies Inc.", - [3]byte{108, 9, 214}: "Digiquest Electronics LTD", - [3]byte{108, 11, 132}: "Universal Global Scientific Industrial Co.,Ltd.", - [3]byte{108, 14, 13}: "Sony Ericsson Mobile Communications AB", - [3]byte{108, 15, 106}: "JDC Tech Co., Ltd.", - [3]byte{108, 20, 247}: "Erhardt+Leimer GmbH", - [3]byte{108, 21, 249}: "Nautronix Limited", - [3]byte{108, 24, 17}: "Decatur Electronics", - [3]byte{108, 25, 143}: "D-Link International", - [3]byte{108, 32, 86}: "Cisco", - [3]byte{108, 34, 171}: "Ainsworth Game Technology", - [3]byte{108, 35, 185}: "Sony Ericsson Mobile Communications AB", - [3]byte{108, 37, 185}: "BBK Electronics Corp., Ltd.,", - [3]byte{108, 41, 149}: "Intel Corporate", - [3]byte{108, 44, 6}: "OOO NPP Systemotechnika-NN", - [3]byte{108, 46, 51}: "Accelink Technologies Co.,Ltd.", - [3]byte{108, 46, 133}: "SAGEMCOM", - [3]byte{108, 47, 44}: "Samsung Electronics Co.,Ltd", - [3]byte{108, 50, 222}: "Indieon Technologies Pvt. Ltd.", - [3]byte{108, 51, 169}: "Magicjack LP", - [3]byte{108, 57, 29}: "Beijing ZhongHuaHun Network Information center", - [3]byte{108, 58, 132}: "Shenzhen Aero-Startech. Co.Ltd", - [3]byte{108, 59, 229}: "Hewlett Packard", - [3]byte{108, 60, 83}: "SoundHawk Corp", - [3]byte{108, 62, 109}: "Apple", - [3]byte{108, 62, 156}: "KE Knestel Elektronik GmbH", - [3]byte{108, 64, 8}: "Apple", - [3]byte{108, 64, 198}: "Nimbus Data Systems, Inc.", - [3]byte{108, 65, 106}: "Cisco", - [3]byte{108, 75, 127}: "Vossloh-Schwabe Deutschland GmbH", - [3]byte{108, 80, 77}: "CISCO SYSTEMS, INC.", - [3]byte{108, 87, 121}: "Aclima, Inc.", - [3]byte{108, 90, 52}: "Shenzhen Haitianxiong Electronic Co., Ltd.", - [3]byte{108, 90, 181}: "TCL Technoly Electronics (Huizhou) Co., Ltd.", - [3]byte{108, 92, 222}: "SunReports, Inc.", - [3]byte{108, 93, 99}: "ShenZhen Rapoo Technology Co., Ltd.", - [3]byte{108, 94, 122}: "Ubiquitous Internet Telecom Co., Ltd", - [3]byte{108, 95, 28}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{108, 97, 38}: "Rinicom Holdings", - [3]byte{108, 98, 109}: "Micro-Star INT'L CO., LTD", - [3]byte{108, 100, 26}: "Penguin Computing", - [3]byte{108, 110, 254}: "Core Logic Inc.", - [3]byte{108, 111, 24}: "Stereotaxis, Inc.", - [3]byte{108, 112, 57}: "Novar GmbH", - [3]byte{108, 112, 159}: "Apple", - [3]byte{108, 113, 217}: "AzureWave Technologies, Inc", - [3]byte{108, 118, 96}: "KYOCERA Corporation", - [3]byte{108, 129, 254}: "Mitsuba Corporation", - [3]byte{108, 131, 54}: "Samsung Electronics Co.,Ltd", - [3]byte{108, 131, 102}: "Nanjing SAC Power Grid Automation Co., Ltd.", - [3]byte{108, 134, 134}: "Technonia", - [3]byte{108, 136, 20}: "Intel Corporate", - [3]byte{108, 139, 47}: "zte corporation", - [3]byte{108, 140, 219}: "Otus Technologies Ltd", - [3]byte{108, 141, 101}: "Wireless Glue Networks, Inc.", - [3]byte{108, 144, 177}: "SanLogic Inc", - [3]byte{108, 146, 191}: "Inspur Electronic Information Industry Co.,Ltd.", - [3]byte{108, 148, 248}: "Apple", - [3]byte{108, 152, 235}: "Ocedo GmbH", - [3]byte{108, 153, 137}: "Cisco", - [3]byte{108, 154, 201}: "Valentine Research, Inc.", - [3]byte{108, 155, 2}: "Nokia Corporation", - [3]byte{108, 156, 233}: "Nimble Storage", - [3]byte{108, 156, 237}: "CISCO SYSTEMS, INC.", - [3]byte{108, 166, 130}: "EDAM information & communications", - [3]byte{108, 167, 128}: "Nokia Corporation", - [3]byte{108, 169, 6}: "Telefield Ltd", - [3]byte{108, 169, 111}: "TransPacket AS", - [3]byte{108, 170, 179}: "Ruckus Wireless", - [3]byte{108, 171, 77}: "Digital Payment Technologies", - [3]byte{108, 172, 96}: "Venetex Corp", - [3]byte{108, 173, 63}: "Hubbell Building Automation, Inc.", - [3]byte{108, 173, 239}: "KZ Broadband Technologies, Ltd.", - [3]byte{108, 173, 248}: "Azurewave Technologies, Inc.", - [3]byte{108, 174, 139}: "IBM Corporation", - [3]byte{108, 176, 206}: "NETGEAR", - [3]byte{108, 179, 17}: "Shenzhen Lianrui Electronics Co.,Ltd", - [3]byte{108, 179, 80}: "Anhui comhigher tech co.,ltd", - [3]byte{108, 183, 244}: "Samsung Electronics Co.,Ltd", - [3]byte{108, 190, 233}: "Alcatel-Lucent-IPD", - [3]byte{108, 191, 181}: "Noon Technology Co., Ltd", - [3]byte{108, 193, 210}: "ARRIS Group, Inc.", - [3]byte{108, 194, 23}: "Hewlett Packard", - [3]byte{108, 194, 107}: "Apple", - [3]byte{108, 208, 50}: "LG Electronics", - [3]byte{108, 209, 70}: "Smartek d.o.o.", - [3]byte{108, 209, 176}: "WING SING ELECTRONICS HONG KONG LIMITED", - [3]byte{108, 214, 138}: "LG Electronics Inc", - [3]byte{108, 220, 106}: "Promethean Limited", - [3]byte{108, 224, 176}: "SOUND4", - [3]byte{108, 228, 206}: "Villiger Security Solutions AG", - [3]byte{108, 232, 115}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{108, 233, 7}: "Nokia Corporation", - [3]byte{108, 233, 131}: "Gastron Co., LTD.", - [3]byte{108, 236, 161}: "SHENZHEN CLOU ELECTRONICS CO. LTD.", - [3]byte{108, 236, 235}: "Texas Instruments", - [3]byte{108, 240, 73}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{108, 243, 115}: "Samsung Electronics Co.,Ltd", - [3]byte{108, 243, 127}: "Aruba Networks", - [3]byte{108, 249, 124}: "Nanoptix Inc.", - [3]byte{108, 250, 88}: "Avaya, Inc", - [3]byte{108, 250, 137}: "Cisco", - [3]byte{108, 250, 167}: "AMPAK Technology Inc.", - [3]byte{108, 253, 185}: "Proware Technologies Co Ltd.", - [3]byte{108, 255, 190}: "MPB Communications Inc.", - [3]byte{112, 2, 88}: "01DB-METRAVIB", - [3]byte{112, 5, 20}: "LG Electronics", - [3]byte{112, 11, 192}: "Dewav Technology Company", - [3]byte{112, 15, 199}: "SHENZHEN IKINLOOP TECHNOLOGY CO.,LTD.", - [3]byte{112, 15, 236}: "Poindus Systems Corp.", - [3]byte{112, 16, 92}: "Cisco", - [3]byte{112, 17, 36}: "Apple", - [3]byte{112, 20, 4}: "Limited Liability Company", - [3]byte{112, 24, 139}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{112, 26, 4}: "Liteon Tech Corp.", - [3]byte{112, 26, 237}: "ADVAS CO., LTD.", - [3]byte{112, 29, 127}: "Comtech Technology Co., Ltd.", - [3]byte{112, 35, 147}: "fos4X GmbH", - [3]byte{112, 37, 38}: "Alcatel-Lucent", - [3]byte{112, 37, 89}: "CyberTAN Technology, Inc.", - [3]byte{112, 43, 29}: "E-Domus International Limited", - [3]byte{112, 44, 31}: "Wisol", - [3]byte{112, 45, 209}: "Newings Communication CO., LTD.", - [3]byte{112, 47, 75}: "PolyVision Inc.", - [3]byte{112, 47, 151}: "Aava Mobile Oy", - [3]byte{112, 48, 24}: "Avaya, Inc", - [3]byte{112, 48, 93}: "Ubiquoss Inc", - [3]byte{112, 48, 94}: "Nanjing Zhongke Menglian Information Technology Co.,LTD", - [3]byte{112, 49, 135}: "ACX GmbH", - [3]byte{112, 50, 213}: "Athena Wireless Communications Inc", - [3]byte{112, 56, 17}: "Invensys Rail", - [3]byte{112, 56, 180}: "Low Tech Solutions", - [3]byte{112, 56, 238}: "Avaya, Inc", - [3]byte{112, 58, 216}: "Shenzhen Afoundry Electronic Co., Ltd", - [3]byte{112, 60, 57}: "SEAWING Kft", - [3]byte{112, 62, 172}: "Apple", - [3]byte{112, 65, 183}: "Edwards Lifesciences LLC", - [3]byte{112, 70, 66}: "CHYNG HONG ELECTRONIC CO., LTD.", - [3]byte{112, 74, 174}: "Xstream Flow (Pty) Ltd", - [3]byte{112, 74, 228}: "Rinstrum Pty Ltd", - [3]byte{112, 76, 237}: "TMRG, Inc.", - [3]byte{112, 78, 1}: "KWANGWON TECH CO., LTD.", - [3]byte{112, 82, 197}: "Avaya, Inc.", - [3]byte{112, 83, 63}: "Alfa Instrumentos Eletronicos Ltda.", - [3]byte{112, 84, 210}: "PEGATRON CORPORATION", - [3]byte{112, 84, 245}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{112, 86, 129}: "Apple", - [3]byte{112, 88, 18}: "Panasonic AVC Networks Company", - [3]byte{112, 89, 87}: "Medallion Instrumentation Systems", - [3]byte{112, 89, 134}: "OOO TTV", - [3]byte{112, 90, 182}: "COMPAL INFORMATION (KUNSHAN) CO., LTD.", - [3]byte{112, 91, 46}: "M2Communication Inc.", - [3]byte{112, 92, 173}: "Konami Gaming Inc", - [3]byte{112, 94, 170}: "Action Target, Inc.", - [3]byte{112, 96, 222}: "LaVision GmbH", - [3]byte{112, 97, 115}: "Calantec GmbH", - [3]byte{112, 98, 184}: "D-Link International", - [3]byte{112, 100, 23}: "ORBIS TECNOLOGIA ELECTRICA S.A.", - [3]byte{112, 101, 130}: "Suzhou Hanming Technologies Co., Ltd.", - [3]byte{112, 111, 129}: "PRIVATE", - [3]byte{112, 112, 76}: "Purple Communications, Inc", - [3]byte{112, 113, 179}: "Brain Corporation", - [3]byte{112, 113, 188}: "PEGATRON CORPORATION", - [3]byte{112, 114, 13}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{112, 114, 60}: "Huawei Technologies Co., Ltd", - [3]byte{112, 114, 207}: "EdgeCore Networks", - [3]byte{112, 115, 203}: "Apple", - [3]byte{112, 118, 48}: "Pace plc.", - [3]byte{112, 118, 221}: "Oxyguard International A/S", - [3]byte{112, 118, 240}: "LevelOne Communications (India) Private Limited", - [3]byte{112, 118, 255}: "KERLINK", - [3]byte{112, 123, 232}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{112, 124, 24}: "ADATA Technology Co., Ltd", - [3]byte{112, 126, 67}: "ARRIS Group, Inc.", - [3]byte{112, 126, 222}: "NASTEC LTD.", - [3]byte{112, 129, 5}: "CISCO SYSTEMS, INC.", - [3]byte{112, 130, 14}: "as electronics GmbH", - [3]byte{112, 130, 142}: "OleumTech Corporation", - [3]byte{112, 133, 198}: "Pace plc.", - [3]byte{112, 139, 120}: "citygrow technology co., ltd", - [3]byte{112, 141, 9}: "Nokia Corporation", - [3]byte{112, 147, 131}: "Intelligent Optical Network High Tech CO.,LTD.", - [3]byte{112, 147, 248}: "Space Monkey, Inc.", - [3]byte{112, 151, 86}: "Happyelectronics Co.,Ltd", - [3]byte{112, 154, 11}: "Italian Institute of Technology", - [3]byte{112, 155, 165}: "Shenzhen Y&D Electronics Co.,LTD.", - [3]byte{112, 155, 252}: "Bryton Inc.", - [3]byte{112, 158, 41}: "Sony Computer Entertainment Inc.", - [3]byte{112, 158, 134}: "X6D Limited", - [3]byte{112, 161, 145}: "Trendsetter Medical, LLC", - [3]byte{112, 164, 28}: "Advanced Wireless Dynamics S.L.", - [3]byte{112, 166, 106}: "Prox Dynamics AS", - [3]byte{112, 168, 227}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{112, 170, 178}: "Research In Motion", - [3]byte{112, 175, 37}: "Nishiyama Industry Co.,LTD.", - [3]byte{112, 176, 53}: "Shenzhen Zowee Technology Co., Ltd", - [3]byte{112, 176, 140}: "Shenou Communication Equipment Co.,Ltd", - [3]byte{112, 177, 78}: "Pace plc", - [3]byte{112, 178, 101}: "Hiltron s.r.l.", - [3]byte{112, 179, 213}: "IEEE REGISTRATION AUTHORITY - Please see OUI36 public listing for more information.", - [3]byte{112, 181, 153}: "Embedded Technologies s.r.o.", - [3]byte{112, 185, 33}: "FiberHome Telecommunication Technologies CO.,LTD", - [3]byte{112, 186, 239}: "Hangzhou H3C Technologies Co., Limited", - [3]byte{112, 198, 172}: "Bosch Automotive Aftermarket", - [3]byte{112, 202, 155}: "CISCO SYSTEMS, INC.", - [3]byte{112, 205, 96}: "Apple", - [3]byte{112, 212, 242}: "RIM", - [3]byte{112, 213, 126}: "Scalar Corporation", - [3]byte{112, 213, 231}: "Wellcore Corporation", - [3]byte{112, 214, 182}: "Metrum Technologies", - [3]byte{112, 216, 128}: "Upos System sp. z o.o.", - [3]byte{112, 221, 161}: "Tellabs", - [3]byte{112, 222, 226}: "Apple", - [3]byte{112, 224, 39}: "HONGYU COMMUNICATION TECHNOLOGY LIMITED", - [3]byte{112, 225, 57}: "3view Ltd", - [3]byte{112, 226, 76}: "SAE IT-systems GmbH & Co. KG", - [3]byte{112, 226, 132}: "Wistron InfoComm(Zhongshan) Corporation", - [3]byte{112, 232, 67}: "Beijing C&W Optical Communication Technology Co.,Ltd.", - [3]byte{112, 238, 80}: "Netatmo", - [3]byte{112, 241, 118}: "Data Modul AG", - [3]byte{112, 241, 150}: "Actiontec Electronics, Inc", - [3]byte{112, 241, 161}: "Liteon Technology Corporation", - [3]byte{112, 241, 229}: "Xetawave LLC", - [3]byte{112, 243, 149}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{112, 249, 39}: "Samsung Electronics", - [3]byte{112, 249, 109}: "Hangzhou H3C Technologies Co., Limited", - [3]byte{112, 252, 140}: "OneAccess SA", - [3]byte{112, 255, 92}: "Cheerzing Communication(Xiamen)Technology Co.,Ltd", - [3]byte{112, 255, 118}: "Texas Instruments", - [3]byte{116, 10, 188}: "JSJS Designs (Europe) Limited", - [3]byte{116, 14, 219}: "Optowiz Co., Ltd", - [3]byte{116, 20, 137}: "SRT Wireless", - [3]byte{116, 21, 226}: "Tri-Sen Systems Corporation", - [3]byte{116, 25, 248}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{116, 30, 147}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{116, 37, 138}: "Hangzhou H3C Technologies Co., Limited", - [3]byte{116, 38, 172}: "Cisco", - [3]byte{116, 39, 60}: "ChangYang Technology (Nanjing) Co., LTD", - [3]byte{116, 39, 234}: "Elitegroup Computer Systems Co., Ltd.", - [3]byte{116, 41, 175}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{116, 43, 15}: "Infinidat Ltd.", - [3]byte{116, 43, 98}: "Fujitsu Limited", - [3]byte{116, 45, 10}: "Norfolk Elektronik AG", - [3]byte{116, 47, 104}: "Azurewave Technologies, Inc.", - [3]byte{116, 49, 112}: "Arcadyan Technology Corporation", - [3]byte{116, 50, 86}: "NT-ware Systemprg GmbH", - [3]byte{116, 55, 47}: "Tongfang Shenzhen Cloudcomputing Technology Co.,Ltd", - [3]byte{116, 56, 137}: "ANNAX Anzeigesysteme GmbH", - [3]byte{116, 62, 203}: "Gentrice tech", - [3]byte{116, 68, 1}: "NETGEAR", - [3]byte{116, 69, 138}: "Samsung Electronics Co.,Ltd", - [3]byte{116, 70, 160}: "Hewlett Packard", - [3]byte{116, 75, 233}: "EXPLORER HYPERTECH CO.,LTD", - [3]byte{116, 77, 121}: "Arrive Systems Inc.", - [3]byte{116, 83, 39}: "COMMSEN CO., LIMITED", - [3]byte{116, 84, 125}: "Cisco SPVTG", - [3]byte{116, 86, 18}: "ARRIS Group, Inc.", - [3]byte{116, 87, 152}: "TRUMPF Laser GmbH + Co. KG", - [3]byte{116, 92, 159}: "TCT mobile ltd.", - [3]byte{116, 94, 28}: "PIONEER CORPORATION", - [3]byte{116, 95, 0}: "Samsung Semiconductor Inc.", - [3]byte{116, 95, 174}: "TSL PPL", - [3]byte{116, 99, 223}: "VTS GmbH", - [3]byte{116, 101, 209}: "Atlinks", - [3]byte{116, 102, 48}: "T:mi Ytti", - [3]byte{116, 106, 137}: "Rezolt Corporation", - [3]byte{116, 106, 143}: "VS Vision Systems GmbH", - [3]byte{116, 107, 130}: "MOVEK", - [3]byte{116, 111, 61}: "Contec GmbH", - [3]byte{116, 114, 242}: "Chipsip Technology Co., Ltd.", - [3]byte{116, 117, 72}: "Amazon Technologies Inc.", - [3]byte{116, 120, 24}: "ServiceAssure", - [3]byte{116, 123, 122}: "ETH Inc.", - [3]byte{116, 125, 182}: "Aliwei Communications, Inc", - [3]byte{116, 126, 26}: "Red Embedded Design Limited", - [3]byte{116, 126, 45}: "Beijing Thomson CITIC Digital Technology Co. LTD.", - [3]byte{116, 134, 122}: "Dell Inc", - [3]byte{116, 136, 42}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{116, 136, 139}: "ADB Broadband Italia", - [3]byte{116, 142, 8}: "Bestek Corp.", - [3]byte{116, 142, 248}: "Brocade Communications Systems, Inc.", - [3]byte{116, 143, 27}: "MasterImage 3D", - [3]byte{116, 143, 77}: "MEN Mikro Elektronik GmbH", - [3]byte{116, 144, 80}: "Renesas Electronics Corporation", - [3]byte{116, 145, 26}: "Ruckus Wireless", - [3]byte{116, 147, 164}: "Zebra Technologies Corp.", - [3]byte{116, 148, 61}: "AgJunction", - [3]byte{116, 153, 117}: "IBM Corporation", - [3]byte{116, 156, 82}: "Huizhou Desay SV Automotive Co., Ltd.", - [3]byte{116, 157, 220}: "2Wire", - [3]byte{116, 164, 167}: "QRS Music Technologies, Inc.", - [3]byte{116, 164, 181}: "Powerleader Science and Technology Co. Ltd.", - [3]byte{116, 167, 34}: "LG Electronics", - [3]byte{116, 173, 183}: "China Mobile Group Device Co.,Ltd.", - [3]byte{116, 174, 118}: "iNovo Broadband, Inc.", - [3]byte{116, 176, 12}: "Network Video Technologies, Inc", - [3]byte{116, 185, 235}: "Fujian JinQianMao Electronic Technology Co.,Ltd", - [3]byte{116, 186, 219}: "Longconn Electornics(shenzhen)Co.,Ltd", - [3]byte{116, 190, 8}: "ATEK Products, LLC", - [3]byte{116, 191, 161}: "HYUNTECK", - [3]byte{116, 198, 33}: "Zhejiang Hite Renewable Energy Co.,LTD", - [3]byte{116, 201, 154}: "Ericsson AB", - [3]byte{116, 202, 37}: "Calxeda, Inc.", - [3]byte{116, 205, 12}: "Smith Myers Communications Ltd.", - [3]byte{116, 206, 86}: "Packet Force Technology Limited Company", - [3]byte{116, 208, 43}: "ASUSTek COMPUTER INC.", - [3]byte{116, 208, 220}: "ERICSSON AB", - [3]byte{116, 212, 53}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{116, 214, 117}: "WYMA Tecnologia", - [3]byte{116, 216, 80}: "Evrisko Systems", - [3]byte{116, 218, 56}: "Edimax Technology Co. Ltd.", - [3]byte{116, 219, 209}: "Ebay Inc", - [3]byte{116, 222, 43}: "Liteon Technology Corporation", - [3]byte{116, 224, 110}: "Ergophone GmbH", - [3]byte{116, 225, 74}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{116, 225, 182}: "Apple", - [3]byte{116, 226, 245}: "Apple", - [3]byte{116, 228, 36}: "APISTE CORPORATION", - [3]byte{116, 229, 11}: "Intel Corporate", - [3]byte{116, 229, 55}: "RADSPIN", - [3]byte{116, 229, 67}: "Liteon Technology Corporation", - [3]byte{116, 230, 226}: "Dell Inc.", - [3]byte{116, 231, 198}: "ARRIS Group, Inc.", - [3]byte{116, 234, 58}: "TP-LINK Technologies Co.,Ltd.", - [3]byte{116, 236, 241}: "Acumen", - [3]byte{116, 240, 109}: "AzureWave Technologies, Inc.", - [3]byte{116, 240, 125}: "BnCOM Co.,Ltd", - [3]byte{116, 241, 2}: "Beijing HCHCOM Technology Co., Ltd", - [3]byte{116, 244, 19}: "Maxwell Forest", - [3]byte{116, 246, 18}: "ARRIS Group, Inc.", - [3]byte{116, 247, 38}: "Neuron Robotics", - [3]byte{116, 248, 93}: "Berkeley Nucleonics Corp", - [3]byte{116, 253, 160}: "Compupal (Group) Corporation", - [3]byte{116, 254, 72}: "ADVANTECH CO., LTD.", - [3]byte{116, 255, 125}: "Wren Sound Systems, LLC", - [3]byte{120, 2, 143}: "Adaptive Spectrum and Signal Alignment (ASSIA), Inc.", - [3]byte{120, 7, 56}: "Z.U.K. Elzab S.A.", - [3]byte{120, 17, 133}: "NBS Payment Solutions Inc.", - [3]byte{120, 18, 184}: "ORANTEK LIMITED", - [3]byte{120, 24, 129}: "AzureWave Technologies, Inc.", - [3]byte{120, 25, 46}: "NASCENT Technology", - [3]byte{120, 25, 247}: "Juniper Networks", - [3]byte{120, 28, 90}: "SHARP Corporation", - [3]byte{120, 29, 186}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{120, 29, 253}: "Jabil Inc", - [3]byte{120, 31, 219}: "Samsung Electronics Co.,Ltd", - [3]byte{120, 34, 61}: "Affirmed Networks", - [3]byte{120, 36, 175}: "ASUSTek COMPUTER INC.", - [3]byte{120, 37, 68}: "Omnima Limited", - [3]byte{120, 37, 173}: "SAMSUNG ELECTRONICS CO., LTD.", - [3]byte{120, 43, 203}: "Dell Inc", - [3]byte{120, 46, 239}: "Nokia Corporation", - [3]byte{120, 48, 59}: "Stephen Technologies Co.,Limited", - [3]byte{120, 48, 225}: "UltraClenz, LLC", - [3]byte{120, 49, 43}: "zte corporation", - [3]byte{120, 49, 193}: "Apple", - [3]byte{120, 50, 79}: "Millennium Group, Inc.", - [3]byte{120, 58, 132}: "Apple", - [3]byte{120, 60, 227}: "Kai-EE", - [3]byte{120, 61, 91}: "TELNET Redes Inteligentes S.A.", - [3]byte{120, 62, 83}: "BSkyB Ltd", - [3]byte{120, 63, 21}: "EasySYNC Ltd.", - [3]byte{120, 68, 5}: "FUJITU(HONG KONG) ELECTRONIC Co.,LTD.", - [3]byte{120, 68, 118}: "Zioncom technology co.,ltd", - [3]byte{120, 69, 97}: "CyberTAN Technology Inc.", - [3]byte{120, 69, 196}: "Dell Inc", - [3]byte{120, 70, 196}: "DAEHAP HYPER-TECH", - [3]byte{120, 71, 29}: "Samsung Electronics Co.,Ltd", - [3]byte{120, 72, 89}: "Hewlett Packard", - [3]byte{120, 73, 29}: "The Will-Burt Company", - [3]byte{120, 75, 8}: "f.robotics acquisitions ltd", - [3]byte{120, 75, 135}: "Murata Manufacturing Co.,Ltd.", - [3]byte{120, 81, 12}: "LiveU Ltd.", - [3]byte{120, 82, 26}: "Samsung Electronics Co.,Ltd", - [3]byte{120, 82, 98}: "Shenzhen Hojy Software Co., Ltd.", - [3]byte{120, 84, 46}: "D-Link International", - [3]byte{120, 85, 23}: "SankyuElectronics", - [3]byte{120, 87, 18}: "Mobile Integration Workgroup", - [3]byte{120, 89, 62}: "RAFI GmbH & Co.KG", - [3]byte{120, 89, 94}: "Samsung Electronics Co.,Ltd", - [3]byte{120, 89, 104}: "Hon Hai Precision Ind.Co.,Ltd.", - [3]byte{120, 92, 114}: "Hioso Technology Co., Ltd.", - [3]byte{120, 97, 124}: "MITSUMI ELECTRIC CO.,LTD", - [3]byte{120, 102, 174}: "ZTEC Instruments, Inc.", - [3]byte{120, 106, 137}: "Huawei Technologies Co., Ltd", - [3]byte{120, 108, 28}: "Apple", - [3]byte{120, 127, 98}: "GiK mbH", - [3]byte{120, 129, 143}: "Server Racks Australia Pty Ltd", - [3]byte{120, 132, 60}: "Sony Corporation", - [3]byte{120, 132, 238}: "INDRA ESPACIO S.A.", - [3]byte{120, 137, 115}: "CMC", - [3]byte{120, 140, 84}: "Eltek Technologies LTD", - [3]byte{120, 141, 247}: "Hitron Technologies. Inc", - [3]byte{120, 146, 62}: "Nokia Corporation", - [3]byte{120, 146, 156}: "Intel Corporate", - [3]byte{120, 150, 132}: "ARRIS Group, Inc.", - [3]byte{120, 152, 253}: "Q9 Networks Inc.", - [3]byte{120, 153, 92}: "Nationz Technologies Inc", - [3]byte{120, 153, 102}: "Musilab Electronics (DongGuan)Co.,Ltd.", - [3]byte{120, 153, 143}: "MEDILINE ITALIA SRL", - [3]byte{120, 156, 231}: "Shenzhen Aikede Technology Co., Ltd", - [3]byte{120, 158, 208}: "Samsung Electronics", - [3]byte{120, 159, 76}: "HOERBIGER Elektronik GmbH", - [3]byte{120, 159, 135}: "Siemens AG I IA PP PRM", - [3]byte{120, 160, 81}: "iiNet Labs Pty Ltd", - [3]byte{120, 161, 6}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{120, 161, 131}: "Advidia", - [3]byte{120, 162, 160}: "Nintendo Co., Ltd.", - [3]byte{120, 163, 228}: "Apple", - [3]byte{120, 165, 4}: "Texas Instruments", - [3]byte{120, 165, 221}: "Shenzhen Smarteye Digital Electronics Co., Ltd", - [3]byte{120, 166, 131}: "Precidata", - [3]byte{120, 166, 189}: "DAEYEON Control&Instrument Co,.Ltd", - [3]byte{120, 167, 20}: "Amphenol", - [3]byte{120, 168, 115}: "Samsung Electronics Co.,Ltd", - [3]byte{120, 171, 96}: "ABB Australia", - [3]byte{120, 171, 187}: "Samsung Electronics Co.,LTD", - [3]byte{120, 172, 192}: "Hewlett-Packard Company", - [3]byte{120, 174, 12}: "Far South Networks", - [3]byte{120, 179, 185}: "ShangHai sunup lighting CO.,LTD", - [3]byte{120, 179, 206}: "Elo touch solutions", - [3]byte{120, 181, 210}: "Ever Treasure Industrial Limited", - [3]byte{120, 182, 193}: "AOBO Telecom Co.,Ltd", - [3]byte{120, 184, 26}: "INTER SALES A/S", - [3]byte{120, 186, 208}: "Shinybow Technology Co. Ltd.", - [3]byte{120, 190, 182}: "Enhanced Vision", - [3]byte{120, 190, 189}: "STULZ GmbH", - [3]byte{120, 196, 14}: "H&D Wireless", - [3]byte{120, 196, 171}: "Shenzhen Runsil Technology Co.,Ltd", - [3]byte{120, 197, 229}: "Texas Instruments", - [3]byte{120, 198, 187}: "Innovasic, Inc.", - [3]byte{120, 202, 4}: "Nokia Corporation", - [3]byte{120, 202, 57}: "Apple", - [3]byte{120, 202, 94}: "ELNO", - [3]byte{120, 203, 51}: "DHC Software Co.,Ltd", - [3]byte{120, 205, 142}: "SMC Networks Inc", - [3]byte{120, 208, 4}: "Neousys Technology Inc.", - [3]byte{120, 209, 41}: "Vicos", - [3]byte{120, 211, 79}: "Pace-O-Matic, Inc.", - [3]byte{120, 211, 141}: "HONGKONG YUNLINK TECHNOLOGY LIMITED", - [3]byte{120, 213, 181}: "NAVIELEKTRO KY", - [3]byte{120, 214, 111}: "Aristocrat Technologies Australia Pty. Ltd.", - [3]byte{120, 214, 240}: "Samsung Electro Mechanics", - [3]byte{120, 215, 82}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{120, 217, 159}: "NuCom HK Ltd.", - [3]byte{120, 218, 110}: "Cisco", - [3]byte{120, 218, 179}: "GBO Technology", - [3]byte{120, 221, 8}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{120, 221, 214}: "c-scape", - [3]byte{120, 222, 228}: "Texas Instruments", - [3]byte{120, 227, 181}: "Hewlett-Packard Company", - [3]byte{120, 228, 0}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{120, 231, 209}: "Hewlett-Packard Company", - [3]byte{120, 232, 182}: "zte corporation", - [3]byte{120, 235, 20}: "SHENZHEN FAST TECHNOLOGIES CO.,LTD", - [3]byte{120, 236, 34}: "Shanghai Qihui Telecom Technology Co., LTD", - [3]byte{120, 236, 116}: "Kyland-USA", - [3]byte{120, 239, 76}: "Unetconvergence Co., Ltd.", - [3]byte{120, 245, 229}: "BEGA Gantenbrink-Leuchten KG", - [3]byte{120, 245, 253}: "Huawei Technologies Co., Ltd", - [3]byte{120, 247, 190}: "Samsung Electronics Co.,Ltd", - [3]byte{120, 247, 208}: "Silverbrook Research", - [3]byte{120, 253, 148}: "Apple", - [3]byte{120, 254, 61}: "Juniper Networks", - [3]byte{120, 254, 65}: "Socus networks", - [3]byte{120, 254, 226}: "Shanghai Diveo Technology Co., Ltd", - [3]byte{120, 255, 87}: "Intel Corporate", - [3]byte{124, 1, 135}: "Curtis Instruments, Inc.", - [3]byte{124, 2, 188}: "Hansung Electronics Co. LTD", - [3]byte{124, 3, 76}: "SAGEMCOM", - [3]byte{124, 3, 216}: "SAGEMCOM SAS", - [3]byte{124, 5, 7}: "PEGATRON CORPORATION", - [3]byte{124, 5, 30}: "RAFAEL LTD.", - [3]byte{124, 6, 35}: "Ultra Electronics, CIS", - [3]byte{124, 8, 217}: "Shanghai B-Star Technology Co", - [3]byte{124, 9, 43}: "Bekey A/S", - [3]byte{124, 10, 80}: "J-MEX Inc.", - [3]byte{124, 14, 206}: "Cisco", - [3]byte{124, 17, 190}: "Apple", - [3]byte{124, 20, 118}: "Damall Technologies SAS", - [3]byte{124, 22, 13}: "Saia-Burgess Controls AG", - [3]byte{124, 26, 3}: "8Locations Co., Ltd.", - [3]byte{124, 26, 252}: "Dalian Co-Edifice Video Technology Co., Ltd", - [3]byte{124, 30, 82}: "Microsoft", - [3]byte{124, 30, 179}: "2N TELEKOMUNIKACE a.s.", - [3]byte{124, 32, 72}: "KoamTac", - [3]byte{124, 32, 100}: "Alcatel Lucent IPD", - [3]byte{124, 37, 135}: "chaowifi.com", - [3]byte{124, 44, 243}: "Secure Electrans Ltd", - [3]byte{124, 46, 13}: "Blackmagic Design", - [3]byte{124, 47, 128}: "Gigaset Communications GmbH", - [3]byte{124, 51, 110}: "MEG Electronics Inc.", - [3]byte{124, 56, 108}: "Real Time Logic", - [3]byte{124, 57, 32}: "SSOMA SECURITY", - [3]byte{124, 59, 213}: "Imago Group", - [3]byte{124, 62, 157}: "PATECH", - [3]byte{124, 67, 143}: "E-Band Communications Corp.", - [3]byte{124, 68, 76}: "Entertainment Solutions, S.L.", - [3]byte{124, 73, 185}: "Plexus Manufacturing Sdn Bhd", - [3]byte{124, 74, 130}: "Portsmith LLC", - [3]byte{124, 74, 168}: "MindTree Wireless PVT Ltd", - [3]byte{124, 75, 120}: "Red Sun Synthesis Pte Ltd", - [3]byte{124, 76, 88}: "Scale Computing, Inc.", - [3]byte{124, 76, 165}: "BSkyB Ltd", - [3]byte{124, 79, 181}: "Arcadyan Technology Corporation", - [3]byte{124, 85, 231}: "YSI, Inc.", - [3]byte{124, 96, 151}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{124, 97, 147}: "HTC Corporation", - [3]byte{124, 102, 157}: "Texas Instruments", - [3]byte{124, 105, 246}: "Cisco", - [3]byte{124, 106, 179}: "IBC TECHNOLOGIES INC.", - [3]byte{124, 106, 195}: "GatesAir, Inc", - [3]byte{124, 106, 219}: "SafeTone Technology Co.,Ltd", - [3]byte{124, 107, 51}: "Tenyu Tech Co. Ltd.", - [3]byte{124, 107, 82}: "Tigaro Wireless", - [3]byte{124, 108, 57}: "PIXSYS SRL", - [3]byte{124, 108, 143}: "AMS NEVE LTD", - [3]byte{124, 109, 98}: "Apple", - [3]byte{124, 109, 248}: "Apple", - [3]byte{124, 111, 6}: "Caterpillar Trimble Control Technologies", - [3]byte{124, 111, 248}: "ShenZhen ACTO Digital Video Technology Co.,Ltd.", - [3]byte{124, 112, 188}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{124, 114, 228}: "Unikey Technologies", - [3]byte{124, 118, 115}: "ENMAS GmbH", - [3]byte{124, 122, 145}: "Intel Corporate", - [3]byte{124, 123, 228}: "Z'SEDAI KENKYUSHO CORPORATION", - [3]byte{124, 125, 65}: "Jinmuyu Electronics Co., Ltd.", - [3]byte{124, 130, 45}: "Nortec", - [3]byte{124, 131, 6}: "Glen Dimplex Nordic as", - [3]byte{124, 141, 145}: "Shanghai Hongzhuo Information Technology co.,LTD", - [3]byte{124, 142, 228}: "Texas Instruments", - [3]byte{124, 148, 178}: "Philips Healthcare PCCI", - [3]byte{124, 149, 243}: "Cisco", - [3]byte{124, 151, 99}: "Openmatics s.r.o.", - [3]byte{124, 154, 155}: "VSE valencia smart energy", - [3]byte{124, 161, 93}: "GN ReSound A/S", - [3]byte{124, 162, 155}: "D.SignT GmbH & Co. KG", - [3]byte{124, 166, 29}: "MHL, LLC", - [3]byte{124, 172, 178}: "Bosch Software Innovations GmbH", - [3]byte{124, 173, 116}: "Cisco", - [3]byte{124, 176, 62}: "OSRAM GmbH", - [3]byte{124, 177, 119}: "Satelco AG", - [3]byte{124, 178, 27}: "Cisco SPVTG", - [3]byte{124, 178, 50}: "TCL King High Frequency EI,Co.,LTD", - [3]byte{124, 181, 66}: "ACES Technology", - [3]byte{124, 183, 51}: "ASKEY COMPUTER CORP", - [3]byte{124, 183, 123}: "Paradigm Electronics Inc", - [3]byte{124, 187, 111}: "Cosco Electronics Co., Ltd.", - [3]byte{124, 189, 6}: "AE REFUsol", - [3]byte{124, 191, 136}: "Mobilicom LTD", - [3]byte{124, 191, 177}: "ARRIS Group, Inc.", - [3]byte{124, 195, 161}: "Apple", - [3]byte{124, 196, 239}: "Devialet", - [3]byte{124, 197, 55}: "Apple", - [3]byte{124, 200, 171}: "Acro Associates, Inc.", - [3]byte{124, 200, 208}: "TIANJIN YAAN TECHNOLOGY CO., LTD.", - [3]byte{124, 200, 215}: "Damalisk", - [3]byte{124, 203, 13}: "Antaira Technologies, LLC", - [3]byte{124, 204, 184}: "Intel Corporate", - [3]byte{124, 205, 17}: "MS-Magnet", - [3]byte{124, 205, 60}: "Guangzhou Juzing Technology Co., Ltd", - [3]byte{124, 207, 207}: "Shanghai SEARI Intelligent System Co., Ltd", - [3]byte{124, 209, 195}: "Apple", - [3]byte{124, 211, 10}: "INVENTEC Corporation", - [3]byte{124, 215, 98}: "Freestyle Technology Pty Ltd", - [3]byte{124, 216, 68}: "Enmotus Inc", - [3]byte{124, 217, 254}: "New Cosmos Electric Co., Ltd.", - [3]byte{124, 218, 132}: "Dongnian Networks Inc.", - [3]byte{124, 221, 17}: "Chongqing MAS SCI&TECH.Co.,Ltd", - [3]byte{124, 221, 32}: "IOXOS Technologies S.A.", - [3]byte{124, 221, 144}: "Shenzhen Ogemray Technology Co., Ltd.", - [3]byte{124, 224, 68}: "NEON Inc", - [3]byte{124, 225, 255}: "Computer Performance, Inc. DBA Digital Loggers, Inc.", - [3]byte{124, 228, 170}: "PRIVATE", - [3]byte{124, 229, 36}: "Quirky, Inc.", - [3]byte{124, 229, 107}: "ESEN Optoelectronics Technology Co.,Ltd.", - [3]byte{124, 233, 211}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{124, 235, 234}: "ASCT", - [3]byte{124, 237, 141}: "MICROSOFT", - [3]byte{124, 239, 24}: "Creative Product Design Pty. Ltd.", - [3]byte{124, 239, 138}: "Inhon International Ltd.", - [3]byte{124, 240, 95}: "Apple", - [3]byte{124, 240, 152}: "Bee Beans Technologies, Inc.", - [3]byte{124, 240, 186}: "Linkwell Telesystems Pvt Ltd", - [3]byte{124, 244, 41}: "NUUO Inc.", - [3]byte{124, 250, 223}: "Apple", - [3]byte{124, 254, 40}: "Salutron Inc.", - [3]byte{124, 254, 78}: "Shenzhen Safe vision Technology Co.,LTD", - [3]byte{124, 255, 98}: "Huizhou Super Electron Technology Co.,Ltd.", - [3]byte{128, 0, 11}: "Intel Corporate", - [3]byte{128, 0, 16}: "ATT BELL LABORATORIES", - [3]byte{128, 0, 110}: "Apple", - [3]byte{128, 5, 223}: "Montage Technology Group Limited", - [3]byte{128, 7, 162}: "Esson Technology Inc.", - [3]byte{128, 9, 2}: "Keysight Technologies, Inc.", - [3]byte{128, 10, 6}: "COMTEC co.,ltd", - [3]byte{128, 14, 36}: "ForgetBox", - [3]byte{128, 20, 64}: "Sunlit System Technology Corp", - [3]byte{128, 20, 168}: "Guangzhou V-SOLUTION Electronic Technology Co., Ltd.", - [3]byte{128, 22, 183}: "Brunel University", - [3]byte{128, 23, 125}: "Nortel Networks", - [3]byte{128, 24, 167}: "Samsung Eletronics Co., Ltd", - [3]byte{128, 25, 52}: "Intel Corporate", - [3]byte{128, 25, 103}: "Shanghai Reallytek Information Technology Co.,Ltd", - [3]byte{128, 29, 170}: "Avaya Inc", - [3]byte{128, 31, 2}: "Edimax Technology Co. Ltd.", - [3]byte{128, 32, 175}: "Trade FIDES, a.s.", - [3]byte{128, 34, 117}: "Beijing Beny Wave Technology Co Ltd", - [3]byte{128, 42, 250}: "Germaneers GmbH", - [3]byte{128, 45, 225}: "Solarbridge Technologies", - [3]byte{128, 46, 20}: "azeti Networks AG", - [3]byte{128, 47, 222}: "Zurich Instruments AG", - [3]byte{128, 52, 87}: "OT Systems Limited", - [3]byte{128, 55, 115}: "Netgear Inc", - [3]byte{128, 56, 253}: "LeapFrog Enterprises, Inc.", - [3]byte{128, 57, 229}: "PATLITE CORPORATION", - [3]byte{128, 59, 154}: "ghe-ces electronic ag", - [3]byte{128, 63, 93}: "Winstars Technology Ltd", - [3]byte{128, 63, 214}: "bytes at work AG", - [3]byte{128, 65, 78}: "BBK Electronics Corp., Ltd.,", - [3]byte{128, 66, 124}: "Adolf Tedsen GmbH & Co. KG", - [3]byte{128, 71, 49}: "Packet Design, Inc.", - [3]byte{128, 72, 165}: "SICHUAN TIANYI COMHEART TELECOM CO.,LTD", - [3]byte{128, 73, 113}: "Apple", - [3]byte{128, 75, 32}: "Ventilation Control", - [3]byte{128, 79, 88}: "ThinkEco, Inc.", - [3]byte{128, 80, 27}: "Nokia Corporation", - [3]byte{128, 86, 242}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{128, 87, 25}: "Samsung Electronics Co.,Ltd", - [3]byte{128, 88, 197}: "NovaTec Kommunikationstechnik GmbH", - [3]byte{128, 89, 253}: "Noviga", - [3]byte{128, 96, 7}: "RIM", - [3]byte{128, 97, 143}: "Shenzhen sangfei consumer communications co.,ltd", - [3]byte{128, 100, 89}: "Nimbus Inc.", - [3]byte{128, 101, 233}: "BenQ Corporation", - [3]byte{128, 102, 41}: "Prescope Technologies CO.,LTD.", - [3]byte{128, 108, 27}: "Motorola Mobility LLC", - [3]byte{128, 108, 139}: "KAESER KOMPRESSOREN AG", - [3]byte{128, 108, 188}: "NET New Electronic Technology GmbH", - [3]byte{128, 113, 31}: "Juniper Networks", - [3]byte{128, 113, 122}: "Huawei Technologies Co., Ltd", - [3]byte{128, 118, 147}: "Newag SA", - [3]byte{128, 121, 174}: "ShanDong Tecsunrise Co.,Ltd", - [3]byte{128, 122, 127}: "ABB Genway Xiamen Electrical Equipment CO., LTD", - [3]byte{128, 123, 30}: "Corsair Components", - [3]byte{128, 125, 27}: "Neosystem Co. Ltd.", - [3]byte{128, 125, 227}: "Chongqing Sichuan Instrument Microcircuit Co.LTD.", - [3]byte{128, 129, 165}: "TONGQING COMMUNICATION EQUIPMENT (SHENZHEN) Co.,Ltd", - [3]byte{128, 130, 135}: "ATCOM Technology Co.Ltd.", - [3]byte{128, 134, 152}: "Netronics Technologies Inc.", - [3]byte{128, 134, 242}: "Intel Corporate", - [3]byte{128, 139, 92}: "Shenzhen Runhuicheng Technology Co., Ltd", - [3]byte{128, 145, 42}: "Lih Rong electronic Enterprise Co., Ltd.", - [3]byte{128, 145, 192}: "AgileMesh, Inc.", - [3]byte{128, 146, 159}: "Apple", - [3]byte{128, 147, 147}: "Xapt GmbH", - [3]byte{128, 148, 108}: "TOKYO RADAR CORPORATION", - [3]byte{128, 150, 177}: "ARRIS Group, Inc.", - [3]byte{128, 150, 202}: "Hon Hai Precision Ind Co.,Ltd", - [3]byte{128, 151, 27}: "Altenergy Power System,Inc.", - [3]byte{128, 155, 32}: "Intel Corporate", - [3]byte{128, 161, 215}: "Shanghai DareGlobal Technologies Co.,Ltd", - [3]byte{128, 170, 164}: "USAG", - [3]byte{128, 173, 103}: "Kasda Digital Technology Co.,Ltd", - [3]byte{128, 178, 25}: "ELEKTRON TECHNOLOGY UK LIMITED", - [3]byte{128, 178, 137}: "Forworld Electronics Ltd.", - [3]byte{128, 179, 42}: "Alstom Grid", - [3]byte{128, 182, 134}: "Huawei Technologies Co., Ltd", - [3]byte{128, 185, 92}: "ELFTECH Co., Ltd.", - [3]byte{128, 186, 172}: "TeleAdapt Ltd", - [3]byte{128, 186, 230}: "Neets", - [3]byte{128, 187, 235}: "Satmap Systems Ltd", - [3]byte{128, 190, 5}: "Apple", - [3]byte{128, 193, 110}: "Hewlett Packard", - [3]byte{128, 198, 63}: "Remec Broadband Wireless , LLC", - [3]byte{128, 198, 171}: "Technicolor USA Inc.", - [3]byte{128, 198, 202}: "Endian s.r.l.", - [3]byte{128, 200, 98}: "Openpeak, Inc", - [3]byte{128, 206, 177}: "Theissen Training Systems GmbH", - [3]byte{128, 207, 65}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{128, 208, 25}: "Embed, Inc", - [3]byte{128, 209, 139}: "Hangzhou I'converge Technology Co.,Ltd", - [3]byte{128, 210, 29}: "AzureWave Technologies, Inc", - [3]byte{128, 212, 51}: "LzLabs GmbH", - [3]byte{128, 215, 51}: "QSR Automations, Inc.", - [3]byte{128, 219, 49}: "Power Quotient International Co., Ltd.", - [3]byte{128, 230, 80}: "Apple", - [3]byte{128, 234, 150}: "Apple", - [3]byte{128, 234, 202}: "Dialog Semiconductor Hellas SA", - [3]byte{128, 238, 115}: "Shuttle Inc.", - [3]byte{128, 242, 94}: "Kyynel", - [3]byte{128, 245, 147}: "IRCO Sistemas de Telecomunicación S.A.", - [3]byte{128, 246, 46}: "Hangzhou H3C Technologies Co., Limited", - [3]byte{128, 248, 235}: "RayTight", - [3]byte{128, 250, 91}: "CLEVO CO.", - [3]byte{128, 251, 6}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{128, 255, 168}: "UNIDIS", - [3]byte{132, 0, 210}: "Sony Ericsson Mobile Communications AB", - [3]byte{132, 1, 167}: "Greyware Automation Products, Inc", - [3]byte{132, 11, 45}: "SAMSUNG ELECTRO-MECHANICS CO., LTD", - [3]byte{132, 15, 69}: "Shanghai GMT Digital Technologies Co., Ltd", - [3]byte{132, 23, 21}: "GP Electronics (HK) Ltd.", - [3]byte{132, 23, 102}: "Weifang GoerTek Electronics Co., Ltd", - [3]byte{132, 24, 38}: "Osram GmbH", - [3]byte{132, 24, 58}: "Ruckus Wireless", - [3]byte{132, 24, 136}: "Juniper Networks", - [3]byte{132, 27, 56}: "Shenzhen Excelsecu Data Technology Co.,Ltd", - [3]byte{132, 27, 94}: "NETGEAR", - [3]byte{132, 30, 38}: "KERNEL-I Co.,LTD", - [3]byte{132, 33, 65}: "Shenzhen Ginwave Technologies Ltd.", - [3]byte{132, 36, 141}: "Motorola Solutions Inc", - [3]byte{132, 37, 63}: "Silex Technology, Inc", - [3]byte{132, 37, 164}: "Tariox Limited", - [3]byte{132, 37, 219}: "Samsung Electronics Co.,Ltd", - [3]byte{132, 38, 21}: "ADB Broadband Italia", - [3]byte{132, 38, 43}: "Alcatel-Lucent", - [3]byte{132, 38, 144}: "BEIJING THOUGHT SCIENCE CO.,LTD.", - [3]byte{132, 39, 206}: "Corporation of the Presiding Bishop of The Church of Jesus Christ of Latter-day Saints", - [3]byte{132, 41, 20}: "EMPORIA TELECOM Produktions- und VertriebsgesmbH & Co KG", - [3]byte{132, 41, 153}: "Apple", - [3]byte{132, 43, 43}: "Dell Inc.", - [3]byte{132, 43, 80}: "Huria Co.,Ltd.", - [3]byte{132, 43, 188}: "Modelleisenbahn GmbH", - [3]byte{132, 47, 117}: "Innokas Group", - [3]byte{132, 48, 229}: "SkyHawke Technologies, LLC", - [3]byte{132, 50, 234}: "ANHUI WANZTEN P&T CO., LTD", - [3]byte{132, 52, 151}: "Hewlett Packard", - [3]byte{132, 54, 17}: "hyungseul publishing networks", - [3]byte{132, 56, 53}: "Apple", - [3]byte{132, 56, 56}: "Samsung Electro Mechanics co., LTD.", - [3]byte{132, 58, 75}: "Intel Corporate", - [3]byte{132, 63, 78}: "Tri-Tech Manufacturing, Inc.", - [3]byte{132, 68, 100}: "ServerU Inc", - [3]byte{132, 72, 35}: "WOXTER TECHNOLOGY Co. Ltd", - [3]byte{132, 73, 21}: "vArmour Networks, Inc.", - [3]byte{132, 75, 245}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{132, 79, 3}: "Ablelink Electronics Ltd", - [3]byte{132, 81, 129}: "Samsung Electronics Co.,Ltd", - [3]byte{132, 85, 165}: "Samsung Elec Co.,Ltd", - [3]byte{132, 86, 156}: "Coho Data, Inc.,", - [3]byte{132, 87, 135}: "DVR C&C Co., Ltd.", - [3]byte{132, 92, 147}: "Chabrier Services", - [3]byte{132, 93, 215}: "Shenzhen Netcom Electronics Co.,Ltd", - [3]byte{132, 98, 35}: "Shenzhen Coship Electronics Co., Ltd.", - [3]byte{132, 98, 166}: "EuroCB (Phils), Inc.", - [3]byte{132, 99, 214}: "Microsoft Corporation", - [3]byte{132, 106, 237}: "Wireless Tsukamoto.,co.LTD", - [3]byte{132, 110, 177}: "Park Assist LLC", - [3]byte{132, 114, 7}: "I&C Technology", - [3]byte{132, 116, 42}: "zte corporation", - [3]byte{132, 118, 22}: "Addat S.r.o.", - [3]byte{132, 120, 139}: "Apple", - [3]byte{132, 120, 172}: "Cisco", - [3]byte{132, 122, 136}: "HTC Corporation", - [3]byte{132, 126, 64}: "Texas Instruments", - [3]byte{132, 130, 244}: "Beijing Huasun Unicreate Technology Co., Ltd", - [3]byte{132, 131, 54}: "Newrun", - [3]byte{132, 131, 113}: "Avaya, Inc", - [3]byte{132, 132, 51}: "Paradox Engineering SA", - [3]byte{132, 133, 6}: "Apple", - [3]byte{132, 133, 10}: "Hella Sonnen- und Wetterschutztechnik GmbH", - [3]byte{132, 134, 243}: "Greenvity Communications", - [3]byte{132, 141, 132}: "Rajant Corporation", - [3]byte{132, 141, 199}: "Cisco SPVTG", - [3]byte{132, 142, 12}: "Apple", - [3]byte{132, 142, 150}: "Embertec Pty Ltd", - [3]byte{132, 142, 223}: "Sony Mobile Communications AB", - [3]byte{132, 143, 105}: "Dell Inc.", - [3]byte{132, 144, 0}: "Arnold & Richter Cine Technik", - [3]byte{132, 147, 12}: "InCoax Networks Europe AB", - [3]byte{132, 148, 140}: "Hitron Technologies. Inc", - [3]byte{132, 150, 129}: "Cathay Communication Co.,Ltd", - [3]byte{132, 150, 216}: "Pace plc", - [3]byte{132, 151, 184}: "Memjet Inc.", - [3]byte{132, 156, 166}: "Arcadyan Technology Corporation", - [3]byte{132, 157, 197}: "Centera Photonics Inc.", - [3]byte{132, 164, 102}: "Samsung Electronics Co.,Ltd", - [3]byte{132, 166, 200}: "Intel Corporate", - [3]byte{132, 167, 131}: "Alcatel Lucent", - [3]byte{132, 168, 228}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{132, 169, 145}: "Cyber Trans Japan Co.,Ltd.", - [3]byte{132, 172, 164}: "Beijing Novel Super Digital TV Technology Co., Ltd", - [3]byte{132, 175, 31}: "Beat System Service Co,. Ltd.", - [3]byte{132, 177, 83}: "Apple", - [3]byte{132, 181, 156}: "Juniper networks", - [3]byte{132, 194, 228}: "Jiangsu Qinheng Co., Ltd.", - [3]byte{132, 199, 39}: "Gnodal Ltd", - [3]byte{132, 199, 169}: "C3PO S.A.", - [3]byte{132, 200, 177}: "Incognito Software Inc.", - [3]byte{132, 201, 178}: "D-Link International", - [3]byte{132, 211, 42}: "IEEE 1905.1", - [3]byte{132, 217, 200}: "Unipattern Co.,", - [3]byte{132, 219, 47}: "Sierra Wireless Inc", - [3]byte{132, 221, 32}: "Texas Instruments", - [3]byte{132, 221, 183}: "Cilag GmbH International", - [3]byte{132, 222, 61}: "Crystal Vision Ltd", - [3]byte{132, 223, 12}: "NET2GRID BV", - [3]byte{132, 224, 88}: "Pace plc", - [3]byte{132, 228, 217}: "Shenzhen NEED technology Ltd.", - [3]byte{132, 230, 41}: "Bluwan SA", - [3]byte{132, 231, 20}: "Liang Herng Enterprise,Co.Ltd.", - [3]byte{132, 234, 153}: "Vieworks", - [3]byte{132, 235, 24}: "Texas Instruments", - [3]byte{132, 237, 51}: "BBMC Co.,Ltd", - [3]byte{132, 244, 147}: "OMS spol. s.r.o.", - [3]byte{132, 246, 76}: "Cross Point BV", - [3]byte{132, 252, 254}: "Apple", - [3]byte{132, 254, 158}: "RTC Industries, Inc.", - [3]byte{136, 3, 85}: "Arcadyan Technology Corp.", - [3]byte{136, 9, 5}: "MTMCommunications", - [3]byte{136, 15, 16}: "Huami Information Technology Co.,Ltd.", - [3]byte{136, 15, 182}: "Jabil Circuits India Pvt Ltd,-EHTP unit", - [3]byte{136, 16, 54}: "Panodic(ShenZhen) Electronics Limted", - [3]byte{136, 18, 78}: "Qualcomm Atheros", - [3]byte{136, 20, 43}: "Protonic Holland", - [3]byte{136, 21, 68}: "Meraki, Inc.", - [3]byte{136, 24, 174}: "Tamron Co., Ltd", - [3]byte{136, 29, 252}: "Cisco", - [3]byte{136, 31, 161}: "Apple", - [3]byte{136, 32, 18}: "LMI Technologies", - [3]byte{136, 33, 227}: "Nebusens, S.L.", - [3]byte{136, 35, 100}: "Watchnet DVR Inc", - [3]byte{136, 35, 254}: "TTTech Computertechnik AG", - [3]byte{136, 37, 44}: "Arcadyan Technology Corporation", - [3]byte{136, 41, 80}: "Dalian Netmoon Tech Develop Co.,Ltd", - [3]byte{136, 46, 90}: "storONE", - [3]byte{136, 48, 138}: "Murata Manufactuaring Co.,Ltd.", - [3]byte{136, 50, 155}: "Samsung Electro Mechanics co.,LTD.", - [3]byte{136, 51, 20}: "Texas Instruments", - [3]byte{136, 53, 76}: "Transics", - [3]byte{136, 54, 18}: "SRC Computers, LLC", - [3]byte{136, 65, 193}: "ORBISAT DA AMAZONIA IND E AEROL SA", - [3]byte{136, 65, 252}: "AirTies Wireless Netowrks", - [3]byte{136, 67, 225}: "CISCO SYSTEMS, INC.", - [3]byte{136, 68, 246}: "Nokia Corporation", - [3]byte{136, 70, 42}: "Telechips Inc.", - [3]byte{136, 75, 57}: "Siemens AG, Healthcare Sector", - [3]byte{136, 81, 251}: "Hewlett Packard", - [3]byte{136, 83, 46}: "Intel Corporate", - [3]byte{136, 83, 149}: "Apple", - [3]byte{136, 83, 212}: "Huawei Technologies Co., Ltd", - [3]byte{136, 87, 109}: "XTA Electronics Ltd", - [3]byte{136, 90, 146}: "Cisco", - [3]byte{136, 91, 221}: "Aerohive Networks Inc.", - [3]byte{136, 92, 71}: "Alcatel Lucent", - [3]byte{136, 97, 90}: "Siano Mobile Silicon Ltd.", - [3]byte{136, 99, 223}: "Apple", - [3]byte{136, 104, 92}: "Shenzhen ChuangDao & Perpetual Eternal Technology Co.,Ltd", - [3]byte{136, 107, 118}: "CHINA HOPEFUL GROUP HOPEFUL ELECTRIC CO.,LTD", - [3]byte{136, 112, 140}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{136, 112, 239}: "SC Professional Trading Co., Ltd.", - [3]byte{136, 115, 152}: "K2E Tekpoint", - [3]byte{136, 117, 86}: "Cisco", - [3]byte{136, 120, 156}: "Game Technologies SA", - [3]byte{136, 134, 3}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{136, 134, 160}: "Simton Technologies, Ltd.", - [3]byte{136, 135, 23}: "CANON INC.", - [3]byte{136, 135, 221}: "DarbeeVision Inc.", - [3]byte{136, 137, 20}: "All Components Incorporated", - [3]byte{136, 137, 100}: "GSI Electronics Inc.", - [3]byte{136, 139, 93}: "Storage Appliance Corporation", - [3]byte{136, 140, 25}: "Brady Corp Asia Pacific Ltd", - [3]byte{136, 145, 102}: "Viewcooper Corp.", - [3]byte{136, 145, 221}: "Racktivity", - [3]byte{136, 148, 113}: "Brocade Communications Systems, Inc.", - [3]byte{136, 148, 249}: "Gemicom Technology, Inc.", - [3]byte{136, 149, 185}: "Unified Packet Systems Crop", - [3]byte{136, 150, 118}: "TTC MARCONI s.r.o.", - [3]byte{136, 151, 223}: "Entrypass Corporation Sdn. Bhd.", - [3]byte{136, 152, 33}: "TERAON", - [3]byte{136, 155, 57}: "Samsung Electronics Co.,Ltd", - [3]byte{136, 156, 166}: "BTB Korea INC", - [3]byte{136, 159, 250}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{136, 163, 204}: "Amatis Controls", - [3]byte{136, 165, 189}: "QPCOM INC.", - [3]byte{136, 167, 60}: "Ragentek Technology Group", - [3]byte{136, 172, 193}: "Generiton Co., Ltd.", - [3]byte{136, 174, 29}: "COMPAL INFORMATION(KUNSHAN)CO.,LTD", - [3]byte{136, 177, 104}: "Delta Control GmbH", - [3]byte{136, 177, 225}: "AirTight Networks, Inc.", - [3]byte{136, 182, 39}: "Gembird Europe BV", - [3]byte{136, 186, 127}: "Qfiednet Co., Ltd.", - [3]byte{136, 191, 213}: "Simple Audio Ltd", - [3]byte{136, 195, 110}: "Beijing Ereneben lnformation Technology Limited", - [3]byte{136, 198, 38}: "Logitech - Ultimate Ears", - [3]byte{136, 198, 99}: "Apple", - [3]byte{136, 201, 208}: "LG Electronics", - [3]byte{136, 203, 135}: "Apple", - [3]byte{136, 215, 188}: "DEP Company", - [3]byte{136, 217, 98}: "Canopus Systems US LLC", - [3]byte{136, 220, 150}: "SENAO Networks, Inc.", - [3]byte{136, 221, 121}: "Voltaire", - [3]byte{136, 224, 160}: "Shenzhen VisionSTOR Technologies Co., Ltd", - [3]byte{136, 224, 243}: "Juniper Networks", - [3]byte{136, 227, 171}: "Huawei Technologies Co., Ltd", - [3]byte{136, 231, 18}: "Whirlpool Corporation", - [3]byte{136, 231, 166}: "iKnowledge Integration Corp.", - [3]byte{136, 232, 248}: "YONG TAI ELECTRONIC (DONGGUAN) LTD.", - [3]byte{136, 233, 23}: "Tamaggo", - [3]byte{136, 237, 28}: "Cudo Communication Co., Ltd.", - [3]byte{136, 240, 49}: "Cisco", - [3]byte{136, 240, 119}: "CISCO SYSTEMS, INC.", - [3]byte{136, 244, 136}: "cellon communications technology(shenzhen)Co.,Ltd.", - [3]byte{136, 244, 144}: "Jetmobile Pte Ltd", - [3]byte{136, 247, 199}: "Technicolor USA Inc.", - [3]byte{136, 253, 21}: "LINEEYE CO., LTD", - [3]byte{136, 254, 214}: "ShangHai WangYong Software Co., Ltd.", - [3]byte{140, 0, 109}: "Apple", - [3]byte{140, 4, 255}: "Technicolor USA Inc.", - [3]byte{140, 5, 81}: "Koubachi AG", - [3]byte{140, 7, 140}: "FLOW DATA INC", - [3]byte{140, 8, 139}: "Remote Solution", - [3]byte{140, 9, 244}: "ARRIS Group, Inc.", - [3]byte{140, 12, 144}: "Ruckus Wireless", - [3]byte{140, 12, 163}: "Amper", - [3]byte{140, 14, 227}: "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD.", - [3]byte{140, 17, 203}: "ABUS Security-Center GmbH & Co. KG", - [3]byte{140, 24, 217}: "Shenzhen RF Technology Co., Ltd", - [3]byte{140, 31, 148}: "RF Surgical System Inc.", - [3]byte{140, 33, 10}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{140, 39, 29}: "QuantHouse", - [3]byte{140, 39, 138}: "Vocollect Inc", - [3]byte{140, 41, 55}: "Apple", - [3]byte{140, 45, 170}: "Apple", - [3]byte{140, 47, 57}: "IBA Dosimetry GmbH", - [3]byte{140, 51, 48}: "EmFirst Co., Ltd.", - [3]byte{140, 51, 87}: "HiteVision Digital Media Technology Co.,Ltd.", - [3]byte{140, 58, 227}: "LG Electronics", - [3]byte{140, 60, 7}: "Skiva Technologies, Inc.", - [3]byte{140, 60, 74}: "NAKAYO TELECOMMUNICATIONS,INC.", - [3]byte{140, 65, 242}: "RDA Technologies Ltd.", - [3]byte{140, 68, 53}: "Shanghai BroadMobi Communication Technology Co., Ltd.", - [3]byte{140, 74, 238}: "GIGA TMS INC", - [3]byte{140, 75, 89}: "3D Imaging & Simulations Corp", - [3]byte{140, 76, 220}: "PLANEX COMMUNICATIONS INC.", - [3]byte{140, 77, 185}: "Unmonday Ltd", - [3]byte{140, 77, 234}: "Cerio Corporation", - [3]byte{140, 81, 5}: "Shenzhen ireadygo Information Technology CO.,LTD.", - [3]byte{140, 83, 247}: "A&D ENGINEERING CO., LTD.", - [3]byte{140, 84, 29}: "LGE", - [3]byte{140, 86, 157}: "Imaging Solutions Group", - [3]byte{140, 86, 197}: "Nintendo Co., Ltd.", - [3]byte{140, 87, 253}: "LVX Western", - [3]byte{140, 88, 119}: "Apple", - [3]byte{140, 89, 139}: "C Technologies AB", - [3]byte{140, 90, 240}: "Exeltech Solar Products", - [3]byte{140, 92, 161}: "d-broad,INC", - [3]byte{140, 93, 96}: "UCI Corporation Co.,Ltd.", - [3]byte{140, 95, 223}: "Beijing Railway Signal Factory", - [3]byte{140, 96, 79}: "CISCO SYSTEMS, INC.", - [3]byte{140, 100, 11}: "Beyond Devices d.o.o.", - [3]byte{140, 100, 34}: "Sony Ericsson Mobile Communications AB", - [3]byte{140, 104, 120}: "Nortek-AS", - [3]byte{140, 106, 228}: "Viogem Limited", - [3]byte{140, 112, 90}: "Intel Corporate", - [3]byte{140, 113, 248}: "Samsung Electronics Co.,Ltd", - [3]byte{140, 115, 110}: "Fujitsu Limited", - [3]byte{140, 118, 193}: "Goden Tech Limited", - [3]byte{140, 119, 18}: "Samsung Electronics Co.,Ltd", - [3]byte{140, 119, 22}: "LONGCHEER TELECOMMUNICATION LIMITED", - [3]byte{140, 123, 157}: "Apple", - [3]byte{140, 124, 146}: "Apple", - [3]byte{140, 124, 181}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{140, 124, 255}: "Brocade Communications Systems, Inc.", - [3]byte{140, 126, 179}: "Lytro, Inc.", - [3]byte{140, 127, 59}: "ARRIS Group, Inc.", - [3]byte{140, 130, 168}: "Insigma Technology Co.,Ltd", - [3]byte{140, 132, 1}: "PRIVATE", - [3]byte{140, 137, 165}: "Micro-Star INT'L CO., LTD", - [3]byte{140, 138, 110}: "ESTUN AUTOMATION TECHNOLOY CO., LTD", - [3]byte{140, 142, 118}: "taskit GmbH", - [3]byte{140, 144, 211}: "Alcatel Lucent", - [3]byte{140, 145, 9}: "Toyoshima Electric Technoeogy(Suzhou) Co.,Ltd.", - [3]byte{140, 146, 54}: "Aus.Linx Technology Co., Ltd.", - [3]byte{140, 148, 207}: "Encell Technology, Inc.", - [3]byte{140, 160, 72}: "Beijing NeTopChip Technology Co.,LTD", - [3]byte{140, 169, 130}: "Intel Corporate", - [3]byte{140, 174, 76}: "Plugable Technologies", - [3]byte{140, 174, 137}: "Y-cam Solutions Ltd", - [3]byte{140, 176, 148}: "Airtech I&C Co., Ltd", - [3]byte{140, 182, 79}: "CISCO SYSTEMS, INC.", - [3]byte{140, 183, 247}: "Shenzhen UniStrong Science & Technology Co., Ltd", - [3]byte{140, 184, 44}: "IPitomy Communications", - [3]byte{140, 184, 100}: "AcSiP Technology Corp.", - [3]byte{140, 190, 190}: "Xiaomi Technology Co.,Ltd", - [3]byte{140, 191, 157}: "Shanghai Xinyou Information Technology Ltd. Co.", - [3]byte{140, 193, 33}: "Panasonic Corporation AVC Networks Company", - [3]byte{140, 197, 225}: "ShenZhen Konka Telecommunication Technology Co.,Ltd", - [3]byte{140, 199, 170}: "Radinet Communications Inc.", - [3]byte{140, 199, 208}: "zhejiang ebang communication co.,ltd", - [3]byte{140, 200, 205}: "Samsung Electronics Co., LTD", - [3]byte{140, 205, 162}: "ACTP, Inc.", - [3]byte{140, 205, 232}: "Nintendo Co., Ltd.", - [3]byte{140, 207, 92}: "BEFEGA GmbH", - [3]byte{140, 209, 123}: "CG Mobile", - [3]byte{140, 211, 162}: "VisSim AS", - [3]byte{140, 214, 40}: "Ikor Metering", - [3]byte{140, 219, 37}: "ESG Solutions", - [3]byte{140, 220, 212}: "Hewlett Packard", - [3]byte{140, 221, 141}: "Wifly-City System Inc.", - [3]byte{140, 222, 82}: "ISSC Technologies Corp.", - [3]byte{140, 222, 153}: "Comlab Inc.", - [3]byte{140, 223, 157}: "NEC Corporation", - [3]byte{140, 224, 129}: "zte corporation", - [3]byte{140, 231, 72}: "PRIVATE", - [3]byte{140, 231, 140}: "DK Networks", - [3]byte{140, 231, 179}: "Sonardyne International Ltd", - [3]byte{140, 238, 198}: "Precepscion Pty. Ltd.", - [3]byte{140, 248, 19}: "ORANGE POLSKA", - [3]byte{140, 249, 69}: "Power Automation pte Ltd", - [3]byte{140, 249, 201}: "MESADA Technology Co.,Ltd.", - [3]byte{140, 250, 186}: "Apple", - [3]byte{140, 253, 240}: "QUALCOMM Incorporated", - [3]byte{144, 0, 78}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{144, 1, 59}: "SAGEMCOM", - [3]byte{144, 2, 138}: "Shenzhen Shidean Legrand Electronic Products Co.,Ltd", - [3]byte{144, 2, 169}: "ZHEJIANG DAHUA TECHNOLOGY CO.,LTD", - [3]byte{144, 3, 183}: "PARROT", - [3]byte{144, 9, 23}: "Far-sighted mobile", - [3]byte{144, 10, 58}: "PSG Plastic Service GmbH", - [3]byte{144, 12, 180}: "Alinket Electronic Technology Co., Ltd", - [3]byte{144, 13, 102}: "Digimore Electronics Co., Ltd", - [3]byte{144, 13, 203}: "ARRIS Group, Inc.", - [3]byte{144, 23, 155}: "Nanomegas", - [3]byte{144, 23, 172}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{144, 24, 94}: "Apex Tool Group GmbH & Co OHG", - [3]byte{144, 24, 124}: "Samsung Electro Mechanics co., LTD.", - [3]byte{144, 24, 174}: "Shanghai Meridian Technologies, Co. Ltd.", - [3]byte{144, 25, 0}: "SCS SA", - [3]byte{144, 26, 202}: "ARRIS Group, Inc.", - [3]byte{144, 27, 14}: "Fujitsu Technology Solutions GmbH", - [3]byte{144, 29, 39}: "zte corporation", - [3]byte{144, 30, 221}: "GREAT COMPUTER CORPORATION", - [3]byte{144, 32, 58}: "BYD Precision Manufacture Co.,Ltd", - [3]byte{144, 32, 131}: "General Engine Management Systems Ltd.", - [3]byte{144, 33, 85}: "HTC Corporation", - [3]byte{144, 33, 129}: "Shanghai Huaqin Telecom Technology Co.,Ltd", - [3]byte{144, 39, 228}: "Apple", - [3]byte{144, 43, 52}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{144, 44, 199}: "C-MAX Asia Limited", - [3]byte{144, 46, 135}: "LabJack", - [3]byte{144, 49, 205}: "Onyx Healthcare Inc.", - [3]byte{144, 52, 43}: "Gatekeeper Systems, Inc.", - [3]byte{144, 52, 252}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{144, 53, 110}: "Vodafone Omnitel N.V.", - [3]byte{144, 56, 223}: "Changzhou Tiannengbo System Co. Ltd.", - [3]byte{144, 58, 160}: "Alcatel-Lucent", - [3]byte{144, 60, 174}: "Yunnan KSEC Digital Technology Co.,Ltd.", - [3]byte{144, 61, 90}: "Shenzhen Wision Technology Holding Limited", - [3]byte{144, 61, 107}: "Zicon Technology Corp.", - [3]byte{144, 62, 171}: "ARRIS Group, Inc.", - [3]byte{144, 70, 183}: "Vadaro Pte Ltd", - [3]byte{144, 71, 22}: "RORZE CORPORATION", - [3]byte{144, 72, 154}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{144, 73, 250}: "Intel Corporation", - [3]byte{144, 76, 229}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{144, 78, 43}: "Huawei Technologies Co., Ltd", - [3]byte{144, 80, 123}: "Advanced PANMOBIL Systems GmbH & Co. KG", - [3]byte{144, 81, 63}: "Elettronica Santerno", - [3]byte{144, 84, 70}: "TES ELECTRONIC SOLUTIONS", - [3]byte{144, 85, 174}: "Ericsson, EAB/RWI/K", - [3]byte{144, 86, 130}: "Lenbrook Industries Limited", - [3]byte{144, 86, 146}: "Autotalks Ltd.", - [3]byte{144, 89, 175}: "Texas Instruments", - [3]byte{144, 95, 46}: "TCT Mobile Limited", - [3]byte{144, 95, 141}: "modas GmbH", - [3]byte{144, 97, 12}: "Fida International (S) Pte Ltd", - [3]byte{144, 103, 23}: "Alphion India Private Limited", - [3]byte{144, 103, 181}: "Alcatel-Lucent", - [3]byte{144, 103, 243}: "Alcatel Lucent", - [3]byte{144, 104, 195}: "Motorola Mobility LLC", - [3]byte{144, 109, 200}: "DLG Automação Industrial Ltda", - [3]byte{144, 110, 187}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{144, 112, 37}: "Garea Microsys Co.,Ltd.", - [3]byte{144, 114, 64}: "Apple", - [3]byte{144, 121, 144}: "Benchmark Electronics Romania SRL", - [3]byte{144, 122, 10}: "Gebr. Bode GmbH & Co KG", - [3]byte{144, 122, 40}: "Beijing Morncloud Information And Technology Co. Ltd.", - [3]byte{144, 122, 241}: "SNUPI Technologies", - [3]byte{144, 126, 186}: "UTEK TECHNOLOGY (SHENZHEN) CO.,LTD", - [3]byte{144, 127, 97}: "Chicony Electronics Co., Ltd.", - [3]byte{144, 130, 96}: "IEEE 1904.1 Working Group", - [3]byte{144, 131, 122}: "General Electric Water & Process Technologies", - [3]byte{144, 132, 13}: "Apple", - [3]byte{144, 136, 162}: "IONICS TECHNOLOGY ME LTDA", - [3]byte{144, 140, 9}: "Total Phase", - [3]byte{144, 140, 68}: "H.K ZONGMU TECHNOLOGY CO., LTD.", - [3]byte{144, 140, 99}: "GZ Weedong Networks Technology Co. , Ltd", - [3]byte{144, 141, 29}: "GH Technologies", - [3]byte{144, 143, 207}: "UNO System Co., Ltd", - [3]byte{144, 144, 60}: "TRISON TECHNOLOGY CORPORATION", - [3]byte{144, 144, 96}: "RSI VIDEO TECHNOLOGIES", - [3]byte{144, 146, 180}: "Diehl BGT Defence GmbH & Co. KG", - [3]byte{144, 148, 228}: "D-Link International", - [3]byte{144, 152, 100}: "Impex-Sat GmbH&Co KG", - [3]byte{144, 153, 22}: "ELVEES NeoTek OJSC", - [3]byte{144, 157, 224}: "Newland Design + Assoc. Inc.", - [3]byte{144, 159, 51}: "EFM Networks", - [3]byte{144, 159, 67}: "Accutron Instruments Inc.", - [3]byte{144, 162, 218}: "GHEO SA", - [3]byte{144, 164, 222}: "Wistron Neweb Corp.", - [3]byte{144, 167, 131}: "JSW PACIFIC CORPORATION", - [3]byte{144, 167, 193}: "Pakedge Device and Software Inc.", - [3]byte{144, 172, 63}: "BrightSign LLC", - [3]byte{144, 174, 27}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{144, 177, 28}: "Dell Inc.", - [3]byte{144, 177, 52}: "ARRIS Group, Inc.", - [3]byte{144, 178, 31}: "Apple", - [3]byte{144, 182, 134}: "Murata Manufacturing Co., Ltd.", - [3]byte{144, 184, 208}: "Joyent, Inc.", - [3]byte{144, 185, 49}: "Apple, Inc", - [3]byte{144, 185, 125}: "Johnson Outdoors Marine Electronics d/b/a Minnkota", - [3]byte{144, 193, 21}: "Sony Ericsson Mobile Communications AB", - [3]byte{144, 199, 146}: "ARRIS Group, Inc.", - [3]byte{144, 204, 36}: "Synaptics, Inc", - [3]byte{144, 207, 21}: "Nokia Corporation", - [3]byte{144, 207, 111}: "Dlogixs Co Ltd", - [3]byte{144, 207, 125}: "Qingdao Hisense Electric Co.,Ltd.", - [3]byte{144, 209, 27}: "Palomar Medical Technologies", - [3]byte{144, 215, 79}: "Bookeen", - [3]byte{144, 215, 235}: "Texas Instruments", - [3]byte{144, 216, 82}: "Comtec Co., Ltd.", - [3]byte{144, 217, 44}: "HUG-WITSCHI AG", - [3]byte{144, 218, 78}: "AVANU", - [3]byte{144, 218, 106}: "FOCUS H&S Co., Ltd.", - [3]byte{144, 219, 70}: "E-LEAD ELECTRONIC CO., LTD", - [3]byte{144, 223, 183}: "s.m.s smart microwave sensors GmbH", - [3]byte{144, 224, 240}: "IEEE 1722a Working Group", - [3]byte{144, 226, 186}: "Intel Corporate", - [3]byte{144, 230, 186}: "ASUSTek COMPUTER INC.", - [3]byte{144, 234, 96}: "SPI Lasers Ltd", - [3]byte{144, 239, 104}: "ZyXEL Communications Corporation", - [3]byte{144, 241, 170}: "Samsung Electronics Co.,LTD", - [3]byte{144, 241, 176}: "Hangzhou Anheng Info&Tech CO.,LTD", - [3]byte{144, 242, 120}: "Radius Gateway", - [3]byte{144, 243, 183}: "Kirisun Communications Co., Ltd.", - [3]byte{144, 244, 193}: "Rand McNally", - [3]byte{144, 246, 82}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{144, 247, 47}: "Phillips Machine & Welding Co., Inc.", - [3]byte{144, 251, 91}: "Avaya, Inc", - [3]byte{144, 251, 166}: "Hon Hai Precision Ind.Co.Ltd", - [3]byte{144, 253, 97}: "Apple", - [3]byte{144, 255, 121}: "Metro Ethernet Forum", - [3]byte{148, 0, 112}: "Nokia Corporation", - [3]byte{148, 1, 73}: "AutoHotBox", - [3]byte{148, 1, 194}: "Samsung Electronics Co.,Ltd", - [3]byte{148, 5, 182}: "Liling FullRiver Electronics & Technology Ltd", - [3]byte{148, 11, 45}: "NetView Technologies(Shenzhen) Co., Ltd", - [3]byte{148, 11, 213}: "Himax Technologies, Inc", - [3]byte{148, 12, 109}: "TP-LINK Technologies Co.,Ltd.", - [3]byte{148, 16, 62}: "Belkin International Inc.", - [3]byte{148, 17, 218}: "ITF Fröschl GmbH", - [3]byte{148, 22, 115}: "Point Core SARL", - [3]byte{148, 29, 28}: "TLab West Systems AB", - [3]byte{148, 32, 83}: "Nokia Corporation", - [3]byte{148, 33, 151}: "Stalmart Technology Limited", - [3]byte{148, 35, 110}: "Shenzhen Junlan Electronic Ltd", - [3]byte{148, 46, 23}: "Schneider Electric Canada Inc", - [3]byte{148, 46, 99}: "Finsécur", - [3]byte{148, 49, 155}: "Alphatronics BV", - [3]byte{148, 51, 221}: "Taco Electronic Solutions, Inc.", - [3]byte{148, 53, 10}: "Samsung Electronics Co.,Ltd", - [3]byte{148, 54, 224}: "Sichuan Bihong Broadcast & Television New Technologies Co.,Ltd", - [3]byte{148, 57, 229}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{148, 58, 240}: "Nokia Corporation", - [3]byte{148, 59, 177}: "KAONMEDIA", - [3]byte{148, 64, 162}: "Anywave Communication Technologies, Inc.", - [3]byte{148, 68, 68}: "LG Innotek", - [3]byte{148, 68, 82}: "Belkin International Inc.", - [3]byte{148, 70, 150}: "BaudTec Corporation", - [3]byte{148, 74, 9}: "BitWise Controls", - [3]byte{148, 80, 71}: "Rechnerbetriebsgruppe", - [3]byte{148, 81, 3}: "Samsung Electronics", - [3]byte{148, 81, 191}: "Hyundai ESG", - [3]byte{148, 84, 147}: "Rigado, LLC", - [3]byte{148, 89, 45}: "EKE Building Technology Systems Ltd", - [3]byte{148, 91, 126}: "TRILOBIT LTDA.", - [3]byte{148, 97, 36}: "Pason Systems", - [3]byte{148, 98, 105}: "Arris Group, Inc.", - [3]byte{148, 99, 209}: "Samsung Electronics Co.,Ltd", - [3]byte{148, 112, 210}: "WINFIRM TECHNOLOGY", - [3]byte{148, 113, 172}: "TCT Mobile Limited", - [3]byte{148, 117, 110}: "QinetiQ North America", - [3]byte{148, 124, 62}: "Polewall Norge AS", - [3]byte{148, 129, 164}: "Azuray Technologies", - [3]byte{148, 133, 122}: "Evantage Industries Corp", - [3]byte{148, 134, 212}: "Surveillance Pro Corporation", - [3]byte{148, 135, 124}: "ARRIS Group, Inc.", - [3]byte{148, 136, 84}: "Texas Instruments", - [3]byte{148, 139, 3}: "EAGET Innovation and Technology Co., Ltd.", - [3]byte{148, 141, 80}: "Beamex Oy Ab", - [3]byte{148, 142, 137}: "INDUSTRIAS UNIDAS SA DE CV", - [3]byte{148, 143, 238}: "Hughes Telematics, Inc.", - [3]byte{148, 148, 38}: "Apple", - [3]byte{148, 152, 162}: "Shanghai LISTEN TECH.LTD", - [3]byte{148, 155, 253}: "Trans New Technology, Inc.", - [3]byte{148, 156, 85}: "Alta Data Technologies", - [3]byte{148, 159, 63}: "Optek Digital Technology company limited", - [3]byte{148, 159, 180}: "ChengDu JiaFaAnTai Technology Co.,Ltd", - [3]byte{148, 167, 188}: "BodyMedia, Inc.", - [3]byte{148, 170, 184}: "Joview(Beijing) Technology Co. Ltd.", - [3]byte{148, 172, 202}: "trivum technologies GmbH", - [3]byte{148, 174, 97}: "Alcatel Lucent", - [3]byte{148, 174, 227}: "Belden Hirschmann Industries (Suzhou) Ltd.", - [3]byte{148, 180, 15}: "Aruba Networks", - [3]byte{148, 184, 197}: "RuggedCom Inc.", - [3]byte{148, 185, 180}: "Aptos Technology", - [3]byte{148, 186, 49}: "Visiontec da Amazônia Ltda.", - [3]byte{148, 186, 86}: "Shenzhen Coship Electronics Co., Ltd.", - [3]byte{148, 191, 30}: "eflow Inc. / Smart Device Planning and Development Division", - [3]byte{148, 191, 149}: "Shenzhen Coship Electronics Co., Ltd", - [3]byte{148, 192, 20}: "Sorter Sp. j. Konrad Grzeszczyk MichaA, Ziomek", - [3]byte{148, 192, 56}: "Tallac Networks", - [3]byte{148, 193, 80}: "2Wire Inc", - [3]byte{148, 195, 228}: "SCA Schucker Gmbh & Co KG", - [3]byte{148, 196, 233}: "PowerLayer Microsystems HongKong Limited", - [3]byte{148, 198, 235}: "NOVA electronics, Inc.", - [3]byte{148, 199, 175}: "Raylios Technology", - [3]byte{148, 201, 98}: "Teseq AG", - [3]byte{148, 202, 15}: "Honeywell Analytics", - [3]byte{148, 204, 185}: "ARRIS Group, Inc.", - [3]byte{148, 205, 172}: "Creowave Oy", - [3]byte{148, 206, 44}: "Sony Mobile Communications AB", - [3]byte{148, 206, 49}: "CTS Limited", - [3]byte{148, 208, 25}: "Cydle Corp.", - [3]byte{148, 214, 14}: "shenzhen yunmao information technologies co., ltd", - [3]byte{148, 215, 35}: "Shanghai DareGlobal Technologies Co., Ltd", - [3]byte{148, 215, 113}: "Samsung Electronics Co.,Ltd", - [3]byte{148, 217, 60}: "ENELPS", - [3]byte{148, 219, 73}: "SITCORP", - [3]byte{148, 219, 201}: "Azurewave", - [3]byte{148, 221, 63}: "A+V Link Technologies, Corp.", - [3]byte{148, 222, 14}: "SmartOptics AS", - [3]byte{148, 222, 128}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{148, 223, 78}: "Wistron InfoComm(Kunshan)Co.,Ltd.", - [3]byte{148, 223, 88}: "IJ Electron CO.,Ltd.", - [3]byte{148, 224, 208}: "HealthStream Taiwan Inc.", - [3]byte{148, 226, 38}: "D. ORtiz Consulting, LLC", - [3]byte{148, 231, 17}: "Xirka Dama Persada PT", - [3]byte{148, 232, 72}: "FYLDE MICRO LTD", - [3]byte{148, 233, 140}: "Alcatel-Lucent", - [3]byte{148, 235, 44}: "Google Inc.", - [3]byte{148, 235, 205}: "Research In Motion Limited", - [3]byte{148, 246, 146}: "Geminico co.,Ltd.", - [3]byte{148, 247, 32}: "Tianjin Deviser Electronics Instrument Co., Ltd", - [3]byte{148, 250, 232}: "Shenzhen Eycom Technology Co., Ltd", - [3]byte{148, 251, 178}: "Shenzhen Gongjin Electronics Co.,Ltd", - [3]byte{148, 253, 29}: "WhereWhen Corp", - [3]byte{148, 253, 46}: "Shanghai Uniscope Technologies Co.,Ltd", - [3]byte{148, 254, 244}: "SAGEMCOM", - [3]byte{152, 2, 132}: "Theobroma Systems GmbH", - [3]byte{152, 3, 160}: "ABB n.v. Power Quality Products", - [3]byte{152, 3, 216}: "Apple", - [3]byte{152, 12, 130}: "Samsung Electro Mechanics", - [3]byte{152, 13, 46}: "HTC Corporation", - [3]byte{152, 14, 228}: "PRIVATE", - [3]byte{152, 16, 148}: "Shenzhen Vsun communication technology Co.,ltd", - [3]byte{152, 22, 236}: "IC Intracom", - [3]byte{152, 32, 142}: "Definium Technologies", - [3]byte{152, 38, 42}: "Applied Research Associates, Inc", - [3]byte{152, 41, 29}: "Jaguar de Mexico, SA de CV", - [3]byte{152, 41, 63}: "Fujian Start Computer Equipment Co.,Ltd", - [3]byte{152, 44, 190}: "2Wire", - [3]byte{152, 45, 86}: "Resolution Audio", - [3]byte{152, 47, 60}: "Sichuan Changhong Electric Ltd.", - [3]byte{152, 48, 0}: "Beijing KEMACOM Technologies Co., Ltd.", - [3]byte{152, 48, 113}: "DAIKYUNG VASCOM", - [3]byte{152, 52, 157}: "Krauss Maffei Technologies GmbH", - [3]byte{152, 53, 113}: "Sub10 Systems Ltd", - [3]byte{152, 53, 184}: "Assembled Products Corporation", - [3]byte{152, 55, 19}: "PT.Navicom Indonesia", - [3]byte{152, 59, 22}: "AMPAK Technology Inc", - [3]byte{152, 63, 159}: "China SSJ (Suzhou) Network Technology Inc.", - [3]byte{152, 66, 70}: "SOL INDUSTRY PTE., LTD", - [3]byte{152, 67, 218}: "INTERTECH", - [3]byte{152, 71, 60}: "SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD", - [3]byte{152, 74, 71}: "CHG Hospital Beds", - [3]byte{152, 75, 74}: "ARRIS Group, Inc.", - [3]byte{152, 75, 225}: "Hewlett-Packard Company", - [3]byte{152, 76, 4}: "Zhangzhou Keneng Electrical Equipment Co Ltd", - [3]byte{152, 76, 211}: "Mantis Deposition", - [3]byte{152, 78, 151}: "Starlight Marketing (H. K.) Ltd.", - [3]byte{152, 79, 238}: "Intel Corporate", - [3]byte{152, 82, 177}: "Samsung Electronics", - [3]byte{152, 87, 211}: "HON HAI-CCPBG PRECISION IND.CO.,LTD.", - [3]byte{152, 88, 138}: "SYSGRATION Ltd.", - [3]byte{152, 89, 69}: "Texas Instruments", - [3]byte{152, 92, 147}: "SBG Systems SAS", - [3]byte{152, 93, 70}: "PeopleNet Communication", - [3]byte{152, 94, 27}: "ConversDigital Co., Ltd.", - [3]byte{152, 96, 34}: "EMW Co., Ltd.", - [3]byte{152, 102, 234}: "Industrial Control Communications, Inc.", - [3]byte{152, 107, 61}: "ARRIS Group, Inc.", - [3]byte{152, 108, 245}: "zte corporation", - [3]byte{152, 109, 200}: "TOSHIBA MITSUBISHI-ELECTRIC INDUSTRIAL SYSTEMS CORPORATION", - [3]byte{152, 115, 196}: "Sage Electronic Engineering LLC", - [3]byte{152, 118, 182}: "Adafruit", - [3]byte{152, 119, 112}: "Pep Digital Technology (Guangzhou) Co., Ltd", - [3]byte{152, 126, 70}: "Emizon Networks Limited", - [3]byte{152, 130, 23}: "Disruptive Ltd", - [3]byte{152, 134, 177}: "Flyaudio corporation (China)", - [3]byte{152, 137, 237}: "Anadem Information Inc.", - [3]byte{152, 139, 93}: "SAGEM COMMUNICATION", - [3]byte{152, 139, 173}: "Corintech Ltd.", - [3]byte{152, 142, 52}: "ZHEJIANG BOXSAM ELECTRONIC CO.,LTD", - [3]byte{152, 142, 74}: "NOXUS(BEIJING) TECHNOLOGY CO.,LTD", - [3]byte{152, 142, 221}: "TE Connectivity Limerick", - [3]byte{152, 144, 128}: "Linkpower Network System Inc Ltd.", - [3]byte{152, 144, 150}: "Dell Inc", - [3]byte{152, 147, 204}: "LG Electronics Inc.", - [3]byte{152, 148, 73}: "Skyworth Wireless Technology Ltd.", - [3]byte{152, 167, 176}: "MCST ZAO", - [3]byte{152, 170, 215}: "BLUE WAVE NETWORKING CO LTD", - [3]byte{152, 176, 57}: "Alcatel-Lucent", - [3]byte{152, 184, 227}: "Apple", - [3]byte{152, 188, 87}: "SVA TECHNOLOGIES CO.LTD", - [3]byte{152, 188, 153}: "Edeltech Co.,Ltd.", - [3]byte{152, 190, 148}: "IBM", - [3]byte{152, 192, 235}: "Global Regency Ltd", - [3]byte{152, 200, 69}: "PacketAccess", - [3]byte{152, 205, 180}: "Virident Systems, Inc.", - [3]byte{152, 211, 49}: "Shenzhen Bolutek Technology Co.,Ltd.", - [3]byte{152, 214, 134}: "Chyi Lee industry Co., ltd.", - [3]byte{152, 214, 187}: "Apple", - [3]byte{152, 214, 247}: "LG Electronics", - [3]byte{152, 216, 140}: "Nortel Networks", - [3]byte{152, 218, 146}: "Vuzix Corporation", - [3]byte{152, 220, 217}: "UNITEC Co., Ltd.", - [3]byte{152, 225, 101}: "Accutome", - [3]byte{152, 231, 154}: "Foxconn(NanJing) Communication Co.,Ltd.", - [3]byte{152, 236, 101}: "Cosesy ApS", - [3]byte{152, 240, 171}: "Apple", - [3]byte{152, 241, 112}: "Murata Manufacturing Co., Ltd.", - [3]byte{152, 245, 55}: "zte corporation", - [3]byte{152, 248, 193}: "IDT Technology Limited", - [3]byte{152, 248, 219}: "Marini Impianti Industriali s.r.l.", - [3]byte{152, 250, 227}: "Xiaomi inc.", - [3]byte{152, 251, 18}: "Grand Electronics (HK) Ltd", - [3]byte{152, 252, 17}: "Cisco-Linksys, LLC", - [3]byte{152, 254, 3}: "Ericsson - North America", - [3]byte{152, 254, 148}: "Apple", - [3]byte{152, 255, 106}: "OTEC(Shanghai)Technology Co.,Ltd.", - [3]byte{152, 255, 208}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{156, 1, 17}: "Shenzhen Newabel Electronic Co., Ltd.", - [3]byte{156, 2, 152}: "Samsung Electronics Co.,Ltd", - [3]byte{156, 3, 158}: "Beijing Winchannel Software Technology Co., Ltd", - [3]byte{156, 4, 115}: "Tecmobile (International) Ltd.", - [3]byte{156, 4, 235}: "Apple", - [3]byte{156, 6, 110}: "Hytera Communications Corporation Limited", - [3]byte{156, 13, 172}: "Tymphany HK Limited", - [3]byte{156, 20, 101}: "Edata Elektronik San. ve Tic. A.Åž.", - [3]byte{156, 24, 116}: "Nokia Danmark A/S", - [3]byte{156, 28, 18}: "Aruba Networks", - [3]byte{156, 31, 221}: "Accupix Inc.", - [3]byte{156, 32, 123}: "Apple", - [3]byte{156, 33, 106}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{156, 34, 14}: "TASCAN Service GmbH", - [3]byte{156, 40, 64}: "Discovery Technology,LTD..", - [3]byte{156, 40, 191}: "Continental Automotive Czech Republic s.r.o.", - [3]byte{156, 40, 239}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{156, 42, 112}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{156, 49, 120}: "Foshan Huadian Intelligent Communications Teachnologies Co.,Ltd", - [3]byte{156, 49, 182}: "Kulite Semiconductor Products Inc", - [3]byte{156, 53, 131}: "Nipro Diagnostics, Inc", - [3]byte{156, 58, 175}: "Samsung Electronics Co.,Ltd", - [3]byte{156, 62, 170}: "EnvyLogic Co.,Ltd.", - [3]byte{156, 65, 124}: "Hame Technology Co., Limited", - [3]byte{156, 68, 61}: "CHENGDU XUGUANG TECHNOLOGY CO, LTD", - [3]byte{156, 68, 166}: "SwiftTest, Inc.", - [3]byte{156, 69, 99}: "DIMEP Sistemas", - [3]byte{156, 74, 123}: "Nokia Corporation", - [3]byte{156, 76, 174}: "Mesa Labs", - [3]byte{156, 78, 32}: "CISCO SYSTEMS, INC.", - [3]byte{156, 78, 54}: "Intel Corporate", - [3]byte{156, 78, 142}: "ALT Systems Ltd", - [3]byte{156, 78, 191}: "BoxCast", - [3]byte{156, 83, 205}: "ENGICAM s.r.l.", - [3]byte{156, 84, 28}: "Shenzhen My-power Technology Co.,Ltd", - [3]byte{156, 84, 202}: "Zhengzhou VCOM Science and Technology Co.,Ltd", - [3]byte{156, 85, 180}: "I.S.E. S.r.l.", - [3]byte{156, 87, 17}: "Feitian Xunda(Beijing) Aeronautical Information Technology Co., Ltd.", - [3]byte{156, 91, 150}: "NMR Corporation", - [3]byte{156, 92, 141}: "FIREMAX INDÚSTRIA E COMÉRCIO DE PRODUTOS ELETRÔNICOS LTDA", - [3]byte{156, 93, 18}: "Aerohive Networks Inc", - [3]byte{156, 93, 149}: "VTC Electronics Corp.", - [3]byte{156, 94, 115}: "Calibre UK Ltd", - [3]byte{156, 97, 29}: "Omni-ID USA, Inc.", - [3]byte{156, 100, 94}: "Harman Consumer Group", - [3]byte{156, 101, 176}: "Samsung Electronics Co.,Ltd", - [3]byte{156, 101, 249}: "AcSiP Technology Corp.", - [3]byte{156, 102, 80}: "Glodio Technolies Co.,Ltd Tianjin Branch", - [3]byte{156, 106, 190}: "QEES ApS.", - [3]byte{156, 117, 20}: "Wildix srl", - [3]byte{156, 119, 170}: "NADASNV", - [3]byte{156, 121, 172}: "Suntec Software(Shanghai) Co., Ltd.", - [3]byte{156, 123, 210}: "NEOLAB Convergence", - [3]byte{156, 128, 125}: "SYSCABLE Korea Inc.", - [3]byte{156, 128, 223}: "Arcadyan Technology Corporation", - [3]byte{156, 134, 218}: "Phoenix Geophysics Ltd.", - [3]byte{156, 136, 136}: "Simac Techniek NV", - [3]byte{156, 139, 241}: "The Warehouse Limited", - [3]byte{156, 141, 26}: "INTEG process group inc", - [3]byte{156, 142, 153}: "Hewlett-Packard Company", - [3]byte{156, 142, 220}: "Teracom Limited", - [3]byte{156, 147, 78}: "Xerox Corporation", - [3]byte{156, 147, 228}: "PRIVATE", - [3]byte{156, 149, 248}: "SmartDoor Systems, LLC", - [3]byte{156, 151, 38}: "Technicolor", - [3]byte{156, 152, 17}: "Guangzhou Sunrise Electronics Development Co., Ltd", - [3]byte{156, 156, 29}: "Starkey Labs Inc.", - [3]byte{156, 161, 10}: "SCLE SFE", - [3]byte{156, 161, 52}: "Nike, Inc.", - [3]byte{156, 163, 186}: "SAKURA Internet Inc.", - [3]byte{156, 165, 119}: "Osorno Enterprises Inc.", - [3]byte{156, 169, 228}: "zte corporation", - [3]byte{156, 173, 151}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{156, 173, 239}: "Obihai Technology, Inc.", - [3]byte{156, 175, 202}: "CISCO SYSTEMS, INC.", - [3]byte{156, 176, 8}: "Ubiquitous Computing Technology Corporation", - [3]byte{156, 178, 6}: "PROCENTEC", - [3]byte{156, 182, 84}: "Hewlett Packard", - [3]byte{156, 183, 13}: "Liteon Technology Corporation", - [3]byte{156, 183, 147}: "Creatcomm Technology Inc.", - [3]byte{156, 187, 152}: "Shen Zhen RND Electronic Co.,LTD", - [3]byte{156, 189, 157}: "SkyDisk, Inc.", - [3]byte{156, 192, 119}: "PrintCounts, LLC", - [3]byte{156, 192, 210}: "Conductix-Wampfler AG", - [3]byte{156, 193, 114}: "Huawei Technologies Co., Ltd", - [3]byte{156, 199, 166}: "AVM GmbH", - [3]byte{156, 199, 209}: "SHARP Corporation", - [3]byte{156, 202, 217}: "Nokia Corporation", - [3]byte{156, 205, 130}: "CHENG UEI PRECISION INDUSTRY CO.,LTD", - [3]byte{156, 210, 30}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{156, 210, 75}: "zte corporation", - [3]byte{156, 211, 109}: "NETGEAR INC.,", - [3]byte{156, 214, 67}: "D-Link International", - [3]byte{156, 217, 23}: "Motorola Mobility LLC", - [3]byte{156, 223, 3}: "Harman/Becker Automotive Systems GmbH", - [3]byte{156, 225, 14}: "NCTech Ltd", - [3]byte{156, 225, 214}: "Junger Audio-Studiotechnik GmbH", - [3]byte{156, 230, 53}: "Nintendo Co., Ltd.", - [3]byte{156, 230, 231}: "Samsung Electronics Co.,Ltd", - [3]byte{156, 231, 189}: "Winduskorea co., Ltd", - [3]byte{156, 235, 232}: "BizLink (Kunshan) Co.,Ltd", - [3]byte{156, 246, 26}: "UTC Fire and Security", - [3]byte{156, 246, 125}: "Ricardo Prague, s.r.o.", - [3]byte{156, 248, 219}: "shenzhen eyunmei technology co,.ltd", - [3]byte{156, 249, 56}: "AREVA NP GmbH", - [3]byte{156, 251, 241}: "MESOMATIC GmbH & Co.KG", - [3]byte{156, 255, 190}: "OTSL Inc.", - [3]byte{160, 2, 220}: "Amazon Technologies Inc.", - [3]byte{160, 3, 99}: "Robert Bosch Healthcare GmbH", - [3]byte{160, 6, 39}: "NEXPA System", - [3]byte{160, 7, 152}: "Samsung Electronics", - [3]byte{160, 7, 182}: "Advanced Technical Support, Inc.", - [3]byte{160, 10, 191}: "Wieson Technologies Co., Ltd.", - [3]byte{160, 11, 186}: "SAMSUNG ELECTRO-MECHANICS", - [3]byte{160, 12, 161}: "SKTB SKiT", - [3]byte{160, 18, 144}: "Avaya, Inc", - [3]byte{160, 18, 219}: "TABUCHI ELECTRIC CO.,LTD", - [3]byte{160, 19, 59}: "Copyright © HiTi Digital, Inc.", - [3]byte{160, 20, 61}: "PARROT SA", - [3]byte{160, 22, 92}: "Triteka LTD", - [3]byte{160, 24, 89}: "Shenzhen Yidashi Electronics Co Ltd", - [3]byte{160, 25, 23}: "Bertel S.p.a.", - [3]byte{160, 28, 5}: "NIMAX TELECOM CO.,LTD.", - [3]byte{160, 29, 72}: "Hewlett Packard", - [3]byte{160, 33, 149}: "Samsung Electronics Digital Imaging", - [3]byte{160, 33, 183}: "NETGEAR", - [3]byte{160, 35, 27}: "TeleComp R&D Corp.", - [3]byte{160, 43, 184}: "Hewlett Packard", - [3]byte{160, 46, 243}: "United Integrated Services Co., Led.", - [3]byte{160, 54, 159}: "Intel Corporate", - [3]byte{160, 54, 240}: "Comprehensive Power", - [3]byte{160, 54, 250}: "Ettus Research LLC", - [3]byte{160, 58, 117}: "PSS Belgium N.V.", - [3]byte{160, 59, 27}: "Inspire Tech", - [3]byte{160, 64, 37}: "Actioncable, Inc.", - [3]byte{160, 64, 65}: "SAMWONFA Co.,Ltd.", - [3]byte{160, 65, 167}: "NL Ministry of Defense", - [3]byte{160, 66, 63}: "Tyan Computer Corp", - [3]byte{160, 72, 28}: "Hewlett Packard", - [3]byte{160, 76, 193}: "Helixtech Corp.", - [3]byte{160, 78, 4}: "Nokia Corporation", - [3]byte{160, 81, 198}: "Avaya, Inc", - [3]byte{160, 85, 222}: "Pace plc", - [3]byte{160, 86, 178}: "Harman/Becker Automotive Systems GmbH", - [3]byte{160, 89, 58}: "V.D.S. Video Display Systems srl", - [3]byte{160, 90, 164}: "Grand Products Nevada, Inc.", - [3]byte{160, 91, 33}: "ENVINET GmbH", - [3]byte{160, 93, 193}: "TMCT Co., LTD.", - [3]byte{160, 93, 231}: "DIRECTV, Inc.", - [3]byte{160, 94, 107}: "MELPER Co., Ltd.", - [3]byte{160, 101, 24}: "VNPT TECHNOLOGY", - [3]byte{160, 103, 190}: "Sicon s.r.l.", - [3]byte{160, 105, 134}: "Wellav Technologies Ltd", - [3]byte{160, 106, 0}: "Verilink Corporation", - [3]byte{160, 108, 236}: "RIM", - [3]byte{160, 109, 9}: "Intelcan Technosystems Inc.", - [3]byte{160, 110, 80}: "Nanotek Elektronik Sistemler Ltd. Sti.", - [3]byte{160, 113, 169}: "Nokia Corporation", - [3]byte{160, 115, 50}: "Cashmaster International Limited", - [3]byte{160, 115, 252}: "Rancore Technologies Private Limited", - [3]byte{160, 117, 145}: "Samsung Electronics Co.,Ltd", - [3]byte{160, 119, 113}: "Vialis BV", - [3]byte{160, 120, 186}: "Pantech Co., Ltd.", - [3]byte{160, 130, 31}: "Samsung Electronics Co.,Ltd", - [3]byte{160, 130, 199}: "P.T.I Co.,LTD", - [3]byte{160, 134, 29}: "Chengdu Fuhuaxin Technology co.,Ltd", - [3]byte{160, 134, 236}: "SAEHAN HITEC Co., Ltd", - [3]byte{160, 136, 105}: "Intel Corporate", - [3]byte{160, 136, 180}: "Intel Corporate", - [3]byte{160, 137, 228}: "Skyworth Digital Technology(Shenzhen) Co.,Ltd", - [3]byte{160, 138, 135}: "HuiZhou KaiYue Electronic Co.,Ltd", - [3]byte{160, 140, 21}: "Gerhard D. Wempe KG", - [3]byte{160, 140, 155}: "Xtreme Technologies Corp", - [3]byte{160, 144, 222}: "VEEDIMS,LLC", - [3]byte{160, 147, 71}: "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD.", - [3]byte{160, 152, 5}: "OpenVox Communication Co Ltd", - [3]byte{160, 152, 237}: "Shandong Intelligent Optical Communication Development Co., Ltd.", - [3]byte{160, 154, 90}: "Time Domain", - [3]byte{160, 155, 189}: "Total Aviation Solutions Pty Ltd", - [3]byte{160, 161, 48}: "DLI Taiwan Branch office", - [3]byte{160, 162, 60}: "GPMS", - [3]byte{160, 163, 226}: "Actiontec Electronics, Inc", - [3]byte{160, 167, 99}: "Polytron Vertrieb GmbH", - [3]byte{160, 168, 205}: "Intel Corporate", - [3]byte{160, 170, 253}: "EraThink Technologies Corp.", - [3]byte{160, 177, 0}: "ShenZhen Cando Electronics Co.,Ltd", - [3]byte{160, 179, 204}: "Hewlett Packard", - [3]byte{160, 180, 165}: "Samsung Elec Co.,Ltd", - [3]byte{160, 181, 218}: "HongKong THTF Co., Ltd", - [3]byte{160, 182, 98}: "Acutvista Innovation Co., Ltd.", - [3]byte{160, 185, 237}: "Skytap", - [3]byte{160, 186, 184}: "Pixon Imaging", - [3]byte{160, 191, 80}: "S.C. ADD-PRODUCTION S.R.L.", - [3]byte{160, 191, 165}: "CORESYS", - [3]byte{160, 195, 222}: "Triton Electronic Systems Ltd.", - [3]byte{160, 198, 236}: "ShenZhen ANYK Technology Co.,LTD", - [3]byte{160, 206, 200}: "CE LINK LIMITED", - [3]byte{160, 207, 91}: "CISCO SYSTEMS, INC.", - [3]byte{160, 209, 42}: "AXPRO Technology Inc.", - [3]byte{160, 211, 193}: "Hewlett Packard", - [3]byte{160, 218, 146}: "Nanjing Glarun Atten Technology Co. Ltd.", - [3]byte{160, 220, 4}: "Becker-Antriebe GmbH", - [3]byte{160, 221, 151}: "PolarLink Technologies, Ltd", - [3]byte{160, 221, 229}: "SHARP Corporation", - [3]byte{160, 222, 5}: "JSC \"Irbis-T\"", - [3]byte{160, 226, 1}: "AVTrace Ltd.(China)", - [3]byte{160, 226, 90}: "Amicus SK, s.r.o.", - [3]byte{160, 226, 149}: "DAT System Co.,Ltd", - [3]byte{160, 228, 83}: "Sony Mobile Communications AB", - [3]byte{160, 229, 52}: "Stratec Biomedical AG", - [3]byte{160, 229, 233}: "enimai Inc", - [3]byte{160, 230, 248}: "Texas Instruments Inc", - [3]byte{160, 233, 219}: "Ningbo FreeWings Technologies Co.,Ltd", - [3]byte{160, 235, 118}: "AirCUVE Inc.", - [3]byte{160, 236, 128}: "zte corporation", - [3]byte{160, 237, 205}: "Apple", - [3]byte{160, 239, 132}: "Seine Image Int'l Co., Ltd", - [3]byte{160, 242, 23}: "GE Medical System(China) Co., Ltd.", - [3]byte{160, 243, 193}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{160, 243, 228}: "Alcatel Lucent IPD", - [3]byte{160, 244, 25}: "Nokia Corporation", - [3]byte{160, 244, 80}: "HTC Corporation", - [3]byte{160, 244, 89}: "FN-LINK TECHNOLOGY LIMITED", - [3]byte{160, 252, 110}: "Telegrafia a.s.", - [3]byte{160, 254, 145}: "AVAT Automation GmbH", - [3]byte{164, 1, 48}: "ABIsystems Co., LTD", - [3]byte{164, 5, 158}: "STA Infinity LLP", - [3]byte{164, 9, 203}: "Alfred Kaercher GmbH & Co KG", - [3]byte{164, 11, 237}: "Carry Technology Co.,Ltd", - [3]byte{164, 12, 195}: "CISCO SYSTEMS, INC.", - [3]byte{164, 18, 66}: "NEC Platforms, Ltd.", - [3]byte{164, 19, 78}: "Luxul", - [3]byte{164, 21, 102}: "Wei Fang Goertek Electronics Co.,Ltd", - [3]byte{164, 23, 49}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{164, 24, 117}: "CISCO SYSTEMS, INC.", - [3]byte{164, 27, 192}: "Fastec Imaging Corporation", - [3]byte{164, 31, 114}: "Dell Inc.", - [3]byte{164, 33, 138}: "Nortel Networks", - [3]byte{164, 35, 5}: "Open Networking Laboratory", - [3]byte{164, 36, 179}: "FlatFrog Laboratories AB", - [3]byte{164, 37, 27}: "Avaya, Inc", - [3]byte{164, 41, 64}: "Shenzhen YOUHUA Technology Co., Ltd", - [3]byte{164, 41, 183}: "bluesky", - [3]byte{164, 44, 8}: "Masterwork Automodules", - [3]byte{164, 51, 209}: "Fibrlink Communications Co.,Ltd.", - [3]byte{164, 56, 252}: "Plastic Logic", - [3]byte{164, 58, 105}: "Vers Inc", - [3]byte{164, 59, 250}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{164, 61, 120}: "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", - [3]byte{164, 70, 107}: "EOC Technology", - [3]byte{164, 70, 250}: "AmTRAN Video Corporation", - [3]byte{164, 74, 211}: "ST Electronics(Shanghai) Co.,Ltd", - [3]byte{164, 75, 21}: "Sun Cupid Technology (HK) LTD", - [3]byte{164, 76, 17}: "CISCO SYSTEMS, INC.", - [3]byte{164, 78, 45}: "Adaptive Wireless Solutions, LLC", - [3]byte{164, 78, 49}: "Intel Corporate", - [3]byte{164, 80, 85}: "busware.de", - [3]byte{164, 82, 111}: "ADB Broadband Italia", - [3]byte{164, 86, 27}: "MCOT Corporation", - [3]byte{164, 86, 48}: "CISCO SYSTEMS, INC.", - [3]byte{164, 90, 28}: "smart-electronic GmbH", - [3]byte{164, 92, 39}: "Nintendo Co., Ltd.", - [3]byte{164, 93, 54}: "Hewlett Packard", - [3]byte{164, 93, 161}: "ADB Broadband Italia", - [3]byte{164, 96, 50}: "MRV Communications (Networks) LTD", - [3]byte{164, 103, 6}: "Apple", - [3]byte{164, 108, 193}: "LTi REEnergy GmbH", - [3]byte{164, 110, 121}: "DFT System Co.Ltd", - [3]byte{164, 112, 214}: "Motorola Mobility LLC", - [3]byte{164, 119, 51}: "Google", - [3]byte{164, 119, 96}: "Nokia Corporation", - [3]byte{164, 121, 228}: "KLINFO Corp", - [3]byte{164, 122, 164}: "ARRIS Group, Inc.", - [3]byte{164, 122, 207}: "VIBICOM COMMUNICATIONS INC.", - [3]byte{164, 124, 20}: "ChargeStorm AB", - [3]byte{164, 124, 31}: "Cobham plc", - [3]byte{164, 126, 57}: "zte corporation", - [3]byte{164, 129, 238}: "Nokia Corporation", - [3]byte{164, 133, 107}: "Q Electronics Ltd", - [3]byte{164, 137, 91}: "ARK INFOSOLUTIONS PVT LTD", - [3]byte{164, 144, 5}: "CHINA GREATWALL COMPUTER SHENZHEN CO.,LTD", - [3]byte{164, 147, 76}: "CISCO SYSTEMS, INC.", - [3]byte{164, 151, 187}: "Hitachi Industrial Equipment Systems Co.,Ltd", - [3]byte{164, 153, 71}: "Huawei Technologies Co., Ltd", - [3]byte{164, 153, 129}: "FuJian Elite Power Tech CO.,LTD.", - [3]byte{164, 154, 88}: "Samsung Electronics Co.,Ltd", - [3]byte{164, 155, 19}: "Burroughs Payment Systems, Inc.", - [3]byte{164, 157, 73}: "Ketra, Inc.", - [3]byte{164, 158, 219}: "AutoCrib, Inc.", - [3]byte{164, 159, 133}: "Lyve Minds, Inc", - [3]byte{164, 159, 137}: "Shanghai Rui Rui Communication Technology Co.Ltd.", - [3]byte{164, 161, 194}: "Ericsson AB (EAB)", - [3]byte{164, 162, 74}: "Cisco SPVTG", - [3]byte{164, 164, 211}: "Bluebank Communication Technology Co.Ltd", - [3]byte{164, 168, 15}: "Shenzhen Coship Electronics Co., Ltd.", - [3]byte{164, 173, 0}: "Ragsdale Technology", - [3]byte{164, 173, 184}: "Vitec Group, Camera Dynamics Ltd", - [3]byte{164, 174, 154}: "Maestro Wireless Solutions ltd.", - [3]byte{164, 177, 33}: "Arantia 2010 S.L.", - [3]byte{164, 177, 151}: "Apple", - [3]byte{164, 177, 233}: "Technicolor", - [3]byte{164, 177, 238}: "H. ZANDER GmbH & Co. KG", - [3]byte{164, 178, 167}: "Adaxys Solutions AG", - [3]byte{164, 179, 106}: "JSC SDO Chromatec", - [3]byte{164, 184, 24}: "PENTA Gesellschaft für elektronische Industriedatenverarbeitung mbH", - [3]byte{164, 185, 128}: "Parking BOXX Inc.", - [3]byte{164, 186, 219}: "Dell Inc.", - [3]byte{164, 187, 175}: "Lime Instruments", - [3]byte{164, 190, 97}: "EutroVision System, Inc.", - [3]byte{164, 192, 199}: "ShenZhen Hitom Communication Technology Co..LTD", - [3]byte{164, 192, 225}: "Nintendo Co., Ltd.", - [3]byte{164, 194, 171}: "Hangzhou LEAD-IT Information & Technology Co.,Ltd", - [3]byte{164, 195, 97}: "Apple", - [3]byte{164, 199, 222}: "Cambridge Industries(Group) Co.,Ltd.", - [3]byte{164, 208, 148}: "Erwin Peters Systemtechnik GmbH", - [3]byte{164, 209, 143}: "Shenzhen Skyee Optical Fiber Communication Technology Ltd.", - [3]byte{164, 209, 209}: "ECOtality North America", - [3]byte{164, 209, 210}: "Apple", - [3]byte{164, 211, 181}: "GLITEL Stropkov, s.r.o.", - [3]byte{164, 216, 86}: "Gimbal, Inc", - [3]byte{164, 218, 63}: "Bionics Corp.", - [3]byte{164, 219, 46}: "Kingspan Environmental Ltd", - [3]byte{164, 219, 48}: "Liteon Technology Corporation", - [3]byte{164, 222, 80}: "Total Walther GmbH", - [3]byte{164, 224, 230}: "FILIZOLA S.A. PESAGEM E AUTOMACAO", - [3]byte{164, 227, 46}: "Silicon & Software Systems Ltd.", - [3]byte{164, 227, 145}: "DENY FONTAINE", - [3]byte{164, 228, 184}: "BlackBerry Limited", - [3]byte{164, 231, 49}: "Nokia Corporation", - [3]byte{164, 231, 228}: "Connex GmbH", - [3]byte{164, 233, 145}: "SISTEMAS AUDIOVISUALES ITELSIS S.L.", - [3]byte{164, 233, 163}: "Honest Technology Co., Ltd", - [3]byte{164, 235, 211}: "Samsung Electronics Co.,Ltd", - [3]byte{164, 237, 78}: "ARRIS Group, Inc.", - [3]byte{164, 238, 87}: "SEIKO EPSON CORPORATION", - [3]byte{164, 239, 82}: "Telewave Co., Ltd.", - [3]byte{164, 243, 193}: "Open Source Robotics Foundation, Inc.", - [3]byte{164, 245, 34}: "CHOFU SEISAKUSHO CO.,LTD", - [3]byte{164, 247, 208}: "LAN Accessories Co., Ltd.", - [3]byte{164, 251, 141}: "Hangzhou Dunchong Technology Co.Ltd", - [3]byte{164, 252, 206}: "Security Expert Ltd.", - [3]byte{168, 1, 128}: "IMAGO Technologies GmbH", - [3]byte{168, 6, 0}: "Samsung Electronics Co.,Ltd", - [3]byte{168, 12, 13}: "Cisco", - [3]byte{168, 19, 116}: "Panasonic Corporation AVC Networks Company", - [3]byte{168, 21, 77}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{168, 22, 178}: "LG Electronics", - [3]byte{168, 23, 88}: "Elektronik System i UmeÃ¥ AB", - [3]byte{168, 27, 24}: "XTS CORP", - [3]byte{168, 27, 93}: "Foxtel Management Pty Ltd", - [3]byte{168, 29, 22}: "AzureWave Technologies, Inc", - [3]byte{168, 31, 175}: "KRYPTON POLSKA", - [3]byte{168, 32, 102}: "Apple", - [3]byte{168, 36, 235}: "ZAO NPO Introtest", - [3]byte{168, 38, 217}: "HTC Corporation", - [3]byte{168, 41, 76}: "Precision Optical Transceivers, Inc.", - [3]byte{168, 43, 214}: "Shina System Co., Ltd", - [3]byte{168, 48, 173}: "Wei Fang Goertek Electronics Co.,Ltd", - [3]byte{168, 50, 154}: "Digicom Futuristic Technologies Ltd.", - [3]byte{168, 57, 68}: "Actiontec Electronics, Inc", - [3]byte{168, 64, 65}: "Dragino Technology Co., Limited", - [3]byte{168, 68, 129}: "Nokia Corporation", - [3]byte{168, 69, 233}: "Firich Enterprises CO., LTD.", - [3]byte{168, 73, 165}: "Lisantech Co., Ltd.", - [3]byte{168, 84, 178}: "Wistron Neweb Corp.", - [3]byte{168, 85, 106}: "Pocketnet Technology Inc.", - [3]byte{168, 87, 78}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{168, 91, 176}: "Shenzhen Dehoo Technology Co.,Ltd", - [3]byte{168, 91, 243}: "Audivo GmbH", - [3]byte{168, 97, 170}: "Cloudview Limited", - [3]byte{168, 98, 162}: "JIWUMEDIA CO., LTD.", - [3]byte{168, 99, 223}: "DISPLAIRE CORPORATION", - [3]byte{168, 99, 242}: "Texas Instruments", - [3]byte{168, 100, 5}: "nimbus 9, Inc", - [3]byte{168, 101, 178}: "DONGGUAN YISHANG ELECTRONIC TECHNOLOGY CO., LIMITED", - [3]byte{168, 106, 111}: "RIM", - [3]byte{168, 112, 165}: "UniComm Inc.", - [3]byte{168, 117, 214}: "FreeTek International Co., Ltd.", - [3]byte{168, 117, 226}: "Aventura Technologies, Inc.", - [3]byte{168, 119, 111}: "Zonoff", - [3]byte{168, 123, 57}: "Nokia Corporation", - [3]byte{168, 124, 1}: "Samsung Elec Co.,Ltd", - [3]byte{168, 126, 51}: "Nokia Danmark A/S", - [3]byte{168, 129, 241}: "BMEYE B.V.", - [3]byte{168, 134, 221}: "Apple, Inc.", - [3]byte{168, 135, 146}: "Broadband Antenna Tracking Systems", - [3]byte{168, 135, 237}: "ARC Wireless LLC", - [3]byte{168, 136, 8}: "Apple", - [3]byte{168, 140, 238}: "MicroMade Galka i Drozdz sp.j.", - [3]byte{168, 141, 123}: "SunDroid Global limited.", - [3]byte{168, 142, 36}: "Apple", - [3]byte{168, 146, 44}: "LG Electronics", - [3]byte{168, 147, 230}: "JIANGXI JINGGANGSHAN CKING COMMUNICATION TECHNOLOGY CO.,LTD", - [3]byte{168, 149, 176}: "Aker Subsea Ltd", - [3]byte{168, 150, 138}: "Apple", - [3]byte{168, 151, 220}: "IBM", - [3]byte{168, 152, 198}: "Shinbo Co., Ltd.", - [3]byte{168, 153, 92}: "aizo ag", - [3]byte{168, 155, 16}: "inMotion Ltd.", - [3]byte{168, 157, 210}: "Shanghai DareGlobal Technologies Co., Ltd", - [3]byte{168, 166, 104}: "zte corporation", - [3]byte{168, 173, 61}: "Alcatel-Lucent Shanghai Bell Co., Ltd", - [3]byte{168, 176, 174}: "LEONI", - [3]byte{168, 177, 212}: "CISCO SYSTEMS, INC.", - [3]byte{168, 185, 179}: "ESSYS", - [3]byte{168, 187, 207}: "Apple", - [3]byte{168, 189, 26}: "Honey Bee (Hong Kong) Limited", - [3]byte{168, 189, 58}: "UNIONMAN TECHNOLOGY CO.,LTD", - [3]byte{168, 194, 34}: "TM-Research Inc.", - [3]byte{168, 203, 149}: "EAST BEST CO., LTD.", - [3]byte{168, 204, 197}: "Saab AB (publ)", - [3]byte{168, 206, 144}: "CVC", - [3]byte{168, 208, 227}: "Systech Electronics Ltd.", - [3]byte{168, 208, 229}: "Juniper Networks", - [3]byte{168, 210, 54}: "Lightware Visual Engineering", - [3]byte{168, 211, 200}: "Wachendorff Elektronik GmbH & Co. KG", - [3]byte{168, 216, 138}: "Wyconn", - [3]byte{168, 224, 24}: "Nokia Corporation", - [3]byte{168, 227, 238}: "Sony Computer Entertainment Inc.", - [3]byte{168, 229, 57}: "Moimstone Co.,Ltd", - [3]byte{168, 239, 38}: "Tritonwave", - [3]byte{168, 242, 116}: "Samsung Electronics", - [3]byte{168, 244, 112}: "Fujian Newland Communication Science Technologies Co.,Ltd.", - [3]byte{168, 247, 224}: "PLANET Technology Corporation", - [3]byte{168, 249, 75}: "Eltex Enterprise Ltd.", - [3]byte{168, 250, 216}: "Apple", - [3]byte{168, 251, 112}: "WiseSec L.t.d", - [3]byte{168, 252, 183}: "Consolidated Resource Imaging", - [3]byte{170, 0, 0}: "DIGITAL EQUIPMENT CORPORATION", - [3]byte{170, 0, 1}: "DIGITAL EQUIPMENT CORPORATION", - [3]byte{170, 0, 2}: "DIGITAL EQUIPMENT CORPORATION", - [3]byte{170, 0, 3}: "DIGITAL EQUIPMENT CORPORATION", - [3]byte{170, 0, 4}: "DIGITAL EQUIPMENT CORPORATION", - [3]byte{172, 1, 66}: "Uriel Technologies SIA", - [3]byte{172, 2, 202}: "HI Solutions, Inc.", - [3]byte{172, 2, 207}: "RW Tecnologia Industria e Comercio Ltda", - [3]byte{172, 2, 239}: "Comsis", - [3]byte{172, 6, 19}: "Senselogix Ltd", - [3]byte{172, 10, 97}: "Labor S.r.L.", - [3]byte{172, 13, 254}: "Ekon GmbH - myGEKKO", - [3]byte{172, 17, 211}: "Suzhou HOTEK Video Technology Co. Ltd", - [3]byte{172, 20, 97}: "ATAW Co., Ltd.", - [3]byte{172, 20, 210}: "wi-daq, inc.", - [3]byte{172, 22, 45}: "Hewlett Packard", - [3]byte{172, 23, 2}: "Fibar Group sp. z o.o.", - [3]byte{172, 24, 38}: "SEIKO EPSON CORPORATION", - [3]byte{172, 25, 159}: "SUNGROW POWER SUPPLY CO.,LTD.", - [3]byte{172, 32, 170}: "DMATEK Co., Ltd.", - [3]byte{172, 34, 11}: "ASUSTek COMPUTER INC.", - [3]byte{172, 45, 163}: "TXTR GmbH", - [3]byte{172, 47, 168}: "Humannix Co.,Ltd.", - [3]byte{172, 49, 157}: "Shenzhen TG-NET Botone Technology Co.,Ltd.", - [3]byte{172, 52, 203}: "Shanhai GBCOM Communication Technology Co. Ltd", - [3]byte{172, 54, 19}: "Samsung Electronics Co.,Ltd", - [3]byte{172, 56, 112}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{172, 58, 122}: "Roku", - [3]byte{172, 60, 11}: "Apple", - [3]byte{172, 60, 180}: "Nilan A/S", - [3]byte{172, 61, 5}: "Instorescreen Aisa", - [3]byte{172, 61, 117}: "HANGZHOU ZHIWAY TECHNOLOGIES CO.,LTD.", - [3]byte{172, 63, 164}: "TAIYO YUDEN CO.,LTD", - [3]byte{172, 64, 234}: "C&T Solution Inc.", - [3]byte{172, 65, 34}: "Eclipse Electronic Systems Inc.", - [3]byte{172, 68, 242}: "Revolabs Inc", - [3]byte{172, 71, 35}: "Genelec", - [3]byte{172, 74, 254}: "Hisense Broadband Multimedia Technology Co.,Ltd.", - [3]byte{172, 75, 200}: "Juniper Networks", - [3]byte{172, 78, 145}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{172, 79, 252}: "SVS-VISTEK GmbH", - [3]byte{172, 80, 54}: "Pi-Coral Inc", - [3]byte{172, 81, 53}: "MPI TECH", - [3]byte{172, 81, 238}: "Cambridge Communication Systems Ltd", - [3]byte{172, 84, 236}: "IEEE P1823 Standards Working Group", - [3]byte{172, 88, 59}: "Human Assembler, Inc.", - [3]byte{172, 93, 16}: "Pace Americas", - [3]byte{172, 94, 140}: "Utillink", - [3]byte{172, 97, 35}: "Drivven, Inc.", - [3]byte{172, 103, 6}: "Ruckus Wireless", - [3]byte{172, 107, 172}: "Jenny Science AG", - [3]byte{172, 110, 26}: "Shenzhen Gongjin Electronics Co.,Ltd", - [3]byte{172, 111, 79}: "Enspert Inc", - [3]byte{172, 111, 187}: "TATUNG Technology Inc.", - [3]byte{172, 111, 217}: "Valueplus Inc.", - [3]byte{172, 114, 54}: "Lexking Technology Co., Ltd.", - [3]byte{172, 114, 137}: "Intel Corporate", - [3]byte{172, 122, 66}: "iConnectivity", - [3]byte{172, 123, 161}: "Intel Corporate", - [3]byte{172, 127, 62}: "Apple", - [3]byte{172, 128, 214}: "Hexatronic AB", - [3]byte{172, 129, 18}: "Gemtek Technology Co., Ltd.", - [3]byte{172, 129, 243}: "Nokia Corporation", - [3]byte{172, 131, 23}: "Shenzhen Furtunetel Communication Co., Ltd", - [3]byte{172, 131, 240}: "ImmediaTV Corporation", - [3]byte{172, 133, 61}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{172, 134, 116}: "Open Mesh, Inc.", - [3]byte{172, 134, 126}: "Create New Technology (HK) Limited Company", - [3]byte{172, 135, 163}: "Apple", - [3]byte{172, 138, 205}: "ROGER D.Wensker, G.Wensker sp.j.", - [3]byte{172, 141, 20}: "Smartrove Inc", - [3]byte{172, 147, 47}: "Nokia Corporation", - [3]byte{172, 148, 3}: "Envision Peripherals Inc", - [3]byte{172, 154, 150}: "Lantiq Deutschland GmbH", - [3]byte{172, 155, 132}: "Smak Tecnologia e Automacao", - [3]byte{172, 156, 228}: "Alcatel-Lucent Shanghai Bell Co., Ltd", - [3]byte{172, 160, 22}: "CISCO SYSTEMS, INC.", - [3]byte{172, 162, 19}: "Shenzhen Bilian electronic CO.,LTD", - [3]byte{172, 162, 44}: "Baycity Technologies Ltd", - [3]byte{172, 163, 30}: "Aruba Networks", - [3]byte{172, 164, 48}: "Peerless AV", - [3]byte{172, 169, 25}: "TrekStor GmbH", - [3]byte{172, 169, 160}: "Audioengine, Ltd.", - [3]byte{172, 171, 141}: "Lyngso Marine A/S", - [3]byte{172, 179, 19}: "ARRIS Group, Inc.", - [3]byte{172, 183, 79}: "METEL s.r.o.", - [3]byte{172, 184, 89}: "Uniband Electronic Corp,", - [3]byte{172, 189, 11}: "IMAC CO.,LTD", - [3]byte{172, 190, 117}: "Ufine Technologies Co.,Ltd.", - [3]byte{172, 190, 182}: "Visualedge Technology Co., Ltd.", - [3]byte{172, 194, 236}: "CLT INT'L IND. CORP.", - [3]byte{172, 197, 149}: "Graphite Systems", - [3]byte{172, 198, 152}: "Kohzu Precision Co., Ltd.", - [3]byte{172, 201, 53}: "Ness Corporation", - [3]byte{172, 202, 84}: "Telldus Technologies AB", - [3]byte{172, 202, 142}: "ODA Technologies", - [3]byte{172, 202, 186}: "Midokura Co., Ltd.", - [3]byte{172, 203, 9}: "Hefcom Metering (Pty) Ltd", - [3]byte{172, 204, 142}: "Axis Communications AB", - [3]byte{172, 206, 143}: "HWA YAO TECHNOLOGIES CO., LTD", - [3]byte{172, 207, 35}: "Hi-flying electronics technology Co.,Ltd", - [3]byte{172, 207, 92}: "Apple", - [3]byte{172, 209, 128}: "Crexendo Business Solutions, Inc.", - [3]byte{172, 211, 100}: "ABB SPA, ABB SACE DIV.", - [3]byte{172, 214, 87}: "Shaanxi Guolian Digital TV Technology Co., Ltd.", - [3]byte{172, 217, 214}: "tci GmbH", - [3]byte{172, 219, 218}: "Shenzhen Geniatech Inc, Ltd", - [3]byte{172, 222, 72}: "PRIVATE", - [3]byte{172, 224, 105}: "ISAAC Instruments", - [3]byte{172, 226, 21}: "Huawei Technologies Co., Ltd", - [3]byte{172, 227, 72}: "MadgeTech, Inc", - [3]byte{172, 228, 46}: "SK hynix", - [3]byte{172, 230, 75}: "Shenzhen Baojia Battery Technology Co., Ltd.", - [3]byte{172, 232, 123}: "Huawei Technologies Co., Ltd", - [3]byte{172, 232, 126}: "Bytemark Computer Consulting Ltd", - [3]byte{172, 233, 127}: "IoT Tech Limited", - [3]byte{172, 233, 170}: "Hay Systems Ltd", - [3]byte{172, 234, 106}: "GENIX INFOCOMM CO., LTD.", - [3]byte{172, 238, 59}: "6harmonics Inc", - [3]byte{172, 240, 178}: "Becker Electronics Taiwan Ltd.", - [3]byte{172, 241, 223}: "D-Link International", - [3]byte{172, 242, 197}: "Cisco", - [3]byte{172, 247, 243}: "XIAOMI CORPORATION", - [3]byte{172, 249, 126}: "ELESYS INC.", - [3]byte{172, 253, 206}: "Intel Corporate", - [3]byte{172, 253, 236}: "Apple, Inc", - [3]byte{176, 0, 180}: "Cisco", - [3]byte{176, 5, 148}: "Liteon Technology Corporation", - [3]byte{176, 9, 211}: "Avizia", - [3]byte{176, 16, 65}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{176, 18, 3}: "Dynamics Hong Kong Limited", - [3]byte{176, 18, 102}: "Futaba-Kikaku", - [3]byte{176, 20, 8}: "LIGHTSPEED INTERNATIONAL CO.", - [3]byte{176, 23, 67}: "EDISON GLOBAL CIRCUITS LLC", - [3]byte{176, 27, 124}: "Ontrol A.S.", - [3]byte{176, 28, 145}: "Elim Co", - [3]byte{176, 31, 129}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{176, 36, 243}: "Progeny Systems", - [3]byte{176, 37, 170}: "PRIVATE", - [3]byte{176, 52, 149}: "Apple", - [3]byte{176, 53, 141}: "Nokia Corporation", - [3]byte{176, 56, 41}: "Siliconware Precision Industries Co., Ltd.", - [3]byte{176, 56, 80}: "Nanjing CAS-ZDC IOT SYSTEM CO.,LTD", - [3]byte{176, 67, 93}: "NuLEDs, Inc.", - [3]byte{176, 69, 21}: "mira fitness,LLC.", - [3]byte{176, 69, 25}: "TCT mobile ltd", - [3]byte{176, 69, 69}: "YACOUB Automation GmbH", - [3]byte{176, 70, 252}: "MitraStar Technology Corp.", - [3]byte{176, 72, 122}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{176, 76, 5}: "Fresenius Medical Care Deutschland GmbH", - [3]byte{176, 80, 188}: "SHENZHEN BASICOM ELECTRONIC CO.,LTD.", - [3]byte{176, 81, 142}: "Holl technology CO.Ltd.", - [3]byte{176, 87, 6}: "Vallox Oy", - [3]byte{176, 88, 196}: "Broadcast Microwave Services, Inc", - [3]byte{176, 91, 31}: "THERMO FISHER SCIENTIFIC S.P.A.", - [3]byte{176, 91, 103}: "Huawei Technologies Co., Ltd", - [3]byte{176, 92, 229}: "Nokia Corporation", - [3]byte{176, 97, 199}: "Ericsson-LG Enterprise", - [3]byte{176, 101, 99}: "Shanghai Railway Communication Factory", - [3]byte{176, 101, 189}: "Apple", - [3]byte{176, 104, 182}: "Hangzhou OYE Technology Co. Ltd", - [3]byte{176, 105, 113}: "DEI Sales, Inc.", - [3]byte{176, 108, 191}: "3ality Digital Systems GmbH", - [3]byte{176, 117, 12}: "QA Cafe", - [3]byte{176, 117, 77}: "Alcatel-Lucent", - [3]byte{176, 117, 213}: "ZTE Corporation", - [3]byte{176, 119, 172}: "ARRIS Group, Inc.", - [3]byte{176, 121, 8}: "Cummings Engineering", - [3]byte{176, 121, 60}: "Revolv Inc", - [3]byte{176, 121, 148}: "Motorola Mobility LLC", - [3]byte{176, 125, 98}: "Dipl.-Ing. H. Horstmann GmbH", - [3]byte{176, 128, 140}: "Laser Light Engines", - [3]byte{176, 129, 216}: "I-sys Corp", - [3]byte{176, 131, 254}: "Dell Inc", - [3]byte{176, 134, 158}: "Chloride S.r.L", - [3]byte{176, 136, 7}: "Strata Worldwide", - [3]byte{176, 137, 145}: "LGE", - [3]byte{176, 142, 26}: "URadio Systems Co., Ltd", - [3]byte{176, 144, 116}: "Fulan Electronics Limited", - [3]byte{176, 145, 52}: "Taleo", - [3]byte{176, 145, 55}: "ISis ImageStream Internet Solutions, Inc", - [3]byte{176, 151, 58}: "E-Fuel Corporation", - [3]byte{176, 152, 159}: "LG CNS", - [3]byte{176, 153, 40}: "Fujitsu Limited", - [3]byte{176, 154, 226}: "STEMMER IMAGING GmbH", - [3]byte{176, 155, 212}: "GNH Software India Private Limited", - [3]byte{176, 159, 186}: "Apple", - [3]byte{176, 161, 10}: "Pivotal Systems Corporation", - [3]byte{176, 163, 126}: "Qingdao Haier Electronics Co.,Ltd", - [3]byte{176, 167, 42}: "Ensemble Designs, Inc.", - [3]byte{176, 167, 55}: "Roku, Inc.", - [3]byte{176, 168, 110}: "Juniper Networks", - [3]byte{176, 170, 54}: "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD.", - [3]byte{176, 172, 250}: "Fujitsu Limited", - [3]byte{176, 173, 170}: "Avaya, Inc", - [3]byte{176, 178, 220}: "Zyxel Communications Corporation", - [3]byte{176, 179, 43}: "Slican Sp. z o.o.", - [3]byte{176, 180, 72}: "Texas Instruments", - [3]byte{176, 184, 213}: "Nanjing Nengrui Auto Equipment CO.,Ltd", - [3]byte{176, 189, 109}: "Echostreams Innovative Solutions", - [3]byte{176, 189, 161}: "ZAKLAD ELEKTRONICZNY SIMS", - [3]byte{176, 191, 153}: "WIZITDONGDO", - [3]byte{176, 196, 231}: "Samsung Electronics", - [3]byte{176, 197, 84}: "D-Link International", - [3]byte{176, 198, 154}: "Juniper Networks", - [3]byte{176, 199, 69}: "Buffalo Inc.", - [3]byte{176, 200, 63}: "Jiangsu Cynray IOT Co., Ltd.", - [3]byte{176, 200, 173}: "People Power Company", - [3]byte{176, 201, 91}: "Beijing Symtech CO.,LTD", - [3]byte{176, 206, 24}: "Zhejiang shenghui lighting co.,Ltd", - [3]byte{176, 207, 77}: "MI-Zone Technology Ireland", - [3]byte{176, 208, 156}: "Samsung Electronics Co.,Ltd", - [3]byte{176, 210, 245}: "Vello Systems, Inc.", - [3]byte{176, 213, 157}: "Shenzhen Zowee Technology Co., Ltd", - [3]byte{176, 215, 197}: "STP KFT", - [3]byte{176, 218, 0}: "CERA ELECTRONIQUE", - [3]byte{176, 223, 58}: "Samsung Electronics Co.,Ltd", - [3]byte{176, 227, 157}: "CAT SYSTEM CO.,LTD.", - [3]byte{176, 229, 14}: "NRG SYSTEMS INC", - [3]byte{176, 231, 84}: "2Wire", - [3]byte{176, 232, 146}: "SEIKO EPSON CORPORATION", - [3]byte{176, 233, 126}: "Advanced Micro Peripherals", - [3]byte{176, 236, 113}: "Samsung Electronics Co.,Ltd", - [3]byte{176, 236, 143}: "GMX SAS", - [3]byte{176, 238, 69}: "AzureWave Technologies, Inc.", - [3]byte{176, 241, 188}: "Dhemax Ingenieros Ltda", - [3]byte{176, 250, 235}: "Cisco", - [3]byte{176, 254, 189}: "PRIVATE", - [3]byte{180, 0, 156}: "CableWorld Ltd.", - [3]byte{180, 1, 66}: "GCI Science & Technology Co.,LTD", - [3]byte{180, 4, 24}: "Smartchip Integrated Inc.", - [3]byte{180, 7, 249}: "SAMSUNG ELECTRO-MECHANICS", - [3]byte{180, 8, 50}: "TC Communications", - [3]byte{180, 10, 198}: "DEXON Systems Ltd.", - [3]byte{180, 11, 68}: "Smartisan Technology Co., Ltd.", - [3]byte{180, 11, 122}: "Brusa Elektronik AG", - [3]byte{180, 12, 37}: "Palo Alto Networks", - [3]byte{180, 14, 150}: "HERAN", - [3]byte{180, 14, 220}: "LG-Ericsson Co.,Ltd.", - [3]byte{180, 20, 137}: "CISCO SYSTEMS, INC.", - [3]byte{180, 21, 19}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{180, 23, 128}: "DTI Group Ltd", - [3]byte{180, 24, 209}: "Apple", - [3]byte{180, 29, 239}: "Internet Laboratories, Inc.", - [3]byte{180, 33, 29}: "Beijing GuangXin Technology Co., Ltd", - [3]byte{180, 33, 138}: "Dog Hunter LLC", - [3]byte{180, 36, 231}: "Codetek Technology Co.,Ltd", - [3]byte{180, 40, 241}: "E-Prime Co., Ltd.", - [3]byte{180, 42, 57}: "ORBIT MERRET, spol. s r. o.", - [3]byte{180, 44, 146}: "Zhejiang Weirong Electronic Co., Ltd", - [3]byte{180, 44, 190}: "Direct Payment Solutions Limited", - [3]byte{180, 49, 184}: "Aviwest", - [3]byte{180, 52, 108}: "MATSUNICHI DIGITAL TECHNOLOGY (HONG KONG) LIMITED", - [3]byte{180, 53, 100}: "Fujian Tian Cheng Electron Science & Technical Development Co.,Ltd.", - [3]byte{180, 53, 247}: "Zhejiang Pearmain Electronics Co.ltd.", - [3]byte{180, 55, 65}: "Consert, Inc.", - [3]byte{180, 57, 52}: "Pen Generations, Inc.", - [3]byte{180, 57, 214}: "ProCurve Networking by HP", - [3]byte{180, 58, 40}: "Samsung Electronics Co.,Ltd", - [3]byte{180, 61, 178}: "Degreane Horizon", - [3]byte{180, 62, 59}: "Viableware, Inc", - [3]byte{180, 65, 122}: "ShenZhen Gongjin Electronics Co.,Ltd", - [3]byte{180, 67, 13}: "Broadlink Pty Ltd", - [3]byte{180, 71, 94}: "Avaya, Inc", - [3]byte{180, 76, 194}: "NR ELECTRIC CO., LTD", - [3]byte{180, 81, 249}: "NB Software", - [3]byte{180, 82, 83}: "Seagate Technology", - [3]byte{180, 82, 125}: "Sony Mobile Communications AB", - [3]byte{180, 82, 126}: "Sony Mobile Communications AB", - [3]byte{180, 85, 112}: "Borea", - [3]byte{180, 88, 97}: "CRemote, LLC", - [3]byte{180, 92, 164}: "Thing-talk Wireless Communication Technologies Corporation Limited", - [3]byte{180, 97, 255}: "Lumigon A/S", - [3]byte{180, 98, 56}: "Exablox", - [3]byte{180, 98, 147}: "Samsung Electronics Co.,Ltd", - [3]byte{180, 98, 173}: "raytest GmbH", - [3]byte{180, 102, 152}: "Zealabs srl", - [3]byte{180, 103, 233}: "Qingdao GoerTek Technology Co., Ltd.", - [3]byte{180, 116, 159}: "askey computer corp", - [3]byte{180, 117, 14}: "Belkin International Inc.", - [3]byte{180, 121, 167}: "Samsung Electro Mechanics co., LTD.", - [3]byte{180, 124, 41}: "Shenzhen Guzidi Technology Co.,Ltd", - [3]byte{180, 127, 94}: "Foresight Manufacture (S) Pte Ltd", - [3]byte{180, 130, 85}: "Research Products Corporation", - [3]byte{180, 130, 123}: "AKG Acoustics GmbH", - [3]byte{180, 130, 197}: "Relay2, Inc.", - [3]byte{180, 130, 254}: "Askey Computer Corp", - [3]byte{180, 133, 71}: "Amptown System Company GmbH", - [3]byte{180, 137, 16}: "Coster T.E. S.P.A.", - [3]byte{180, 148, 78}: "WeTelecom Co., Ltd.", - [3]byte{180, 152, 66}: "zte corporation", - [3]byte{180, 153, 76}: "Texas Instruments", - [3]byte{180, 153, 186}: "Hewlett-Packard Company", - [3]byte{180, 157, 180}: "Axion Technologies Inc.", - [3]byte{180, 158, 172}: "Imagik Int'l Corp", - [3]byte{180, 158, 230}: "SHENZHEN TECHNOLOGY CO LTD", - [3]byte{180, 164, 181}: "Zen Eye Co.,Ltd", - [3]byte{180, 164, 227}: "CISCO SYSTEMS, INC.", - [3]byte{180, 165, 169}: "MODI GmbH", - [3]byte{180, 168, 40}: "Shenzhen Concox Information Technology Co., Ltd", - [3]byte{180, 168, 43}: "Histar Digital Electronics Co., Ltd.", - [3]byte{180, 169, 90}: "Avaya, Inc", - [3]byte{180, 170, 77}: "Ensequence, Inc.", - [3]byte{180, 171, 44}: "MtM Technology Corporation", - [3]byte{180, 174, 111}: "Circle Reliance, Inc.", - [3]byte{180, 176, 23}: "Avaya, Inc", - [3]byte{180, 179, 98}: "ZTE Corporation", - [3]byte{180, 181, 47}: "Hewlett Packard", - [3]byte{180, 181, 66}: "Hubbell Power Systems, Inc.", - [3]byte{180, 181, 175}: "Minsung Electronics", - [3]byte{180, 182, 118}: "Intel Corporate", - [3]byte{180, 184, 89}: "Texa Spa", - [3]byte{180, 184, 141}: "Thuh Company", - [3]byte{180, 196, 78}: "VXL eTech Pvt Ltd", - [3]byte{180, 199, 153}: "Motorola Solutions Inc.", - [3]byte{180, 200, 16}: "UMPI Elettronica", - [3]byte{180, 204, 233}: "PROSYST", - [3]byte{180, 206, 246}: "HTC Corporation", - [3]byte{180, 207, 219}: "Shenzhen Jiuzhou Electric Co.,LTD", - [3]byte{180, 216, 169}: "BetterBots", - [3]byte{180, 216, 222}: "iota Computing, Inc.", - [3]byte{180, 221, 21}: "ControlThings Oy Ab", - [3]byte{180, 223, 59}: "Chromlech", - [3]byte{180, 223, 250}: "Litemax Electronics Inc.", - [3]byte{180, 224, 205}: "Fusion-io, Inc", - [3]byte{180, 225, 235}: "PRIVATE", - [3]byte{180, 233, 176}: "Cisco", - [3]byte{180, 237, 25}: "Pie Digital, Inc.", - [3]byte{180, 237, 84}: "Wohler Technologies", - [3]byte{180, 238, 180}: "ASKEY COMPUTER CORP", - [3]byte{180, 238, 212}: "Texas Instruments", - [3]byte{180, 240, 171}: "Apple", - [3]byte{180, 242, 232}: "Pace plc", - [3]byte{180, 243, 35}: "PETATEL INC.", - [3]byte{180, 252, 117}: "SEMA Electronics(HK) CO.,LTD", - [3]byte{180, 254, 140}: "Centro Sicurezza Italia SpA", - [3]byte{184, 3, 5}: "Intel Corporate", - [3]byte{184, 4, 21}: "Bayan Audio", - [3]byte{184, 8, 207}: "Intel Corporate", - [3]byte{184, 11, 157}: "ROPEX Industrie-Elektronik GmbH", - [3]byte{184, 20, 19}: "Keen High Holding(HK) Ltd.", - [3]byte{184, 22, 25}: "ARRIS Group, Inc.", - [3]byte{184, 23, 194}: "Apple", - [3]byte{184, 24, 111}: "ORIENTAL MOTOR CO., LTD.", - [3]byte{184, 25, 153}: "Nesys", - [3]byte{184, 32, 231}: "Guangzhou Horizontal Information & Network Integration Co. Ltd", - [3]byte{184, 36, 16}: "Magneti Marelli Slovakia s.r.o.", - [3]byte{184, 36, 26}: "SWEDA INFORMATICA LTDA", - [3]byte{184, 38, 108}: "ANOV France", - [3]byte{184, 38, 212}: "Furukawa Industrial S.A. Produtos Elétricos", - [3]byte{184, 39, 235}: "Raspberry Pi Foundation", - [3]byte{184, 40, 139}: "Parker Hannifin", - [3]byte{184, 41, 247}: "Blaster Tech", - [3]byte{184, 42, 114}: "Dell Inc", - [3]byte{184, 42, 220}: "EFR Europäische Funk-Rundsteuerung GmbH", - [3]byte{184, 44, 160}: "Honeywell HomMed", - [3]byte{184, 48, 168}: "Road-Track Telematics Development", - [3]byte{184, 54, 216}: "Videoswitch", - [3]byte{184, 56, 97}: "Cisco", - [3]byte{184, 56, 202}: "Kyokko Tsushin System CO.,LTD", - [3]byte{184, 58, 123}: "Worldplay (Canada) Inc.", - [3]byte{184, 61, 78}: "Shenzhen Cultraview Digital Technology Co.,Ltd Shanghai Branch", - [3]byte{184, 62, 89}: "Roku, Inc", - [3]byte{184, 65, 95}: "ASP AG", - [3]byte{184, 67, 228}: "Vlatacom", - [3]byte{184, 71, 198}: "SanJet Technology Corp.", - [3]byte{184, 79, 213}: "Microsoft Corporation", - [3]byte{184, 85, 16}: "Zioncom Electronics (Shenzhen) Ltd.", - [3]byte{184, 88, 16}: "NUMERA, INC.", - [3]byte{184, 90, 247}: "Ouya, Inc", - [3]byte{184, 90, 254}: "Handaer Communication Technology (Beijing) Co., Ltd", - [3]byte{184, 94, 123}: "Samsung Electronics Co.,Ltd", - [3]byte{184, 96, 145}: "Onnet Technologies and Innovations LLC", - [3]byte{184, 97, 111}: "Accton Wireless Broadband(AWB), Corp.", - [3]byte{184, 98, 31}: "CISCO SYSTEMS, INC.", - [3]byte{184, 99, 188}: "ROBOTIS, Co, Ltd", - [3]byte{184, 100, 145}: "CK Telecom Ltd", - [3]byte{184, 101, 59}: "Bolymin, Inc.", - [3]byte{184, 107, 35}: "Toshiba", - [3]byte{184, 108, 232}: "Samsung Electronics Co.,Ltd", - [3]byte{184, 112, 244}: "COMPAL INFORMATION (KUNSHAN) CO., LTD.", - [3]byte{184, 116, 36}: "Viessmann Elektronik GmbH", - [3]byte{184, 116, 71}: "Convergence Technologies", - [3]byte{184, 117, 192}: "PayPal, Inc.", - [3]byte{184, 118, 63}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{184, 119, 195}: "Decagon Devices, Inc.", - [3]byte{184, 120, 46}: "Apple", - [3]byte{184, 121, 126}: "Secure Meters (UK) Limited", - [3]byte{184, 122, 201}: "Siemens Ltd.", - [3]byte{184, 124, 242}: "Aerohive Networks Inc.", - [3]byte{184, 135, 30}: "Good Mind Industries Co., Ltd.", - [3]byte{184, 135, 168}: "Step Ahead Innovations Inc.", - [3]byte{184, 136, 227}: "COMPAL INFORMATION (KUNSHAN) CO., LTD", - [3]byte{184, 137, 202}: "ILJIN ELECTRIC Co., Ltd.", - [3]byte{184, 138, 96}: "Intel Corporate", - [3]byte{184, 141, 18}: "Apple", - [3]byte{184, 142, 58}: "Infinite Technologies JLT", - [3]byte{184, 143, 20}: "Analytica GmbH", - [3]byte{184, 146, 29}: "BG T&A", - [3]byte{184, 148, 210}: "Retail Innovation HTT AB", - [3]byte{184, 150, 116}: "AllDSP GmbH & Co. KG", - [3]byte{184, 151, 90}: "BIOSTAR Microtech Int'l Corp.", - [3]byte{184, 152, 176}: "Atlona Inc.", - [3]byte{184, 152, 247}: "Gionee Communication Equipment Co,Ltd.ShenZhen", - [3]byte{184, 153, 25}: "7signal Solutions, Inc", - [3]byte{184, 154, 237}: "OceanServer Technology, Inc", - [3]byte{184, 155, 201}: "SMC Networks Inc", - [3]byte{184, 155, 228}: "ABB Power Systems Power Generation", - [3]byte{184, 163, 134}: "D-Link International", - [3]byte{184, 163, 224}: "BenRui Technology Co.,Ltd", - [3]byte{184, 168, 175}: "Logic S.p.A.", - [3]byte{184, 172, 111}: "Dell Inc", - [3]byte{184, 173, 62}: "BLUECOM", - [3]byte{184, 174, 110}: "Nintendo Co., Ltd.", - [3]byte{184, 174, 237}: "Elitegroup Computer Systems Co., Ltd.", - [3]byte{184, 175, 103}: "Hewlett-Packard Company", - [3]byte{184, 177, 199}: "BT&COM CO.,LTD", - [3]byte{184, 180, 46}: "Gionee Communication Equipment Co,Ltd.ShenZhen", - [3]byte{184, 183, 215}: "2GIG Technologies", - [3]byte{184, 185, 78}: "Shenzhen iBaby Labs, Inc.", - [3]byte{184, 186, 104}: "Xi'an Jizhong Digital Communication Co.,Ltd", - [3]byte{184, 186, 114}: "Cynove", - [3]byte{184, 187, 109}: "ENERES Co.,Ltd.", - [3]byte{184, 189, 121}: "TrendPoint Systems", - [3]byte{184, 190, 191}: "CISCO SYSTEMS, INC.", - [3]byte{184, 191, 131}: "Intel Corporate", - [3]byte{184, 193, 162}: "Dragon Path Technologies Co., Limited", - [3]byte{184, 196, 111}: "PRIMMCON INDUSTRIES INC", - [3]byte{184, 198, 142}: "Samsung Electronics Co.,Ltd", - [3]byte{184, 199, 22}: "Fiberhome Telecommunication Technologies Co.,LTD", - [3]byte{184, 199, 93}: "Apple", - [3]byte{184, 200, 85}: "Shanghai GBCOM Communication Technology Co.,Ltd.", - [3]byte{184, 202, 58}: "Dell Inc", - [3]byte{184, 205, 147}: "Penetek, Inc", - [3]byte{184, 205, 167}: "Maxeler Technologies Ltd.", - [3]byte{184, 208, 111}: "GUANGZHOU HKUST FOK YING TUNG RESEARCH INSTITUTE", - [3]byte{184, 212, 157}: "M Seven System Ltd.", - [3]byte{184, 216, 18}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{184, 217, 206}: "Samsung Electronics", - [3]byte{184, 218, 241}: "Strahlenschutz- Entwicklungs- und Ausruestungsgesellschaft mbH", - [3]byte{184, 218, 247}: "Advanced Photonics, Inc.", - [3]byte{184, 220, 135}: "IAI Corporation", - [3]byte{184, 223, 107}: "SpotCam Co., Ltd.", - [3]byte{184, 229, 137}: "Payter BV", - [3]byte{184, 230, 37}: "2Wire", - [3]byte{184, 231, 121}: "9Solutions Oy", - [3]byte{184, 232, 86}: "Apple", - [3]byte{184, 233, 55}: "Sonos, Inc.", - [3]byte{184, 238, 101}: "Liteon Technology Corporation", - [3]byte{184, 238, 121}: "YWire Technologies, Inc.", - [3]byte{184, 243, 23}: "iSun Smasher Communications Private Limited", - [3]byte{184, 244, 208}: "Herrmann Ultraschalltechnik GmbH & Co. Kg", - [3]byte{184, 245, 231}: "WayTools, LLC", - [3]byte{184, 246, 177}: "Apple", - [3]byte{184, 247, 50}: "Aryaka Networks Inc", - [3]byte{184, 248, 40}: "Changshu Gaoshida Optoelectronic Technology Co. Ltd.", - [3]byte{184, 249, 52}: "Sony Ericsson Mobile Communications AB", - [3]byte{184, 253, 50}: "Zhejiang ROICX Microelectronics", - [3]byte{184, 255, 97}: "Apple", - [3]byte{184, 255, 111}: "Shanghai Typrotech Technology Co.Ltd", - [3]byte{184, 255, 254}: "Texas Instruments", - [3]byte{188, 2, 0}: "Stewart Audio", - [3]byte{188, 5, 67}: "AVM GmbH", - [3]byte{188, 13, 165}: "Texas Instruments", - [3]byte{188, 15, 43}: "FORTUNE TECHGROUP CO.,LTD", - [3]byte{188, 18, 94}: "Beijing WisVideo INC.", - [3]byte{188, 20, 1}: "Hitron Technologies. Inc", - [3]byte{188, 20, 239}: "ITON Technology Limited", - [3]byte{188, 21, 166}: "Taiwan Jantek Electronics,Ltd.", - [3]byte{188, 22, 101}: "Cisco", - [3]byte{188, 22, 245}: "Cisco", - [3]byte{188, 26, 103}: "YF Technology Co., Ltd", - [3]byte{188, 32, 164}: "Samsung Electronics", - [3]byte{188, 32, 186}: "Inspur (Shandong) Electronic Information Co., Ltd", - [3]byte{188, 37, 240}: "3D Display Technologies Co., Ltd.", - [3]byte{188, 38, 29}: "HONG KONG TECON TECHNOLOGY", - [3]byte{188, 40, 70}: "NextBIT Computing Pvt. Ltd.", - [3]byte{188, 40, 214}: "Rowley Associates Limited", - [3]byte{188, 43, 107}: "Beijing Haier IC Design Co.,Ltd", - [3]byte{188, 43, 215}: "Revogi Innovation Co., Ltd.", - [3]byte{188, 44, 85}: "Bear Flag Design, Inc.", - [3]byte{188, 45, 152}: "ThinGlobal LLC", - [3]byte{188, 48, 91}: "Dell Inc.", - [3]byte{188, 48, 125}: "Wistron Neweb Corp.", - [3]byte{188, 52, 0}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{188, 53, 229}: "Hydro Systems Company", - [3]byte{188, 56, 210}: "Pandachip Limited", - [3]byte{188, 57, 166}: "CSUN System Technology Co.,LTD", - [3]byte{188, 59, 175}: "Apple", - [3]byte{188, 62, 19}: "Accordance Systems Inc.", - [3]byte{188, 65, 0}: "Codaco Electronic s.r.o.", - [3]byte{188, 67, 119}: "Hang Zhou Huite Technology Co.,ltd.", - [3]byte{188, 68, 134}: "Samsung Electronics Co.,Ltd", - [3]byte{188, 71, 96}: "Samsung Electronics Co.,Ltd", - [3]byte{188, 75, 121}: "SensingTek", - [3]byte{188, 77, 251}: "Hitron Technologies. Inc", - [3]byte{188, 78, 60}: "CORE STAFF CO., LTD.", - [3]byte{188, 78, 93}: "ZhongMiao Technology Co., Ltd.", - [3]byte{188, 81, 254}: "Swann Communications Pty Ltd", - [3]byte{188, 82, 180}: "Alcatel-Lucent", - [3]byte{188, 82, 183}: "Apple", - [3]byte{188, 95, 244}: "ASRock Incorporation", - [3]byte{188, 98, 159}: "Telenet Systems P. Ltd.", - [3]byte{188, 102, 65}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{188, 103, 28}: "Cisco", - [3]byte{188, 103, 120}: "Apple", - [3]byte{188, 103, 132}: "Environics Oy", - [3]byte{188, 106, 22}: "tdvine", - [3]byte{188, 106, 41}: "Texas Instruments", - [3]byte{188, 107, 77}: "Alcatel-Lucent", - [3]byte{188, 110, 118}: "Green Energy Options Ltd", - [3]byte{188, 113, 193}: "XTrillion, Inc.", - [3]byte{188, 114, 177}: "Samsung Electronics Co.,Ltd", - [3]byte{188, 116, 215}: "HangZhou JuRu Technology CO.,LTD", - [3]byte{188, 118, 78}: "Rackspace US, Inc.", - [3]byte{188, 118, 112}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{188, 119, 55}: "Intel Corporate", - [3]byte{188, 119, 159}: "SBM Co., Ltd.", - [3]byte{188, 121, 173}: "Samsung Electronics Co.,Ltd", - [3]byte{188, 125, 209}: "Radio Data Comms", - [3]byte{188, 129, 31}: "Ingate Systems", - [3]byte{188, 129, 153}: "BASIC Co.,Ltd.", - [3]byte{188, 131, 167}: "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LT", - [3]byte{188, 133, 31}: "Samsung Electronics", - [3]byte{188, 133, 86}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{188, 136, 147}: "VILLBAU Ltd.", - [3]byte{188, 139, 85}: "NPP ELIKS America Inc. DBA T&M Atlantic", - [3]byte{188, 140, 205}: "Samsung Electro Mechanics co.,LTD.", - [3]byte{188, 141, 14}: "Alcatel-Lucent", - [3]byte{188, 146, 107}: "Apple", - [3]byte{188, 150, 128}: "Shenzhen Gongjin Electronics Co.,Ltd", - [3]byte{188, 152, 137}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{188, 153, 188}: "FonSee Technology Inc.", - [3]byte{188, 156, 197}: "Beijing Huafei Technology Co., Ltd.", - [3]byte{188, 157, 165}: "DASCOM Europe GmbH", - [3]byte{188, 164, 225}: "Nabto", - [3]byte{188, 169, 214}: "Cyber-Rain, Inc.", - [3]byte{188, 174, 197}: "ASUSTek COMPUTER INC.", - [3]byte{188, 177, 129}: "SHARP CORPORATION", - [3]byte{188, 177, 243}: "Samsung Electronics", - [3]byte{188, 184, 82}: "Cybera, Inc.", - [3]byte{188, 186, 225}: "AREC Inc.", - [3]byte{188, 187, 201}: "Kellendonk Elektronik GmbH", - [3]byte{188, 188, 70}: "SKS Welding Systems GmbH", - [3]byte{188, 193, 104}: "DinBox Sverige AB", - [3]byte{188, 194, 58}: "Thomson Video Networks", - [3]byte{188, 195, 66}: "Panasonic System Networks Co., Ltd.", - [3]byte{188, 198, 26}: "SPECTRA EMBEDDED SYSTEMS", - [3]byte{188, 198, 219}: "Nokia Corporation", - [3]byte{188, 200, 16}: "Cisco SPVTG", - [3]byte{188, 202, 181}: "ARRIS Group, Inc.", - [3]byte{188, 205, 69}: "VOISMART", - [3]byte{188, 207, 204}: "HTC Corporation", - [3]byte{188, 209, 119}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{188, 209, 211}: "Tinno Mobile Technology Corp", - [3]byte{188, 213, 182}: "d2d technologies", - [3]byte{188, 217, 64}: "ASR Co,.Ltd.", - [3]byte{188, 224, 157}: "Eoslink", - [3]byte{188, 229, 159}: "WATERWORLD Technology Co.,LTD", - [3]byte{188, 234, 43}: "CityCom GmbH", - [3]byte{188, 234, 250}: "Hewlett Packard", - [3]byte{188, 238, 123}: "ASUSTek COMPUTER INC.", - [3]byte{188, 242, 175}: "devolo AG", - [3]byte{188, 245, 172}: "LG Electronics", - [3]byte{188, 246, 28}: "Geomodeling Wuxi Technology Co. Ltd.", - [3]byte{188, 246, 133}: "D-Link International", - [3]byte{188, 254, 140}: "Altronic, LLC", - [3]byte{188, 255, 172}: "TOPCON CORPORATION", - [3]byte{192, 13, 126}: "Additech, Inc.", - [3]byte{192, 17, 166}: "Fort-Telecom ltd.", - [3]byte{192, 18, 66}: "Alpha Security Products", - [3]byte{192, 20, 61}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{192, 24, 133}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{192, 30, 155}: "Pixavi AS", - [3]byte{192, 34, 80}: "PRIVATE", - [3]byte{192, 37, 6}: "AVM GmbH", - [3]byte{192, 37, 92}: "Cisco", - [3]byte{192, 39, 185}: "Beijing National Railway Research & Design Institute of Signal & Communication Co., Ltd.", - [3]byte{192, 41, 115}: "Audyssey Laboratories Inc.", - [3]byte{192, 41, 243}: "XySystem", - [3]byte{192, 43, 252}: "iNES. applied informatics GmbH", - [3]byte{192, 44, 122}: "Shen Zhen Horn audio Co., Ltd.", - [3]byte{192, 52, 180}: "Gigastone Corporation", - [3]byte{192, 53, 128}: "A&R TECH", - [3]byte{192, 53, 189}: "Velocytech Aps", - [3]byte{192, 53, 197}: "Prosoft Systems LTD", - [3]byte{192, 56, 150}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{192, 56, 249}: "Nokia Danmark A/S", - [3]byte{192, 59, 143}: "Minicom Digital Signage", - [3]byte{192, 61, 70}: "Shanghai Mochui Network Technology Co., Ltd", - [3]byte{192, 62, 15}: "BSkyB Ltd", - [3]byte{192, 63, 14}: "NETGEAR", - [3]byte{192, 63, 42}: "Biscotti, Inc.", - [3]byte{192, 63, 213}: "Elitegroup Computer Systems Co., LTD", - [3]byte{192, 65, 246}: "LG Electronics Inc", - [3]byte{192, 67, 1}: "Epec Oy", - [3]byte{192, 68, 227}: "Shenzhen Sinkna Electronics Co., LTD", - [3]byte{192, 73, 61}: "MAITRISE TECHNOLOGIQUE", - [3]byte{192, 74, 0}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{192, 77, 247}: "SERELEC", - [3]byte{192, 86, 227}: "Hangzhou Hikvision Digital Technology Co.,Ltd.", - [3]byte{192, 87, 188}: "Avaya, Inc", - [3]byte{192, 88, 167}: "Pico Systems Co., Ltd.", - [3]byte{192, 94, 111}: "V. Stonkaus firma \"Kodinis Raktas\"", - [3]byte{192, 94, 121}: "SHENZHEN HUAXUN ARK TECHNOLOGIES CO.,LTD", - [3]byte{192, 97, 24}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{192, 98, 107}: "CISCO SYSTEMS, INC.", - [3]byte{192, 99, 148}: "Apple", - [3]byte{192, 100, 198}: "Nokia Corporation", - [3]byte{192, 101, 153}: "Samsung Electronics Co.,Ltd", - [3]byte{192, 103, 175}: "Cisco", - [3]byte{192, 108, 15}: "Dobbs Stanford", - [3]byte{192, 108, 109}: "MagneMotion, Inc.", - [3]byte{192, 123, 188}: "Cisco", - [3]byte{192, 126, 64}: "SHENZHEN XDK COMMUNICATION EQUIPMENT CO.,LTD", - [3]byte{192, 129, 112}: "Effigis GeoSolutions", - [3]byte{192, 131, 10}: "2Wire", - [3]byte{192, 132, 122}: "Apple", - [3]byte{192, 136, 91}: "SnD Tech Co., Ltd.", - [3]byte{192, 138, 222}: "Ruckus Wireless", - [3]byte{192, 139, 111}: "S I Sistemas Inteligentes Eletrônicos Ltda", - [3]byte{192, 140, 96}: "Cisco", - [3]byte{192, 145, 50}: "Patriot Memory", - [3]byte{192, 145, 52}: "ProCurve Networking by HP", - [3]byte{192, 152, 121}: "Acer Inc.", - [3]byte{192, 152, 229}: "University of Michigan", - [3]byte{192, 156, 146}: "COBY", - [3]byte{192, 157, 38}: "Topicon HK Lmd.", - [3]byte{192, 159, 66}: "Apple", - [3]byte{192, 160, 187}: "D-Link International", - [3]byte{192, 160, 199}: "FAIRFIELD INDUSTRIES", - [3]byte{192, 160, 222}: "Multi Touch Oy", - [3]byte{192, 160, 226}: "Eden Innovations", - [3]byte{192, 162, 109}: "Abbott Point of Care", - [3]byte{192, 163, 100}: "3D Systems Massachusetts", - [3]byte{192, 163, 158}: "EarthCam, Inc.", - [3]byte{192, 170, 104}: "OSASI Technos Inc.", - [3]byte{192, 172, 84}: "SAGEMCOM", - [3]byte{192, 179, 57}: "Comigo Ltd.", - [3]byte{192, 179, 87}: "Yoshiki Electronics Industry Ltd.", - [3]byte{192, 184, 177}: "BitBox Ltd", - [3]byte{192, 186, 230}: "Application Solutions (Electronics and Vision) Ltd", - [3]byte{192, 189, 66}: "ZPA Smart Energy a.s.", - [3]byte{192, 193, 192}: "Cisco-Linksys, LLC", - [3]byte{192, 195, 182}: "Automatic Systems", - [3]byte{192, 197, 32}: "Ruckus Wireless", - [3]byte{192, 197, 105}: "SHANGHAI LYNUC CNC TECHNOLOGY CO.,LTD", - [3]byte{192, 198, 135}: "Cisco SPVTG", - [3]byte{192, 201, 70}: "MITSUYA LABORATORIES INC.", - [3]byte{192, 203, 56}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{192, 207, 163}: "Creative Electronics & Software, Inc.", - [3]byte{192, 208, 68}: "SAGEMCOM", - [3]byte{192, 217, 98}: "Askey Computer Corp.", - [3]byte{192, 218, 116}: "Hangzhou Sunyard Technology Co., Ltd.", - [3]byte{192, 223, 119}: "Conrad Electronic SE", - [3]byte{192, 228, 34}: "Texas Instruments", - [3]byte{192, 229, 78}: "DENX Computer Systems GmbH", - [3]byte{192, 234, 228}: "Sonicwall", - [3]byte{192, 238, 251}: "OnePlus Tech (Shenzhen) Ltd", - [3]byte{192, 241, 196}: "Pacidal Corporation Ltd.", - [3]byte{192, 242, 251}: "Apple", - [3]byte{192, 247, 157}: "Powercode", - [3]byte{192, 248, 218}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{192, 249, 145}: "GME Standard Communications P/L", - [3]byte{196, 0, 6}: "Lipi Data Systems Ltd.", - [3]byte{196, 1, 66}: "MaxMedia Technology Limited", - [3]byte{196, 1, 124}: "Ruckus Wireless", - [3]byte{196, 1, 177}: "SeekTech INC", - [3]byte{196, 1, 206}: "PRESITION (2000) CO., LTD.", - [3]byte{196, 4, 21}: "NETGEAR INC.,", - [3]byte{196, 5, 40}: "Huawei Technologies Co., Ltd", - [3]byte{196, 8, 74}: "Alcatel-Lucent", - [3]byte{196, 8, 128}: "Shenzhen UTEPO Tech Co., Ltd.", - [3]byte{196, 9, 56}: "Fujian Star-net Communication Co., Ltd", - [3]byte{196, 10, 203}: "CISCO SYSTEMS, INC.", - [3]byte{196, 14, 69}: "ACK Networks,Inc.", - [3]byte{196, 15, 9}: "Hermes electronic GmbH", - [3]byte{196, 16, 138}: "Ruckus Wireless", - [3]byte{196, 20, 60}: "Cisco", - [3]byte{196, 22, 250}: "Prysm Inc", - [3]byte{196, 23, 254}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{196, 25, 139}: "Dominion Voting Systems Corporation", - [3]byte{196, 25, 236}: "Qualisys AB", - [3]byte{196, 30, 206}: "HMI Sources Ltd.", - [3]byte{196, 33, 200}: "KYOCERA Corporation", - [3]byte{196, 35, 122}: "WhizNets Inc.", - [3]byte{196, 36, 46}: "Galvanic Applied Sciences Inc", - [3]byte{196, 38, 40}: "Airo Wireless", - [3]byte{196, 39, 149}: "Technicolor USA Inc.", - [3]byte{196, 41, 29}: "KLEMSAN ELEKTRIK ELEKTRONIK SAN.VE TIC.AS.", - [3]byte{196, 44, 3}: "Apple", - [3]byte{196, 52, 107}: "Hewlett Packard", - [3]byte{196, 54, 218}: "Rusteletech Ltd.", - [3]byte{196, 56, 211}: "TAGATEC CO.,LTD", - [3]byte{196, 57, 58}: "SMC Networks Inc", - [3]byte{196, 58, 159}: "Siconix Inc.", - [3]byte{196, 60, 60}: "CYBELEC SA", - [3]byte{196, 61, 199}: "NETGEAR", - [3]byte{196, 66, 2}: "Samsung Electronics Co.,Ltd", - [3]byte{196, 67, 143}: "LG Electronics", - [3]byte{196, 69, 103}: "SAMBON PRECISON and ELECTRONICS", - [3]byte{196, 69, 236}: "Shanghai Yali Electron Co.,LTD", - [3]byte{196, 70, 25}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{196, 72, 56}: "Satcom Direct, Inc.", - [3]byte{196, 74, 208}: "FIREFLIES SYSTEMS", - [3]byte{196, 75, 68}: "Omniprint Inc.", - [3]byte{196, 75, 209}: "Wallys Communications Teachnologies Co.,Ltd.", - [3]byte{196, 78, 31}: "BlueN", - [3]byte{196, 78, 172}: "Shenzhen Shiningworth Technology Co., Ltd.", - [3]byte{196, 80, 6}: "Samsung Electronics Co.,Ltd", - [3]byte{196, 84, 68}: "QUANTA COMPUTER INC.", - [3]byte{196, 85, 166}: "Cadac Holdings Ltd", - [3]byte{196, 85, 194}: "Bach-Simpson", - [3]byte{196, 86, 0}: "Galleon Embedded Computing", - [3]byte{196, 86, 254}: "Lava International Ltd.", - [3]byte{196, 87, 110}: "Samsung Electronics Co.,LTD", - [3]byte{196, 88, 194}: "Shenzhen TATFOOK Technology Co., Ltd.", - [3]byte{196, 89, 118}: "Fugoo Coorporation", - [3]byte{196, 93, 216}: "HDMI Forum", - [3]byte{196, 96, 68}: "Everex Electronics Limited", - [3]byte{196, 98, 107}: "ZPT Vigantice", - [3]byte{196, 98, 234}: "Samsung Electronics Co.,Ltd", - [3]byte{196, 99, 84}: "U-Raku, Inc.", - [3]byte{196, 100, 19}: "CISCO SYSTEMS, INC.", - [3]byte{196, 103, 181}: "Libratone A/S", - [3]byte{196, 106, 183}: "Xiaomi Technology,Inc.", - [3]byte{196, 107, 180}: "myIDkey", - [3]byte{196, 109, 241}: "DataGravity", - [3]byte{196, 110, 31}: "TP-LINK TECHNOLOGIES CO.,LTD", - [3]byte{196, 113, 48}: "Fon Technology S.L.", - [3]byte{196, 113, 254}: "CISCO SYSTEMS, INC.", - [3]byte{196, 115, 30}: "Samsung Eletronics Co., Ltd", - [3]byte{196, 123, 47}: "Beijing JoinHope Image Technology Ltd.", - [3]byte{196, 123, 163}: "NAVIS Inc.", - [3]byte{196, 125, 79}: "CISCO SYSTEMS, INC.", - [3]byte{196, 125, 204}: "Motorola Solutions Inc.", - [3]byte{196, 125, 254}: "A.N. Solutions GmbH", - [3]byte{196, 127, 81}: "Inventek Systems", - [3]byte{196, 130, 63}: "Fujian Newland Auto-ID Tech. Co,.Ltd.", - [3]byte{196, 130, 78}: "Changzhou Uchip Electronics Co., LTD.", - [3]byte{196, 133, 8}: "Intel Corporate", - [3]byte{196, 136, 229}: "Samsung Electronics Co.,Ltd", - [3]byte{196, 145, 58}: "Shenzhen Sanland Electronic Co., ltd.", - [3]byte{196, 147, 0}: "8Devices", - [3]byte{196, 147, 19}: "100fio networks technology llc", - [3]byte{196, 147, 128}: "Speedytel technology", - [3]byte{196, 149, 162}: "SHENZHEN WEIJIU INDUSTRY AND TRADE DEVELOPMENT CO., LTD", - [3]byte{196, 152, 5}: "Minieum Networks, Inc", - [3]byte{196, 168, 29}: "D-Link International", - [3]byte{196, 170, 161}: "SUMMIT DEVELOPMENT, spol.s r.o.", - [3]byte{196, 173, 33}: "MEDIAEDGE Corporation", - [3]byte{196, 181, 18}: "General Electric Digital Energy", - [3]byte{196, 186, 153}: "I+ME Actia Informatik und Mikro-Elektronik GmbH", - [3]byte{196, 189, 106}: "SKF GmbH", - [3]byte{196, 190, 132}: "Texas Instruments.", - [3]byte{196, 192, 174}: "MIDORI ELECTRONIC CO., LTD.", - [3]byte{196, 193, 159}: "National Oilwell Varco Instrumentation, Monitoring, and Optimization (NOV IMO)", - [3]byte{196, 199, 85}: "Beijing HuaqinWorld Technology Co.,Ltd", - [3]byte{196, 201, 25}: "Energy Imports Ltd", - [3]byte{196, 201, 236}: "D&D GROUP sp. z o.o.", - [3]byte{196, 202, 217}: "Hangzhou H3C Technologies Co., Limited", - [3]byte{196, 205, 69}: "Beijing Boomsense Technology CO.,LTD.", - [3]byte{196, 212, 137}: "JiangSu Joyque Information Industry Co.,Ltd", - [3]byte{196, 214, 85}: "Tercel technology co.,ltd", - [3]byte{196, 217, 135}: "Intel Corporate", - [3]byte{196, 218, 38}: "NOBLEX SA", - [3]byte{196, 224, 50}: "IEEE 1904.1 Working Group", - [3]byte{196, 225, 124}: "U2S co.", - [3]byte{196, 231, 190}: "SCSpro Co.,Ltd", - [3]byte{196, 233, 47}: "AB Sciex", - [3]byte{196, 233, 132}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{196, 235, 227}: "RRCN SAS", - [3]byte{196, 237, 186}: "Texas Instruments", - [3]byte{196, 238, 174}: "VSS Monitoring", - [3]byte{196, 238, 245}: "Oclaro, Inc.", - [3]byte{196, 244, 100}: "Spica international", - [3]byte{196, 245, 124}: "Brocade Communications Systems, Inc.", - [3]byte{196, 252, 228}: "DishTV NZ Ltd", - [3]byte{200, 2, 16}: "LG Innotek", - [3]byte{200, 2, 88}: "ITW GSE ApS", - [3]byte{200, 2, 166}: "Beijing Newmine Technology", - [3]byte{200, 7, 24}: "TDSi", - [3]byte{200, 10, 169}: "Quanta Computer Inc.", - [3]byte{200, 14, 119}: "Le Shi Zhi Xin Electronic Technology (Tianjin) Co.,Ltd", - [3]byte{200, 14, 149}: "OmniLync Inc.", - [3]byte{200, 20, 121}: "Samsung Electronics Co.,Ltd", - [3]byte{200, 22, 189}: "HISENSE ELECTRIC CO.,LTD.", - [3]byte{200, 25, 247}: "Samsung Electronics Co.,Ltd", - [3]byte{200, 26, 254}: "DLOGIC GmbH", - [3]byte{200, 27, 107}: "Innova Security", - [3]byte{200, 30, 142}: "ADV Security (S) Pte Ltd", - [3]byte{200, 31, 102}: "Dell Inc", - [3]byte{200, 32, 142}: "Storagedata", - [3]byte{200, 41, 42}: "Barun Electronics", - [3]byte{200, 42, 20}: "Apple", - [3]byte{200, 46, 148}: "Halfa Enterprise Co., Ltd.", - [3]byte{200, 49, 104}: "eZEX corporation", - [3]byte{200, 50, 50}: "Hunting Innova", - [3]byte{200, 51, 75}: "Apple", - [3]byte{200, 53, 184}: "Ericsson, EAB/RWI/K", - [3]byte{200, 58, 53}: "Tenda Technology Co., Ltd.", - [3]byte{200, 59, 69}: "JRI-Maxant", - [3]byte{200, 61, 151}: "Nokia Corporation", - [3]byte{200, 62, 153}: "Texas Instruments", - [3]byte{200, 62, 167}: "KUNBUS GmbH", - [3]byte{200, 69, 41}: "IMK Networks Co.,Ltd", - [3]byte{200, 69, 68}: "Shanghai Enlogic Electric Technology Co., Ltd.", - [3]byte{200, 72, 245}: "MEDISON Xray Co., Ltd", - [3]byte{200, 76, 117}: "CISCO SYSTEMS, INC.", - [3]byte{200, 86, 69}: "Intermas France", - [3]byte{200, 86, 99}: "Sunflex Europe GmbH", - [3]byte{200, 96, 0}: "ASUSTek COMPUTER INC.", - [3]byte{200, 100, 199}: "zte corporation", - [3]byte{200, 108, 30}: "Display Systems Ltd", - [3]byte{200, 108, 135}: "Zyxel Communications Corp", - [3]byte{200, 108, 182}: "Optcom Co., Ltd.", - [3]byte{200, 111, 29}: "Apple", - [3]byte{200, 114, 72}: "Aplicom Oy", - [3]byte{200, 123, 91}: "zte corporation", - [3]byte{200, 124, 188}: "Valink Co., Ltd.", - [3]byte{200, 125, 119}: "Shenzhen Kingtech Communication Equipment Co.,Ltd", - [3]byte{200, 126, 117}: "Samsung Electronics Co.,Ltd", - [3]byte{200, 132, 57}: "Sunrise Technologies", - [3]byte{200, 132, 71}: "Beautiful Enterprise Co., Ltd", - [3]byte{200, 133, 80}: "Apple", - [3]byte{200, 135, 59}: "Net Optics", - [3]byte{200, 138, 131}: "Dongguan HuaHong Electronics Co.,Ltd", - [3]byte{200, 139, 71}: "Nolangroup S.P.A con Socio Unico", - [3]byte{200, 144, 62}: "Pakton Technologies", - [3]byte{200, 145, 249}: "SAGEMCOM", - [3]byte{200, 147, 70}: "MXCHIP Company Limited", - [3]byte{200, 147, 131}: "Embedded Automation, Inc.", - [3]byte{200, 148, 210}: "Jiangsu Datang Electronic Products Co., Ltd", - [3]byte{200, 151, 159}: "Nokia Corporation", - [3]byte{200, 156, 29}: "CISCO SYSTEMS, INC.", - [3]byte{200, 156, 220}: "ELITEGROUP COMPUTER SYSTEM CO., LTD.", - [3]byte{200, 159, 29}: "SHENZHEN COMMUNICATION TECHNOLOGIES CO.,LTD", - [3]byte{200, 159, 66}: "VDII Innovation AB", - [3]byte{200, 160, 48}: "Texas Instruments", - [3]byte{200, 161, 182}: "Shenzhen Longway Technologies Co., Ltd", - [3]byte{200, 161, 186}: "Neul Ltd", - [3]byte{200, 166, 32}: "Nebula, Inc", - [3]byte{200, 167, 10}: "Verizon Business", - [3]byte{200, 167, 41}: "SYStronics Co., Ltd.", - [3]byte{200, 170, 33}: "ARRIS Group, Inc.", - [3]byte{200, 170, 204}: "PRIVATE", - [3]byte{200, 174, 156}: "Shanghai TYD Elecronic Technology Co. Ltd", - [3]byte{200, 175, 64}: "marco Systemanalyse und Entwicklung GmbH", - [3]byte{200, 179, 115}: "Cisco-Linksys, LLC", - [3]byte{200, 181, 183}: "Apple", - [3]byte{200, 186, 148}: "Samsung Electro Mechanics co., LTD.", - [3]byte{200, 187, 211}: "Embrane", - [3]byte{200, 188, 200}: "Apple", - [3]byte{200, 190, 25}: "D-Link International", - [3]byte{200, 193, 38}: "ZPM Industria e Comercio Ltda", - [3]byte{200, 193, 60}: "RuggedTek Hangzhou Co., Ltd", - [3]byte{200, 199, 145}: "Zero1.tv GmbH", - [3]byte{200, 203, 184}: "Hewlett Packard", - [3]byte{200, 205, 114}: "SAGEMCOM", - [3]byte{200, 208, 25}: "Shanghai Tigercel Communication Technology Co.,Ltd", - [3]byte{200, 209, 11}: "Nokia Corporation", - [3]byte{200, 209, 94}: "Huawei Technologies Co., Ltd", - [3]byte{200, 209, 209}: "AGAiT Technology Corporation", - [3]byte{200, 210, 193}: "Jetlun (Shenzhen) Corporation", - [3]byte{200, 211, 163}: "D-Link International", - [3]byte{200, 212, 41}: "Muehlbauer AG", - [3]byte{200, 213, 144}: "FLIGHT DATA SYSTEMS", - [3]byte{200, 213, 254}: "Shenzhen Zowee Technology Co., Ltd", - [3]byte{200, 215, 25}: "Cisco Consumer Products, LLC", - [3]byte{200, 221, 201}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{200, 222, 81}: "Integra Networks, Inc.", - [3]byte{200, 223, 124}: "Nokia Corporation", - [3]byte{200, 224, 235}: "Apple", - [3]byte{200, 225, 167}: "Vertu Corporation Limited", - [3]byte{200, 228, 47}: "Technical Research Design and Development", - [3]byte{200, 231, 216}: "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", - [3]byte{200, 238, 8}: "TANGTOP TECHNOLOGY CO.,LTD", - [3]byte{200, 238, 117}: "Pishion International Co. Ltd", - [3]byte{200, 238, 166}: "Shenzhen SHX Technology Co., Ltd", - [3]byte{200, 239, 46}: "Beijing Gefei Tech. Co., Ltd", - [3]byte{200, 243, 107}: "Yamato Scale Co.,Ltd.", - [3]byte{200, 243, 134}: "Shenzhen Xiaoniao Technology Co.,Ltd", - [3]byte{200, 244, 6}: "Avaya, Inc", - [3]byte{200, 246, 80}: "Apple", - [3]byte{200, 246, 141}: "S.E.TECHNOLOGIES LIMITED", - [3]byte{200, 247, 4}: "Building Block Video", - [3]byte{200, 247, 51}: "Intel Corporate", - [3]byte{200, 249, 129}: "Seneca s.r.l.", - [3]byte{200, 249, 249}: "CISCO SYSTEMS, INC.", - [3]byte{200, 251, 38}: "Cisco SPVTG", - [3]byte{200, 254, 48}: "Bejing DAYO Mobile Communication Technology Ltd.", - [3]byte{200, 255, 119}: "Dyson Limited", - [3]byte{204, 0, 128}: "BETTINI SRL", - [3]byte{204, 3, 250}: "Technicolor CH USA", - [3]byte{204, 4, 124}: "G-WAY Microwave", - [3]byte{204, 4, 180}: "Select Comfort", - [3]byte{204, 5, 27}: "Samsung Electronics Co.,Ltd", - [3]byte{204, 7, 171}: "Samsung Electronics Co.,Ltd", - [3]byte{204, 7, 228}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{204, 8, 224}: "Apple", - [3]byte{204, 9, 200}: "IMAQLIQ LTD", - [3]byte{204, 12, 218}: "Miljovakt AS", - [3]byte{204, 13, 236}: "Cisco SPVTG", - [3]byte{204, 16, 163}: "Beijing Nan Bao Technology Co., Ltd.", - [3]byte{204, 20, 166}: "Yichun MyEnergy Domain, Inc", - [3]byte{204, 24, 123}: "Manzanita Systems, Inc.", - [3]byte{204, 26, 250}: "zte corporation", - [3]byte{204, 30, 255}: "Metrological Group BV", - [3]byte{204, 34, 24}: "InnoDigital Co., Ltd.", - [3]byte{204, 38, 45}: "Verifi, LLC", - [3]byte{204, 42, 128}: "Micro-Biz intelligence solutions Co.,Ltd", - [3]byte{204, 45, 140}: "LG ELECTRONICS INC", - [3]byte{204, 48, 128}: "VAIO Corporation", - [3]byte{204, 51, 187}: "SAGEMCOM SAS", - [3]byte{204, 52, 41}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{204, 52, 215}: "GEWISS S.P.A.", - [3]byte{204, 53, 64}: "Technicolor USA Inc.", - [3]byte{204, 57, 140}: "Shiningtek", - [3]byte{204, 58, 97}: "SAMSUNG ELECTRO MECHANICS CO., LTD.", - [3]byte{204, 60, 63}: "SA.S.S. Datentechnik AG", - [3]byte{204, 61, 130}: "Intel Corporate", - [3]byte{204, 62, 95}: "Hewlett Packard", - [3]byte{204, 63, 29}: "Intesis Software SL", - [3]byte{204, 67, 227}: "Trump s.a.", - [3]byte{204, 71, 3}: "Intercon Systems Co., Ltd.", - [3]byte{204, 74, 225}: "Fourtec -Fourier Technologies", - [3]byte{204, 75, 251}: "Hellberg Safety AB", - [3]byte{204, 78, 36}: "Brocade Communications Systems, Inc.", - [3]byte{204, 80, 28}: "KVH Industries, Inc.", - [3]byte{204, 80, 118}: "Ocom Communications, Inc.", - [3]byte{204, 82, 175}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{204, 83, 181}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{204, 84, 89}: "OnTime Networks AS", - [3]byte{204, 85, 173}: "RIM", - [3]byte{204, 89, 62}: "TOUMAZ LTD", - [3]byte{204, 92, 117}: "Weightech Com. Imp. Exp. Equip. Pesagem Ltda", - [3]byte{204, 93, 78}: "ZyXEL Communications Corporation", - [3]byte{204, 93, 87}: "Information System Research Institute,Inc.", - [3]byte{204, 96, 187}: "Empower RF Systems", - [3]byte{204, 101, 173}: "ARRIS Group, Inc.", - [3]byte{204, 105, 176}: "Global Traffic Technologies, LLC", - [3]byte{204, 107, 152}: "Minetec Wireless Technologies", - [3]byte{204, 107, 241}: "Sound Masking Inc.", - [3]byte{204, 109, 160}: "Roku, Inc.", - [3]byte{204, 109, 239}: "TJK Tietolaite Oy", - [3]byte{204, 114, 15}: "Viscount Systems Inc.", - [3]byte{204, 116, 152}: "Filmetrics Inc.", - [3]byte{204, 118, 105}: "SEETECH", - [3]byte{204, 120, 95}: "Apple", - [3]byte{204, 122, 48}: "CMAX Wireless Co., Ltd.", - [3]byte{204, 123, 53}: "zte corporation", - [3]byte{204, 125, 55}: "ARRIS Group, Inc.", - [3]byte{204, 126, 231}: "Panasonic AVC Networks Company", - [3]byte{204, 133, 108}: "SHENZHEN MDK DIGITAL TECHNOLOGY CO.,LTD", - [3]byte{204, 137, 253}: "Nokia Corporation", - [3]byte{204, 140, 227}: "Texas Instruments", - [3]byte{204, 144, 147}: "Hansong Tehnologies", - [3]byte{204, 145, 43}: "TE Connectivity Touch Solutions", - [3]byte{204, 148, 74}: "Pfeiffer Vacuum GmbH", - [3]byte{204, 149, 215}: "VIZIO, Inc", - [3]byte{204, 150, 160}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{204, 158, 0}: "Nintendo Co., Ltd.", - [3]byte{204, 159, 53}: "Transbit Sp. z o.o.", - [3]byte{204, 160, 229}: "DZG Metering GmbH", - [3]byte{204, 162, 35}: "Huawei Technologies Co., Ltd", - [3]byte{204, 163, 116}: "Guangdong Guanglian Electronic Technology Co.Ltd", - [3]byte{204, 164, 98}: "ARRIS Group, Inc.", - [3]byte{204, 166, 20}: "AIFA TECHNOLOGY CORP.", - [3]byte{204, 175, 120}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{204, 178, 85}: "D-Link International", - [3]byte{204, 179, 248}: "FUJITSU ISOTEC LIMITED", - [3]byte{204, 181, 90}: "Fraunhofer ITWM", - [3]byte{204, 182, 145}: "NECMagnusCommunications", - [3]byte{204, 184, 136}: "AnB Securite s.a.", - [3]byte{204, 184, 241}: "EAGLE KINGDOM TECHNOLOGIES LIMITED", - [3]byte{204, 189, 53}: "Steinel GmbH", - [3]byte{204, 189, 211}: "Ultimaker B.V.", - [3]byte{204, 190, 113}: "OptiLogix BV", - [3]byte{204, 193, 4}: "Applied Technical Systems", - [3]byte{204, 195, 234}: "Motorola Mobility LLC", - [3]byte{204, 197, 10}: "SHENZHEN DAJIAHAO TECHNOLOGY CO.,LTD", - [3]byte{204, 198, 43}: "Tri-Systems Corporation", - [3]byte{204, 200, 215}: "CIAS Elettronica srl", - [3]byte{204, 204, 78}: "Sun Fountainhead USA. Corp", - [3]byte{204, 204, 129}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{204, 205, 100}: "SM-Electronic GmbH", - [3]byte{204, 206, 64}: "Janteq Corp", - [3]byte{204, 210, 155}: "Shenzhen Bopengfa Elec&Technology CO.,Ltd", - [3]byte{204, 213, 57}: "Cisco", - [3]byte{204, 216, 17}: "Aiconn Technology Corporation", - [3]byte{204, 216, 193}: "Cisco", - [3]byte{204, 217, 233}: "SCR Engineers Ltd.", - [3]byte{204, 225, 127}: "juniper networks", - [3]byte{204, 225, 213}: "Buffalo Inc.", - [3]byte{204, 231, 152}: "My Social Stuff", - [3]byte{204, 231, 223}: "American Magnetics, Inc.", - [3]byte{204, 232, 172}: "SOYEA Technology Co.,Ltd.", - [3]byte{204, 234, 28}: "DCONWORKS Co., Ltd", - [3]byte{204, 238, 217}: "Deto Mechatronic GmbH", - [3]byte{204, 239, 72}: "CISCO SYSTEMS, INC.", - [3]byte{204, 243, 165}: "Chi Mei Communication Systems, Inc", - [3]byte{204, 244, 7}: "EUKREA ELECTROMATIQUE SARL", - [3]byte{204, 245, 56}: "3isysnetworks", - [3]byte{204, 246, 122}: "Ayecka Communication Systems LTD", - [3]byte{204, 248, 65}: "Lumewave", - [3]byte{204, 248, 240}: "Xi'an HISU Multimedia Technology Co.,Ltd.", - [3]byte{204, 249, 84}: "Avaya, Inc", - [3]byte{204, 249, 232}: "Samsung Electronics Co.,Ltd", - [3]byte{204, 250, 0}: "LG Electronics", - [3]byte{204, 251, 101}: "Nintendo Co., Ltd.", - [3]byte{204, 252, 109}: "RIZ TRANSMITTERS", - [3]byte{204, 252, 177}: "Wireless Technology, Inc.", - [3]byte{204, 254, 60}: "Samsung Electronics", - [3]byte{208, 7, 144}: "Texas Instruments", - [3]byte{208, 10, 171}: "Yokogawa Digital Computer Corporation", - [3]byte{208, 14, 164}: "Porsche Cars North America", - [3]byte{208, 18, 66}: "BIOS Corporation", - [3]byte{208, 19, 30}: "Sunrex Technology Corp", - [3]byte{208, 21, 74}: "zte corporation", - [3]byte{208, 23, 106}: "Samsung Electronics Co.,Ltd", - [3]byte{208, 26, 167}: "UniPrint", - [3]byte{208, 28, 187}: "Beijing Ctimes Digital Technology Co., Ltd.", - [3]byte{208, 34, 18}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{208, 34, 190}: "Samsung Electro Mechanics co.,LTD.", - [3]byte{208, 35, 219}: "Apple", - [3]byte{208, 39, 136}: "Hon Hai Precision Ind.Co.Ltd", - [3]byte{208, 44, 69}: "littleBits Electronics, Inc.", - [3]byte{208, 45, 179}: "Huawei Technologies Co., Ltd", - [3]byte{208, 49, 16}: "Ingenic Semiconductor Co.,Ltd", - [3]byte{208, 55, 97}: "Texas Instruments", - [3]byte{208, 57, 114}: "Texas Instruments", - [3]byte{208, 57, 179}: "ARRIS Group, Inc.", - [3]byte{208, 70, 220}: "Southwest Research Institute", - [3]byte{208, 76, 193}: "SINTRONES Technology Corp.", - [3]byte{208, 79, 126}: "Apple", - [3]byte{208, 80, 153}: "ASRock Incorporation", - [3]byte{208, 81, 98}: "Sony Mobile Communications AB", - [3]byte{208, 82, 168}: "Physical Graph Corporation", - [3]byte{208, 84, 45}: "Cambridge Industries(Group) Co.,Ltd.", - [3]byte{208, 87, 76}: "CISCO SYSTEMS, INC.", - [3]byte{208, 87, 133}: "Pantech Co., Ltd.", - [3]byte{208, 87, 161}: "Werma Signaltechnik GmbH & Co. KG", - [3]byte{208, 88, 117}: "Active Control Technology Inc.", - [3]byte{208, 89, 195}: "CeraMicro Technology Corporation", - [3]byte{208, 89, 228}: "Samsung Electronics Co.,Ltd", - [3]byte{208, 90, 15}: "I-BT DIGITAL CO.,LTD", - [3]byte{208, 90, 241}: "Shenzhen Pulier Tech CO.,Ltd", - [3]byte{208, 91, 168}: "zte corporation", - [3]byte{208, 95, 184}: "Texas Instruments", - [3]byte{208, 95, 206}: "Hitachi Data Systems", - [3]byte{208, 98, 160}: "China Essence Technology (Zhumadian) Co., Ltd.", - [3]byte{208, 99, 77}: "Meiko Maschinenbau GmbH & Co. KG", - [3]byte{208, 99, 180}: "SolidRun Ltd.", - [3]byte{208, 102, 123}: "Samsung Electronics Co., LTD", - [3]byte{208, 103, 229}: "Dell Inc", - [3]byte{208, 105, 158}: "LUMINEX Lighting Control Equipment", - [3]byte{208, 105, 208}: "Verto Medical Solutions, LLC", - [3]byte{208, 114, 220}: "Cisco", - [3]byte{208, 115, 127}: "Mini-Circuits", - [3]byte{208, 115, 142}: "DONG OH PRECISION CO., LTD.", - [3]byte{208, 115, 213}: "LIFI LABS MANAGEMENT PTY LTD", - [3]byte{208, 117, 190}: "Reno A&E", - [3]byte{208, 118, 80}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{208, 122, 181}: "Huawei Technologies Co., Ltd", - [3]byte{208, 125, 229}: "Forward Pay Systems, Inc.", - [3]byte{208, 126, 40}: "Hewlett Packard", - [3]byte{208, 126, 53}: "Intel Corporate", - [3]byte{208, 132, 176}: "Sagemcom", - [3]byte{208, 137, 153}: "APCON, Inc.", - [3]byte{208, 138, 85}: "Skullcandy", - [3]byte{208, 139, 126}: "Passif Semiconductor", - [3]byte{208, 140, 181}: "Texas Instruments", - [3]byte{208, 140, 255}: "UPWIS AB", - [3]byte{208, 147, 248}: "Stonestreet One LLC", - [3]byte{208, 149, 199}: "Pantech Co., Ltd.", - [3]byte{208, 155, 5}: "Emtronix", - [3]byte{208, 156, 48}: "Foster Electric Company, Limited", - [3]byte{208, 157, 10}: "LINKCOM", - [3]byte{208, 160, 214}: "Chengdu TD Tech Ltd.", - [3]byte{208, 163, 17}: "Neuberger Gebäudeautomation GmbH", - [3]byte{208, 174, 236}: "Alpha Networks Inc.", - [3]byte{208, 175, 182}: "Linktop Technology Co., LTD", - [3]byte{208, 179, 63}: "SHENZHEN TINNO MOBILE TECHNOLOGY CO.,LTD.", - [3]byte{208, 180, 152}: "Robert Bosch LLC Automotive Electronics", - [3]byte{208, 181, 35}: "Bestcare Cloucal Corp.", - [3]byte{208, 181, 61}: "SEPRO ROBOTIQUE", - [3]byte{208, 187, 128}: "SHL Telemedicine International Ltd.", - [3]byte{208, 189, 1}: "DS International", - [3]byte{208, 190, 44}: "CNSLink Co., Ltd.", - [3]byte{208, 193, 177}: "Samsung Electronics Co.,Ltd", - [3]byte{208, 194, 130}: "CISCO SYSTEMS, INC.", - [3]byte{208, 196, 47}: "Tamagawa Seiki Co.,Ltd.", - [3]byte{208, 199, 137}: "Cisco", - [3]byte{208, 199, 192}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{208, 205, 225}: "Scientech Electronics", - [3]byte{208, 207, 94}: "Energy Micro AS", - [3]byte{208, 208, 253}: "CISCO SYSTEMS, INC.", - [3]byte{208, 210, 18}: "K2NET Co.,Ltd.", - [3]byte{208, 210, 134}: "Beckman Coulter K.K.", - [3]byte{208, 211, 252}: "Mios, Ltd.", - [3]byte{208, 212, 18}: "ADB Broadband Italia", - [3]byte{208, 212, 113}: "MVTECH co., Ltd", - [3]byte{208, 214, 204}: "Wintop", - [3]byte{208, 219, 50}: "Nokia Corporation", - [3]byte{208, 223, 154}: "Liteon Technology Corporation", - [3]byte{208, 223, 178}: "Genie Networks Limited", - [3]byte{208, 223, 199}: "Samsung Electronics Co.,Ltd", - [3]byte{208, 225, 64}: "Apple, Inc", - [3]byte{208, 227, 71}: "Yoga", - [3]byte{208, 228, 11}: "Wearable Inc.", - [3]byte{208, 229, 77}: "Pace plc", - [3]byte{208, 231, 130}: "Azurewave Technologies, Inc.", - [3]byte{208, 235, 3}: "Zhehua technology limited", - [3]byte{208, 235, 158}: "Seowoo Inc.", - [3]byte{208, 240, 219}: "Ericsson", - [3]byte{208, 242, 127}: "SteadyServ Technoligies, LLC", - [3]byte{208, 247, 59}: "Helmut Mauell GmbH", - [3]byte{208, 250, 29}: "Qihoo 360 Technology Co.,Ltd", - [3]byte{208, 255, 80}: "Texas Instruments, Inc", - [3]byte{212, 0, 13}: "Phoenix Broadband Technologies, LLC.", - [3]byte{212, 0, 87}: "MC Technologies GmbH", - [3]byte{212, 1, 41}: "Broadcom Corporation", - [3]byte{212, 1, 109}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{212, 2, 74}: "Delphian Systems LLC", - [3]byte{212, 11, 185}: "Solid Semecs bv.", - [3]byte{212, 15, 178}: "Applied Micro Electronics AME bv", - [3]byte{212, 16, 144}: "iNFORM Systems AG", - [3]byte{212, 16, 207}: "Huanshun Network Science and Technology Co., Ltd.", - [3]byte{212, 17, 214}: "ShotSpotter, Inc.", - [3]byte{212, 18, 150}: "Anobit Technologies Ltd.", - [3]byte{212, 18, 187}: "Quadrant Components Inc. Ltd", - [3]byte{212, 19, 111}: "Asia Pacific Brands", - [3]byte{212, 28, 28}: "RCF S.P.A.", - [3]byte{212, 30, 53}: "TOHO Electronics INC.", - [3]byte{212, 31, 12}: "TVI Vision Oy", - [3]byte{212, 32, 109}: "HTC Corporation", - [3]byte{212, 33, 34}: "Sercomm Corporation", - [3]byte{212, 34, 63}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{212, 34, 78}: "Alcatel Lucent", - [3]byte{212, 39, 81}: "Infopia Co., Ltd", - [3]byte{212, 40, 178}: "ioBridge, Inc.", - [3]byte{212, 41, 234}: "Zimory GmbH", - [3]byte{212, 44, 61}: "Sky Light Digital Limited", - [3]byte{212, 47, 35}: "Akenori PTE Ltd", - [3]byte{212, 49, 157}: "Sinwatec", - [3]byte{212, 50, 102}: "Fike Corporation", - [3]byte{212, 55, 215}: "zte corporation", - [3]byte{212, 58, 101}: "IGRS Engineering Lab Ltd.", - [3]byte{212, 58, 233}: "DONGGUAN ipt INDUSTRIAL CO., LTD", - [3]byte{212, 61, 103}: "Carma Industries Inc.", - [3]byte{212, 61, 126}: "Micro-Star Int'l Co, Ltd", - [3]byte{212, 67, 168}: "Changzhou Haojie Electric Co., Ltd.", - [3]byte{212, 75, 94}: "TAIYO YUDEN CO., LTD.", - [3]byte{212, 76, 36}: "Vuppalamritha Magnetic Components LTD", - [3]byte{212, 76, 156}: "Shenzhen YOOBAO Technology Co.Ltd", - [3]byte{212, 76, 167}: "Informtekhnika & Communication, LLC", - [3]byte{212, 79, 128}: "Kemper Digital GmbH", - [3]byte{212, 80, 122}: "CEIVA Logic, Inc", - [3]byte{212, 82, 81}: "IBT Ingenieurbureau Broennimann Thun", - [3]byte{212, 82, 151}: "nSTREAMS Technologies, Inc.", - [3]byte{212, 83, 175}: "VIGO System S.A.", - [3]byte{212, 90, 178}: "Galleon Systems", - [3]byte{212, 92, 112}: "Wi-Fi Alliance", - [3]byte{212, 93, 66}: "Nokia Corporation", - [3]byte{212, 97, 50}: "Pro Concept Manufacturer Co.,Ltd.", - [3]byte{212, 100, 247}: "CHENGDU USEE DIGITAL TECHNOLOGY CO., LTD", - [3]byte{212, 102, 168}: "Riedo Networks GmbH", - [3]byte{212, 103, 97}: "SAHAB TECHNOLOGY", - [3]byte{212, 103, 231}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{212, 104, 103}: "Neoventus Design Group", - [3]byte{212, 106, 145}: "Snap AV", - [3]byte{212, 106, 168}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{212, 108, 191}: "Goodrich ISR", - [3]byte{212, 108, 218}: "CSM GmbH", - [3]byte{212, 110, 92}: "Huawei Technologies Co., Ltd", - [3]byte{212, 111, 66}: "WAXESS USA Inc", - [3]byte{212, 121, 195}: "Cameronet GmbH & Co. KG", - [3]byte{212, 123, 53}: "NEO Monitors AS", - [3]byte{212, 123, 117}: "HARTING Electronics GmbH", - [3]byte{212, 129, 202}: "iDevices, LLC", - [3]byte{212, 130, 62}: "Argosy Technologies, Ltd.", - [3]byte{212, 133, 100}: "Hewlett-Packard Company", - [3]byte{212, 135, 216}: "Samsung Electronics", - [3]byte{212, 136, 144}: "Samsung Electronics Co.,Ltd", - [3]byte{212, 140, 181}: "CISCO SYSTEMS, INC.", - [3]byte{212, 141, 217}: "Meld Technology, Inc", - [3]byte{212, 143, 51}: "Microsoft Corporation", - [3]byte{212, 143, 170}: "Sogecam Industrial, S.A.", - [3]byte{212, 145, 175}: "Electroacustica General Iberica, S.A.", - [3]byte{212, 147, 152}: "Nokia Corporation", - [3]byte{212, 147, 160}: "Fidelix Oy", - [3]byte{212, 148, 90}: "COSMO CO., LTD", - [3]byte{212, 148, 161}: "Texas Instruments", - [3]byte{212, 149, 36}: "Clover Network, Inc.", - [3]byte{212, 150, 223}: "SUNGJIN C&T CO.,LTD", - [3]byte{212, 151, 11}: "XIAOMI CORPORATION", - [3]byte{212, 154, 32}: "Apple", - [3]byte{212, 156, 40}: "JayBird Gear LLC", - [3]byte{212, 156, 142}: "University of FUKUI", - [3]byte{212, 158, 109}: "Wuhan Zhongyuan Huadian Science & Technology Co.,", - [3]byte{212, 160, 42}: "CISCO SYSTEMS, INC.", - [3]byte{212, 164, 37}: "SMAX Technology Co., Ltd.", - [3]byte{212, 164, 153}: "InView Technology Corporation", - [3]byte{212, 169, 40}: "GreenWave Reality Inc", - [3]byte{212, 170, 255}: "MICRO WORLD", - [3]byte{212, 172, 78}: "BODi rS, LLC", - [3]byte{212, 173, 45}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{212, 174, 82}: "Dell Inc", - [3]byte{212, 177, 16}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{212, 180, 62}: "Messcomp Datentechnik GmbH", - [3]byte{212, 190, 217}: "Dell Inc", - [3]byte{212, 191, 45}: "SE Controls Asia Pacific Ltd", - [3]byte{212, 191, 127}: "UPVEL", - [3]byte{212, 193, 252}: "Nokia Corporation", - [3]byte{212, 199, 102}: "Acentic GmbH", - [3]byte{212, 201, 239}: "Hewlett Packard", - [3]byte{212, 202, 109}: "Routerboard.com", - [3]byte{212, 202, 110}: "u-blox AG", - [3]byte{212, 203, 175}: "Nokia Corporation", - [3]byte{212, 206, 184}: "Enatel LTD", - [3]byte{212, 207, 249}: "Shenzhen Sen5 Technology Co., Ltd.", - [3]byte{212, 209, 132}: "ADB Broadband Italia", - [3]byte{212, 210, 73}: "Power Ethernet", - [3]byte{212, 213, 13}: "Southwest Microwave, Inc", - [3]byte{212, 215, 72}: "CISCO SYSTEMS, INC.", - [3]byte{212, 216, 152}: "Korea CNO Tech Co., Ltd", - [3]byte{212, 217, 25}: "GoPro", - [3]byte{212, 223, 87}: "Alpinion Medical Systems", - [3]byte{212, 224, 142}: "ValueHD Corporation", - [3]byte{212, 227, 44}: "S. Siedle & Sohne", - [3]byte{212, 227, 63}: "Alcatel-Lucent", - [3]byte{212, 232, 178}: "Samsung Electronics", - [3]byte{212, 234, 14}: "Avaya, Inc", - [3]byte{212, 236, 12}: "Harley-Davidson Motor Company", - [3]byte{212, 236, 134}: "LinkedHope Intelligent Technologies Co., Ltd", - [3]byte{212, 238, 7}: "HIWIFI Co., Ltd.", - [3]byte{212, 240, 39}: "Navetas Energy Management", - [3]byte{212, 240, 180}: "Napco Security Technologies", - [3]byte{212, 241, 67}: "IPROAD.,Inc", - [3]byte{212, 244, 111}: "Apple", - [3]byte{212, 245, 19}: "Texas Instruments", - [3]byte{212, 246, 63}: "IEA S.R.L.", - [3]byte{216, 0, 77}: "Apple", - [3]byte{216, 5, 46}: "Skyviia Corporation", - [3]byte{216, 6, 209}: "Honeywell Fire System (Shanghai) Co,. Ltd.", - [3]byte{216, 8, 245}: "Arcadia Networks Co. Ltd.", - [3]byte{216, 9, 195}: "Cercacor Labs", - [3]byte{216, 12, 207}: "C.G.V. S.A.S.", - [3]byte{216, 13, 227}: "FXI TECHNOLOGIES AS", - [3]byte{216, 21, 13}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{216, 22, 10}: "Nippon Electro-Sensory Devices", - [3]byte{216, 24, 43}: "Conti Temic Microelectronic GmbH", - [3]byte{216, 25, 206}: "Telesquare", - [3]byte{216, 27, 254}: "TWINLINX CORPORATION", - [3]byte{216, 28, 20}: "Compacta International, Ltd.", - [3]byte{216, 30, 222}: "B&W Group Ltd", - [3]byte{216, 36, 189}: "CISCO SYSTEMS, INC.", - [3]byte{216, 37, 34}: "Pace plc", - [3]byte{216, 38, 185}: "Guangdong Coagent Electronics S &T Co., Ltd.", - [3]byte{216, 39, 12}: "MaxTronic International Co., Ltd.", - [3]byte{216, 40, 201}: "General Electric Consumer and Industrial", - [3]byte{216, 41, 22}: "Ascent Communication Technology", - [3]byte{216, 41, 134}: "Best Wish Technology LTD", - [3]byte{216, 42, 21}: "Leitner SpA", - [3]byte{216, 42, 126}: "Nokia Corporation", - [3]byte{216, 45, 155}: "Shenzhen G.Credit Communication Technology Co., Ltd", - [3]byte{216, 45, 225}: "Tricascade Inc.", - [3]byte{216, 48, 98}: "Apple", - [3]byte{216, 49, 207}: "Samsung Electronics Co.,Ltd", - [3]byte{216, 51, 127}: "Office FA.com Co.,Ltd.", - [3]byte{216, 60, 105}: "Tinno Mobile Technology Corp", - [3]byte{216, 66, 172}: "Shanghai Feixun Communication Co.,Ltd.", - [3]byte{216, 70, 6}: "Silicon Valley Global Marketing", - [3]byte{216, 73, 11}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{216, 73, 47}: "CANON INC.", - [3]byte{216, 74, 135}: "OI ELECTRIC CO.,LTD", - [3]byte{216, 75, 42}: "Cognitas Technologies, Inc.", - [3]byte{216, 80, 230}: "ASUSTek COMPUTER INC.", - [3]byte{216, 84, 58}: "Texas Instruments", - [3]byte{216, 87, 239}: "Samsung Electronics", - [3]byte{216, 88, 215}: "CZ.NIC, z.s.p.o.", - [3]byte{216, 93, 76}: "TP-LINK Technologies Co.,Ltd.", - [3]byte{216, 93, 132}: "CAx soft GmbH", - [3]byte{216, 93, 251}: "PRIVATE", - [3]byte{216, 97, 148}: "Objetivos y Sevicios de Valor Añadido", - [3]byte{216, 98, 219}: "Eno Inc.", - [3]byte{216, 101, 149}: "Toy's Myth Inc.", - [3]byte{216, 102, 198}: "Shenzhen Daystar Technology Co.,ltd", - [3]byte{216, 102, 238}: "BOXIN COMMUNICATION CO.,LTD.", - [3]byte{216, 103, 217}: "CISCO SYSTEMS, INC.", - [3]byte{216, 105, 96}: "Steinsvik", - [3]byte{216, 107, 247}: "Nintendo Co., Ltd.", - [3]byte{216, 108, 233}: "SAGEMCOM SAS", - [3]byte{216, 113, 87}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{216, 117, 51}: "Nokia Corporation", - [3]byte{216, 118, 10}: "Escort, Inc.", - [3]byte{216, 120, 229}: "KUHN SA", - [3]byte{216, 121, 136}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{216, 124, 221}: "SANIX INCORPORATED", - [3]byte{216, 126, 177}: "x.o.ware, inc.", - [3]byte{216, 128, 57}: "Microchip Technology Inc.", - [3]byte{216, 129, 206}: "AHN INC.", - [3]byte{216, 132, 102}: "Extreme Networks", - [3]byte{216, 138, 59}: "UNIT-EM", - [3]byte{216, 144, 232}: "Samsung Electronics Co.,Ltd", - [3]byte{216, 149, 47}: "Texas Instruments", - [3]byte{216, 150, 133}: "GoPro", - [3]byte{216, 150, 149}: "Apple", - [3]byte{216, 150, 224}: "Alibaba Cloud Computing Ltd.", - [3]byte{216, 151, 59}: "Artesyn Embedded Technologies", - [3]byte{216, 151, 96}: "C2 Development, Inc.", - [3]byte{216, 151, 124}: "Grey Innovation", - [3]byte{216, 151, 186}: "PEGATRON CORPORATION", - [3]byte{216, 157, 103}: "Hewlett Packard", - [3]byte{216, 157, 185}: "eMegatech International Corp.", - [3]byte{216, 158, 63}: "Apple", - [3]byte{216, 162, 94}: "Apple", - [3]byte{216, 174, 144}: "Itibia Technologies", - [3]byte{216, 175, 59}: "Hangzhou Bigbright Integrated communications system Co.,Ltd", - [3]byte{216, 175, 241}: "Panasonic Appliances Company", - [3]byte{216, 176, 46}: "Guangzhou Zonerich Business Machine Co., Ltd", - [3]byte{216, 176, 76}: "Jinan USR IOT Technology Co., Ltd.", - [3]byte{216, 177, 42}: "Panasonic Mobile Communications Co., Ltd.", - [3]byte{216, 179, 119}: "HTC Corporation", - [3]byte{216, 182, 183}: "Comtrend Corporation", - [3]byte{216, 182, 193}: "NetworkAccountant, Inc.", - [3]byte{216, 182, 214}: "Blu Tether Limited", - [3]byte{216, 184, 246}: "Nantworks", - [3]byte{216, 185, 14}: "Triple Domain Vision Co.,Ltd.", - [3]byte{216, 187, 44}: "Apple", - [3]byte{216, 191, 76}: "Victory Concept Electronics Limited", - [3]byte{216, 192, 104}: "Netgenetech.co.,ltd.", - [3]byte{216, 195, 251}: "DETRACOM", - [3]byte{216, 198, 145}: "Hichan Technology Corp.", - [3]byte{216, 199, 200}: "Aruba Networks", - [3]byte{216, 201, 157}: "EA DISPLAY LIMITED", - [3]byte{216, 203, 138}: "Micro-Star INTL CO., LTD.", - [3]byte{216, 207, 156}: "Apple", - [3]byte{216, 209, 203}: "Apple", - [3]byte{216, 210, 124}: "JEMA ENERGY, SA", - [3]byte{216, 211, 133}: "Hewlett-Packard Company", - [3]byte{216, 212, 60}: "Sony Corporation", - [3]byte{216, 213, 185}: "Rainforest Automation, Inc.", - [3]byte{216, 214, 126}: "GSK CNC EQUIPMENT CO.,LTD", - [3]byte{216, 218, 82}: "APATOR S.A.", - [3]byte{216, 220, 233}: "Kunshan Erlab ductless filtration system Co.,Ltd", - [3]byte{216, 221, 95}: "BALMUDA Inc.", - [3]byte{216, 221, 253}: "Texas Instruments", - [3]byte{216, 222, 206}: "ISUNG CO.,LTD", - [3]byte{216, 223, 13}: "beroNet GmbH", - [3]byte{216, 227, 174}: "CIRTEC MEDICAL SYSTEMS", - [3]byte{216, 229, 109}: "TCT Mobile Limited", - [3]byte{216, 231, 43}: "NetScout Systems, Inc.", - [3]byte{216, 231, 67}: "Wush, Inc", - [3]byte{216, 233, 82}: "KEOPSYS", - [3]byte{216, 235, 151}: "TRENDnet, Inc.", - [3]byte{216, 238, 120}: "Moog Protokraft", - [3]byte{216, 240, 242}: "Zeebo Inc", - [3]byte{216, 247, 16}: "Libre Wireless Technologies Inc.", - [3]byte{216, 251, 17}: "AXACORE", - [3]byte{216, 252, 147}: "Intel Corporate", - [3]byte{216, 254, 143}: "IDFone Co., Ltd.", - [3]byte{216, 254, 227}: "D-Link International", - [3]byte{220, 2, 101}: "Meditech Kft", - [3]byte{220, 2, 142}: "zte corporation", - [3]byte{220, 5, 47}: "National Products Inc.", - [3]byte{220, 5, 117}: "SIEMENS ENERGY AUTOMATION", - [3]byte{220, 5, 237}: "Nabtesco Corporation", - [3]byte{220, 7, 193}: "HangZhou QiYang Technology Co.,Ltd.", - [3]byte{220, 11, 26}: "ADB Broadband Italia", - [3]byte{220, 14, 161}: "COMPAL INFORMATION (KUNSHAN) CO., LTD", - [3]byte{220, 22, 162}: "Medtronic Diabetes", - [3]byte{220, 23, 90}: "Hitachi High-Technologies Corporation", - [3]byte{220, 23, 146}: "Captivate Network", - [3]byte{220, 29, 159}: "U & B tech", - [3]byte{220, 29, 212}: "Microstep-MIS spol. s r.o.", - [3]byte{220, 30, 163}: "Accensus LLC", - [3]byte{220, 32, 8}: "ASD Electronics Ltd", - [3]byte{220, 42, 20}: "Shanghai Longjing Technology Co.", - [3]byte{220, 43, 97}: "Apple", - [3]byte{220, 43, 102}: "InfoBLOCK S.A. de C.V.", - [3]byte{220, 43, 202}: "Zera GmbH", - [3]byte{220, 44, 38}: "Iton Technology Limited", - [3]byte{220, 46, 106}: "HCT. Co., Ltd.", - [3]byte{220, 47, 3}: "Step forward Group Co., Ltd.", - [3]byte{220, 48, 156}: "Heyrex Limited", - [3]byte{220, 51, 80}: "TechSAT GmbH", - [3]byte{220, 55, 210}: "Hunan HKT Electronic Technology Co., Ltd", - [3]byte{220, 56, 225}: "Juniper networks", - [3]byte{220, 57, 121}: "Skyport Systems", - [3]byte{220, 58, 94}: "Roku, Inc", - [3]byte{220, 60, 46}: "Manufacturing System Insights, Inc.", - [3]byte{220, 60, 132}: "Ticom Geomatics, Inc.", - [3]byte{220, 62, 81}: "Solberg & Andersen AS", - [3]byte{220, 62, 248}: "Nokia Corporation", - [3]byte{220, 69, 23}: "ARRIS Group, Inc.", - [3]byte{220, 73, 201}: "CASCO SIGNAL LTD", - [3]byte{220, 78, 222}: "SHINYEI TECHNOLOGY CO., LTD.", - [3]byte{220, 83, 124}: "Compal Broadband Networks, Inc.", - [3]byte{220, 87, 38}: "Power-One", - [3]byte{220, 94, 54}: "Paterson Technology", - [3]byte{220, 100, 124}: "C.R.S. iiMotion GmbH", - [3]byte{220, 102, 58}: "Apacer Technology Inc.", - [3]byte{220, 111, 0}: "Livescribe, Inc.", - [3]byte{220, 111, 8}: "Bay Storage Technology", - [3]byte{220, 112, 20}: "PRIVATE", - [3]byte{220, 113, 68}: "Samsung Electro Mechanics", - [3]byte{220, 123, 148}: "CISCO SYSTEMS, INC.", - [3]byte{220, 130, 91}: "JANUS, spol. s r.o.", - [3]byte{220, 133, 222}: "Azurewave Technologies., inc.", - [3]byte{220, 134, 216}: "Apple, Inc", - [3]byte{220, 155, 30}: "Intercom, Inc.", - [3]byte{220, 155, 156}: "Apple", - [3]byte{220, 156, 82}: "Sapphire Technology Limited.", - [3]byte{220, 159, 164}: "Nokia Corporation", - [3]byte{220, 159, 219}: "Ubiquiti Networks, Inc.", - [3]byte{220, 165, 244}: "Cisco", - [3]byte{220, 166, 189}: "Beijing Lanbo Technology Co., Ltd.", - [3]byte{220, 167, 217}: "Compressor Controls Corp", - [3]byte{220, 168, 207}: "New Spin Golf, LLC.", - [3]byte{220, 169, 113}: "Intel Corporate", - [3]byte{220, 169, 137}: "MACANDC", - [3]byte{220, 173, 158}: "GreenPriz", - [3]byte{220, 174, 4}: "CELOXICA Ltd", - [3]byte{220, 176, 88}: "Burkert Werke GmbH", - [3]byte{220, 180, 196}: "Microsoft XCG", - [3]byte{220, 191, 144}: "HUIZHOU QIAOXING TELECOMMUNICATION INDUSTRY CO.,LTD.", - [3]byte{220, 192, 219}: "Shenzhen Kaiboer Technology Co., Ltd.", - [3]byte{220, 193, 1}: "SOLiD Technologies, Inc.", - [3]byte{220, 196, 34}: "Systembase Limited", - [3]byte{220, 198, 34}: "BUHEUNG SYSTEM", - [3]byte{220, 199, 147}: "Nokia Corporation", - [3]byte{220, 203, 168}: "Explora Technologies Inc", - [3]byte{220, 206, 65}: "FE GLOBAL HONG KONG LIMITED", - [3]byte{220, 206, 188}: "Shenzhen JSR Technology Co.,Ltd.", - [3]byte{220, 207, 148}: "Beijing Rongcheng Hutong Technology Co., Ltd.", - [3]byte{220, 208, 247}: "Bentek Systems Ltd.", - [3]byte{220, 210, 252}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{220, 211, 33}: "HUMAX co.,tld", - [3]byte{220, 213, 42}: "Sunny Heart Limited", - [3]byte{220, 216, 127}: "Shenzhen JoinCyber Telecom Equipment Ltd", - [3]byte{220, 218, 79}: "GETCK TECHNOLOGY, INC", - [3]byte{220, 222, 202}: "Akyllor", - [3]byte{220, 226, 172}: "Lumens Digital Optics Inc.", - [3]byte{220, 229, 120}: "Experimental Factory of Scientific Engineering and Special Design Department", - [3]byte{220, 231, 28}: "AUG Elektronik GmbH", - [3]byte{220, 236, 6}: "Heimi Network Technology Co., Ltd.", - [3]byte{220, 240, 93}: "Letta Teknoloji", - [3]byte{220, 241, 16}: "Nokia Corporation", - [3]byte{220, 247, 85}: "SITRONIK", - [3]byte{220, 248, 88}: "Lorent Networks, Inc.", - [3]byte{220, 250, 213}: "STRONG Ges.m.b.H.", - [3]byte{220, 251, 2}: "Buffalo Inc.", - [3]byte{224, 5, 197}: "TP-LINK Technologies Co.,Ltd.", - [3]byte{224, 6, 230}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{224, 11, 40}: "Inovonics", - [3]byte{224, 12, 127}: "Nintendo Co., Ltd.", - [3]byte{224, 13, 185}: "PRIVATE", - [3]byte{224, 16, 127}: "Ruckus Wireless", - [3]byte{224, 20, 62}: "Modoosis Inc.", - [3]byte{224, 24, 119}: "Fujitsu Limited", - [3]byte{224, 28, 65}: "Aerohive Networks Inc.", - [3]byte{224, 28, 238}: "Bravo Tech, Inc.", - [3]byte{224, 29, 56}: "Beijing HuaqinWorld Technology Co.,Ltd", - [3]byte{224, 29, 59}: "Cambridge Industries(Group) Co.,Ltd", - [3]byte{224, 30, 7}: "Anite Telecoms US. Inc", - [3]byte{224, 31, 10}: "Xslent Energy Technologies. LLC", - [3]byte{224, 36, 127}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{224, 37, 56}: "Titan Pet Products", - [3]byte{224, 38, 48}: "Intrigue Technologies, Inc.", - [3]byte{224, 38, 54}: "Nortel Networks", - [3]byte{224, 39, 26}: "TTC Next-generation Home Network System WG", - [3]byte{224, 42, 130}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{224, 47, 109}: "Cisco", - [3]byte{224, 48, 5}: "Alcatel-Lucent Shanghai Bell Co., Ltd", - [3]byte{224, 49, 208}: "SZ Telstar CO., LTD", - [3]byte{224, 54, 227}: "Stage One International Co., Ltd.", - [3]byte{224, 57, 215}: "Plexxi, Inc.", - [3]byte{224, 60, 91}: "SHENZHEN JIAXINJIE ELECTRON CO.,LTD", - [3]byte{224, 62, 68}: "Broadcom Corporation", - [3]byte{224, 62, 74}: "Cavanagh Group International", - [3]byte{224, 62, 125}: "data-complex GmbH", - [3]byte{224, 63, 73}: "ASUSTek COMPUTER INC.", - [3]byte{224, 70, 154}: "NETGEAR", - [3]byte{224, 85, 151}: "Emergent Vision Technologies Inc.", - [3]byte{224, 86, 244}: "AxesNetwork Solutions inc.", - [3]byte{224, 88, 158}: "Laerdal Medical", - [3]byte{224, 91, 112}: "Innovid, Co., Ltd.", - [3]byte{224, 93, 166}: "Detlef Fink Elektronik & Softwareentwicklung", - [3]byte{224, 95, 185}: "CISCO SYSTEMS, INC.", - [3]byte{224, 97, 178}: "HANGZHOU ZENOINTEL TECHNOLOGY CO., LTD", - [3]byte{224, 98, 144}: "Jinan Jovision Science & Technology Co., Ltd.", - [3]byte{224, 99, 229}: "Sony Mobile Communications AB", - [3]byte{224, 100, 187}: "DigiView S.r.l.", - [3]byte{224, 102, 120}: "Apple", - [3]byte{224, 103, 179}: "C-Data Technology Co., Ltd", - [3]byte{224, 105, 149}: "PEGATRON CORPORATION", - [3]byte{224, 117, 10}: "ALPS ERECTORIC CO.,LTD.", - [3]byte{224, 117, 125}: "Motorola Mobility LLC", - [3]byte{224, 124, 98}: "Whistle Labs, Inc.", - [3]byte{224, 127, 83}: "TECHBOARD SRL", - [3]byte{224, 127, 136}: "EVIDENCE Network SIA", - [3]byte{224, 129, 119}: "GreenBytes, Inc.", - [3]byte{224, 135, 177}: "Nata-Info Ltd.", - [3]byte{224, 136, 93}: "Technicolor CH USA Inc", - [3]byte{224, 138, 126}: "Exponent", - [3]byte{224, 143, 236}: "REPOTEC CO., LTD.", - [3]byte{224, 145, 83}: "XAVi Technologies Corp.", - [3]byte{224, 145, 245}: "NETGEAR", - [3]byte{224, 148, 103}: "Intel Corporate", - [3]byte{224, 149, 121}: "ORTHOsoft inc, d/b/a Zimmer CAS", - [3]byte{224, 151, 150}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{224, 151, 242}: "Atomax Inc.", - [3]byte{224, 157, 49}: "Intel Corporate", - [3]byte{224, 157, 184}: "PLANEX COMMUNICATIONS INC.", - [3]byte{224, 161, 152}: "NOJA Power Switchgear Pty Ltd", - [3]byte{224, 161, 215}: "SFR", - [3]byte{224, 163, 15}: "Pevco", - [3]byte{224, 166, 112}: "Nokia Corporation", - [3]byte{224, 170, 176}: "GENERAL VISION ELECTRONICS CO. LTD.", - [3]byte{224, 171, 254}: "Orb Networks, Inc.", - [3]byte{224, 172, 241}: "Cisco", - [3]byte{224, 174, 94}: "ALPS Co,. Ltd.", - [3]byte{224, 174, 178}: "Bender GmbH & Co.KG", - [3]byte{224, 174, 237}: "LOENK", - [3]byte{224, 175, 75}: "Pluribus Networks, Inc.", - [3]byte{224, 178, 241}: "FN-LINK TECHNOLOGY LIMITED", - [3]byte{224, 181, 45}: "Apple", - [3]byte{224, 183, 177}: "Pace plc", - [3]byte{224, 185, 165}: "Azurewave", - [3]byte{224, 185, 186}: "Apple", - [3]byte{224, 188, 67}: "C2 Microsystems, Inc.", - [3]byte{224, 194, 134}: "Aisai Communication Technology Co., Ltd.", - [3]byte{224, 194, 183}: "Masimo Corporation", - [3]byte{224, 195, 243}: "ZTE Corporation", - [3]byte{224, 198, 179}: "MilDef AB", - [3]byte{224, 199, 157}: "Texas Instruments", - [3]byte{224, 200, 106}: "SHENZHEN TW-SCIE Co., Ltd", - [3]byte{224, 201, 34}: "Jireh Energy Tech., Ltd.", - [3]byte{224, 201, 122}: "Apple", - [3]byte{224, 202, 77}: "Shenzhen Unistar Communication Co.,LTD", - [3]byte{224, 202, 148}: "Askey Computer", - [3]byte{224, 203, 29}: "PRIVATE", - [3]byte{224, 203, 78}: "ASUSTek COMPUTER INC.", - [3]byte{224, 203, 238}: "Samsung Electronics Co.,Ltd", - [3]byte{224, 206, 195}: "ASKEY COMPUTER CORP", - [3]byte{224, 207, 45}: "Gemintek Corporation", - [3]byte{224, 209, 10}: "Katoudenkikougyousyo co ltd", - [3]byte{224, 209, 230}: "Aliph dba Jawbone", - [3]byte{224, 211, 26}: "EQUES Technology Co., Limited", - [3]byte{224, 215, 186}: "Texas Instruments", - [3]byte{224, 217, 162}: "Hippih aps", - [3]byte{224, 218, 220}: "JVC KENWOOD Corporation", - [3]byte{224, 219, 85}: "Dell Inc", - [3]byte{224, 219, 136}: "Open Standard Digital-IF Interface for SATCOM Systems", - [3]byte{224, 220, 160}: "Siemens Electrical Apparatus Ltd., Suzhou Chengdu Branch", - [3]byte{224, 230, 49}: "SNB TECHNOLOGIES LIMITED", - [3]byte{224, 231, 81}: "Nintendo Co., Ltd.", - [3]byte{224, 232, 232}: "Olive Telecommunication Pvt. Ltd", - [3]byte{224, 237, 26}: "vastriver Technology Co., Ltd", - [3]byte{224, 237, 199}: "Shenzhen Friendcom Technology Development Co., Ltd", - [3]byte{224, 238, 27}: "Panasonic Automotive Systems Company of America", - [3]byte{224, 239, 37}: "Lintes Technology Co., Ltd.", - [3]byte{224, 242, 17}: "Digitalwatt", - [3]byte{224, 243, 121}: "Vaddio", - [3]byte{224, 245, 198}: "Apple", - [3]byte{224, 245, 202}: "CHENG UEI PRECISION INDUSTRY CO.,LTD.", - [3]byte{224, 248, 71}: "Apple", - [3]byte{224, 249, 190}: "Cloudena Corp.", - [3]byte{224, 250, 236}: "Platan sp. z o.o. sp. k.", - [3]byte{228, 4, 57}: "TomTom Software Ltd", - [3]byte{228, 17, 91}: "Hewlett Packard", - [3]byte{228, 18, 24}: "ShenZhen Rapoo Technology Co., Ltd.", - [3]byte{228, 18, 29}: "Samsung Electronics Co.,Ltd", - [3]byte{228, 18, 137}: "topsystem Systemhaus GmbH", - [3]byte{228, 28, 75}: "V2 TECHNOLOGY, INC.", - [3]byte{228, 29, 45}: "Mellanox Technologies, Inc.", - [3]byte{228, 31, 19}: "IBM Corp", - [3]byte{228, 35, 84}: "SHENZHEN FUZHI SOFTWARE TECHNOLOGY CO.,LTD", - [3]byte{228, 37, 231}: "Apple", - [3]byte{228, 37, 233}: "Color-Chip", - [3]byte{228, 39, 113}: "Smartlabs", - [3]byte{228, 42, 211}: "Magneti Marelli S.p.A. Powertrain", - [3]byte{228, 44, 86}: "Lilee Systems, Ltd.", - [3]byte{228, 45, 2}: "TCT Mobile Limited", - [3]byte{228, 47, 38}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{228, 47, 246}: "Unicore communication Inc.", - [3]byte{228, 50, 203}: "Samsung Electronics Co.,Ltd", - [3]byte{228, 53, 147}: "Hangzhou GoTo technology Co.Ltd", - [3]byte{228, 53, 251}: "Sabre Technology (Hull) Ltd", - [3]byte{228, 55, 215}: "HENRI DEPAEPE S.A.S.", - [3]byte{228, 56, 242}: "Advantage Controls", - [3]byte{228, 63, 162}: "Wuxi DSP Technologies Inc.", - [3]byte{228, 64, 226}: "Samsung Electronics Co.,Ltd", - [3]byte{228, 65, 230}: "Ottec Technology GmbH", - [3]byte{228, 70, 189}: "C&C TECHNIC TAIWAN CO., LTD.", - [3]byte{228, 72, 199}: "Cisco SPVTG", - [3]byte{228, 76, 108}: "Shenzhen Guo Wei Electronic Co,. Ltd.", - [3]byte{228, 78, 24}: "Gardasoft VisionLimited", - [3]byte{228, 79, 41}: "MA Lighting Technology GmbH", - [3]byte{228, 79, 95}: "EDS Elektronik Destek San.Tic.Ltd.Sti", - [3]byte{228, 85, 234}: "Dedicated Computing", - [3]byte{228, 86, 20}: "Suttle Apparatus", - [3]byte{228, 87, 168}: "Stuart Manufacturing, Inc.", - [3]byte{228, 93, 82}: "Avaya, Inc", - [3]byte{228, 100, 73}: "ARRIS Group, Inc.", - [3]byte{228, 103, 186}: "Danish Interpretation Systems A/S", - [3]byte{228, 104, 163}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{228, 108, 33}: "messMa GmbH", - [3]byte{228, 113, 133}: "Securifi Ltd", - [3]byte{228, 117, 30}: "Getinge Sterilization AB", - [3]byte{228, 119, 35}: "zte corporation", - [3]byte{228, 119, 107}: "AARTESYS AG", - [3]byte{228, 119, 212}: "Minrray Industry Co.,Ltd", - [3]byte{228, 124, 249}: "Samsung Electronics Co., LTD", - [3]byte{228, 125, 90}: "Beijing Hanbang Technology Corp.", - [3]byte{228, 127, 178}: "Fujitsu Limited", - [3]byte{228, 129, 132}: "Alcatel-Lucent", - [3]byte{228, 129, 179}: "Shenzhen ACT Industrial Co.,Ltd.", - [3]byte{228, 131, 153}: "ARRIS Group, Inc.", - [3]byte{228, 138, 213}: "RF WINDOW CO., LTD.", - [3]byte{228, 139, 127}: "Apple", - [3]byte{228, 140, 15}: "Discovery Insure", - [3]byte{228, 144, 105}: "Rockwell Automation", - [3]byte{228, 146, 231}: "Gridlink Tech. Co.,Ltd.", - [3]byte{228, 146, 251}: "Samsung Electronics Co.,Ltd", - [3]byte{228, 149, 110}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{228, 150, 174}: "ALTOGRAPHICS Inc.", - [3]byte{228, 151, 240}: "Shanghai VLC Technologies Ltd. Co.", - [3]byte{228, 152, 214}: "Apple, Inc", - [3]byte{228, 165, 239}: "TRON LINK ELECTRONICS CO., LTD.", - [3]byte{228, 167, 253}: "Cellco Partnership", - [3]byte{228, 171, 70}: "UAB Selteka", - [3]byte{228, 173, 125}: "SCL Elements", - [3]byte{228, 175, 161}: "HES-SO", - [3]byte{228, 176, 33}: "Samsung Electronics Co.,Ltd", - [3]byte{228, 186, 217}: "360 Fly Inc.", - [3]byte{228, 193, 70}: "Objetivos y Servicios de Valor A", - [3]byte{228, 198, 43}: "Airware", - [3]byte{228, 198, 61}: "Apple, Inc.", - [3]byte{228, 198, 230}: "Mophie, LLC", - [3]byte{228, 199, 34}: "Cisco", - [3]byte{228, 200, 6}: "Ceiec Electric Technology Inc.", - [3]byte{228, 206, 143}: "Apple", - [3]byte{228, 211, 50}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{228, 211, 241}: "Cisco", - [3]byte{228, 213, 61}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{228, 215, 29}: "Oraya Therapeutics", - [3]byte{228, 221, 121}: "En-Vision America, Inc.", - [3]byte{228, 224, 197}: "Samsung Electronics Co., LTD", - [3]byte{228, 228, 9}: "LEIFHEIT AG", - [3]byte{228, 236, 16}: "Nokia Corporation", - [3]byte{228, 238, 253}: "MR&D Manufacturing", - [3]byte{228, 243, 101}: "Time-O-Matic, Inc.", - [3]byte{228, 243, 227}: "Shanghai iComhome Co.,Ltd.", - [3]byte{228, 244, 198}: "NETGEAR", - [3]byte{228, 247, 161}: "Datafox GmbH", - [3]byte{228, 248, 239}: "Samsung Elec Co.,Ltd", - [3]byte{228, 250, 29}: "PAD Peripheral Advanced Design Inc.", - [3]byte{228, 255, 221}: "ELECTRON INDIA", - [3]byte{232, 3, 154}: "Samsung Electronics CO., LTD", - [3]byte{232, 4, 11}: "Apple", - [3]byte{232, 4, 16}: "PRIVATE", - [3]byte{232, 4, 98}: "CISCO SYSTEMS, INC.", - [3]byte{232, 4, 243}: "Throughtek Co., Ltd.", - [3]byte{232, 5, 109}: "Nortel Networks", - [3]byte{232, 6, 136}: "Apple", - [3]byte{232, 8, 139}: "Huawei Technologies Co., Ltd", - [3]byte{232, 11, 19}: "Akib Systems Taiwan, INC", - [3]byte{232, 12, 56}: "DAEYOUNG INFORMATION SYSTEM CO., LTD", - [3]byte{232, 12, 117}: "Syncbak, Inc.", - [3]byte{232, 16, 46}: "Really Simple Software, Inc", - [3]byte{232, 17, 50}: "Samsung Electronics CO., LTD", - [3]byte{232, 19, 36}: "GuangZhou Bonsoninfo System CO.,LTD", - [3]byte{232, 21, 14}: "Nokia Corporation", - [3]byte{232, 23, 252}: "NIFTY Corporation", - [3]byte{232, 24, 99}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{232, 40, 119}: "TMY Co., Ltd.", - [3]byte{232, 40, 213}: "Cots Technology", - [3]byte{232, 42, 234}: "Intel Corporate", - [3]byte{232, 46, 36}: "Out of the Fog Research LLC", - [3]byte{232, 51, 129}: "ARRIS Group, Inc.", - [3]byte{232, 57, 53}: "Hewlett Packard", - [3]byte{232, 57, 223}: "Askey Computer", - [3]byte{232, 58, 151}: "OCZ Technology Group", - [3]byte{232, 62, 182}: "RIM", - [3]byte{232, 62, 251}: "GEODESIC LTD.", - [3]byte{232, 62, 252}: "ARRIS Group, Inc.", - [3]byte{232, 64, 64}: "CISCO SYSTEMS, INC.", - [3]byte{232, 64, 242}: "PEGATRON CORPORATION", - [3]byte{232, 67, 182}: "QNAP Systems, Inc.", - [3]byte{232, 72, 31}: "Advanced Automotive Antennas", - [3]byte{232, 78, 6}: "EDUP INTERNATIONAL (HK) CO., LTD", - [3]byte{232, 78, 132}: "Samsung Electronics Co.,Ltd", - [3]byte{232, 78, 206}: "Nintendo Co., Ltd.", - [3]byte{232, 81, 110}: "TSMART Inc.", - [3]byte{232, 81, 157}: "Yeonhab Precision Co.,LTD", - [3]byte{232, 84, 132}: "NEO INFORMATION SYSTEMS CO., LTD.", - [3]byte{232, 86, 214}: "NCTech Ltd", - [3]byte{232, 90, 167}: "LLC Emzior", - [3]byte{232, 91, 91}: "LG ELECTRONICS INC", - [3]byte{232, 91, 240}: "Imaging Diagnostics", - [3]byte{232, 93, 107}: "Luminate Wireless", - [3]byte{232, 94, 83}: "Infratec Datentechnik GmbH", - [3]byte{232, 97, 31}: "Dawning Information Industry Co.,Ltd", - [3]byte{232, 97, 126}: "Liteon Technology Corporation", - [3]byte{232, 97, 131}: "Black Diamond Advanced Technology, LLC", - [3]byte{232, 108, 218}: "Supercomputers and Neurocomputers Research Center", - [3]byte{232, 109, 82}: "ARRIS Group, Inc.", - [3]byte{232, 109, 84}: "Digit Mobile Inc", - [3]byte{232, 109, 110}: "Control & Display Systems Ltd t/a CDSRail", - [3]byte{232, 113, 141}: "Elsys Equipamentos Eletronicos Ltda", - [3]byte{232, 117, 127}: "FIRS Technologies(Shenzhen) Co., Ltd", - [3]byte{232, 120, 161}: "BEOVIEW INTERCOM DOO", - [3]byte{232, 122, 243}: "S5 Tech S.r.l.", - [3]byte{232, 128, 46}: "Apple", - [3]byte{232, 128, 216}: "GNTEK Electronics Co.,Ltd.", - [3]byte{232, 135, 163}: "Loxley Public Company Limited", - [3]byte{232, 137, 44}: "ARRIS Group, Inc.", - [3]byte{232, 141, 40}: "Apple", - [3]byte{232, 141, 245}: "ZNYX Networks, Inc.", - [3]byte{232, 142, 96}: "NSD Corporation", - [3]byte{232, 146, 24}: "Arcontia International AB", - [3]byte{232, 146, 164}: "LG Electronics", - [3]byte{232, 148, 76}: "Cogent Healthcare Systems Ltd", - [3]byte{232, 148, 246}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{232, 150, 6}: "testo Instruments (Shenzhen) Co., Ltd.", - [3]byte{232, 153, 90}: "PiiGAB, Processinformation i Goteborg AB", - [3]byte{232, 153, 196}: "HTC Corporation", - [3]byte{232, 154, 143}: "Quanta Computer Inc.", - [3]byte{232, 154, 255}: "Fujian Landi Commercial Equipment Co.,Ltd", - [3]byte{232, 157, 135}: "Toshiba", - [3]byte{232, 163, 100}: "Signal Path International / Peachtree Audio", - [3]byte{232, 164, 193}: "Deep Sea Electronics PLC", - [3]byte{232, 171, 250}: "Shenzhen Reecam Tech.Ltd.", - [3]byte{232, 177, 252}: "Intel Corporate", - [3]byte{232, 180, 174}: "Shenzhen C&D Electronics Co.,Ltd", - [3]byte{232, 183, 72}: "CISCO SYSTEMS, INC.", - [3]byte{232, 186, 112}: "CISCO SYSTEMS, INC.", - [3]byte{232, 187, 61}: "Sino Prime-Tech Limited", - [3]byte{232, 187, 168}: "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD.", - [3]byte{232, 190, 129}: "SAGEMCOM", - [3]byte{232, 194, 41}: "H-Displays (MSC) Bhd", - [3]byte{232, 195, 32}: "Austco Communication Systems Pty Ltd", - [3]byte{232, 203, 161}: "Nokia Corporation", - [3]byte{232, 204, 24}: "D-Link International", - [3]byte{232, 204, 50}: "Micronet LTD", - [3]byte{232, 205, 45}: "Huawei Technologies Co., Ltd", - [3]byte{232, 206, 6}: "SkyHawke Technologies, LLC.", - [3]byte{232, 208, 250}: "MKS Instruments Deutschland GmbH", - [3]byte{232, 212, 131}: "ULTIMATE Europe Transportation Equipment GmbH", - [3]byte{232, 212, 224}: "Beijing BenyWave Technology Co., Ltd.", - [3]byte{232, 218, 150}: "Zhuhai Tianrui Electrical Power Tech. Co., Ltd.", - [3]byte{232, 218, 170}: "VideoHome Technology Corp.", - [3]byte{232, 222, 39}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{232, 223, 242}: "PRF Co., Ltd.", - [3]byte{232, 224, 143}: "GRAVOTECH MARKING SAS", - [3]byte{232, 224, 183}: "Toshiba", - [3]byte{232, 225, 226}: "Energotest", - [3]byte{232, 229, 214}: "Samsung Electronics Co.,Ltd", - [3]byte{232, 231, 50}: "Alcatel-Lucent", - [3]byte{232, 231, 112}: "Warp9 Tech Design, Inc.", - [3]byte{232, 231, 118}: "Shenzhen Kootion Technology Co., Ltd", - [3]byte{232, 232, 117}: "iS5 Communications Inc.", - [3]byte{232, 234, 106}: "StarTech.com", - [3]byte{232, 234, 218}: "Denkovi Assembly Electroncs LTD", - [3]byte{232, 237, 5}: "ARRIS Group, Inc.", - [3]byte{232, 237, 243}: "Cisco", - [3]byte{232, 239, 137}: "OPMEX Tech.", - [3]byte{232, 241, 176}: "SAGEMCOM SAS", - [3]byte{232, 242, 38}: "MILLSON CUSTOM SOLUTIONS INC.", - [3]byte{232, 249, 40}: "RFTECH SRL", - [3]byte{232, 252, 96}: "ELCOM Innovations Private Limited", - [3]byte{232, 252, 175}: "NETGEAR INC.,", - [3]byte{236, 14, 196}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{236, 14, 214}: "ITECH INSTRUMENTS SAS", - [3]byte{236, 17, 32}: "FloDesign Wind Turbine Corporation", - [3]byte{236, 19, 178}: "Netonix", - [3]byte{236, 20, 246}: "BioControl AS", - [3]byte{236, 23, 47}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{236, 23, 102}: "Research Centre Module", - [3]byte{236, 26, 89}: "Belkin International Inc.", - [3]byte{236, 29, 127}: "zte corporation", - [3]byte{236, 33, 159}: "VidaBox LLC", - [3]byte{236, 34, 87}: "JiangSu NanJing University Electronic Information Technology Co.,Ltd", - [3]byte{236, 34, 128}: "D-Link International", - [3]byte{236, 35, 61}: "Huawei Technologies Co., Ltd", - [3]byte{236, 35, 104}: "IntelliVoice Co.,Ltd.", - [3]byte{236, 36, 184}: "Texas Instruments", - [3]byte{236, 42, 240}: "Ypsomed AG", - [3]byte{236, 44, 73}: "University of Tokyo", - [3]byte{236, 46, 78}: "HITACHI-LG DATA STORAGE INC", - [3]byte{236, 48, 145}: "CISCO SYSTEMS, INC.", - [3]byte{236, 53, 134}: "Apple", - [3]byte{236, 59, 240}: "NovelSat", - [3]byte{236, 60, 90}: "SHEN ZHEN HENG SHENG HUI DIGITAL TECHNOLOGY CO.,LTD", - [3]byte{236, 62, 9}: "PERFORMANCE DESIGNED PRODUCTS, LLC", - [3]byte{236, 63, 5}: "Institute 706, The Second Academy China Aerospace Science & Industry Corp", - [3]byte{236, 66, 240}: "ADL Embedded Solutions, Inc.", - [3]byte{236, 67, 230}: "AWCER Ltd.", - [3]byte{236, 67, 246}: "ZyXEL Communications Corporation", - [3]byte{236, 68, 118}: "CISCO SYSTEMS, INC.", - [3]byte{236, 70, 68}: "TTK SAS", - [3]byte{236, 70, 112}: "Meinberg Funkuhren GmbH & Co. KG", - [3]byte{236, 71, 60}: "Redwire, LLC", - [3]byte{236, 73, 147}: "Qihan Technology Co., Ltd", - [3]byte{236, 76, 77}: "ZAO NPK RoTeK", - [3]byte{236, 84, 46}: "Shanghai XiMei Electronic Technology Co. Ltd", - [3]byte{236, 85, 249}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{236, 89, 231}: "Microsoft Corporation", - [3]byte{236, 92, 105}: "MITSUBISHI HEAVY INDUSTRIES MECHATRONICS SYSTEMS,LTD.", - [3]byte{236, 98, 100}: "Global411 Internet Services, LLC", - [3]byte{236, 99, 229}: "ePBoard Design LLC", - [3]byte{236, 102, 209}: "B&W Group LTD", - [3]byte{236, 108, 159}: "Chengdu Volans Technology CO.,LTD", - [3]byte{236, 113, 219}: "Shenzhen Baichuan Digital Technology Co., Ltd.", - [3]byte{236, 124, 116}: "Justone Technologies Co., Ltd.", - [3]byte{236, 125, 157}: "MEI", - [3]byte{236, 128, 9}: "NovaSparks", - [3]byte{236, 131, 108}: "RM Tech Co., Ltd.", - [3]byte{236, 133, 47}: "Apple", - [3]byte{236, 136, 143}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{236, 137, 245}: "Lenovo Mobile Communication Technology Ltd.", - [3]byte{236, 138, 76}: "zte corporation", - [3]byte{236, 142, 173}: "DLX", - [3]byte{236, 146, 51}: "Eddyfi NDT Inc", - [3]byte{236, 147, 39}: "MEMMERT GmbH + Co. KG", - [3]byte{236, 150, 129}: "2276427 Ontario Inc", - [3]byte{236, 152, 108}: "Lufft Mess- und Regeltechnik GmbH", - [3]byte{236, 152, 193}: "Beijing Risbo Network Technology Co.,Ltd", - [3]byte{236, 154, 116}: "Hewlett Packard", - [3]byte{236, 155, 91}: "Nokia Corporation", - [3]byte{236, 158, 205}: "Artesyn Embedded Technologies", - [3]byte{236, 162, 155}: "Kemppi Oy", - [3]byte{236, 168, 107}: "ELITEGROUP COMPUTER SYSTEMS CO., LTD.", - [3]byte{236, 177, 6}: "Acuro Networks, Inc", - [3]byte{236, 181, 65}: "SHINANO E and E Co.Ltd.", - [3]byte{236, 185, 7}: "CloudGenix Inc", - [3]byte{236, 187, 174}: "Digivoice Tecnologia em Eletronica Ltda", - [3]byte{236, 189, 9}: "FUSION Electronics Ltd", - [3]byte{236, 195, 138}: "Accuenergy (CANADA) Inc", - [3]byte{236, 200, 130}: "CISCO SYSTEMS, INC.", - [3]byte{236, 203, 48}: "Huawei Technologies Co., Ltd", - [3]byte{236, 205, 109}: "Allied Telesis, Inc.", - [3]byte{236, 208, 14}: "MiraeRecognition Co., Ltd.", - [3]byte{236, 208, 64}: "GEA Farm Technologies GmbH", - [3]byte{236, 209, 154}: "Zhuhai Liming Industries Co., Ltd", - [3]byte{236, 217, 37}: "RAMI", - [3]byte{236, 217, 80}: "IRT SA", - [3]byte{236, 217, 209}: "Shenzhen TG-NET Botone Technology Co.,Ltd.", - [3]byte{236, 222, 61}: "Lamprey Networks, Inc.", - [3]byte{236, 224, 155}: "Samsung electronics CO., LTD", - [3]byte{236, 225, 169}: "Cisco", - [3]byte{236, 229, 18}: "tado GmbH", - [3]byte{236, 229, 85}: "Hirschmann Automation", - [3]byte{236, 231, 68}: "Omntec mfg. inc", - [3]byte{236, 233, 11}: "SISTEMA SOLUCOES ELETRONICAS LTDA - EASYTECH", - [3]byte{236, 233, 21}: "STI Ltd", - [3]byte{236, 233, 248}: "Guang Zhou TRI-SUN Electronics Technology Co., Ltd", - [3]byte{236, 234, 3}: "DARFON LIGHTING CORP", - [3]byte{236, 240, 14}: "Abocom", - [3]byte{236, 242, 54}: "NEOMONTANA ELECTRONICS", - [3]byte{236, 243, 91}: "Nokia Corporation", - [3]byte{236, 244, 187}: "Dell Inc", - [3]byte{236, 247, 43}: "HD DIGITAL TECH CO., LTD.", - [3]byte{236, 250, 170}: "The IMS Company", - [3]byte{236, 252, 85}: "A. Eberle GmbH & Co. KG", - [3]byte{236, 254, 126}: "BlueRadios, Inc.", - [3]byte{240, 0, 127}: "Janz - Contadores de Energia, SA", - [3]byte{240, 2, 43}: "Chrontel", - [3]byte{240, 2, 72}: "SmarteBuilding", - [3]byte{240, 7, 134}: "Shandong Bittel Electronics Co., Ltd", - [3]byte{240, 8, 241}: "Samsung Electronics Co.,Ltd", - [3]byte{240, 19, 195}: "SHENZHEN FENDA TECHNOLOGY CO., LTD", - [3]byte{240, 21, 160}: "KyungDong One Co., Ltd.", - [3]byte{240, 28, 19}: "LG Electronics", - [3]byte{240, 28, 45}: "Juniper Networks", - [3]byte{240, 31, 175}: "Dell Inc", - [3]byte{240, 33, 157}: "Cal-Comp Electronics & Communications Company Ltd.", - [3]byte{240, 35, 41}: "SHOWA DENKI CO.,LTD.", - [3]byte{240, 36, 5}: "OPUS High Technology Corporation", - [3]byte{240, 36, 8}: "Talaris (Sweden) AB", - [3]byte{240, 37, 114}: "CISCO SYSTEMS, INC.", - [3]byte{240, 37, 183}: "Samsung Electro Mechanics co., LTD.", - [3]byte{240, 38, 76}: "Dr. Sigrist AG", - [3]byte{240, 39, 101}: "Murata Manufactuaring Co.,Ltd.", - [3]byte{240, 41, 41}: "Cisco", - [3]byte{240, 42, 97}: "Waldo Networks, Inc.", - [3]byte{240, 47, 216}: "Bi2-Vision", - [3]byte{240, 50, 26}: "Mita-Teknik A/S", - [3]byte{240, 55, 161}: "Huike Electronics (SHENZHEN) CO., LTD.", - [3]byte{240, 58, 75}: "Bloombase, Inc.", - [3]byte{240, 58, 85}: "Omega Elektronik AS", - [3]byte{240, 61, 41}: "Actility", - [3]byte{240, 63, 248}: "R L Drake", - [3]byte{240, 67, 53}: "DVN(Shanghai)Ltd.", - [3]byte{240, 74, 43}: "PYRAMID Computer GmbH", - [3]byte{240, 75, 106}: "Scientific Production Association Siberian Arsenal, Ltd.", - [3]byte{240, 75, 242}: "JTECH Communications, Inc.", - [3]byte{240, 77, 162}: "Dell Inc.", - [3]byte{240, 79, 124}: "PRIVATE", - [3]byte{240, 88, 73}: "CareView Communications", - [3]byte{240, 90, 9}: "Samsung Electronics Co.,Ltd", - [3]byte{240, 93, 137}: "Dycon Limited", - [3]byte{240, 93, 200}: "Duracell Powermat", - [3]byte{240, 95, 90}: "Getriebebau NORD GmbH and Co. KG", - [3]byte{240, 97, 48}: "Advantage Pharmacy Services, LLC", - [3]byte{240, 98, 13}: "Shenzhen Egreat Tech Corp.,Ltd", - [3]byte{240, 98, 129}: "ProCurve Networking by HP", - [3]byte{240, 101, 221}: "Primax Electronics Ltd.", - [3]byte{240, 104, 83}: "Integrated Corporation", - [3]byte{240, 107, 202}: "Samsung Electronics Co.,Ltd", - [3]byte{240, 114, 140}: "Samsung Electronics Co.,Ltd", - [3]byte{240, 115, 174}: "PEAK-System Technik", - [3]byte{240, 118, 28}: "COMPAL INFORMATION (KUNSHAN) CO., LTD.", - [3]byte{240, 119, 101}: "Sourcefire, Inc", - [3]byte{240, 119, 208}: "Xcellen", - [3]byte{240, 123, 203}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{240, 125, 104}: "D-Link Corporation", - [3]byte{240, 127, 6}: "Cisco", - [3]byte{240, 127, 12}: "Leopold Kostal GmbH &Co. KG", - [3]byte{240, 129, 175}: "IRZ AUTOMATION TECHNOLOGIES LTD", - [3]byte{240, 130, 97}: "SAGEMCOM", - [3]byte{240, 132, 47}: "ADB Broadband Italia", - [3]byte{240, 132, 201}: "zte corporation", - [3]byte{240, 138, 40}: "JIANGSU HENGSION ELECTRONIC S and T CO.,LTD", - [3]byte{240, 139, 254}: "COSTEL.,CO.LTD", - [3]byte{240, 140, 251}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{240, 142, 219}: "VeloCloud Networks", - [3]byte{240, 146, 28}: "Hewlett Packard", - [3]byte{240, 147, 58}: "NxtConect", - [3]byte{240, 147, 197}: "Garland Technology", - [3]byte{240, 156, 187}: "RaonThink Inc.", - [3]byte{240, 156, 233}: "Aerohive Networks Inc", - [3]byte{240, 158, 99}: "Cisco", - [3]byte{240, 162, 37}: "PRIVATE", - [3]byte{240, 167, 100}: "GST Co., Ltd.", - [3]byte{240, 172, 164}: "HBC-radiomatic", - [3]byte{240, 173, 78}: "Globalscale Technologies, Inc.", - [3]byte{240, 174, 81}: "Xi3 Corp", - [3]byte{240, 180, 121}: "Apple", - [3]byte{240, 182, 235}: "Poslab Technology Co., Ltd.", - [3]byte{240, 188, 200}: "MaxID (Pty) Ltd", - [3]byte{240, 189, 241}: "Sipod Inc.", - [3]byte{240, 191, 151}: "Sony Corporation", - [3]byte{240, 193, 241}: "Apple, Inc.", - [3]byte{240, 194, 76}: "Zhejiang FeiYue Digital Technology Co., Ltd", - [3]byte{240, 194, 124}: "Mianyang Netop Telecom Equipment Co.,Ltd.", - [3]byte{240, 200, 140}: "LeddarTech Inc.", - [3]byte{240, 203, 161}: "Apple", - [3]byte{240, 209, 79}: "LINEAR LLC", - [3]byte{240, 209, 169}: "Apple", - [3]byte{240, 211, 167}: "CobaltRay Co., Ltd", - [3]byte{240, 211, 231}: "Sensometrix SA", - [3]byte{240, 215, 103}: "Axema Passagekontroll AB", - [3]byte{240, 218, 124}: "RLH INDUSTRIES,INC.", - [3]byte{240, 219, 48}: "Yottabyte", - [3]byte{240, 219, 248}: "Apple", - [3]byte{240, 220, 226}: "Apple", - [3]byte{240, 222, 113}: "Shanghai EDO Technologies Co.,Ltd.", - [3]byte{240, 222, 185}: "ShangHai Y&Y Electronics Co., Ltd", - [3]byte{240, 222, 241}: "Wistron InfoComm (Kunshan)Co", - [3]byte{240, 229, 195}: "Drägerwerk AG & Co. KG aA", - [3]byte{240, 231, 126}: "Samsung Electronics Co.,Ltd", - [3]byte{240, 235, 208}: "Shanghai Feixun Communication Co.,Ltd.", - [3]byte{240, 236, 57}: "Essec", - [3]byte{240, 237, 30}: "Bilkon Bilgisayar Kontrollu Cih. Im.Ltd.", - [3]byte{240, 238, 187}: "VIPAR GmbH", - [3]byte{240, 240, 2}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{240, 242, 96}: "Mobitec AB", - [3]byte{240, 243, 54}: "TP-LINK TECHNOLOGIES CO.,LTD", - [3]byte{240, 245, 174}: "Adaptrum Inc.", - [3]byte{240, 246, 28}: "Apple", - [3]byte{240, 246, 68}: "Whitesky Science & Technology Co.,Ltd.", - [3]byte{240, 246, 105}: "Motion Analysis Corporation", - [3]byte{240, 247, 85}: "CISCO SYSTEMS, INC.", - [3]byte{240, 247, 179}: "Phorm", - [3]byte{240, 248, 66}: "KEEBOX, Inc.", - [3]byte{240, 249, 247}: "IES GmbH & Co. KG", - [3]byte{240, 253, 160}: "Acurix Networks LP", - [3]byte{240, 254, 107}: "Shanghai High-Flying Electronics Technology Co., Ltd", - [3]byte{244, 3, 33}: "BeNeXt B.V.", - [3]byte{244, 4, 76}: "ValenceTech Limited", - [3]byte{244, 6, 105}: "Intel Corporate", - [3]byte{244, 6, 141}: "devolo AG", - [3]byte{244, 6, 165}: "Hangzhou Bianfeng Networking Technology Co., Ltd.", - [3]byte{244, 9, 216}: "Samsung Electro Mechanics co., LTD.", - [3]byte{244, 11, 147}: "Research In Motion", - [3]byte{244, 14, 17}: "IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.", - [3]byte{244, 15, 27}: "Cisco", - [3]byte{244, 15, 155}: "WAVELINK", - [3]byte{244, 21, 253}: "Shanghai Pateo Electronic Equipment Manufacturing Co., Ltd.", - [3]byte{244, 27, 161}: "Apple", - [3]byte{244, 30, 38}: "Simon-Kaloi Engineering", - [3]byte{244, 31, 11}: "YAMABISHI Corporation", - [3]byte{244, 31, 194}: "Cisco", - [3]byte{244, 32, 18}: "Cuciniale GmbH", - [3]byte{244, 40, 51}: "MMPC Inc.", - [3]byte{244, 40, 83}: "Zioncom Electronics (Shenzhen) Ltd.", - [3]byte{244, 40, 150}: "SPECTO PAINEIS ELETRONICOS LTDA", - [3]byte{244, 54, 225}: "Abilis Systems SARL", - [3]byte{244, 55, 183}: "Apple", - [3]byte{244, 56, 20}: "Shanghai Howell Electronic Co.,Ltd", - [3]byte{244, 61, 128}: "FAG Industrial Services GmbH", - [3]byte{244, 62, 97}: "Shenzhen Gongjin Electronics Co., Ltd", - [3]byte{244, 62, 157}: "Benu Networks, Inc.", - [3]byte{244, 66, 39}: "S & S Research Inc.", - [3]byte{244, 68, 80}: "BND Co., Ltd.", - [3]byte{244, 69, 237}: "Portable Innovation Technology Ltd.", - [3]byte{244, 71, 42}: "Nanjing Rousing Sci. and Tech. Industrial Co., Ltd", - [3]byte{244, 72, 72}: "Amscreen Group Ltd", - [3]byte{244, 78, 5}: "Cisco", - [3]byte{244, 78, 253}: "Actions Semiconductor Co.,Ltd.(Cayman Islands)", - [3]byte{244, 80, 235}: "Telechips Inc", - [3]byte{244, 82, 20}: "Mellanox Technologies, Inc.", - [3]byte{244, 84, 51}: "Rockwell Automation", - [3]byte{244, 85, 149}: "HENGBAO Corporation LTD.", - [3]byte{244, 85, 156}: "Huawei Technologies Co., Ltd", - [3]byte{244, 85, 224}: "Niceway CNC Technology Co.,Ltd.Hunan Province", - [3]byte{244, 88, 66}: "Boxx TV Ltd", - [3]byte{244, 95, 105}: "Matsufu Electronics distribution Company", - [3]byte{244, 95, 212}: "Cisco SPVTG", - [3]byte{244, 95, 247}: "DQ Technology Inc.", - [3]byte{244, 96, 13}: "Panoptic Technology, Inc", - [3]byte{244, 99, 73}: "Diffon Corporation", - [3]byte{244, 106, 188}: "Adonit Corp. Ltd.", - [3]byte{244, 109, 4}: "ASUSTek COMPUTER INC.", - [3]byte{244, 109, 226}: "zte corporation", - [3]byte{244, 115, 202}: "Conversion Sound Inc.", - [3]byte{244, 118, 38}: "Viltechmeda UAB", - [3]byte{244, 122, 78}: "Woojeon&Handan", - [3]byte{244, 122, 204}: "SolidFire, Inc.", - [3]byte{244, 123, 94}: "Samsung Eletronics Co., Ltd", - [3]byte{244, 127, 53}: "CISCO SYSTEMS, INC.", - [3]byte{244, 129, 57}: "CANON INC.", - [3]byte{244, 135, 113}: "Infoblox", - [3]byte{244, 142, 9}: "Nokia Corporation", - [3]byte{244, 144, 202}: "Tensorcom", - [3]byte{244, 144, 234}: "Deciso B.V.", - [3]byte{244, 148, 97}: "NexGen Storage", - [3]byte{244, 148, 102}: "CountMax, ltd", - [3]byte{244, 153, 172}: "WEBER Schraubautomaten GmbH", - [3]byte{244, 159, 84}: "Samsung Electronics", - [3]byte{244, 159, 243}: "Huawei Technologies Co., Ltd", - [3]byte{244, 162, 148}: "EAGLE WORLD DEVELOPMENT CO., LIMITED", - [3]byte{244, 165, 42}: "Hawa Technologies Inc", - [3]byte{244, 172, 193}: "CISCO SYSTEMS, INC.", - [3]byte{244, 177, 100}: "Lightning Telecommunications Technology Co. Ltd", - [3]byte{244, 179, 129}: "WindowMaster A/S", - [3]byte{244, 181, 47}: "Juniper networks", - [3]byte{244, 181, 73}: "Yeastar Technology Co., Ltd.", - [3]byte{244, 182, 229}: "TerraSem Co.,Ltd", - [3]byte{244, 183, 42}: "TIME INTERCONNECT LTD", - [3]byte{244, 183, 226}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{244, 184, 94}: "Texas INstruments", - [3]byte{244, 189, 124}: "Chengdu jinshi communication Co., LTD", - [3]byte{244, 196, 71}: "Coagent International Enterprise Limited", - [3]byte{244, 198, 215}: "blackned GmbH", - [3]byte{244, 199, 20}: "Shenzhen Huawei Communication Technologies Co., Ltd", - [3]byte{244, 199, 149}: "WEY Elektronik AG", - [3]byte{244, 202, 229}: "FREEBOX SA", - [3]byte{244, 205, 144}: "Vispiron Rotec GmbH", - [3]byte{244, 206, 70}: "Hewlett-Packard Company", - [3]byte{244, 207, 226}: "Cisco", - [3]byte{244, 208, 50}: "Yunnan Ideal Information&Technology.,Ltd", - [3]byte{244, 210, 97}: "SEMOCON Co., Ltd", - [3]byte{244, 217, 251}: "Samsung Electronics CO., LTD", - [3]byte{244, 220, 77}: "Beijing CCD Digital Technology Co., Ltd", - [3]byte{244, 220, 218}: "Zhuhai Jiahe Communication Technology Co., limited", - [3]byte{244, 220, 249}: "Huawei Technologies Co., Ltd", - [3]byte{244, 221, 158}: "GoPro", - [3]byte{244, 225, 66}: "Delta Elektronika BV", - [3]byte{244, 230, 215}: "Solar Power Technologies, Inc.", - [3]byte{244, 234, 103}: "CISCO SYSTEMS, INC.", - [3]byte{244, 236, 56}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{244, 238, 20}: "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", - [3]byte{244, 241, 90}: "Apple", - [3]byte{244, 241, 225}: "Motorola Mobility LLC", - [3]byte{244, 242, 109}: "TP-LINK TECHNOLOGIES CO.,LTD.", - [3]byte{244, 245, 165}: "Nokia corporation", - [3]byte{244, 245, 232}: "Google", - [3]byte{244, 246, 70}: "Dediprog Technology Co. Ltd.", - [3]byte{244, 249, 81}: "Apple", - [3]byte{244, 252, 50}: "Texas Instruments", - [3]byte{244, 253, 43}: "ZOYI Company", - [3]byte{248, 1, 19}: "Huawei Technologies Co., Ltd", - [3]byte{248, 3, 50}: "Khomp", - [3]byte{248, 5, 28}: "DRS Imaging and Targeting Solutions", - [3]byte{248, 11, 190}: "ARRIS Group, Inc.", - [3]byte{248, 11, 208}: "Datang Telecom communication terminal (Tianjin) Co., Ltd.", - [3]byte{248, 12, 243}: "LG Electronics", - [3]byte{248, 13, 67}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{248, 13, 234}: "ZyCast Technology Inc.", - [3]byte{248, 15, 65}: "Wistron InfoComm(ZhongShan) Corporation", - [3]byte{248, 15, 132}: "Natural Security SAS", - [3]byte{248, 16, 55}: "Atopia Systems, LP", - [3]byte{248, 21, 71}: "Avaya, Inc", - [3]byte{248, 22, 84}: "Intel Corporate", - [3]byte{248, 26, 103}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{248, 28, 229}: "Telefonbau Behnke GmbH", - [3]byte{248, 29, 147}: "Longdhua(Beijing) Controls Technology Co.,Ltd", - [3]byte{248, 30, 223}: "Apple", - [3]byte{248, 34, 133}: "Cypress Technology CO., LTD.", - [3]byte{248, 36, 65}: "Yeelink", - [3]byte{248, 39, 147}: "Apple, Inc", - [3]byte{248, 43, 200}: "Jiangsu Switter Co., Ltd", - [3]byte{248, 46, 219}: "RTW GmbH & Co. KG", - [3]byte{248, 47, 91}: "eGauge Systems LLC", - [3]byte{248, 47, 168}: "Hon Hai Precision Ind. Co.,Ltd.", - [3]byte{248, 48, 148}: "Alcatel-Lucent Telecom Limited", - [3]byte{248, 49, 62}: "endeavour GmbH", - [3]byte{248, 51, 118}: "Good Mind Innovation Co., Ltd.", - [3]byte{248, 53, 83}: "Magenta Research Ltd.", - [3]byte{248, 53, 221}: "Gemtek Technology Co., Ltd.", - [3]byte{248, 61, 78}: "Softlink Automation System Co., Ltd", - [3]byte{248, 61, 255}: "Huawei Technologies Co., Ltd", - [3]byte{248, 66, 251}: "Yasuda Joho Co.,ltd.", - [3]byte{248, 67, 96}: "INGENICO", - [3]byte{248, 69, 173}: "Konka Group Co., Ltd.", - [3]byte{248, 70, 45}: "SYNTEC Incorporation", - [3]byte{248, 71, 45}: "X2gen Digital Corp. Ltd", - [3]byte{248, 72, 151}: "Hitachi, Ltd.", - [3]byte{248, 74, 115}: "EUMTECH CO., LTD", - [3]byte{248, 74, 127}: "Innometriks Inc", - [3]byte{248, 74, 191}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{248, 79, 87}: "Cisco", - [3]byte{248, 80, 99}: "Verathon", - [3]byte{248, 81, 109}: "Denwa Technology Corp.", - [3]byte{248, 82, 223}: "VNL Europe AB", - [3]byte{248, 84, 175}: "ECI Telecom Ltd.", - [3]byte{248, 87, 46}: "Core Brands, LLC", - [3]byte{248, 91, 201}: "M-Cube Spa", - [3]byte{248, 92, 69}: "IC Nexus Co. Ltd.", - [3]byte{248, 95, 42}: "Nokia Corporation", - [3]byte{248, 98, 170}: "xn systems", - [3]byte{248, 102, 1}: "Suzhou Chi-tek information technology Co., Ltd", - [3]byte{248, 102, 209}: "Hon Hai Precision Ind. Co., Ltd.", - [3]byte{248, 102, 242}: "CISCO SYSTEMS, INC.", - [3]byte{248, 105, 113}: "Seibu Electric Co.,", - [3]byte{248, 110, 207}: "Arcx Inc", - [3]byte{248, 113, 254}: "The Goldman Sachs Group, Inc.", - [3]byte{248, 114, 234}: "Cisco", - [3]byte{248, 115, 148}: "NETGEAR INC.,", - [3]byte{248, 118, 155}: "Neopis Co., Ltd.", - [3]byte{248, 123, 98}: "FASTWEL INTERNATIONAL CO., LTD. Taiwan Branch", - [3]byte{248, 123, 122}: "ARRIS Group, Inc.", - [3]byte{248, 123, 140}: "Amped Wireless", - [3]byte{248, 129, 26}: "OVERKIZ", - [3]byte{248, 132, 121}: "Yaojin Technology(Shenzhen)Co.,Ltd", - [3]byte{248, 132, 242}: "Samsung Electronics Co.,Ltd", - [3]byte{248, 140, 28}: "KAISHUN ELECTRONIC TECHNOLOGY CO., LTD. BEIJING", - [3]byte{248, 141, 239}: "Tenebraex", - [3]byte{248, 142, 133}: "COMTREND CORPORATION", - [3]byte{248, 143, 202}: "Google Fiber, Inc", - [3]byte{248, 145, 42}: "GLP German Light Products GmbH", - [3]byte{248, 147, 243}: "VOLANS", - [3]byte{248, 149, 80}: "Proton Products Chengdu Ltd", - [3]byte{248, 151, 207}: "DAESHIN-INFORMATION TECHNOLOGY CO., LTD.", - [3]byte{248, 153, 85}: "Fortress Technology Inc", - [3]byte{248, 157, 13}: "Control Technology Inc.", - [3]byte{248, 159, 184}: "YAZAKI Energy System Corporation", - [3]byte{248, 160, 61}: "Dinstar Technologies Co., Ltd.", - [3]byte{248, 162, 180}: "RHEWA-WAAGENFABRIK August Freudewald GmbH &Co. KG", - [3]byte{248, 164, 95}: "Beijing Xiaomi communications co.,ltd", - [3]byte{248, 169, 99}: "COMPAL INFORMATION (KUNSHAN) CO., LTD.", - [3]byte{248, 169, 208}: "LG Electronics", - [3]byte{248, 169, 222}: "PUISSANCE PLUS", - [3]byte{248, 170, 138}: "Axview Technology (Shenzhen) Co.,Ltd", - [3]byte{248, 172, 109}: "Deltenna Ltd", - [3]byte{248, 177, 86}: "Dell Inc", - [3]byte{248, 178, 243}: "GUANGZHOU BOSMA TECHNOLOGY CO.,LTD", - [3]byte{248, 181, 153}: "Guangzhou CHNAVS Digital Technology Co.,Ltd", - [3]byte{248, 188, 18}: "Dell Inc", - [3]byte{248, 188, 65}: "Rosslare Enterprises Limited", - [3]byte{248, 192, 1}: "Juniper Networks", - [3]byte{248, 192, 145}: "Highgates Technology", - [3]byte{248, 194, 136}: "Cisco", - [3]byte{248, 198, 120}: "Carefusion", - [3]byte{248, 208, 172}: "Sony Computer Entertainment Inc.", - [3]byte{248, 208, 189}: "Samsung Electronics Co.,Ltd", - [3]byte{248, 209, 17}: "TP-LINK TECHNOLOGIES CO., LTD.", - [3]byte{248, 211, 169}: "AXAN Networks", - [3]byte{248, 212, 98}: "Pumatronix Equipamentos Eletronicos Ltda.", - [3]byte{248, 215, 86}: "Simm Tronic Limited", - [3]byte{248, 215, 191}: "REV Ritter GmbH", - [3]byte{248, 218, 223}: "EcoTech, Inc.", - [3]byte{248, 218, 226}: "Beta LaserMike", - [3]byte{248, 218, 244}: "Taishan Online Technology Co., Ltd.", - [3]byte{248, 219, 76}: "PNY Technologies, INC.", - [3]byte{248, 219, 127}: "HTC Corporation", - [3]byte{248, 219, 136}: "Dell Inc", - [3]byte{248, 220, 122}: "Variscite LTD", - [3]byte{248, 223, 168}: "ZTE Corporation", - [3]byte{248, 224, 121}: "Motorola Mobility LLC", - [3]byte{248, 228, 251}: "Actiontec Electronics, Inc", - [3]byte{248, 231, 181}: "µTech Tecnologia LTDA", - [3]byte{248, 232, 17}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{248, 233, 3}: "D-Link International", - [3]byte{248, 233, 104}: "Egker Kft.", - [3]byte{248, 234, 10}: "Dipl.-Math. Michael Rauch", - [3]byte{248, 237, 165}: "ARRIS Group, Inc.", - [3]byte{248, 240, 5}: "Newport Media Inc.", - [3]byte{248, 240, 20}: "RackWare Inc.", - [3]byte{248, 240, 130}: "Orion Networks International, Inc", - [3]byte{248, 241, 182}: "Motorola Mobility LLC", - [3]byte{248, 242, 90}: "G-Lab GmbH", - [3]byte{248, 247, 211}: "International Communications Corporation", - [3]byte{248, 247, 255}: "SYN-TECH SYSTEMS INC", - [3]byte{248, 251, 47}: "Santur Corporation", - [3]byte{248, 254, 92}: "Reciprocal Labs Corp", - [3]byte{248, 254, 168}: "Technico Japan Corporation", - [3]byte{248, 255, 95}: "Shenzhen Communication Technology Co.,Ltd", - [3]byte{252, 0, 18}: "Toshiba Samsung Storage Technolgoy Korea Corporation", - [3]byte{252, 1, 158}: "VIEVU", - [3]byte{252, 1, 205}: "FUNDACION TEKNIKER", - [3]byte{252, 6, 71}: "Cortland Research, LLC", - [3]byte{252, 7, 160}: "LRE Medical GmbH", - [3]byte{252, 8, 119}: "Prentke Romich Company", - [3]byte{252, 9, 216}: "ACTEON Group", - [3]byte{252, 9, 246}: "GUANGDONG TONZE ELECTRIC CO.,LTD", - [3]byte{252, 10, 129}: "Motorola Solutions Inc.", - [3]byte{252, 15, 230}: "Sony Computer Entertainment Inc.", - [3]byte{252, 16, 189}: "Control Sistematizado S.A.", - [3]byte{252, 17, 134}: "Logic3 plc", - [3]byte{252, 19, 73}: "Global Apps Corp.", - [3]byte{252, 21, 180}: "Hewlett Packard", - [3]byte{252, 22, 7}: "Taian Technology(Wuxi) Co.,Ltd.", - [3]byte{252, 23, 148}: "InterCreative Co., Ltd", - [3]byte{252, 25, 16}: "Samsung Electronics Co.,Ltd", - [3]byte{252, 25, 208}: "Cloud Vision Networks Technology Co.,Ltd.", - [3]byte{252, 27, 255}: "V-ZUG AG", - [3]byte{252, 29, 89}: "I Smart Cities HK Ltd", - [3]byte{252, 29, 132}: "Autobase", - [3]byte{252, 30, 22}: "IPEVO corp", - [3]byte{252, 31, 25}: "SAMSUNG ELECTRO-MECHANICS CO., LTD.", - [3]byte{252, 31, 192}: "EURECAM", - [3]byte{252, 34, 156}: "Han Kyung I Net Co.,Ltd.", - [3]byte{252, 35, 37}: "EosTek (Shenzhen) Co., Ltd.", - [3]byte{252, 37, 63}: "Apple", - [3]byte{252, 39, 162}: "TRANS ELECTRIC CO., LTD.", - [3]byte{252, 42, 84}: "Connected Data, Inc.", - [3]byte{252, 46, 45}: "Lorom Industrial Co.LTD.", - [3]byte{252, 47, 64}: "Calxeda, Inc.", - [3]byte{252, 53, 152}: "Favite Inc.", - [3]byte{252, 53, 230}: "Visteon corp", - [3]byte{252, 63, 171}: "Henan Lanxin Technology Co., Ltd", - [3]byte{252, 68, 99}: "Universal Audio, Inc", - [3]byte{252, 68, 153}: "Swarco LEA d.o.o.", - [3]byte{252, 69, 95}: "JIANGXI SHANSHUI OPTOELECTRONIC TECHNOLOGY CO.,LTD", - [3]byte{252, 72, 239}: "HUAWEI TECHNOLOGIES CO.,LTD", - [3]byte{252, 74, 233}: "Castlenet Technology Inc.", - [3]byte{252, 75, 28}: "INTERSENSOR S.R.L.", - [3]byte{252, 75, 188}: "Sunplus Technology Co., Ltd.", - [3]byte{252, 77, 212}: "Universal Global Scientific Industrial Co., Ltd.", - [3]byte{252, 80, 144}: "SIMEX Sp. z o.o.", - [3]byte{252, 82, 206}: "Control iD", - [3]byte{252, 88, 250}: "Shen Zhen Shi Xin Zhong Xin Technology Co.,Ltd.", - [3]byte{252, 91, 36}: "Weibel Scientific A/S", - [3]byte{252, 91, 38}: "MikroBits", - [3]byte{252, 91, 57}: "Cisco", - [3]byte{252, 96, 24}: "Zhejiang Kangtai Electric Co., Ltd.", - [3]byte{252, 97, 152}: "NEC Personal Products, Ltd", - [3]byte{252, 98, 110}: "Beijing MDC Telecom", - [3]byte{252, 98, 185}: "ALPS ERECTRIC CO.,LTD", - [3]byte{252, 104, 62}: "Directed Perception, Inc", - [3]byte{252, 108, 49}: "LXinstruments GmbH", - [3]byte{252, 109, 192}: "BME CORPORATION", - [3]byte{252, 117, 22}: "D-Link International", - [3]byte{252, 117, 230}: "Handreamnet", - [3]byte{252, 121, 11}: "Hitachi High Technologies America, Inc.", - [3]byte{252, 124, 231}: "FCI USA LLC", - [3]byte{252, 131, 41}: "Trei technics", - [3]byte{252, 131, 153}: "Avaya, Inc", - [3]byte{252, 139, 151}: "Shenzhen Gongjin Electronics Co.,Ltd", - [3]byte{252, 142, 126}: "Pace plc", - [3]byte{252, 143, 196}: "Intelligent Technology Inc.", - [3]byte{252, 146, 59}: "Nokia Corporation", - [3]byte{252, 148, 108}: "UBIVELOX", - [3]byte{252, 148, 227}: "Technicolor USA Inc.", - [3]byte{252, 153, 71}: "Cisco", - [3]byte{252, 159, 174}: "Fidus Systems Inc", - [3]byte{252, 159, 225}: "CONWIN.Tech. Ltd", - [3]byte{252, 161, 62}: "Samsung Electronics", - [3]byte{252, 168, 65}: "Avaya, Inc", - [3]byte{252, 169, 176}: "MIARTECH (SHANGHAI),INC.", - [3]byte{252, 170, 20}: "GIGA-BYTE TECHNOLOGY CO.,LTD.", - [3]byte{252, 173, 15}: "QTS NETWORKS", - [3]byte{252, 175, 106}: "Conemtech AB", - [3]byte{252, 176, 196}: "Shanghai DareGlobal Technologies Co., Ltd", - [3]byte{252, 187, 161}: "Shenzhen Minicreate Technology Co.,Ltd", - [3]byte{252, 194, 61}: "Atmel Corporation", - [3]byte{252, 194, 222}: "Murata Manufacturing Co., Ltd.", - [3]byte{252, 199, 52}: "Samsung Electronics Co.,Ltd", - [3]byte{252, 200, 151}: "ZTE Corporation", - [3]byte{252, 204, 228}: "Ascon Ltd.", - [3]byte{252, 207, 98}: "IBM Corp", - [3]byte{252, 212, 242}: "The Coca Cola Company", - [3]byte{252, 212, 246}: "Messana Air.Ray Conditioning s.r.l.", - [3]byte{252, 213, 217}: "Shenzhen SDMC Technology Co., Ltd.", - [3]byte{252, 214, 189}: "Robert Bosch GmbH", - [3]byte{252, 216, 23}: "Beijing Hesun Technologies Co.Ltd.", - [3]byte{252, 219, 150}: "ENERVALLEY CO., LTD", - [3]byte{252, 219, 179}: "Murata Manufacturing Co., Ltd.", - [3]byte{252, 221, 85}: "Shenzhen WeWins wireless Co.,Ltd", - [3]byte{252, 225, 134}: "A3M Co., LTD", - [3]byte{252, 225, 146}: "Sichuan Jinwangtong Electronic Science&Technology Co,.Ltd", - [3]byte{252, 225, 217}: "Stable Imaging Solutions LLC", - [3]byte{252, 226, 63}: "CLAY PAKY SPA", - [3]byte{252, 229, 87}: "Nokia Corporation", - [3]byte{252, 232, 146}: "Hangzhou Lancable Technology Co.,Ltd", - [3]byte{252, 237, 185}: "Arrayent", - [3]byte{252, 241, 82}: "Sony Corporation", - [3]byte{252, 241, 205}: "OPTEX-FA CO.,LTD.", - [3]byte{252, 245, 40}: "ZyXEL Communications Corporation", - [3]byte{252, 246, 71}: "Fiberhome Telecommunication Tech.Co.,Ltd.", - [3]byte{252, 248, 174}: "Intel Corporate", - [3]byte{252, 248, 183}: "TRONTEQ Electronic", - [3]byte{252, 250, 247}: "Shanghai Baud Data Communication Co.,Ltd.", - [3]byte{252, 251, 251}: "CISCO SYSTEMS, INC.", - [3]byte{252, 254, 119}: "Hitachi Reftechno, Inc.", - [3]byte{252, 255, 170}: "IEEE REGISTRATION AUTHORITY - Please see MAL public listing for more information.", -} diff --git a/vendor/github.com/tsg/gopacket/pcap/gopacket_benchmark/benchmark.go b/vendor/github.com/tsg/gopacket/pcap/gopacket_benchmark/benchmark.go deleted file mode 100644 index 8ee9609e041..00000000000 --- a/vendor/github.com/tsg/gopacket/pcap/gopacket_benchmark/benchmark.go +++ /dev/null @@ -1,247 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// This benchmark reads in file /gopacket_benchmark.pcap and measures -// the time it takes to decode all packets from that file. If the file doesn't -// exist, it's pulled down from a publicly available location. However, you can -// feel free to substitute your own file at that location, in which case the -// benchmark will run on your own data. -// -// It's also useful for figuring out which packets may be causing errors. Pass -// in the --printErrors flag, and it'll print out error layers for each packet -// that has them. This includes any packets that it's just unable to decode, -// which is a great way to find new protocols to decode, and get test packets to -// write tests for them. -package main - -import ( - "compress/gzip" - "encoding/hex" - "flag" - "fmt" - "github.com/tsg/gopacket" - "github.com/tsg/gopacket/layers" - "github.com/tsg/gopacket/pcap" - "github.com/tsg/gopacket/tcpassembly" - "io" - "io/ioutil" - "net/http" - "os" - "runtime" - "runtime/pprof" - "time" -) - -var decodeLazy *bool = flag.Bool("lazy", false, "If true, use lazy decoding") -var decodeNoCopy *bool = flag.Bool("nocopy", true, "If true, avoid an extra copy when decoding packets") -var printErrors *bool = flag.Bool("printErrors", false, "If true, check for and print error layers.") -var printLayers *bool = flag.Bool("printLayers", false, "If true, print out the layers of each packet") -var repeat *int = flag.Int("repeat", 5, "Read over the file N times") -var cpuProfile *string = flag.String("cpuprofile", "", "If set, write CPU profile to filename") -var url *string = flag.String("url", "http://www.ll.mit.edu/mission/communications/cyber/CSTcorpora/ideval/data/1999/training/week1/tuesday/inside.tcpdump.gz", "URL to gzip'd pcap file") - -type BufferPacketSource struct { - index int - data [][]byte - ci []gopacket.CaptureInfo -} - -func NewBufferPacketSource(p gopacket.PacketDataSource) *BufferPacketSource { - start := time.Now() - b := &BufferPacketSource{} - for { - data, ci, err := p.ReadPacketData() - if err == io.EOF { - break - } - b.data = append(b.data, data) - b.ci = append(b.ci, ci) - } - duration := time.Since(start) - fmt.Printf("Reading packet data into memory: %d packets in %v, %v per packet\n", len(b.data), duration, duration/time.Duration(len(b.data))) - return b -} - -func (b *BufferPacketSource) ReadPacketData() (data []byte, ci gopacket.CaptureInfo, err error) { - if b.index >= len(b.data) { - err = io.EOF - return - } - data = b.data[b.index] - ci = b.ci[b.index] - b.index++ - return -} - -func (b *BufferPacketSource) Reset() { - runtime.GC() - b.index = 0 -} - -func main() { - flag.Parse() - filename := os.TempDir() + string(os.PathSeparator) + "gopacket_benchmark.pcap" - if _, err := os.Stat(filename); err != nil { - // This URL points to a publicly available packet data set from a DARPA - // intrusion detection evaluation. See - // http://www.ll.mit.edu/mission/communications/cyber/CSTcorpora/ideval/data/1999/training/week1/index.html - // for more details. - fmt.Println("Local pcap file", filename, "doesn't exist, reading from", *url) - if resp, err := http.Get(*url); err != nil { - panic(err) - } else if out, err := os.Create(filename); err != nil { - panic(err) - } else if gz, err := gzip.NewReader(resp.Body); err != nil { - panic(err) - } else if n, err := io.Copy(out, gz); err != nil { - panic(err) - } else if err := gz.Close(); err != nil { - panic(err) - } else if err := out.Close(); err != nil { - panic(err) - } else { - fmt.Println("Successfully read", n, "bytes from url, unzipped to local storage") - } - } - fmt.Println("Reading file once through to hopefully cache most of it") - if f, err := os.Open(filename); err != nil { - panic(err) - } else if n, err := io.Copy(ioutil.Discard, f); err != nil { - panic(err) - } else if err := f.Close(); err != nil { - panic(err) - } else { - fmt.Println("Read in file", filename, ", total of", n, "bytes") - } - if *cpuProfile != "" { - if cpu, err := os.Create(*cpuProfile); err != nil { - panic(err) - } else if err := pprof.StartCPUProfile(cpu); err != nil { - panic(err) - } else { - defer func() { - pprof.StopCPUProfile() - cpu.Close() - }() - } - } - var packetDataSource *BufferPacketSource - var packetSource *gopacket.PacketSource - fmt.Printf("Opening file %q for read\n", filename) - if h, err := pcap.OpenOffline(filename); err != nil { - panic(err) - } else { - fmt.Println("Reading all packets into memory with BufferPacketSource.") - start := time.Now() - packetDataSource = NewBufferPacketSource(h) - duration := time.Since(start) - fmt.Printf("Time to read packet data into memory from file: %v\n", duration) - packetSource = gopacket.NewPacketSource(packetDataSource, h.LinkType()) - packetSource.DecodeOptions.Lazy = *decodeLazy - packetSource.DecodeOptions.NoCopy = *decodeNoCopy - } - fmt.Println() - for i := 0; i < *repeat; i++ { - packetDataSource.Reset() - fmt.Printf("Benchmarking decode %d/%d\n", i+1, *repeat) - benchmarkPacketDecode(packetSource) - } - fmt.Println() - for i := 0; i < *repeat; i++ { - packetDataSource.Reset() - fmt.Printf("Benchmarking decoding layer parser %d/%d\n", i+1, *repeat) - benchmarkLayerDecode(packetDataSource, false) - } - fmt.Println() - for i := 0; i < *repeat; i++ { - packetDataSource.Reset() - fmt.Printf("Benchmarking decoding layer parser with assembly %d/%d\n", i+1, *repeat) - benchmarkLayerDecode(packetDataSource, true) - } -} - -func benchmarkPacketDecode(packetSource *gopacket.PacketSource) { - count, errors := 0, 0 - start := time.Now() - for packet, err := packetSource.NextPacket(); err != io.EOF; packet, err = packetSource.NextPacket() { - if err != nil { - fmt.Println("Error reading in packet:", err) - continue - } - count++ - var hasError bool - if *printErrors && packet.ErrorLayer() != nil { - fmt.Println("\n\n\nError decoding packet:", packet.ErrorLayer().Error()) - fmt.Println(hex.Dump(packet.Data())) - fmt.Printf("%#v\n", packet.Data()) - errors++ - hasError = true - } - if *printLayers || hasError { - fmt.Printf("\n=== PACKET %d ===\n", count) - for _, l := range packet.Layers() { - fmt.Printf("--- LAYER %v ---\n%#v\n\n", l.LayerType(), l) - } - fmt.Println() - } - } - duration := time.Since(start) - fmt.Printf("\tRead in %v packets in %v, %v per packet\n", count, duration, duration/time.Duration(count)) - if *printErrors { - fmt.Printf("%v errors, successfully decoded %.02f%%\n", errors, float64(count-errors)*100.0/float64(count)) - } -} - -type streamFactory struct { -} - -func (s *streamFactory) New(netFlow, tcpFlow gopacket.Flow) tcpassembly.Stream { - return s -} -func (s *streamFactory) Reassembled([]tcpassembly.Reassembly) { -} -func (s *streamFactory) ReassemblyComplete() { -} - -func benchmarkLayerDecode(source *BufferPacketSource, assemble bool) { - var tcp layers.TCP - var ip layers.IPv4 - var eth layers.Ethernet - var udp layers.UDP - var icmp layers.ICMPv4 - var payload gopacket.Payload - parser := gopacket.NewDecodingLayerParser( - layers.LayerTypeEthernet, - ð, &ip, &icmp, &tcp, &udp, &payload) - pool := tcpassembly.NewStreamPool(&streamFactory{}) - assembler := tcpassembly.NewAssembler(pool) - var decoded []gopacket.LayerType - start := time.Now() - packets, decodedlayers, assembled := 0, 0, 0 - for { - packets++ - data, ci, err := source.ReadPacketData() - if err == io.EOF { - break - } else if err != nil { - fmt.Println("Error reading packet: ", err) - continue - } - err = parser.DecodeLayers(data, &decoded) - for _, typ := range decoded { - decodedlayers++ - if typ == layers.LayerTypeTCP && assemble { - assembled++ - assembler.AssembleWithTimestamp(ip.NetworkFlow(), &tcp, ci.Timestamp) - } - } - } - if assemble { - assembler.FlushAll() - } - duration := time.Since(start) - fmt.Printf("\tRead in %d packets in %v, decoded %v layers, assembled %v packets: %v per packet\n", packets, duration, decodedlayers, assembled, duration/time.Duration(packets)) -} diff --git a/vendor/github.com/tsg/gopacket/pcapgo/write.go b/vendor/github.com/tsg/gopacket/pcapgo/write.go deleted file mode 100644 index 84a43242ba1..00000000000 --- a/vendor/github.com/tsg/gopacket/pcapgo/write.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// Package pcapgo provides some native PCAP support, not requiring -// C libpcap to be installed. -package pcapgo - -import ( - "encoding/binary" - "fmt" - "github.com/tsg/gopacket" - "github.com/tsg/gopacket/layers" - "io" -) - -// Writer wraps an underlying io.Writer to write packet data in PCAP -// format. See http://wiki.wireshark.org/Development/LibpcapFileFormat -// for information on the file format. -// -// For those that care, we currently write v2.4 files with nanosecond -// timestamp resolution and little-endian encoding. -type Writer struct { - w io.Writer -} - -const magicNanoseconds = 0xA1B2C3D4 -const versionMajor = 2 -const versionMinor = 4 - -// NewWriter returns a new writer object, for writing packet data out -// to the given writer. If this is a new empty writer (as opposed to -// an append), you must call WriteFileHeader before WritePacket. -// -// // Write a new file: -// f, _ := os.Create("/tmp/file.pcap") -// w := pcapgo.NewWriter(f) -// w.WriteFileHeader(65536, layers.LinkTypeEthernet) // new file, must do this. -// w.WritePacket(gopacket.CaptureInfo{...}, data1) -// f.Close() -// // Append to existing file (must have same snaplen and linktype) -// f2, _ := os.OpenFile("/tmp/file.pcap", os.O_APPEND, 0700) -// w2 := pcapgo.NewWriter(f2) -// // no need for file header, it's already written. -// w2.WritePacket(gopacket.CaptureInfo{...}, data2) -// f2.Close() -func NewWriter(w io.Writer) *Writer { - return &Writer{w: w} -} - -// WriteFileHeader writes a file header out to the writer. -// This must be called exactly once per output. -func (w *Writer) WriteFileHeader(snaplen uint32, linktype layers.LinkType) error { - var buf [24]byte - binary.LittleEndian.PutUint32(buf[0:4], magicNanoseconds) - binary.LittleEndian.PutUint16(buf[4:6], versionMajor) - binary.LittleEndian.PutUint16(buf[6:8], versionMinor) - // bytes 8:12 stay 0 (timezone = UTC) - // bytes 12:16 stay 0 (sigfigs is always set to zero, according to - // http://wiki.wireshark.org/Development/LibpcapFileFormat - binary.LittleEndian.PutUint32(buf[16:20], snaplen) - binary.LittleEndian.PutUint32(buf[20:24], uint32(linktype)) - _, err := w.w.Write(buf[:]) - return err -} - -const nanosPerMicro = 1000 -const microsPerSecond = 1000000 - -func (w *Writer) writePacketHeader(ci gopacket.CaptureInfo) error { - var buf [16]byte - micros := ci.Timestamp.UnixNano() / nanosPerMicro - secs, usecs := uint32(micros/microsPerSecond), uint32(micros%microsPerSecond) - binary.LittleEndian.PutUint32(buf[0:4], secs) - binary.LittleEndian.PutUint32(buf[4:8], usecs) - binary.LittleEndian.PutUint32(buf[8:12], uint32(ci.CaptureLength)) - binary.LittleEndian.PutUint32(buf[12:16], uint32(ci.Length)) - _, err := w.w.Write(buf[:]) - return err -} - -// WritePacket writes the given packet data out to the file. -func (w *Writer) WritePacket(ci gopacket.CaptureInfo, data []byte) error { - if ci.CaptureLength != len(data) { - return fmt.Errorf("capture length %d does not match data length %d", ci.CaptureLength, len(data)) - } - if ci.CaptureLength > ci.Length { - return fmt.Errorf("invalid capture info %+v: capture length > length", ci) - } - if err := w.writePacketHeader(ci); err != nil { - return fmt.Errorf("error writing packet header: %v", err) - } - _, err := w.w.Write(data) - return err -} diff --git a/vendor/github.com/tsg/gopacket/routing/common.go b/vendor/github.com/tsg/gopacket/routing/common.go deleted file mode 100644 index a6746d490da..00000000000 --- a/vendor/github.com/tsg/gopacket/routing/common.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -package routing - -import ( - "net" -) - -// Router implements simple IPv4/IPv6 routing based on the kernel's routing -// table. This routing library has very few features and may actually route -// incorrectly in some cases, but it should work the majority of the time. -type Router interface { - // Route returns where to route a packet based on the packet's source - // and destination IP address. - // - // Callers may pass in nil for src, in which case the src is treated as - // either 0.0.0.0 or ::, depending on whether dst is a v4 or v6 address. - // - // It returns the interface on which to send the packet, the gateway IP - // to send the packet to (if necessary), the preferred src IP to use (if - // available). If the preferred src address is not given in the routing - // table, the first IP address of the interface is provided. - // - // If an error is encountered, iface, geteway, and - // preferredSrc will be nil, and err will be set. - Route(dst net.IP) (iface *net.Interface, gateway, preferredSrc net.IP, err error) - - // RouteWithSrc routes based on source information as well as destination - // information. Either or both of input/src can be nil. If both are, this - // should behave exactly like Route(dst) - RouteWithSrc(input net.HardwareAddr, src, dst net.IP) (iface *net.Interface, gateway, preferredSrc net.IP, err error) -} diff --git a/vendor/github.com/tsg/gopacket/routing/other.go b/vendor/github.com/tsg/gopacket/routing/other.go deleted file mode 100644 index b53fea94466..00000000000 --- a/vendor/github.com/tsg/gopacket/routing/other.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// +build !linux - -// Package routing is currently only supported in Linux, but the build system requires a valid go file for all architectures. - -package routing - -func New() (Router, error) { - panic("router only implemented in linux") -} diff --git a/vendor/github.com/tsg/gopacket/routing/routing.go b/vendor/github.com/tsg/gopacket/routing/routing.go deleted file mode 100644 index 7271cb6bf58..00000000000 --- a/vendor/github.com/tsg/gopacket/routing/routing.go +++ /dev/null @@ -1,241 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// +build linux - -// Package routing provides a very basic but mostly functional implementation of -// a routing table for IPv4/IPv6 addresses. It uses a routing table pulled from -// the kernel via netlink to find the correct interface, gateway, and preferred -// source IP address for packets destined to a particular location. -// -// The routing package is meant to be used with applications that are sending -// raw packet data, which don't have the benefit of having the kernel route -// packets for them. -package routing - -import ( - "bytes" - "fmt" - "net" - "sort" - "strings" - "syscall" - "unsafe" -) - -// Pulled from http://man7.org/linux/man-pages/man7/rtnetlink.7.html -// See the section on RTM_NEWROUTE, specifically 'struct rtmsg'. -type routeInfoInMemory struct { - Family byte - DstLen byte - SrcLen byte - TOS byte - - Table byte - Protocol byte - Scope byte - Type byte - - Flags uint32 -} - -// rtInfo contains information on a single route. -type rtInfo struct { - Src, Dst *net.IPNet - Gateway, PrefSrc net.IP - // We currently ignore the InputIface. - InputIface, OutputIface uint32 - Priority uint32 -} - -// routeSlice implements sort.Interface to sort routes by Priority. -type routeSlice []*rtInfo - -func (r routeSlice) Len() int { - return len(r) -} -func (r routeSlice) Less(i, j int) bool { - return r[i].Priority < r[j].Priority -} -func (r routeSlice) Swap(i, j int) { - r[i], r[j] = r[j], r[i] -} - -type router struct { - ifaces []net.Interface - addrs []ipAddrs - v4, v6 routeSlice -} - -func (r *router) String() string { - strs := []string{"ROUTER", "--- V4 ---"} - for _, route := range r.v4 { - strs = append(strs, fmt.Sprintf("%+v", *route)) - } - strs = append(strs, "--- V6 ---") - for _, route := range r.v6 { - strs = append(strs, fmt.Sprintf("%+v", *route)) - } - return strings.Join(strs, "\n") -} - -type ipAddrs struct { - v4, v6 net.IP -} - -func (r *router) Route(dst net.IP) (iface *net.Interface, gateway, preferredSrc net.IP, err error) { - return r.RouteWithSrc(nil, nil, dst) -} - -func (r *router) RouteWithSrc(input net.HardwareAddr, src, dst net.IP) (iface *net.Interface, gateway, preferredSrc net.IP, err error) { - length := len(dst) - var ifaceIndex int - switch length { - case 4: - ifaceIndex, gateway, preferredSrc, err = r.route(r.v4, input, src, dst) - case 16: - ifaceIndex, gateway, preferredSrc, err = r.route(r.v6, input, src, dst) - default: - err = fmt.Errorf("IP length is not 4 or 16") - return - } - - // Interfaces are 1-indexed, but we store them in a 0-indexed array. - ifaceIndex-- - - iface = &r.ifaces[ifaceIndex] - if preferredSrc == nil { - switch length { - case 4: - preferredSrc = r.addrs[ifaceIndex].v4 - case 16: - preferredSrc = r.addrs[ifaceIndex].v6 - } - } - return -} - -func (r *router) route(routes routeSlice, input net.HardwareAddr, src, dst net.IP) (iface int, gateway, preferredSrc net.IP, err error) { - var inputIndex uint32 - if input != nil { - for i, iface := range r.ifaces { - if bytes.Equal(input, iface.HardwareAddr) { - // Convert from zero- to one-indexed. - inputIndex = uint32(i + 1) - break - } - } - } - for _, rt := range routes { - if rt.InputIface != 0 && rt.InputIface != inputIndex { - continue - } - if rt.Src != nil && !rt.Src.Contains(src) { - continue - } - if rt.Dst != nil && !rt.Dst.Contains(dst) { - continue - } - return int(rt.OutputIface), rt.Gateway, rt.PrefSrc, nil - } - err = fmt.Errorf("no route found for %v", dst) - return -} - -// New creates a new router object. The router returned by New currently does -// not update its routes after construction... care should be taken for -// long-running programs to call New() regularly to take into account any -// changes to the routing table which have occurred since the last New() call. -func New() (Router, error) { - rtr := &router{} - tab, err := syscall.NetlinkRIB(syscall.RTM_GETROUTE, syscall.AF_UNSPEC) - if err != nil { - return nil, err - } - msgs, err := syscall.ParseNetlinkMessage(tab) - if err != nil { - return nil, err - } -loop: - for _, m := range msgs { - switch m.Header.Type { - case syscall.NLMSG_DONE: - break loop - case syscall.RTM_NEWROUTE: - rt := (*routeInfoInMemory)(unsafe.Pointer(&m.Data[0])) - routeInfo := rtInfo{} - attrs, err := syscall.ParseNetlinkRouteAttr(&m) - if err != nil { - return nil, err - } - switch rt.Family { - case syscall.AF_INET: - rtr.v4 = append(rtr.v4, &routeInfo) - case syscall.AF_INET6: - rtr.v6 = append(rtr.v6, &routeInfo) - default: - continue loop - } - for _, attr := range attrs { - switch attr.Attr.Type { - case syscall.RTA_DST: - routeInfo.Dst = &net.IPNet{ - IP: net.IP(attr.Value), - Mask: net.CIDRMask(int(rt.DstLen), len(attr.Value)*8), - } - case syscall.RTA_SRC: - routeInfo.Src = &net.IPNet{ - IP: net.IP(attr.Value), - Mask: net.CIDRMask(int(rt.SrcLen), len(attr.Value)*8), - } - case syscall.RTA_GATEWAY: - routeInfo.Gateway = net.IP(attr.Value) - case syscall.RTA_PREFSRC: - routeInfo.PrefSrc = net.IP(attr.Value) - case syscall.RTA_IIF: - routeInfo.InputIface = *(*uint32)(unsafe.Pointer(&attr.Value[0])) - case syscall.RTA_OIF: - routeInfo.OutputIface = *(*uint32)(unsafe.Pointer(&attr.Value[0])) - case syscall.RTA_PRIORITY: - routeInfo.Priority = *(*uint32)(unsafe.Pointer(&attr.Value[0])) - } - } - } - } - sort.Sort(rtr.v4) - sort.Sort(rtr.v6) - if ifaces, err := net.Interfaces(); err != nil { - return nil, err - } else { - for i, iface := range ifaces { - if i != iface.Index-1 { - return nil, fmt.Errorf("out of order iface %d = %v", i, iface) - } - rtr.ifaces = append(rtr.ifaces, iface) - var addrs ipAddrs - if ifaceAddrs, err := iface.Addrs(); err != nil { - return nil, err - } else { - for _, addr := range ifaceAddrs { - if inet, ok := addr.(*net.IPNet); ok { - // Go has a nasty habit of giving you IPv4s as ::ffff:1.2.3.4 instead of 1.2.3.4. - // We want to use mapped v4 addresses as v4 preferred addresses, never as v6 - // preferred addresses. - if v4 := inet.IP.To4(); v4 != nil { - if addrs.v4 == nil { - addrs.v4 = v4 - } - } else if addrs.v6 == nil { - addrs.v6 = inet.IP - } - } - } - } - rtr.addrs = append(rtr.addrs, addrs) - } - } - return rtr, nil -} diff --git a/vendor/github.com/tsg/gopacket/tcpassembly/assembly.go b/vendor/github.com/tsg/gopacket/tcpassembly/assembly.go deleted file mode 100644 index 2d845d98cae..00000000000 --- a/vendor/github.com/tsg/gopacket/tcpassembly/assembly.go +++ /dev/null @@ -1,771 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// Package tcpassembly provides TCP stream re-assembly. -// -// The tcpassembly package implements uni-directional TCP reassembly, for use in -// packet-sniffing applications. The caller reads packets off the wire, then -// presents them to an Assembler in the form of gopacket layers.TCP packets -// (github.com/tsg/gopacket, code.google.com/p/gopacket/layers). -// -// The Assembler uses a user-supplied -// StreamFactory to create a user-defined Stream interface, then passes packet -// data in stream order to that object. A concurrency-safe StreamPool keeps -// track of all current Streams being reassembled, so multiple Assemblers may -// run at once to assemble packets while taking advantage of multiple cores. -package tcpassembly - -import ( - "flag" - "fmt" - "github.com/tsg/gopacket" - "github.com/tsg/gopacket/layers" - "log" - "sync" - "time" -) - -var memLog = flag.Bool("assembly_memuse_log", false, "If true, the github.com/tsg/gopacket/tcpassembly library will log information regarding its memory use every once in a while.") -var debugLog = flag.Bool("assembly_debug_log", false, "If true, the github.com/tsg/gopacket/tcpassembly library will log verbose debugging information (at least one line per packet)") - -const invalidSequence = -1 -const uint32Max = 0xFFFFFFFF - -// Sequence is a TCP sequence number. It provides a few convenience functions -// for handling TCP wrap-around. The sequence should always be in the range -// [0,0xFFFFFFFF]... its other bits are simply used in wrap-around calculations -// and should never be set. -type Sequence int64 - -// Difference defines an ordering for comparing TCP sequences that's safe for -// roll-overs. It returns: -// > 0 : if t comes after s -// < 0 : if t comes before s -// 0 : if t == s -// The number returned is the sequence difference, so 4.Difference(8) will -// return 4. -// -// It handles rollovers by considering any sequence in the first quarter of the -// uint32 space to be after any sequence in the last quarter of that space, thus -// wrapping the uint32 space. -func (s Sequence) Difference(t Sequence) int { - if s > uint32Max-uint32Max/4 && t < uint32Max/4 { - t += uint32Max - } else if t > uint32Max-uint32Max/4 && s < uint32Max/4 { - s += uint32Max - } - return int(t - s) -} - -// Add adds an integer to a sequence and returns the resulting sequence. -func (s Sequence) Add(t int) Sequence { - return (s + Sequence(t)) & uint32Max -} - -// Reassembly objects are passed by an Assembler into Streams using the -// Reassembled call. Callers should not need to create these structs themselves -// except for testing. -type Reassembly struct { - // Bytes is the next set of bytes in the stream. May be empty. - Bytes []byte - // Skip is set to non-zero if bytes were skipped between this and the - // last Reassembly. If this is the first packet in a connection and we - // didn't see the start, we have no idea how many bytes we skipped, so - // we set it to -1. Otherwise, it's set to the number of bytes skipped. - Skip int - // Start is set if this set of bytes has a TCP SYN accompanying it. - Start bool - // End is set if this set of bytes has a TCP FIN or RST accompanying it. - End bool - // Seen is the timestamp this set of bytes was pulled off the wire. - Seen time.Time -} - -const pageBytes = 1900 - -// page is used to store TCP data we're not ready for yet (out-of-order -// packets). Unused pages are stored in and returned from a pageCache, which -// avoids memory allocation. Used pages are stored in a doubly-linked list in -// a connection. -type page struct { - Reassembly - seq Sequence - index int - prev, next *page - buf [pageBytes]byte -} - -// pageCache is a concurrency-unsafe store of page objects we use to avoid -// memory allocation as much as we can. It grows but never shrinks. -type pageCache struct { - free []*page - pcSize int - size, used int - pages [][]page - pageRequests int64 -} - -const initialAllocSize = 1024 - -func newPageCache() *pageCache { - pc := &pageCache{ - free: make([]*page, 0, initialAllocSize), - pcSize: initialAllocSize, - } - pc.grow() - return pc -} - -// grow exponentially increases the size of our page cache as much as necessary. -func (c *pageCache) grow() { - pages := make([]page, c.pcSize) - c.pages = append(c.pages, pages) - c.size += c.pcSize - for i, _ := range pages { - c.free = append(c.free, &pages[i]) - } - if *memLog { - log.Println("PageCache: created", c.pcSize, "new pages") - } - c.pcSize *= 2 -} - -// next returns a clean, ready-to-use page object. -func (c *pageCache) next(ts time.Time) (p *page) { - if *memLog { - c.pageRequests++ - if c.pageRequests&0xFFFF == 0 { - log.Println("PageCache:", c.pageRequests, "requested,", c.used, "used,", len(c.free), "free") - } - } - if len(c.free) == 0 { - c.grow() - } - i := len(c.free) - 1 - p, c.free = c.free[i], c.free[:i] - p.prev = nil - p.next = nil - p.Seen = ts - p.Bytes = p.buf[:0] - c.used++ - return p -} - -// replace replaces a page into the pageCache. -func (c *pageCache) replace(p *page) { - c.used-- - c.free = append(c.free, p) -} - -// Stream is implemented by the caller to handle incoming reassembled -// TCP data. Callers create a StreamFactory, then StreamPool uses -// it to create a new Stream for every TCP stream. -// -// assembly will, in order: -// 1) Create the stream via StreamFactory.New -// 2) Call Reassembled 0 or more times, passing in reassembled TCP data in order -// 3) Call ReassemblyComplete one time, after which the stream is dereferenced by assembly. -type Stream interface { - // Reassembled is called zero or more times. assembly guarantees - // that the set of all Reassembly objects passed in during all - // calls are presented in the order they appear in the TCP stream. - // Reassembly objects are reused after each Reassembled call, - // so it's important to copy anything you need out of them - // (specifically out of Reassembly.Bytes) that you need to stay - // around after you return from the Reassembled call. - Reassembled([]Reassembly) - // ReassemblyComplete is called when assembly decides there is - // no more data for this Stream, either because a FIN or RST packet - // was seen, or because the stream has timed out without any new - // packet data (due to a call to FlushOlderThan). - ReassemblyComplete() -} - -// StreamFactory is used by assembly to create a new stream for each -// new TCP session. -type StreamFactory interface { - // New should return a new stream for the given TCP key. - New(netFlow, tcpFlow gopacket.Flow) Stream -} - -func (p *StreamPool) connections() []*connection { - p.mu.RLock() - conns := make([]*connection, 0, len(p.conns)) - for _, conn := range p.conns { - conns = append(conns, conn) - } - p.mu.RUnlock() - return conns -} - -// FlushOlderThan finds any streams waiting for packets older than -// the given time, and pushes through the data they have (IE: tells -// them to stop waiting and skip the data they're waiting for). -// -// Each Stream maintains a list of zero or more sets of bytes it has received -// out-of-order. For example, if it has processed up through sequence number -// 10, it might have bytes [15-20), [20-25), [30,50) in its list. Each set of -// bytes also has the timestamp it was originally viewed. A flush call will -// look at the smallest subsequent set of bytes, in this case [15-20), and if -// its timestamp is older than the passed-in time, it will push it and all -// contiguous byte-sets out to the Stream's Reassembled function. In this case, -// it will push [15-20), but also [20-25), since that's contiguous. It will -// only push [30-50) if its timestamp is also older than the passed-in time, -// otherwise it will wait until the next FlushOlderThan to see if bytes [25-30) -// come in. -// -// If it pushes all bytes (or there were no sets of bytes to begin with) -// AND the connection has not received any bytes since the passed-in time, -// the connection will be closed. -// -// Returns the number of connections flushed, and of those, the number closed -// because of the flush. -func (a *Assembler) FlushOlderThan(t time.Time) (flushed, closed int) { - conns := a.connPool.connections() - closes := 0 - flushes := 0 - for _, conn := range conns { - flushed := false - conn.mu.Lock() - if conn.closed { - // Already closed connection, nothing to do here. - conn.mu.Unlock() - continue - } - for conn.first != nil && conn.first.Seen.Before(t) { - a.skipFlush(conn) - flushed = true - if conn.closed { - closes++ - break - } - } - if !conn.closed && conn.first == nil && conn.lastSeen.Before(t) { - flushed = true - a.closeConnection(conn) - closes++ - } - if flushed { - flushes++ - } - conn.mu.Unlock() - } - return flushes, closes -} - -// FlushAll flushes all remaining data into all remaining connections, closing -// those connections. It returns the total number of connections flushed/closed -// by the call. -func (a *Assembler) FlushAll() (closed int) { - conns := a.connPool.connections() - closed = len(conns) - for _, conn := range conns { - conn.mu.Lock() - for !conn.closed { - a.skipFlush(conn) - } - conn.mu.Unlock() - } - return -} - -type key [2]gopacket.Flow - -func (k *key) String() string { - return fmt.Sprintf("%s:%s", k[0], k[1]) -} - -// StreamPool stores all streams created by Assemblers, allowing multiple -// assemblers to work together on stream processing while enforcing the fact -// that a single stream receives its data serially. It is safe -// for concurrency, usable by multiple Assemblers at once. -// -// StreamPool handles the creation and storage of Stream objects used by one or -// more Assembler objects. When a new TCP stream is found by an Assembler, it -// creates an associated Stream by calling its StreamFactory's New method. -// Thereafter (until the stream is closed), that Stream object will receive -// assembled TCP data via Assembler's calls to the stream's Reassembled -// function. -// -// Like the Assembler, StreamPool attempts to minimize allocation. Unlike the -// Assembler, though, it does have to do some locking to make sure that the -// connection objects it stores are accessible to multiple Assemblers. -type StreamPool struct { - conns map[key]*connection - users int - mu sync.RWMutex - factory StreamFactory - free []*connection - all [][]connection - nextAlloc int - newConnectionCount int64 -} - -func (p *StreamPool) grow() { - conns := make([]connection, p.nextAlloc) - p.all = append(p.all, conns) - for i, _ := range conns { - p.free = append(p.free, &conns[i]) - } - if *memLog { - log.Println("StreamPool: created", p.nextAlloc, "new connections") - } - p.nextAlloc *= 2 -} - -// NewStreamPool creates a new connection pool. Streams will -// be created as necessary using the passed-in StreamFactory. -func NewStreamPool(factory StreamFactory) *StreamPool { - return &StreamPool{ - conns: make(map[key]*connection, initialAllocSize), - free: make([]*connection, 0, initialAllocSize), - factory: factory, - nextAlloc: initialAllocSize, - } -} - -const assemblerReturnValueInitialSize = 16 - -// NewAssembler creates a new assembler. Pass in the StreamPool -// to use, may be shared across assemblers. -// -// This sets some sane defaults for the assembler options, -// see DefaultAssemblerOptions for details. -func NewAssembler(pool *StreamPool) *Assembler { - pool.mu.Lock() - pool.users++ - pool.mu.Unlock() - return &Assembler{ - ret: make([]Reassembly, assemblerReturnValueInitialSize), - pc: newPageCache(), - connPool: pool, - AssemblerOptions: DefaultAssemblerOptions, - } -} - -// DefaultAssemblerOptions provides default options for an assembler. -// These options are used by default when calling NewAssembler, so if -// modified before a NewAssembler call they'll affect the resulting Assembler. -// -// Note that the default options can result in ever-increasing memory usage -// unless one of the Flush* methods is called on a regular basis. -var DefaultAssemblerOptions = AssemblerOptions{ - MaxBufferedPagesPerConnection: 0, // unlimited - MaxBufferedPagesTotal: 0, // unlimited -} - -type connection struct { - key key - pages int - first, last *page - nextSeq Sequence - created, lastSeen time.Time - stream Stream - closed bool - mu sync.Mutex -} - -func (c *connection) reset(k key, s Stream, ts time.Time) { - c.key = k - c.pages = 0 - c.first, c.last = nil, nil - c.nextSeq = invalidSequence - c.created = ts - c.stream = s - c.closed = false -} - -// AssemblerOptions controls the behavior of each assembler. Modify the -// options of each assembler you create to change their behavior. -type AssemblerOptions struct { - // MaxBufferedPagesTotal is an upper limit on the total number of pages to - // buffer while waiting for out-of-order packets. Once this limit is - // reached, the assembler will degrade to flushing every connection it - // gets a packet for. If <= 0, this is ignored. - MaxBufferedPagesTotal int - // MaxBufferedPagesPerConnection is an upper limit on the number of pages - // buffered for a single connection. Should this limit be reached for a - // particular connection, the smallest sequence number will be flushed, along - // with any contiguous data. If <= 0, this is ignored. - MaxBufferedPagesPerConnection int -} - -// Assembler handles reassembling TCP streams. It is not safe for -// concurrency... after passing a packet in via the Assemble call, the caller -// must wait for that call to return before calling Assemble again. Callers can -// get around this by creating multiple assemblers that share a StreamPool. In -// that case, each individual stream will still be handled serially (each stream -// has an individual mutex associated with it), however multiple assemblers can -// assemble different connections concurrently. -// -// The Assembler provides (hopefully) fast TCP stream re-assembly for sniffing -// applications written in Go. The Assembler uses the following methods to be -// as fast as possible, to keep packet processing speedy: -// -// Avoids Lock Contention -// -// Assemblers locks connections, but each connection has an individual lock, and -// rarely will two Assemblers be looking at the same connection. Assemblers -// lock the StreamPool when looking up connections, but they use Reader -// locks initially, and only force a write lock if they need to create a new -// connection or close one down. These happen much less frequently than -// individual packet handling. -// -// Each assembler runs in its own goroutine, and the only state shared between -// goroutines is through the StreamPool. Thus all internal Assembler state -// can be handled without any locking. -// -// NOTE: If you can guarantee that packets going to a set of Assemblers will -// contain information on different connections per Assembler (for example, -// they're already hashed by PF_RING hashing or some other hashing mechanism), -// then we recommend you use a seperate StreamPool per Assembler, thus -// avoiding all lock contention. Only when different Assemblers could receive -// packets for the same Stream should a StreamPool be shared between them. -// -// Avoids Memory Copying -// -// In the common case, handling of a single TCP packet should result in zero -// memory allocations. The Assembler will look up the connection, figure out -// that the packet has arrived in order, and immediately pass that packet on to -// the appropriate connection's handling code. Only if a packet arrives out of -// order is its contents copied and stored in memory for later. -// -// Avoids Memory Allocation -// -// Assemblers try very hard to not use memory allocation unless absolutely -// necessary. Packet data for sequential packets is passed directly to streams -// with no copying or allocation. Packet data for out-of-order packets is -// copied into reusable pages, and new pages are only allocated rarely when the -// page cache runs out. Page caches are Assembler-specific, thus not used -// concurrently and requiring no locking. -// -// Internal representations for connection objects are also reused over time. -// Because of this, the most common memory allocation done by the Assembler is -// generally what's done by the caller in StreamFactory.New. If no allocation -// is done there, then very little allocation is done ever, mostly to handle -// large increases in bandwidth or numbers of connections. -// -// TODO: The page caches used by an Assembler will grow to the size necessary -// to handle a workload, and currently will never shrink. This means that -// traffic spikes can result in large memory usage which isn't garbage -// collected when typical traffic levels return. -type Assembler struct { - AssemblerOptions - ret []Reassembly - pc *pageCache - connPool *StreamPool -} - -func (p *StreamPool) newConnection(k key, s Stream, ts time.Time) (c *connection) { - if *memLog { - p.newConnectionCount++ - if p.newConnectionCount&0x7FFF == 0 { - log.Println("StreamPool:", p.newConnectionCount, "requests,", len(p.conns), "used,", len(p.free), "free") - } - } - if len(p.free) == 0 { - p.grow() - } - index := len(p.free) - 1 - c, p.free = p.free[index], p.free[:index] - c.reset(k, s, ts) - return c -} - -// getConnection returns a connection. If end is true and a connection -// does not already exist, returns nil. This allows us to check for a -// connection without actually creating one if it doesn't already exist. -func (p *StreamPool) getConnection(k key, end bool, ts time.Time) *connection { - p.mu.RLock() - conn := p.conns[k] - p.mu.RUnlock() - if end || conn != nil { - return conn - } - s := p.factory.New(k[0], k[1]) - p.mu.Lock() - conn = p.newConnection(k, s, ts) - if conn2 := p.conns[k]; conn2 != nil { - p.mu.Unlock() - return conn2 - } - p.conns[k] = conn - p.mu.Unlock() - return conn -} - -// Assemble calls AssembleWithTimestamp with the current timestamp, useful for -// packets being read directly off the wire. -func (a *Assembler) Assemble(netFlow gopacket.Flow, t *layers.TCP) { - a.AssembleWithTimestamp(netFlow, t, time.Now()) -} - -// AssembleWithTimestamp reassembles the given TCP packet into its appropriate -// stream. -// -// The timestamp passed in must be the timestamp the packet was seen. -// For packets read off the wire, time.Now() should be fine. For packets read -// from PCAP files, CaptureInfo.Timestamp should be passed in. This timestamp -// will affect which streams are flushed by a call to FlushOlderThan. -// -// Each Assemble call results in, in order: -// -// zero or one calls to StreamFactory.New, creating a stream -// zero or one calls to Reassembled on a single stream -// zero or one calls to ReassemblyComplete on the same stream -func (a *Assembler) AssembleWithTimestamp(netFlow gopacket.Flow, t *layers.TCP, timestamp time.Time) { - // Ignore empty TCP packets - if !t.SYN && !t.FIN && !t.RST && len(t.LayerPayload()) == 0 { - if *debugLog { - log.Println("ignoring useless packet") - } - return - } - - a.ret = a.ret[:0] - key := key{netFlow, t.TransportFlow()} - var conn *connection - // This for loop handles a race condition where a connection will close, lock - // the connection pool, and remove itself, but before it locked the connection - // pool it's returned to another Assemble statement. This should loop 0-1 - // times for the VAST majority of cases. - for { - conn = a.connPool.getConnection( - key, !t.SYN && len(t.LayerPayload()) == 0, timestamp) - if conn == nil { - if *debugLog { - log.Printf("%v got empty packet on otherwise empty connection", key) - } - return - } - conn.mu.Lock() - if !conn.closed { - break - } - conn.mu.Unlock() - } - if conn.lastSeen.Before(timestamp) { - conn.lastSeen = timestamp - } - seq, bytes := Sequence(t.Seq), t.Payload - if conn.nextSeq == invalidSequence { - if t.SYN { - if *debugLog { - log.Printf("%v saw first SYN packet, returning immediately, seq=%v", key, seq) - } - a.ret = append(a.ret, Reassembly{ - Bytes: bytes, - Skip: 0, - Start: true, - Seen: timestamp, - }) - conn.nextSeq = seq.Add(len(bytes) + 1) - } else { - if *debugLog { - log.Printf("%v waiting for start, storing into connection", key) - } - a.insertIntoConn(t, conn, timestamp) - } - } else if diff := conn.nextSeq.Difference(seq); diff > 0 { - if *debugLog { - log.Printf("%v gap in sequence numbers (%v, %v) diff %v, storing into connection", key, conn.nextSeq, seq, diff) - } - a.insertIntoConn(t, conn, timestamp) - } else { - bytes, conn.nextSeq = byteSpan(conn.nextSeq, seq, bytes) - if *debugLog { - log.Printf("%v found contiguous data (%v, %v), returning immediately", key, seq, conn.nextSeq) - } - a.ret = append(a.ret, Reassembly{ - Bytes: bytes, - Skip: 0, - End: t.RST || t.FIN, - Seen: timestamp, - }) - } - if len(a.ret) > 0 { - a.sendToConnection(conn) - } - conn.mu.Unlock() -} - -func byteSpan(expected, received Sequence, bytes []byte) (toSend []byte, next Sequence) { - if expected == invalidSequence { - return bytes, received.Add(len(bytes)) - } - span := int(received.Difference(expected)) - if span <= 0 { - return bytes, received.Add(len(bytes)) - } else if len(bytes) < span { - return nil, expected - } - return bytes[span:], expected.Add(len(bytes) - span) -} - -// sendToConnection sends the current values in a.ret to the connection, closing -// the connection if the last thing sent had End set. -func (a *Assembler) sendToConnection(conn *connection) { - a.addContiguous(conn) - if conn.stream == nil { - panic("why?") - } - conn.stream.Reassembled(a.ret) - if a.ret[len(a.ret)-1].End { - a.closeConnection(conn) - } -} - -// addContiguous adds contiguous byte-sets to a connection. -func (a *Assembler) addContiguous(conn *connection) { - for conn.first != nil && conn.nextSeq.Difference(conn.first.seq) <= 0 { - a.addNextFromConn(conn) - } -} - -// skipFlush skips the first set of bytes we're waiting for and returns the -// first set of bytes we have. If we have no bytes pending, it closes the -// connection. -func (a *Assembler) skipFlush(conn *connection) { - if *debugLog { - log.Printf("%v skipFlush %v", conn.key, conn.nextSeq) - } - if conn.first == nil { - a.closeConnection(conn) - return - } - a.ret = a.ret[:0] - a.addNextFromConn(conn) - a.addContiguous(conn) - a.sendToConnection(conn) -} - -func (p *StreamPool) remove(conn *connection) { - p.mu.Lock() - delete(p.conns, conn.key) - p.free = append(p.free, conn) - p.mu.Unlock() -} - -func (a *Assembler) closeConnection(conn *connection) { - if *debugLog { - log.Printf("%v closing", conn.key) - } - conn.stream.ReassemblyComplete() - conn.closed = true - a.connPool.remove(conn) - for p := conn.first; p != nil; p = p.next { - a.pc.replace(p) - } -} - -// traverseConn traverses our doubly-linked list of pages for the correct -// position to put the given sequence number. Note that it traverses backwards, -// starting at the highest sequence number and going down, since we assume the -// common case is that TCP packets for a stream will appear in-order, with -// minimal loss or packet reordering. -func (conn *connection) traverseConn(seq Sequence) (prev, current *page) { - prev = conn.last - for prev != nil && prev.seq.Difference(seq) < 0 { - current = prev - prev = current.prev - } - return -} - -// pushBetween inserts the doubly-linked list first-...-last in between the -// nodes prev-next in another doubly-linked list. If prev is nil, makes first -// the new first page in the connection's list. If next is nil, makes last the -// new last page in the list. first/last may point to the same page. -func (conn *connection) pushBetween(prev, next, first, last *page) { - // Maintain our doubly linked list - if next == nil || conn.last == nil { - conn.last = last - } else { - last.next = next - next.prev = last - } - if prev == nil || conn.first == nil { - conn.first = first - } else { - first.prev = prev - prev.next = first - } -} - -func (a *Assembler) insertIntoConn(t *layers.TCP, conn *connection, ts time.Time) { - if conn.first != nil && conn.first.seq == conn.nextSeq { - panic("wtf") - } - p, p2 := a.pagesFromTcp(t, ts) - prev, current := conn.traverseConn(Sequence(t.Seq)) - conn.pushBetween(prev, current, p, p2) - conn.pages++ - if (a.MaxBufferedPagesPerConnection > 0 && conn.pages >= a.MaxBufferedPagesPerConnection) || - (a.MaxBufferedPagesTotal > 0 && a.pc.used >= a.MaxBufferedPagesTotal) { - if *debugLog { - log.Printf("%v hit max buffer size: %+v, %v, %v", conn.key, a.AssemblerOptions, conn.pages, a.pc.used) - } - a.addNextFromConn(conn) - } -} - -// pagesFromTcp creates a page (or set of pages) from a TCP packet. Note that -// it should NEVER receive a SYN packet, as it doesn't handle sequences -// correctly. -// -// It returns the first and last page in its doubly-linked list of new pages. -func (a *Assembler) pagesFromTcp(t *layers.TCP, ts time.Time) (p, p2 *page) { - first := a.pc.next(ts) - current := first - seq, bytes := Sequence(t.Seq), t.Payload - for { - length := min(len(bytes), pageBytes) - current.Bytes = current.buf[:length] - copy(current.Bytes, bytes) - current.seq = seq - bytes = bytes[length:] - if len(bytes) == 0 { - break - } - seq = seq.Add(length) - current.next = a.pc.next(ts) - current.next.prev = current - current = current.next - } - current.End = t.RST || t.FIN - return first, current -} - -// addNextFromConn pops the first page from a connection off and adds it to the -// return array. -func (a *Assembler) addNextFromConn(conn *connection) { - if conn.nextSeq == invalidSequence { - conn.first.Skip = -1 - } else if diff := conn.nextSeq.Difference(conn.first.seq); diff > 0 { - conn.first.Skip = int(diff) - } - conn.first.Bytes, conn.nextSeq = byteSpan(conn.nextSeq, conn.first.seq, conn.first.Bytes) - if *debugLog { - log.Printf("%v adding from conn (%v, %v)", conn.key, conn.first.seq, conn.nextSeq) - } - a.ret = append(a.ret, conn.first.Reassembly) - a.pc.replace(conn.first) - if conn.first == conn.last { - conn.first = nil - conn.last = nil - } else { - conn.first = conn.first.next - conn.first.prev = nil - } - conn.pages-- -} - -func min(a, b int) int { - if a < b { - return a - } - return b -} diff --git a/vendor/github.com/tsg/gopacket/tcpassembly/tcpreader/reader.go b/vendor/github.com/tsg/gopacket/tcpassembly/tcpreader/reader.go deleted file mode 100644 index b7114f5578c..00000000000 --- a/vendor/github.com/tsg/gopacket/tcpassembly/tcpreader/reader.go +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright 2012 Google, Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the LICENSE file in the root of the source -// tree. - -// Package tcpreader provides an implementation for tcpassembly.Stream which presents -// the caller with an io.Reader for easy processing. -// -// The assembly package handles packet data reordering, but its output is -// library-specific, thus not usable by the majority of external Go libraries. -// The io.Reader interface, on the other hand, is used throughout much of Go -// code as an easy mechanism for reading in data streams and decoding them. For -// example, the net/http package provides the ReadRequest function, which can -// parase an HTTP request from a live data stream, just what we'd want when -// sniffing HTTP traffic. Using ReaderStream, this is relatively easy to set -// up: -// -// // Create our StreamFactory -// type httpStreamFactory struct {} -// func (f *httpStreamFactory) New(a, b gopacket.Flow) { -// r := tcpreader.NewReaderStream(false) -// go printRequests(r) -// return &r -// } -// func printRequests(r io.Reader) { -// // Convert to bufio, since that's what ReadRequest wants. -// buf := bufio.NewReader(r) -// for { -// if req, err := http.ReadRequest(buf); err == io.EOF { -// return -// } else if err != nil { -// log.Println("Error parsing HTTP requests:", err) -// } else { -// fmt.Println("HTTP REQUEST:", req) -// fmt.Println("Body contains", tcpreader.DiscardBytesToEOF(req.Body), "bytes") -// } -// } -// } -// -// Using just this code, we're able to reference a powerful, built-in library -// for HTTP request parsing to do all the dirty-work of parsing requests from -// the wire in real-time. Pass this stream factory to an tcpassembly.StreamPool, -// start up an tcpassembly.Assembler, and you're good to go! -package tcpreader - -import ( - "errors" - "github.com/tsg/gopacket/tcpassembly" - "io" -) - -var discardBuffer = make([]byte, 4096) - -// DiscardBytesToFirstError will read in all bytes up to the first error -// reported by the given reader, then return the number of bytes discarded -// and the error encountered. -func DiscardBytesToFirstError(r io.Reader) (discarded int, err error) { - for { - n, e := r.Read(discardBuffer) - discarded += n - if e != nil { - return discarded, e - } - } -} - -// DiscardBytesToEOF will read in all bytes from a Reader until it -// encounters an io.EOF, then return the number of bytes. Be careful -// of this... if used on a Reader that returns a non-io.EOF error -// consistently, this will loop forever discarding that error while -// it waits for an EOF. -func DiscardBytesToEOF(r io.Reader) (discarded int) { - for { - n, e := DiscardBytesToFirstError(r) - discarded += n - if e == io.EOF { - return - } - } -} - -// ReaderStream implements both tcpassembly.Stream and io.Reader. You can use it -// as a building block to make simple, easy stream handlers. -// -// IMPORTANT: If you use a ReaderStream, you MUST read ALL BYTES from it, -// quickly. Not reading available bytes will block TCP stream reassembly. It's -// a common pattern to do this by starting a goroutine in the factory's New -// method: -// -// type myStreamHandler struct { -// r ReaderStream -// } -// func (m *myStreamHandler) run() { -// // Do something here that reads all of the ReaderStream, or your assembly -// // will block. -// fmt.Println(tcpreader.DiscardBytesToEOF(&m.r)) -// } -// func (f *myStreamFactory) New(a, b gopacket.Flow) tcpassembly.Stream { -// s := &myStreamHandler{} -// go s.run() -// // Return the ReaderStream as the stream that assembly should populate. -// return &s.r -// } -type ReaderStream struct { - ReaderStreamOptions - reassembled chan []tcpassembly.Reassembly - done chan bool - current []tcpassembly.Reassembly - closed bool - lossReported bool - first bool - initiated bool -} - -type ReaderStreamOptions struct { - // LossErrors determines whether this stream will return - // ReaderStreamDataLoss errors from its Read function whenever it - // determines data has been lost. - LossErrors bool -} - -// NewReaderStream returns a new ReaderStream object. -func NewReaderStream() ReaderStream { - r := ReaderStream{ - reassembled: make(chan []tcpassembly.Reassembly), - done: make(chan bool), - first: true, - initiated: true, - } - return r -} - -// Reassembled implements tcpassembly.Stream's Reassembled function. -func (r *ReaderStream) Reassembled(reassembly []tcpassembly.Reassembly) { - if !r.initiated { - panic("ReaderStream not created via NewReaderStream") - } - r.reassembled <- reassembly - <-r.done -} - -// ReassemblyComplete implements tcpassembly.Stream's ReassemblyComplete function. -func (r *ReaderStream) ReassemblyComplete() { - close(r.reassembled) - close(r.done) -} - -// stripEmpty strips empty reassembly slices off the front of its current set of -// slices. -func (r *ReaderStream) stripEmpty() { - for len(r.current) > 0 && len(r.current[0].Bytes) == 0 { - r.current = r.current[1:] - r.lossReported = false - } -} - -// DataLost is returned by the ReaderStream's Read function when it encounters -// a Reassembly with Skip != 0. -var DataLost error = errors.New("lost data") - -// Read implements io.Reader's Read function. -// Given a byte slice, it will either copy a non-zero number of bytes into -// that slice and return the number of bytes and a nil error, or it will -// leave slice p as is and return 0, io.EOF. -func (r *ReaderStream) Read(p []byte) (int, error) { - if !r.initiated { - panic("ReaderStream not created via NewReaderStream") - } - var ok bool - r.stripEmpty() - for !r.closed && len(r.current) == 0 { - if r.first { - r.first = false - } else { - r.done <- true - } - if r.current, ok = <-r.reassembled; ok { - r.stripEmpty() - } else { - r.closed = true - } - } - if len(r.current) > 0 { - current := &r.current[0] - if r.LossErrors && !r.lossReported && current.Skip != 0 { - r.lossReported = true - return 0, DataLost - } - length := copy(p, current.Bytes) - current.Bytes = current.Bytes[length:] - return length, nil - } - return 0, io.EOF -} - -// Close implements io.Closer's Close function, making ReaderStream a -// io.ReadCloser. It discards all remaining bytes in the reassembly in a -// manner that's safe for the assembler (IE: it doesn't block). -func (r *ReaderStream) Close() error { - r.current = nil - r.closed = true - for { - if _, ok := <-r.reassembled; !ok { - return nil - } - r.done <- true - } -} diff --git a/vendor/github.com/klauspost/compress/snappy/LICENSE b/vendor/golang.org/x/crypto/LICENSE similarity index 90% rename from vendor/github.com/klauspost/compress/snappy/LICENSE rename to vendor/golang.org/x/crypto/LICENSE index 29034096eef..6a66aea5eaf 100644 --- a/vendor/github.com/klauspost/compress/snappy/LICENSE +++ b/vendor/golang.org/x/crypto/LICENSE @@ -1,28 +1,27 @@ -Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. -Copyright (c) 2016 Klaus Post. 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. +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 new file mode 100644 index 00000000000..733099041f8 --- /dev/null +++ b/vendor/golang.org/x/crypto/PATENTS @@ -0,0 +1,22 @@ +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/net/AUTHORS b/vendor/golang.org/x/net/AUTHORS deleted file mode 100644 index 15167cd746c..00000000000 --- a/vendor/golang.org/x/net/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/net/CONTRIBUTING.md b/vendor/golang.org/x/net/CONTRIBUTING.md deleted file mode 100644 index 88dff59bc7d..00000000000 --- a/vendor/golang.org/x/net/CONTRIBUTING.md +++ /dev/null @@ -1,31 +0,0 @@ -# Contributing to Go - -Go is an open source project. - -It is the work of hundreds of contributors. We appreciate your help! - - -## Filing issues - -When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: - -1. What version of Go are you using (`go version`)? -2. What operating system and processor architecture are you using? -3. What did you do? -4. What did you expect to see? -5. What did you see instead? - -General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. -The gophers there will answer or ask you to file an issue if you've tripped over a bug. - -## Contributing code - -Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) -before sending patches. - -**We do not accept GitHub pull requests** -(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). - -Unless otherwise noted, the Go source files are distributed under -the BSD-style license found in the LICENSE file. - diff --git a/vendor/golang.org/x/net/CONTRIBUTORS b/vendor/golang.org/x/net/CONTRIBUTORS deleted file mode 100644 index 1c4577e9680..00000000000 --- a/vendor/golang.org/x/net/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/net/README b/vendor/golang.org/x/net/README deleted file mode 100644 index 6b13d8e5050..00000000000 --- a/vendor/golang.org/x/net/README +++ /dev/null @@ -1,3 +0,0 @@ -This repository holds supplementary Go networking libraries. - -To submit changes to this repository, see http://golang.org/doc/contribute.html. diff --git a/vendor/golang.org/x/net/bpf/asm.go b/vendor/golang.org/x/net/bpf/asm.go new file mode 100644 index 00000000000..15e21b18122 --- /dev/null +++ b/vendor/golang.org/x/net/bpf/asm.go @@ -0,0 +1,41 @@ +// 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 bpf + +import "fmt" + +// Assemble converts insts into raw instructions suitable for loading +// into a BPF virtual machine. +// +// Currently, no optimization is attempted, the assembled program flow +// is exactly as provided. +func Assemble(insts []Instruction) ([]RawInstruction, error) { + ret := make([]RawInstruction, len(insts)) + var err error + for i, inst := range insts { + ret[i], err = inst.Assemble() + if err != nil { + return nil, fmt.Errorf("assembling instruction %d: %s", i+1, err) + } + } + return ret, nil +} + +// Disassemble attempts to parse raw back into +// Instructions. Unrecognized RawInstructions are assumed to be an +// extension not implemented by this package, and are passed through +// unchanged to the output. The allDecoded value reports whether insts +// contains no RawInstructions. +func Disassemble(raw []RawInstruction) (insts []Instruction, allDecoded bool) { + insts = make([]Instruction, len(raw)) + allDecoded = true + for i, r := range raw { + insts[i] = r.Disassemble() + if _, ok := insts[i].(RawInstruction); ok { + allDecoded = false + } + } + return insts, allDecoded +} diff --git a/vendor/golang.org/x/net/bpf/constants.go b/vendor/golang.org/x/net/bpf/constants.go new file mode 100644 index 00000000000..2c8bbab7f7f --- /dev/null +++ b/vendor/golang.org/x/net/bpf/constants.go @@ -0,0 +1,215 @@ +// 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 bpf + +// A Register is a register of the BPF virtual machine. +type Register uint16 + +const ( + // RegA is the accumulator register. RegA is always the + // destination register of ALU operations. + RegA Register = iota + // RegX is the indirection register, used by LoadIndirect + // operations. + RegX +) + +// An ALUOp is an arithmetic or logic operation. +type ALUOp uint16 + +// ALU binary operation types. +const ( + ALUOpAdd ALUOp = iota << 4 + ALUOpSub + ALUOpMul + ALUOpDiv + ALUOpOr + ALUOpAnd + ALUOpShiftLeft + ALUOpShiftRight + aluOpNeg // Not exported because it's the only unary ALU operation, and gets its own instruction type. + ALUOpMod + ALUOpXor +) + +// A JumpTest is a comparison operator used in conditional jumps. +type JumpTest uint16 + +// Supported operators for conditional jumps. +const ( + // K == A + JumpEqual JumpTest = iota + // K != A + JumpNotEqual + // K > A + JumpGreaterThan + // K < A + JumpLessThan + // K >= A + JumpGreaterOrEqual + // K <= A + JumpLessOrEqual + // K & A != 0 + JumpBitsSet + // K & A == 0 + JumpBitsNotSet +) + +// An Extension is a function call provided by the kernel that +// performs advanced operations that are expensive or impossible +// within the BPF virtual machine. +// +// Extensions are only implemented by the Linux kernel. +// +// TODO: should we prune this list? Some of these extensions seem +// either broken or near-impossible to use correctly, whereas other +// (len, random, ifindex) are quite useful. +type Extension int + +// Extension functions available in the Linux kernel. +const ( + // ExtLen returns the length of the packet. + ExtLen Extension = 1 + // ExtProto returns the packet's L3 protocol type. + ExtProto = 0 + // ExtType returns the packet's type (skb->pkt_type in the kernel) + // + // TODO: better documentation. How nice an API do we want to + // provide for these esoteric extensions? + ExtType = 4 + // ExtPayloadOffset returns the offset of the packet payload, or + // the first protocol header that the kernel does not know how to + // parse. + ExtPayloadOffset = 52 + // ExtInterfaceIndex returns the index of the interface on which + // the packet was received. + ExtInterfaceIndex = 8 + // ExtNetlinkAttr returns the netlink attribute of type X at + // offset A. + ExtNetlinkAttr = 12 + // ExtNetlinkAttrNested returns the nested netlink attribute of + // type X at offset A. + ExtNetlinkAttrNested = 16 + // ExtMark returns the packet's mark value. + ExtMark = 20 + // ExtQueue returns the packet's assigned hardware queue. + ExtQueue = 24 + // ExtLinkLayerType returns the packet's hardware address type + // (e.g. Ethernet, Infiniband). + ExtLinkLayerType = 28 + // ExtRXHash returns the packets receive hash. + // + // TODO: figure out what this rxhash actually is. + ExtRXHash = 32 + // ExtCPUID returns the ID of the CPU processing the current + // packet. + ExtCPUID = 36 + // ExtVLANTag returns the packet's VLAN tag. + ExtVLANTag = 44 + // ExtVLANTagPresent returns non-zero if the packet has a VLAN + // tag. + // + // TODO: I think this might be a lie: it reads bit 0x1000 of the + // VLAN header, which changed meaning in recent revisions of the + // spec - this extension may now return meaningless information. + ExtVLANTagPresent = 48 + // ExtVLANProto returns 0x8100 if the frame has a VLAN header, + // 0x88a8 if the frame has a "Q-in-Q" double VLAN header, or some + // other value if no VLAN information is present. + ExtVLANProto = 60 + // ExtRand returns a uniformly random uint32. + ExtRand = 56 +) + +// The following gives names to various bit patterns used in opcode construction. + +const ( + opMaskCls uint16 = 0x7 + // opClsLoad masks + opMaskLoadDest = 0x01 + opMaskLoadWidth = 0x18 + opMaskLoadMode = 0xe0 + // opClsALU + opMaskOperandSrc = 0x08 + opMaskOperator = 0xf0 + // opClsJump + opMaskJumpConst = 0x0f + opMaskJumpCond = 0xf0 +) + +const ( + // +---------------+-----------------+---+---+---+ + // | AddrMode (3b) | LoadWidth (2b) | 0 | 0 | 0 | + // +---------------+-----------------+---+---+---+ + opClsLoadA uint16 = iota + // +---------------+-----------------+---+---+---+ + // | AddrMode (3b) | LoadWidth (2b) | 0 | 0 | 1 | + // +---------------+-----------------+---+---+---+ + opClsLoadX + // +---+---+---+---+---+---+---+---+ + // | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + // +---+---+---+---+---+---+---+---+ + opClsStoreA + // +---+---+---+---+---+---+---+---+ + // | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | + // +---+---+---+---+---+---+---+---+ + opClsStoreX + // +---------------+-----------------+---+---+---+ + // | Operator (4b) | OperandSrc (1b) | 1 | 0 | 0 | + // +---------------+-----------------+---+---+---+ + opClsALU + // +-----------------------------+---+---+---+---+ + // | TestOperator (4b) | 0 | 1 | 0 | 1 | + // +-----------------------------+---+---+---+---+ + opClsJump + // +---+-------------------------+---+---+---+---+ + // | 0 | 0 | 0 | RetSrc (1b) | 0 | 1 | 1 | 0 | + // +---+-------------------------+---+---+---+---+ + opClsReturn + // +---+-------------------------+---+---+---+---+ + // | 0 | 0 | 0 | TXAorTAX (1b) | 0 | 1 | 1 | 1 | + // +---+-------------------------+---+---+---+---+ + opClsMisc +) + +const ( + opAddrModeImmediate uint16 = iota << 5 + opAddrModeAbsolute + opAddrModeIndirect + opAddrModeScratch + opAddrModePacketLen // actually an extension, not an addressing mode. + opAddrModeMemShift +) + +const ( + opLoadWidth4 uint16 = iota << 3 + opLoadWidth2 + opLoadWidth1 +) + +// Operator defined by ALUOp* + +const ( + opALUSrcConstant uint16 = iota << 3 + opALUSrcX +) + +const ( + opJumpAlways = iota << 4 + opJumpEqual + opJumpGT + opJumpGE + opJumpSet +) + +const ( + opRetSrcConstant uint16 = iota << 4 + opRetSrcA +) + +const ( + opMiscTAX = 0x00 + opMiscTXA = 0x80 +) diff --git a/vendor/golang.org/x/net/bpf/doc.go b/vendor/golang.org/x/net/bpf/doc.go new file mode 100644 index 00000000000..ae62feb5341 --- /dev/null +++ b/vendor/golang.org/x/net/bpf/doc.go @@ -0,0 +1,82 @@ +// 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 bpf implements marshaling and unmarshaling of programs for the +Berkeley Packet Filter virtual machine, and provides a Go implementation +of the virtual machine. + +BPF's main use is to specify a packet filter for network taps, so that +the kernel doesn't have to expensively copy every packet it sees to +userspace. However, it's been repurposed to other areas where running +user code in-kernel is needed. For example, Linux's seccomp uses BPF +to apply security policies to system calls. For simplicity, this +documentation refers only to packets, but other uses of BPF have their +own data payloads. + +BPF programs run in a restricted virtual machine. It has almost no +access to kernel functions, and while conditional branches are +allowed, they can only jump forwards, to guarantee that there are no +infinite loops. + +The virtual machine + +The BPF VM is an accumulator machine. Its main register, called +register A, is an implicit source and destination in all arithmetic +and logic operations. The machine also has 16 scratch registers for +temporary storage, and an indirection register (register X) for +indirect memory access. All registers are 32 bits wide. + +Each run of a BPF program is given one packet, which is placed in the +VM's read-only "main memory". LoadAbsolute and LoadIndirect +instructions can fetch up to 32 bits at a time into register A for +examination. + +The goal of a BPF program is to produce and return a verdict (uint32), +which tells the kernel what to do with the packet. In the context of +packet filtering, the returned value is the number of bytes of the +packet to forward to userspace, or 0 to ignore the packet. Other +contexts like seccomp define their own return values. + +In order to simplify programs, attempts to read past the end of the +packet terminate the program execution with a verdict of 0 (ignore +packet). This means that the vast majority of BPF programs don't need +to do any explicit bounds checking. + +In addition to the bytes of the packet, some BPF programs have access +to extensions, which are essentially calls to kernel utility +functions. Currently, the only extensions supported by this package +are the Linux packet filter extensions. + +Examples + +This packet filter selects all ARP packets. + + bpf.Assemble([]bpf.Instruction{ + // Load "EtherType" field from the ethernet header. + bpf.LoadAbsolute{Off: 12, Size: 2}, + // Skip over the next instruction if EtherType is not ARP. + bpf.JumpIf{Cond: bpf.JumpNotEqual, Val: 0x0806, SkipTrue: 1}, + // Verdict is "send up to 4k of the packet to userspace." + bpf.RetConstant{Val: 4096}, + // Verdict is "ignore packet." + bpf.RetConstant{Val: 0}, + }) + +This packet filter captures a random 1% sample of traffic. + + bpf.Assemble([]bpf.Instruction{ + // Get a 32-bit random number from the Linux kernel. + bpf.LoadExtension{Num: bpf.ExtRand}, + // 1% dice roll? + bpf.JumpIf{Cond: bpf.JumpLessThan, Val: 2^32/100, SkipFalse: 1}, + // Capture. + bpf.RetConstant{Val: 4096}, + // Ignore. + bpf.RetConstant{Val: 0}, + }) + +*/ +package bpf // import "golang.org/x/net/bpf" diff --git a/vendor/golang.org/x/net/bpf/instructions.go b/vendor/golang.org/x/net/bpf/instructions.go new file mode 100644 index 00000000000..68ae6f549a2 --- /dev/null +++ b/vendor/golang.org/x/net/bpf/instructions.go @@ -0,0 +1,434 @@ +// 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 bpf + +import "fmt" + +// An Instruction is one instruction executed by the BPF virtual +// machine. +type Instruction interface { + // Assemble assembles the Instruction into a RawInstruction. + Assemble() (RawInstruction, error) +} + +// A RawInstruction is a raw BPF virtual machine instruction. +type RawInstruction struct { + // Operation to execute. + Op uint16 + // For conditional jump instructions, the number of instructions + // to skip if the condition is true/false. + Jt uint8 + Jf uint8 + // Constant parameter. The meaning depends on the Op. + K uint32 +} + +// Assemble implements the Instruction Assemble method. +func (ri RawInstruction) Assemble() (RawInstruction, error) { return ri, nil } + +// Disassemble parses ri into an Instruction and returns it. If ri is +// not recognized by this package, ri itself is returned. +func (ri RawInstruction) Disassemble() Instruction { + switch ri.Op & opMaskCls { + case opClsLoadA, opClsLoadX: + reg := Register(ri.Op & opMaskLoadDest) + sz := 0 + switch ri.Op & opMaskLoadWidth { + case opLoadWidth4: + sz = 4 + case opLoadWidth2: + sz = 2 + case opLoadWidth1: + sz = 1 + default: + return ri + } + switch ri.Op & opMaskLoadMode { + case opAddrModeImmediate: + if sz != 4 { + return ri + } + return LoadConstant{Dst: reg, Val: ri.K} + case opAddrModeScratch: + if sz != 4 || ri.K > 15 { + return ri + } + return LoadScratch{Dst: reg, N: int(ri.K)} + case opAddrModeAbsolute: + return LoadAbsolute{Size: sz, Off: ri.K} + case opAddrModeIndirect: + return LoadIndirect{Size: sz, Off: ri.K} + case opAddrModePacketLen: + if sz != 4 { + return ri + } + return LoadExtension{Num: ExtLen} + case opAddrModeMemShift: + return LoadMemShift{Off: ri.K} + default: + return ri + } + + case opClsStoreA: + if ri.Op != opClsStoreA || ri.K > 15 { + return ri + } + return StoreScratch{Src: RegA, N: int(ri.K)} + + case opClsStoreX: + if ri.Op != opClsStoreX || ri.K > 15 { + return ri + } + return StoreScratch{Src: RegX, N: int(ri.K)} + + case opClsALU: + switch op := ALUOp(ri.Op & opMaskOperator); op { + case ALUOpAdd, ALUOpSub, ALUOpMul, ALUOpDiv, ALUOpOr, ALUOpAnd, ALUOpShiftLeft, ALUOpShiftRight, ALUOpMod, ALUOpXor: + if ri.Op&opMaskOperandSrc != 0 { + return ALUOpX{Op: op} + } + return ALUOpConstant{Op: op, Val: ri.K} + case aluOpNeg: + return NegateA{} + default: + return ri + } + + case opClsJump: + if ri.Op&opMaskJumpConst != opClsJump { + return ri + } + switch ri.Op & opMaskJumpCond { + case opJumpAlways: + return Jump{Skip: ri.K} + case opJumpEqual: + return JumpIf{ + Cond: JumpEqual, + Val: ri.K, + SkipTrue: ri.Jt, + SkipFalse: ri.Jf, + } + case opJumpGT: + return JumpIf{ + Cond: JumpGreaterThan, + Val: ri.K, + SkipTrue: ri.Jt, + SkipFalse: ri.Jf, + } + case opJumpGE: + return JumpIf{ + Cond: JumpGreaterOrEqual, + Val: ri.K, + SkipTrue: ri.Jt, + SkipFalse: ri.Jf, + } + case opJumpSet: + return JumpIf{ + Cond: JumpBitsSet, + Val: ri.K, + SkipTrue: ri.Jt, + SkipFalse: ri.Jf, + } + default: + return ri + } + + case opClsReturn: + switch ri.Op { + case opClsReturn | opRetSrcA: + return RetA{} + case opClsReturn | opRetSrcConstant: + return RetConstant{Val: ri.K} + default: + return ri + } + + case opClsMisc: + switch ri.Op { + case opClsMisc | opMiscTAX: + return TAX{} + case opClsMisc | opMiscTXA: + return TXA{} + default: + return ri + } + + default: + panic("unreachable") // switch is exhaustive on the bit pattern + } +} + +// LoadConstant loads Val into register Dst. +type LoadConstant struct { + Dst Register + Val uint32 +} + +// Assemble implements the Instruction Assemble method. +func (a LoadConstant) Assemble() (RawInstruction, error) { + return assembleLoad(a.Dst, 4, opAddrModeImmediate, a.Val) +} + +// LoadScratch loads scratch[N] into register Dst. +type LoadScratch struct { + Dst Register + N int // 0-15 +} + +// Assemble implements the Instruction Assemble method. +func (a LoadScratch) Assemble() (RawInstruction, error) { + if a.N < 0 || a.N > 15 { + return RawInstruction{}, fmt.Errorf("invalid scratch slot %d", a.N) + } + return assembleLoad(a.Dst, 4, opAddrModeScratch, uint32(a.N)) +} + +// LoadAbsolute loads packet[Off:Off+Size] as an integer value into +// register A. +type LoadAbsolute struct { + Off uint32 + Size int // 1, 2 or 4 +} + +// Assemble implements the Instruction Assemble method. +func (a LoadAbsolute) Assemble() (RawInstruction, error) { + return assembleLoad(RegA, a.Size, opAddrModeAbsolute, a.Off) +} + +// LoadIndirect loads packet[X+Off:X+Off+Size] as an integer value +// into register A. +type LoadIndirect struct { + Off uint32 + Size int // 1, 2 or 4 +} + +// Assemble implements the Instruction Assemble method. +func (a LoadIndirect) Assemble() (RawInstruction, error) { + return assembleLoad(RegA, a.Size, opAddrModeIndirect, a.Off) +} + +// LoadMemShift multiplies the first 4 bits of the byte at packet[Off] +// by 4 and stores the result in register X. +// +// This instruction is mainly useful to load into X the length of an +// IPv4 packet header in a single instruction, rather than have to do +// the arithmetic on the header's first byte by hand. +type LoadMemShift struct { + Off uint32 +} + +// Assemble implements the Instruction Assemble method. +func (a LoadMemShift) Assemble() (RawInstruction, error) { + return assembleLoad(RegX, 1, opAddrModeMemShift, a.Off) +} + +// LoadExtension invokes a linux-specific extension and stores the +// result in register A. +type LoadExtension struct { + Num Extension +} + +// Assemble implements the Instruction Assemble method. +func (a LoadExtension) Assemble() (RawInstruction, error) { + if a.Num == ExtLen { + return assembleLoad(RegA, 4, opAddrModePacketLen, 0) + } + return assembleLoad(RegA, 4, opAddrModeAbsolute, uint32(-0x1000+a.Num)) +} + +// StoreScratch stores register Src into scratch[N]. +type StoreScratch struct { + Src Register + N int // 0-15 +} + +// Assemble implements the Instruction Assemble method. +func (a StoreScratch) Assemble() (RawInstruction, error) { + if a.N < 0 || a.N > 15 { + return RawInstruction{}, fmt.Errorf("invalid scratch slot %d", a.N) + } + var op uint16 + switch a.Src { + case RegA: + op = opClsStoreA + case RegX: + op = opClsStoreX + default: + return RawInstruction{}, fmt.Errorf("invalid source register %v", a.Src) + } + + return RawInstruction{ + Op: op, + K: uint32(a.N), + }, nil +} + +// ALUOpConstant executes A = A Val. +type ALUOpConstant struct { + Op ALUOp + Val uint32 +} + +// Assemble implements the Instruction Assemble method. +func (a ALUOpConstant) Assemble() (RawInstruction, error) { + return RawInstruction{ + Op: opClsALU | opALUSrcConstant | uint16(a.Op), + K: a.Val, + }, nil +} + +// ALUOpX executes A = A X +type ALUOpX struct { + Op ALUOp +} + +// Assemble implements the Instruction Assemble method. +func (a ALUOpX) Assemble() (RawInstruction, error) { + return RawInstruction{ + Op: opClsALU | opALUSrcX | uint16(a.Op), + }, nil +} + +// NegateA executes A = -A. +type NegateA struct{} + +// Assemble implements the Instruction Assemble method. +func (a NegateA) Assemble() (RawInstruction, error) { + return RawInstruction{ + Op: opClsALU | uint16(aluOpNeg), + }, nil +} + +// Jump skips the following Skip instructions in the program. +type Jump struct { + Skip uint32 +} + +// Assemble implements the Instruction Assemble method. +func (a Jump) Assemble() (RawInstruction, error) { + return RawInstruction{ + Op: opClsJump | opJumpAlways, + K: a.Skip, + }, nil +} + +// JumpIf skips the following Skip instructions in the program if A +// Val is true. +type JumpIf struct { + Cond JumpTest + Val uint32 + SkipTrue uint8 + SkipFalse uint8 +} + +// Assemble implements the Instruction Assemble method. +func (a JumpIf) Assemble() (RawInstruction, error) { + var ( + cond uint16 + flip bool + ) + switch a.Cond { + case JumpEqual: + cond = opJumpEqual + case JumpNotEqual: + cond, flip = opJumpEqual, true + case JumpGreaterThan: + cond = opJumpGT + case JumpLessThan: + cond, flip = opJumpGE, true + case JumpGreaterOrEqual: + cond = opJumpGE + case JumpLessOrEqual: + cond, flip = opJumpGT, true + case JumpBitsSet: + cond = opJumpSet + case JumpBitsNotSet: + cond, flip = opJumpSet, true + default: + return RawInstruction{}, fmt.Errorf("unknown JumpTest %v", a.Cond) + } + jt, jf := a.SkipTrue, a.SkipFalse + if flip { + jt, jf = jf, jt + } + return RawInstruction{ + Op: opClsJump | cond, + Jt: jt, + Jf: jf, + K: a.Val, + }, nil +} + +// RetA exits the BPF program, returning the value of register A. +type RetA struct{} + +// Assemble implements the Instruction Assemble method. +func (a RetA) Assemble() (RawInstruction, error) { + return RawInstruction{ + Op: opClsReturn | opRetSrcA, + }, nil +} + +// RetConstant exits the BPF program, returning a constant value. +type RetConstant struct { + Val uint32 +} + +// Assemble implements the Instruction Assemble method. +func (a RetConstant) Assemble() (RawInstruction, error) { + return RawInstruction{ + Op: opClsReturn | opRetSrcConstant, + K: a.Val, + }, nil +} + +// TXA copies the value of register X to register A. +type TXA struct{} + +// Assemble implements the Instruction Assemble method. +func (a TXA) Assemble() (RawInstruction, error) { + return RawInstruction{ + Op: opClsMisc | opMiscTXA, + }, nil +} + +// TAX copies the value of register A to register X. +type TAX struct{} + +// Assemble implements the Instruction Assemble method. +func (a TAX) Assemble() (RawInstruction, error) { + return RawInstruction{ + Op: opClsMisc | opMiscTAX, + }, nil +} + +func assembleLoad(dst Register, loadSize int, mode uint16, k uint32) (RawInstruction, error) { + var ( + cls uint16 + sz uint16 + ) + switch dst { + case RegA: + cls = opClsLoadA + case RegX: + cls = opClsLoadX + default: + return RawInstruction{}, fmt.Errorf("invalid target register %v", dst) + } + switch loadSize { + case 1: + sz = opLoadWidth1 + case 2: + sz = opLoadWidth2 + case 4: + sz = opLoadWidth4 + default: + return RawInstruction{}, fmt.Errorf("invalid load byte length %d", sz) + } + return RawInstruction{ + Op: cls | sz | mode, + K: k, + }, nil +} diff --git a/vendor/golang.org/x/net/bpf/vm.go b/vendor/golang.org/x/net/bpf/vm.go new file mode 100644 index 00000000000..4c656f1e12a --- /dev/null +++ b/vendor/golang.org/x/net/bpf/vm.go @@ -0,0 +1,140 @@ +// 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 bpf + +import ( + "errors" + "fmt" +) + +// A VM is an emulated BPF virtual machine. +type VM struct { + filter []Instruction +} + +// NewVM returns a new VM using the input BPF program. +func NewVM(filter []Instruction) (*VM, error) { + if len(filter) == 0 { + return nil, errors.New("one or more Instructions must be specified") + } + + for i, ins := range filter { + check := len(filter) - (i + 1) + switch ins := ins.(type) { + // Check for out-of-bounds jumps in instructions + case Jump: + if check <= int(ins.Skip) { + return nil, fmt.Errorf("cannot jump %d instructions; jumping past program bounds", ins.Skip) + } + case JumpIf: + if check <= int(ins.SkipTrue) { + return nil, fmt.Errorf("cannot jump %d instructions in true case; jumping past program bounds", ins.SkipTrue) + } + if check <= int(ins.SkipFalse) { + return nil, fmt.Errorf("cannot jump %d instructions in false case; jumping past program bounds", ins.SkipFalse) + } + // Check for division or modulus by zero + case ALUOpConstant: + if ins.Val != 0 { + break + } + + switch ins.Op { + case ALUOpDiv, ALUOpMod: + return nil, errors.New("cannot divide by zero using ALUOpConstant") + } + // Check for unknown extensions + case LoadExtension: + switch ins.Num { + case ExtLen: + default: + return nil, fmt.Errorf("extension %d not implemented", ins.Num) + } + } + } + + // Make sure last instruction is a return instruction + switch filter[len(filter)-1].(type) { + case RetA, RetConstant: + default: + return nil, errors.New("BPF program must end with RetA or RetConstant") + } + + // Though our VM works using disassembled instructions, we + // attempt to assemble the input filter anyway to ensure it is compatible + // with an operating system VM. + _, err := Assemble(filter) + + return &VM{ + filter: filter, + }, err +} + +// Run runs the VM's BPF program against the input bytes. +// Run returns the number of bytes accepted by the BPF program, and any errors +// which occurred while processing the program. +func (v *VM) Run(in []byte) (int, error) { + var ( + // Registers of the virtual machine + regA uint32 + regX uint32 + regScratch [16]uint32 + + // OK is true if the program should continue processing the next + // instruction, or false if not, causing the loop to break + ok = true + ) + + // TODO(mdlayher): implement: + // - NegateA: + // - would require a change from uint32 registers to int32 + // registers + + // TODO(mdlayher): add interop tests that check signedness of ALU + // operations against kernel implementation, and make sure Go + // implementation matches behavior + + for i := 0; i < len(v.filter) && ok; i++ { + ins := v.filter[i] + + switch ins := ins.(type) { + case ALUOpConstant: + regA = aluOpConstant(ins, regA) + case ALUOpX: + regA, ok = aluOpX(ins, regA, regX) + case Jump: + i += int(ins.Skip) + case JumpIf: + jump := jumpIf(ins, regA) + i += jump + case LoadAbsolute: + regA, ok = loadAbsolute(ins, in) + case LoadConstant: + regA, regX = loadConstant(ins, regA, regX) + case LoadExtension: + regA = loadExtension(ins, in) + case LoadIndirect: + regA, ok = loadIndirect(ins, in, regX) + case LoadMemShift: + regX, ok = loadMemShift(ins, in) + case LoadScratch: + regA, regX = loadScratch(ins, regScratch, regA, regX) + case RetA: + return int(regA), nil + case RetConstant: + return int(ins.Val), nil + case StoreScratch: + regScratch = storeScratch(ins, regScratch, regA, regX) + case TAX: + regX = regA + case TXA: + regA = regX + default: + return 0, fmt.Errorf("unknown Instruction at index %d: %T", i, ins) + } + } + + return 0, nil +} diff --git a/vendor/golang.org/x/net/bpf/vm_instructions.go b/vendor/golang.org/x/net/bpf/vm_instructions.go new file mode 100644 index 00000000000..516f9462b9f --- /dev/null +++ b/vendor/golang.org/x/net/bpf/vm_instructions.go @@ -0,0 +1,174 @@ +// 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 bpf + +import ( + "encoding/binary" + "fmt" +) + +func aluOpConstant(ins ALUOpConstant, regA uint32) uint32 { + return aluOpCommon(ins.Op, regA, ins.Val) +} + +func aluOpX(ins ALUOpX, regA uint32, regX uint32) (uint32, bool) { + // Guard against division or modulus by zero by terminating + // the program, as the OS BPF VM does + if regX == 0 { + switch ins.Op { + case ALUOpDiv, ALUOpMod: + return 0, false + } + } + + return aluOpCommon(ins.Op, regA, regX), true +} + +func aluOpCommon(op ALUOp, regA uint32, value uint32) uint32 { + switch op { + case ALUOpAdd: + return regA + value + case ALUOpSub: + return regA - value + case ALUOpMul: + return regA * value + case ALUOpDiv: + // Division by zero not permitted by NewVM and aluOpX checks + return regA / value + case ALUOpOr: + return regA | value + case ALUOpAnd: + return regA & value + case ALUOpShiftLeft: + return regA << value + case ALUOpShiftRight: + return regA >> value + case ALUOpMod: + // Modulus by zero not permitted by NewVM and aluOpX checks + return regA % value + case ALUOpXor: + return regA ^ value + default: + return regA + } +} + +func jumpIf(ins JumpIf, value uint32) int { + var ok bool + inV := uint32(ins.Val) + + switch ins.Cond { + case JumpEqual: + ok = value == inV + case JumpNotEqual: + ok = value != inV + case JumpGreaterThan: + ok = value > inV + case JumpLessThan: + ok = value < inV + case JumpGreaterOrEqual: + ok = value >= inV + case JumpLessOrEqual: + ok = value <= inV + case JumpBitsSet: + ok = (value & inV) != 0 + case JumpBitsNotSet: + ok = (value & inV) == 0 + } + + if ok { + return int(ins.SkipTrue) + } + + return int(ins.SkipFalse) +} + +func loadAbsolute(ins LoadAbsolute, in []byte) (uint32, bool) { + offset := int(ins.Off) + size := int(ins.Size) + + return loadCommon(in, offset, size) +} + +func loadConstant(ins LoadConstant, regA uint32, regX uint32) (uint32, uint32) { + switch ins.Dst { + case RegA: + regA = ins.Val + case RegX: + regX = ins.Val + } + + return regA, regX +} + +func loadExtension(ins LoadExtension, in []byte) uint32 { + switch ins.Num { + case ExtLen: + return uint32(len(in)) + default: + panic(fmt.Sprintf("unimplemented extension: %d", ins.Num)) + } +} + +func loadIndirect(ins LoadIndirect, in []byte, regX uint32) (uint32, bool) { + offset := int(ins.Off) + int(regX) + size := int(ins.Size) + + return loadCommon(in, offset, size) +} + +func loadMemShift(ins LoadMemShift, in []byte) (uint32, bool) { + offset := int(ins.Off) + + if !inBounds(len(in), offset, 0) { + return 0, false + } + + // Mask off high 4 bits and multiply low 4 bits by 4 + return uint32(in[offset]&0x0f) * 4, true +} + +func inBounds(inLen int, offset int, size int) bool { + return offset+size <= inLen +} + +func loadCommon(in []byte, offset int, size int) (uint32, bool) { + if !inBounds(len(in), offset, size) { + return 0, false + } + + switch size { + case 1: + return uint32(in[offset]), true + case 2: + return uint32(binary.BigEndian.Uint16(in[offset : offset+size])), true + case 4: + return uint32(binary.BigEndian.Uint32(in[offset : offset+size])), true + default: + panic(fmt.Sprintf("invalid load size: %d", size)) + } +} + +func loadScratch(ins LoadScratch, regScratch [16]uint32, regA uint32, regX uint32) (uint32, uint32) { + switch ins.Dst { + case RegA: + regA = regScratch[ins.N] + case RegX: + regX = regScratch[ins.N] + } + + return regA, regX +} + +func storeScratch(ins StoreScratch, regScratch [16]uint32, regA uint32, regX uint32) [16]uint32 { + switch ins.Src { + case RegA: + regScratch[ins.N] = regA + case RegX: + regScratch[ins.N] = regX + } + + return regScratch +} diff --git a/vendor/golang.org/x/net/context/context.go b/vendor/golang.org/x/net/context/context.go index 77b64d0c679..f143ed6a1eb 100644 --- a/vendor/golang.org/x/net/context/context.go +++ b/vendor/golang.org/x/net/context/context.go @@ -7,7 +7,7 @@ // and between processes. // // Incoming requests to a server should create a Context, and outgoing calls to -// servers should accept a Context. The chain of function calls between must +// servers should accept a Context. The chain of function calls between must // propagate the Context, optionally replacing it with a modified copy created // using WithDeadline, WithTimeout, WithCancel, or WithValue. // @@ -16,14 +16,14 @@ // propagation: // // Do not store Contexts inside a struct type; instead, pass a Context -// explicitly to each function that needs it. The Context should be the first +// explicitly to each function that needs it. The Context should be the first // parameter, typically named ctx: // // func DoSomething(ctx context.Context, arg Arg) error { // // ... use ctx ... // } // -// Do not pass a nil Context, even if a function permits it. Pass context.TODO +// Do not pass a nil Context, even if a function permits it. Pass context.TODO // if you are unsure about which Context to use. // // Use context Values only for request-scoped data that transits processes and @@ -36,12 +36,7 @@ // Contexts. package context // import "golang.org/x/net/context" -import ( - "errors" - "fmt" - "sync" - "time" -) +import "time" // A Context carries a deadline, a cancelation signal, and other values across // API boundaries. @@ -49,13 +44,13 @@ import ( // Context's methods may be called by multiple goroutines simultaneously. type Context interface { // Deadline returns the time when work done on behalf of this context - // should be canceled. Deadline returns ok==false when no deadline is - // set. Successive calls to Deadline return the same results. + // should be canceled. Deadline returns ok==false when no deadline is + // set. Successive calls to Deadline return the same results. Deadline() (deadline time.Time, ok bool) // Done returns a channel that's closed when work done on behalf of this - // context should be canceled. Done may return nil if this context can - // never be canceled. Successive calls to Done return the same value. + // context should be canceled. Done may return nil if this context can + // never be canceled. Successive calls to Done return the same value. // // WithCancel arranges for Done to be closed when cancel is called; // WithDeadline arranges for Done to be closed when the deadline @@ -66,7 +61,7 @@ type Context interface { // // // Stream generates values with DoSomething and sends them to out // // until DoSomething returns an error or ctx.Done is closed. - // func Stream(ctx context.Context, out <-chan Value) error { + // func Stream(ctx context.Context, out chan<- Value) error { // for { // v, err := DoSomething(ctx) // if err != nil { @@ -84,24 +79,24 @@ type Context interface { // a Done channel for cancelation. Done() <-chan struct{} - // Err returns a non-nil error value after Done is closed. Err returns + // Err returns a non-nil error value after Done is closed. Err returns // Canceled if the context was canceled or DeadlineExceeded if the - // context's deadline passed. No other values for Err are defined. + // context's deadline passed. No other values for Err are defined. // After Done is closed, successive calls to Err return the same value. Err() error // Value returns the value associated with this context for key, or nil - // if no value is associated with key. Successive calls to Value with + // if no value is associated with key. Successive calls to Value with // the same key returns the same result. // // Use context values only for request-scoped data that transits // processes and API boundaries, not for passing optional parameters to // functions. // - // A key identifies a specific value in a Context. Functions that wish + // A key identifies a specific value in a Context. Functions that wish // to store values in Context typically allocate a key in a global // variable then use that key as the argument to context.WithValue and - // Context.Value. A key can be any type that supports equality; + // Context.Value. A key can be any type that supports equality; // packages should define keys as an unexported type to avoid // collisions. // @@ -120,7 +115,7 @@ type Context interface { // // This prevents collisions with keys defined in other packages. // type key int // - // // userKey is the key for user.User values in Contexts. It is + // // userKey is the key for user.User values in Contexts. It is // // unexported; clients use user.NewContext and user.FromContext // // instead of using this key directly. // var userKey key = 0 @@ -138,57 +133,15 @@ type Context interface { Value(key interface{}) interface{} } -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = errors.New("context canceled") - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = errors.New("context deadline exceeded") - -// An emptyCtx is never canceled, has no values, and has no deadline. It is not -// struct{}, since vars of this type must have distinct addresses. -type emptyCtx int - -func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { - return -} - -func (*emptyCtx) Done() <-chan struct{} { - return nil -} - -func (*emptyCtx) Err() error { - return nil -} - -func (*emptyCtx) Value(key interface{}) interface{} { - return nil -} - -func (e *emptyCtx) String() string { - switch e { - case background: - return "context.Background" - case todo: - return "context.TODO" - } - return "unknown empty Context" -} - -var ( - background = new(emptyCtx) - todo = new(emptyCtx) -) - // Background returns a non-nil, empty Context. It is never canceled, has no -// values, and has no deadline. It is typically used by the main function, +// values, and has no deadline. It is typically used by the main function, // initialization, and tests, and as the top-level Context for incoming // requests. func Background() Context { return background } -// TODO returns a non-nil, empty Context. Code should use context.TODO when +// TODO returns a non-nil, empty Context. Code should use context.TODO when // it's unclear which Context to use or it is not yet available (because the // surrounding function has not yet been extended to accept a Context // parameter). TODO is recognized by static analysis tools that determine @@ -201,247 +154,3 @@ func TODO() Context { // A CancelFunc does not wait for the work to stop. // After the first call, subsequent calls to a CancelFunc do nothing. type CancelFunc func() - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - c := newCancelCtx(parent) - propagateCancel(parent, &c) - return &c, func() { c.cancel(true, Canceled) } -} - -// newCancelCtx returns an initialized cancelCtx. -func newCancelCtx(parent Context) cancelCtx { - return cancelCtx{ - Context: parent, - done: make(chan struct{}), - } -} - -// propagateCancel arranges for child to be canceled when parent is. -func propagateCancel(parent Context, child canceler) { - if parent.Done() == nil { - return // parent is never canceled - } - if p, ok := parentCancelCtx(parent); ok { - p.mu.Lock() - if p.err != nil { - // parent has already been canceled - child.cancel(false, p.err) - } else { - if p.children == nil { - p.children = make(map[canceler]bool) - } - p.children[child] = true - } - p.mu.Unlock() - } else { - go func() { - select { - case <-parent.Done(): - child.cancel(false, parent.Err()) - case <-child.Done(): - } - }() - } -} - -// parentCancelCtx follows a chain of parent references until it finds a -// *cancelCtx. This function understands how each of the concrete types in this -// package represents its parent. -func parentCancelCtx(parent Context) (*cancelCtx, bool) { - for { - switch c := parent.(type) { - case *cancelCtx: - return c, true - case *timerCtx: - return &c.cancelCtx, true - case *valueCtx: - parent = c.Context - default: - return nil, false - } - } -} - -// removeChild removes a context from its parent. -func removeChild(parent Context, child canceler) { - p, ok := parentCancelCtx(parent) - if !ok { - return - } - p.mu.Lock() - if p.children != nil { - delete(p.children, child) - } - p.mu.Unlock() -} - -// A canceler is a context type that can be canceled directly. The -// implementations are *cancelCtx and *timerCtx. -type canceler interface { - cancel(removeFromParent bool, err error) - Done() <-chan struct{} -} - -// A cancelCtx can be canceled. When canceled, it also cancels any children -// that implement canceler. -type cancelCtx struct { - Context - - done chan struct{} // closed by the first cancel call. - - mu sync.Mutex - children map[canceler]bool // set to nil by the first cancel call - err error // set to non-nil by the first cancel call -} - -func (c *cancelCtx) Done() <-chan struct{} { - return c.done -} - -func (c *cancelCtx) Err() error { - c.mu.Lock() - defer c.mu.Unlock() - return c.err -} - -func (c *cancelCtx) String() string { - return fmt.Sprintf("%v.WithCancel", c.Context) -} - -// cancel closes c.done, cancels each of c's children, and, if -// removeFromParent is true, removes c from its parent's children. -func (c *cancelCtx) cancel(removeFromParent bool, err error) { - if err == nil { - panic("context: internal error: missing cancel error") - } - c.mu.Lock() - if c.err != nil { - c.mu.Unlock() - return // already canceled - } - c.err = err - close(c.done) - for child := range c.children { - // NOTE: acquiring the child's lock while holding parent's lock. - child.cancel(false, err) - } - c.children = nil - c.mu.Unlock() - - if removeFromParent { - removeChild(c.Context, c) - } -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - if cur, ok := parent.Deadline(); ok && cur.Before(deadline) { - // The current deadline is already sooner than the new one. - return WithCancel(parent) - } - c := &timerCtx{ - cancelCtx: newCancelCtx(parent), - deadline: deadline, - } - propagateCancel(parent, c) - d := deadline.Sub(time.Now()) - if d <= 0 { - c.cancel(true, DeadlineExceeded) // deadline has already passed - return c, func() { c.cancel(true, Canceled) } - } - c.mu.Lock() - defer c.mu.Unlock() - if c.err == nil { - c.timer = time.AfterFunc(d, func() { - c.cancel(true, DeadlineExceeded) - }) - } - return c, func() { c.cancel(true, Canceled) } -} - -// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to -// implement Done and Err. It implements cancel by stopping its timer then -// delegating to cancelCtx.cancel. -type timerCtx struct { - cancelCtx - timer *time.Timer // Under cancelCtx.mu. - - deadline time.Time -} - -func (c *timerCtx) Deadline() (deadline time.Time, ok bool) { - return c.deadline, true -} - -func (c *timerCtx) String() string { - return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now())) -} - -func (c *timerCtx) cancel(removeFromParent bool, err error) { - c.cancelCtx.cancel(false, err) - if removeFromParent { - // Remove this timerCtx from its parent cancelCtx's children. - removeChild(c.cancelCtx.Context, c) - } - c.mu.Lock() - if c.timer != nil { - c.timer.Stop() - c.timer = nil - } - c.mu.Unlock() -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return &valueCtx{parent, key, val} -} - -// A valueCtx carries a key-value pair. It implements Value for that key and -// delegates all other calls to the embedded Context. -type valueCtx struct { - Context - key, val interface{} -} - -func (c *valueCtx) String() string { - return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val) -} - -func (c *valueCtx) Value(key interface{}) interface{} { - if c.key == key { - return c.val - } - return c.Context.Value(key) -} diff --git a/vendor/golang.org/x/net/context/ctxhttp/cancelreq.go b/vendor/golang.org/x/net/context/ctxhttp/cancelreq.go deleted file mode 100644 index e3170e3333a..00000000000 --- a/vendor/golang.org/x/net/context/ctxhttp/cancelreq.go +++ /dev/null @@ -1,19 +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 go1.5 - -package ctxhttp - -import "net/http" - -func canceler(client *http.Client, req *http.Request) func() { - // TODO(djd): Respect any existing value of req.Cancel. - ch := make(chan struct{}) - req.Cancel = ch - - return func() { - close(ch) - } -} diff --git a/vendor/golang.org/x/net/context/ctxhttp/cancelreq_go14.go b/vendor/golang.org/x/net/context/ctxhttp/cancelreq_go14.go deleted file mode 100644 index 56bcbadb85f..00000000000 --- a/vendor/golang.org/x/net/context/ctxhttp/cancelreq_go14.go +++ /dev/null @@ -1,23 +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 !go1.5 - -package ctxhttp - -import "net/http" - -type requestCanceler interface { - CancelRequest(*http.Request) -} - -func canceler(client *http.Client, req *http.Request) func() { - rc, ok := client.Transport.(requestCanceler) - if !ok { - return func() {} - } - return func() { - rc.CancelRequest(req) - } -} diff --git a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go index 62620d4eb3a..aa288de64c8 100644 --- a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +++ b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go @@ -1,7 +1,9 @@ -// Copyright 2015 The Go Authors. All rights reserved. +// 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 go1.7 + // Package ctxhttp provides helper functions for performing context-aware HTTP requests. package ctxhttp // import "golang.org/x/net/context/ctxhttp" @@ -14,71 +16,18 @@ import ( "golang.org/x/net/context" ) -func nop() {} - -var ( - testHookContextDoneBeforeHeaders = nop - testHookDoReturned = nop - testHookDidBodyClose = nop -) - -// Do sends an HTTP request with the provided http.Client and returns an HTTP response. +// Do sends an HTTP request with the provided http.Client and returns +// an HTTP response. +// // If the client is nil, http.DefaultClient is used. -// If the context is canceled or times out, ctx.Err() will be returned. +// +// The provided ctx must be non-nil. If it is canceled or times out, +// ctx.Err() will be returned. func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { if client == nil { client = http.DefaultClient } - - // Request cancelation changed in Go 1.5, see cancelreq.go and cancelreq_go14.go. - cancel := canceler(client, req) - - type responseAndError struct { - resp *http.Response - err error - } - result := make(chan responseAndError, 1) - - go func() { - resp, err := client.Do(req) - testHookDoReturned() - result <- responseAndError{resp, err} - }() - - var resp *http.Response - - select { - case <-ctx.Done(): - testHookContextDoneBeforeHeaders() - cancel() - // Clean up after the goroutine calling client.Do: - go func() { - if r := <-result; r.resp != nil { - testHookDidBodyClose() - r.resp.Body.Close() - } - }() - return nil, ctx.Err() - case r := <-result: - var err error - resp, err = r.resp, r.err - if err != nil { - return resp, err - } - } - - c := make(chan struct{}) - go func() { - select { - case <-ctx.Done(): - cancel() - case <-c: - // The response's Body is closed. - } - }() - resp.Body = ¬ifyingReader{resp.Body, c} - - return resp, nil + return client.Do(req.WithContext(ctx)) } // Get issues a GET request via the Do function. @@ -113,28 +62,3 @@ func Post(ctx context.Context, client *http.Client, url string, bodyType string, func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) { return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode())) } - -// notifyingReader is an io.ReadCloser that closes the notify channel after -// Close is called or a Read fails on the underlying ReadCloser. -type notifyingReader struct { - io.ReadCloser - notify chan<- struct{} -} - -func (r *notifyingReader) Read(p []byte) (int, error) { - n, err := r.ReadCloser.Read(p) - if err != nil && r.notify != nil { - close(r.notify) - r.notify = nil - } - return n, err -} - -func (r *notifyingReader) Close() error { - err := r.ReadCloser.Close() - if r.notify != nil { - close(r.notify) - r.notify = nil - } - return err -} diff --git a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17.go b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17.go new file mode 100644 index 00000000000..926870cc23f --- /dev/null +++ b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_pre17.go @@ -0,0 +1,147 @@ +// 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 !go1.7 + +package ctxhttp // import "golang.org/x/net/context/ctxhttp" + +import ( + "io" + "net/http" + "net/url" + "strings" + + "golang.org/x/net/context" +) + +func nop() {} + +var ( + testHookContextDoneBeforeHeaders = nop + testHookDoReturned = nop + testHookDidBodyClose = nop +) + +// Do sends an HTTP request with the provided http.Client and returns an HTTP response. +// If the client is nil, http.DefaultClient is used. +// If the context is canceled or times out, ctx.Err() will be returned. +func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { + if client == nil { + client = http.DefaultClient + } + + // TODO(djd): Respect any existing value of req.Cancel. + cancel := make(chan struct{}) + req.Cancel = cancel + + type responseAndError struct { + resp *http.Response + err error + } + result := make(chan responseAndError, 1) + + // Make local copies of test hooks closed over by goroutines below. + // Prevents data races in tests. + testHookDoReturned := testHookDoReturned + testHookDidBodyClose := testHookDidBodyClose + + go func() { + resp, err := client.Do(req) + testHookDoReturned() + result <- responseAndError{resp, err} + }() + + var resp *http.Response + + select { + case <-ctx.Done(): + testHookContextDoneBeforeHeaders() + close(cancel) + // Clean up after the goroutine calling client.Do: + go func() { + if r := <-result; r.resp != nil { + testHookDidBodyClose() + r.resp.Body.Close() + } + }() + return nil, ctx.Err() + case r := <-result: + var err error + resp, err = r.resp, r.err + if err != nil { + return resp, err + } + } + + c := make(chan struct{}) + go func() { + select { + case <-ctx.Done(): + close(cancel) + case <-c: + // The response's Body is closed. + } + }() + resp.Body = ¬ifyingReader{resp.Body, c} + + return resp, nil +} + +// Get issues a GET request via the Do function. +func Get(ctx context.Context, client *http.Client, url string) (*http.Response, error) { + req, err := http.NewRequest("GET", url, nil) + if err != nil { + return nil, err + } + return Do(ctx, client, req) +} + +// Head issues a HEAD request via the Do function. +func Head(ctx context.Context, client *http.Client, url string) (*http.Response, error) { + req, err := http.NewRequest("HEAD", url, nil) + if err != nil { + return nil, err + } + return Do(ctx, client, req) +} + +// Post issues a POST request via the Do function. +func Post(ctx context.Context, client *http.Client, url string, bodyType string, body io.Reader) (*http.Response, error) { + req, err := http.NewRequest("POST", url, body) + if err != nil { + return nil, err + } + req.Header.Set("Content-Type", bodyType) + return Do(ctx, client, req) +} + +// PostForm issues a POST request via the Do function. +func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) { + return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode())) +} + +// notifyingReader is an io.ReadCloser that closes the notify channel after +// Close is called or a Read fails on the underlying ReadCloser. +type notifyingReader struct { + io.ReadCloser + notify chan<- struct{} +} + +func (r *notifyingReader) Read(p []byte) (int, error) { + n, err := r.ReadCloser.Read(p) + if err != nil && r.notify != nil { + close(r.notify) + r.notify = nil + } + return n, err +} + +func (r *notifyingReader) Close() error { + err := r.ReadCloser.Close() + if r.notify != nil { + close(r.notify) + r.notify = nil + } + return err +} diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go new file mode 100644 index 00000000000..d20f52b7de9 --- /dev/null +++ b/vendor/golang.org/x/net/context/go17.go @@ -0,0 +1,72 @@ +// 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 go1.7 + +package context + +import ( + "context" // standard library's context, as of Go 1.7 + "time" +) + +var ( + todo = context.TODO() + background = context.Background() +) + +// Canceled is the error returned by Context.Err when the context is canceled. +var Canceled = context.Canceled + +// DeadlineExceeded is the error returned by Context.Err when the context's +// deadline passes. +var DeadlineExceeded = context.DeadlineExceeded + +// WithCancel returns a copy of parent with a new Done channel. The returned +// context's Done channel is closed when the returned cancel function is called +// or when the parent context's Done channel is closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete. +func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { + ctx, f := context.WithCancel(parent) + return ctx, CancelFunc(f) +} + +// WithDeadline returns a copy of the parent context with the deadline adjusted +// to be no later than d. If the parent's deadline is already earlier than d, +// WithDeadline(parent, d) is semantically equivalent to parent. The returned +// context's Done channel is closed when the deadline expires, when the returned +// cancel function is called, or when the parent context's Done channel is +// closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete. +func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { + ctx, f := context.WithDeadline(parent, deadline) + return ctx, CancelFunc(f) +} + +// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete: +// +// func slowOperationWithTimeout(ctx context.Context) (Result, error) { +// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) +// defer cancel() // releases resources if slowOperation completes before timeout elapses +// return slowOperation(ctx) +// } +func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { + return WithDeadline(parent, time.Now().Add(timeout)) +} + +// WithValue returns a copy of parent in which the value associated with key is +// val. +// +// Use context Values only for request-scoped data that transits processes and +// APIs, not for passing optional parameters to functions. +func WithValue(parent Context, key interface{}, val interface{}) Context { + return context.WithValue(parent, key, val) +} diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go new file mode 100644 index 00000000000..0f35592df51 --- /dev/null +++ b/vendor/golang.org/x/net/context/pre_go17.go @@ -0,0 +1,300 @@ +// 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.7 + +package context + +import ( + "errors" + "fmt" + "sync" + "time" +) + +// An emptyCtx is never canceled, has no values, and has no deadline. It is not +// struct{}, since vars of this type must have distinct addresses. +type emptyCtx int + +func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { + return +} + +func (*emptyCtx) Done() <-chan struct{} { + return nil +} + +func (*emptyCtx) Err() error { + return nil +} + +func (*emptyCtx) Value(key interface{}) interface{} { + return nil +} + +func (e *emptyCtx) String() string { + switch e { + case background: + return "context.Background" + case todo: + return "context.TODO" + } + return "unknown empty Context" +} + +var ( + background = new(emptyCtx) + todo = new(emptyCtx) +) + +// Canceled is the error returned by Context.Err when the context is canceled. +var Canceled = errors.New("context canceled") + +// DeadlineExceeded is the error returned by Context.Err when the context's +// deadline passes. +var DeadlineExceeded = errors.New("context deadline exceeded") + +// WithCancel returns a copy of parent with a new Done channel. The returned +// context's Done channel is closed when the returned cancel function is called +// or when the parent context's Done channel is closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete. +func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { + c := newCancelCtx(parent) + propagateCancel(parent, c) + return c, func() { c.cancel(true, Canceled) } +} + +// newCancelCtx returns an initialized cancelCtx. +func newCancelCtx(parent Context) *cancelCtx { + return &cancelCtx{ + Context: parent, + done: make(chan struct{}), + } +} + +// propagateCancel arranges for child to be canceled when parent is. +func propagateCancel(parent Context, child canceler) { + if parent.Done() == nil { + return // parent is never canceled + } + if p, ok := parentCancelCtx(parent); ok { + p.mu.Lock() + if p.err != nil { + // parent has already been canceled + child.cancel(false, p.err) + } else { + if p.children == nil { + p.children = make(map[canceler]bool) + } + p.children[child] = true + } + p.mu.Unlock() + } else { + go func() { + select { + case <-parent.Done(): + child.cancel(false, parent.Err()) + case <-child.Done(): + } + }() + } +} + +// parentCancelCtx follows a chain of parent references until it finds a +// *cancelCtx. This function understands how each of the concrete types in this +// package represents its parent. +func parentCancelCtx(parent Context) (*cancelCtx, bool) { + for { + switch c := parent.(type) { + case *cancelCtx: + return c, true + case *timerCtx: + return c.cancelCtx, true + case *valueCtx: + parent = c.Context + default: + return nil, false + } + } +} + +// removeChild removes a context from its parent. +func removeChild(parent Context, child canceler) { + p, ok := parentCancelCtx(parent) + if !ok { + return + } + p.mu.Lock() + if p.children != nil { + delete(p.children, child) + } + p.mu.Unlock() +} + +// A canceler is a context type that can be canceled directly. The +// implementations are *cancelCtx and *timerCtx. +type canceler interface { + cancel(removeFromParent bool, err error) + Done() <-chan struct{} +} + +// A cancelCtx can be canceled. When canceled, it also cancels any children +// that implement canceler. +type cancelCtx struct { + Context + + done chan struct{} // closed by the first cancel call. + + mu sync.Mutex + children map[canceler]bool // set to nil by the first cancel call + err error // set to non-nil by the first cancel call +} + +func (c *cancelCtx) Done() <-chan struct{} { + return c.done +} + +func (c *cancelCtx) Err() error { + c.mu.Lock() + defer c.mu.Unlock() + return c.err +} + +func (c *cancelCtx) String() string { + return fmt.Sprintf("%v.WithCancel", c.Context) +} + +// cancel closes c.done, cancels each of c's children, and, if +// removeFromParent is true, removes c from its parent's children. +func (c *cancelCtx) cancel(removeFromParent bool, err error) { + if err == nil { + panic("context: internal error: missing cancel error") + } + c.mu.Lock() + if c.err != nil { + c.mu.Unlock() + return // already canceled + } + c.err = err + close(c.done) + for child := range c.children { + // NOTE: acquiring the child's lock while holding parent's lock. + child.cancel(false, err) + } + c.children = nil + c.mu.Unlock() + + if removeFromParent { + removeChild(c.Context, c) + } +} + +// WithDeadline returns a copy of the parent context with the deadline adjusted +// to be no later than d. If the parent's deadline is already earlier than d, +// WithDeadline(parent, d) is semantically equivalent to parent. The returned +// context's Done channel is closed when the deadline expires, when the returned +// cancel function is called, or when the parent context's Done channel is +// closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete. +func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { + if cur, ok := parent.Deadline(); ok && cur.Before(deadline) { + // The current deadline is already sooner than the new one. + return WithCancel(parent) + } + c := &timerCtx{ + cancelCtx: newCancelCtx(parent), + deadline: deadline, + } + propagateCancel(parent, c) + d := deadline.Sub(time.Now()) + if d <= 0 { + c.cancel(true, DeadlineExceeded) // deadline has already passed + return c, func() { c.cancel(true, Canceled) } + } + c.mu.Lock() + defer c.mu.Unlock() + if c.err == nil { + c.timer = time.AfterFunc(d, func() { + c.cancel(true, DeadlineExceeded) + }) + } + return c, func() { c.cancel(true, Canceled) } +} + +// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to +// implement Done and Err. It implements cancel by stopping its timer then +// delegating to cancelCtx.cancel. +type timerCtx struct { + *cancelCtx + timer *time.Timer // Under cancelCtx.mu. + + deadline time.Time +} + +func (c *timerCtx) Deadline() (deadline time.Time, ok bool) { + return c.deadline, true +} + +func (c *timerCtx) String() string { + return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now())) +} + +func (c *timerCtx) cancel(removeFromParent bool, err error) { + c.cancelCtx.cancel(false, err) + if removeFromParent { + // Remove this timerCtx from its parent cancelCtx's children. + removeChild(c.cancelCtx.Context, c) + } + c.mu.Lock() + if c.timer != nil { + c.timer.Stop() + c.timer = nil + } + c.mu.Unlock() +} + +// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this Context complete: +// +// func slowOperationWithTimeout(ctx context.Context) (Result, error) { +// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) +// defer cancel() // releases resources if slowOperation completes before timeout elapses +// return slowOperation(ctx) +// } +func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { + return WithDeadline(parent, time.Now().Add(timeout)) +} + +// WithValue returns a copy of parent in which the value associated with key is +// val. +// +// Use context Values only for request-scoped data that transits processes and +// APIs, not for passing optional parameters to functions. +func WithValue(parent Context, key interface{}, val interface{}) Context { + return &valueCtx{parent, key, val} +} + +// A valueCtx carries a key-value pair. It implements Value for that key and +// delegates all other calls to the embedded Context. +type valueCtx struct { + Context + key, val interface{} +} + +func (c *valueCtx) String() string { + return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val) +} + +func (c *valueCtx) Value(key interface{}) interface{} { + if c.key == key { + return c.val + } + return c.Context.Value(key) +} diff --git a/vendor/golang.org/x/net/dict/dict.go b/vendor/golang.org/x/net/dict/dict.go deleted file mode 100644 index 58fef89e060..00000000000 --- a/vendor/golang.org/x/net/dict/dict.go +++ /dev/null @@ -1,210 +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. - -// Package dict implements the Dictionary Server Protocol -// as defined in RFC 2229. -package dict // import "golang.org/x/net/dict" - -import ( - "net/textproto" - "strconv" - "strings" -) - -// A Client represents a client connection to a dictionary server. -type Client struct { - text *textproto.Conn -} - -// Dial returns a new client connected to a dictionary server at -// addr on the given network. -func Dial(network, addr string) (*Client, error) { - text, err := textproto.Dial(network, addr) - if err != nil { - return nil, err - } - _, _, err = text.ReadCodeLine(220) - if err != nil { - text.Close() - return nil, err - } - return &Client{text: text}, nil -} - -// Close closes the connection to the dictionary server. -func (c *Client) Close() error { - return c.text.Close() -} - -// A Dict represents a dictionary available on the server. -type Dict struct { - Name string // short name of dictionary - Desc string // long description -} - -// Dicts returns a list of the dictionaries available on the server. -func (c *Client) Dicts() ([]Dict, error) { - id, err := c.text.Cmd("SHOW DB") - if err != nil { - return nil, err - } - - c.text.StartResponse(id) - defer c.text.EndResponse(id) - - _, _, err = c.text.ReadCodeLine(110) - if err != nil { - return nil, err - } - lines, err := c.text.ReadDotLines() - if err != nil { - return nil, err - } - _, _, err = c.text.ReadCodeLine(250) - - dicts := make([]Dict, len(lines)) - for i := range dicts { - d := &dicts[i] - a, _ := fields(lines[i]) - if len(a) < 2 { - return nil, textproto.ProtocolError("invalid dictionary: " + lines[i]) - } - d.Name = a[0] - d.Desc = a[1] - } - return dicts, err -} - -// A Defn represents a definition. -type Defn struct { - Dict Dict // Dict where definition was found - Word string // Word being defined - Text []byte // Definition text, typically multiple lines -} - -// Define requests the definition of the given word. -// The argument dict names the dictionary to use, -// the Name field of a Dict returned by Dicts. -// -// The special dictionary name "*" means to look in all the -// server's dictionaries. -// The special dictionary name "!" means to look in all the -// server's dictionaries in turn, stopping after finding the word -// in one of them. -func (c *Client) Define(dict, word string) ([]*Defn, error) { - id, err := c.text.Cmd("DEFINE %s %q", dict, word) - if err != nil { - return nil, err - } - - c.text.StartResponse(id) - defer c.text.EndResponse(id) - - _, line, err := c.text.ReadCodeLine(150) - if err != nil { - return nil, err - } - a, _ := fields(line) - if len(a) < 1 { - return nil, textproto.ProtocolError("malformed response: " + line) - } - n, err := strconv.Atoi(a[0]) - if err != nil { - return nil, textproto.ProtocolError("invalid definition count: " + a[0]) - } - def := make([]*Defn, n) - for i := 0; i < n; i++ { - _, line, err = c.text.ReadCodeLine(151) - if err != nil { - return nil, err - } - a, _ := fields(line) - if len(a) < 3 { - // skip it, to keep protocol in sync - i-- - n-- - def = def[0:n] - continue - } - d := &Defn{Word: a[0], Dict: Dict{a[1], a[2]}} - d.Text, err = c.text.ReadDotBytes() - if err != nil { - return nil, err - } - def[i] = d - } - _, _, err = c.text.ReadCodeLine(250) - return def, err -} - -// Fields returns the fields in s. -// Fields are space separated unquoted words -// or quoted with single or double quote. -func fields(s string) ([]string, error) { - var v []string - i := 0 - for { - for i < len(s) && (s[i] == ' ' || s[i] == '\t') { - i++ - } - if i >= len(s) { - break - } - if s[i] == '"' || s[i] == '\'' { - q := s[i] - // quoted string - var j int - for j = i + 1; ; j++ { - if j >= len(s) { - return nil, textproto.ProtocolError("malformed quoted string") - } - if s[j] == '\\' { - j++ - continue - } - if s[j] == q { - j++ - break - } - } - v = append(v, unquote(s[i+1:j-1])) - i = j - } else { - // atom - var j int - for j = i; j < len(s); j++ { - if s[j] == ' ' || s[j] == '\t' || s[j] == '\\' || s[j] == '"' || s[j] == '\'' { - break - } - } - v = append(v, s[i:j]) - i = j - } - if i < len(s) { - c := s[i] - if c != ' ' && c != '\t' { - return nil, textproto.ProtocolError("quotes not on word boundaries") - } - } - } - return v, nil -} - -func unquote(s string) string { - if strings.Index(s, "\\") < 0 { - return s - } - b := []byte(s) - w := 0 - for r := 0; r < len(b); r++ { - c := b[r] - if c == '\\' { - r++ - c = b[r] - } - b[w] = c - w++ - } - return string(b[0:w]) -} diff --git a/vendor/golang.org/x/net/html/atom/atom.go b/vendor/golang.org/x/net/html/atom/atom.go deleted file mode 100644 index cd0a8ac1545..00000000000 --- a/vendor/golang.org/x/net/html/atom/atom.go +++ /dev/null @@ -1,78 +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 atom provides integer codes (also known as atoms) for a fixed set of -// frequently occurring HTML strings: tag names and attribute keys such as "p" -// and "id". -// -// Sharing an atom's name between all elements with the same tag can result in -// fewer string allocations when tokenizing and parsing HTML. Integer -// comparisons are also generally faster than string comparisons. -// -// The value of an atom's particular code is not guaranteed to stay the same -// between versions of this package. Neither is any ordering guaranteed: -// whether atom.H1 < atom.H2 may also change. The codes are not guaranteed to -// be dense. The only guarantees are that e.g. looking up "div" will yield -// atom.Div, calling atom.Div.String will return "div", and atom.Div != 0. -package atom // import "golang.org/x/net/html/atom" - -// Atom is an integer code for a string. The zero value maps to "". -type Atom uint32 - -// String returns the atom's name. -func (a Atom) String() string { - start := uint32(a >> 8) - n := uint32(a & 0xff) - if start+n > uint32(len(atomText)) { - return "" - } - return atomText[start : start+n] -} - -func (a Atom) string() string { - return atomText[a>>8 : a>>8+a&0xff] -} - -// fnv computes the FNV hash with an arbitrary starting value h. -func fnv(h uint32, s []byte) uint32 { - for i := range s { - h ^= uint32(s[i]) - h *= 16777619 - } - return h -} - -func match(s string, t []byte) bool { - for i, c := range t { - if s[i] != c { - return false - } - } - return true -} - -// Lookup returns the atom whose name is s. It returns zero if there is no -// such atom. The lookup is case sensitive. -func Lookup(s []byte) Atom { - if len(s) == 0 || len(s) > maxAtomLen { - return 0 - } - h := fnv(hash0, s) - if a := table[h&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) { - return a - } - if a := table[(h>>16)&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) { - return a - } - return 0 -} - -// String returns a string whose contents are equal to s. In that sense, it is -// equivalent to string(s) but may be more efficient. -func String(s []byte) string { - if a := Lookup(s); a != 0 { - return a.String() - } - return string(s) -} diff --git a/vendor/golang.org/x/net/html/atom/gen.go b/vendor/golang.org/x/net/html/atom/gen.go deleted file mode 100644 index 6bfa8660198..00000000000 --- a/vendor/golang.org/x/net/html/atom/gen.go +++ /dev/null @@ -1,648 +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 ignore - -package main - -// This program generates table.go and table_test.go. -// Invoke as -// -// go run gen.go |gofmt >table.go -// go run gen.go -test |gofmt >table_test.go - -import ( - "flag" - "fmt" - "math/rand" - "os" - "sort" - "strings" -) - -// identifier converts s to a Go exported identifier. -// It converts "div" to "Div" and "accept-charset" to "AcceptCharset". -func identifier(s string) string { - b := make([]byte, 0, len(s)) - cap := true - for _, c := range s { - if c == '-' { - cap = true - continue - } - if cap && 'a' <= c && c <= 'z' { - c -= 'a' - 'A' - } - cap = false - b = append(b, byte(c)) - } - return string(b) -} - -var test = flag.Bool("test", false, "generate table_test.go") - -func main() { - flag.Parse() - - var all []string - all = append(all, elements...) - all = append(all, attributes...) - all = append(all, eventHandlers...) - all = append(all, extra...) - sort.Strings(all) - - if *test { - fmt.Printf("// generated by go run gen.go -test; DO NOT EDIT\n\n") - fmt.Printf("package atom\n\n") - fmt.Printf("var testAtomList = []string{\n") - for _, s := range all { - fmt.Printf("\t%q,\n", s) - } - fmt.Printf("}\n") - return - } - - // uniq - lists have dups - // compute max len too - maxLen := 0 - w := 0 - for _, s := range all { - if w == 0 || all[w-1] != s { - if maxLen < len(s) { - maxLen = len(s) - } - all[w] = s - w++ - } - } - all = all[:w] - - // Find hash that minimizes table size. - var best *table - for i := 0; i < 1000000; i++ { - if best != nil && 1<<(best.k-1) < len(all) { - break - } - h := rand.Uint32() - for k := uint(0); k <= 16; k++ { - if best != nil && k >= best.k { - break - } - var t table - if t.init(h, k, all) { - best = &t - break - } - } - } - if best == nil { - fmt.Fprintf(os.Stderr, "failed to construct string table\n") - os.Exit(1) - } - - // Lay out strings, using overlaps when possible. - layout := append([]string{}, all...) - - // Remove strings that are substrings of other strings - for changed := true; changed; { - changed = false - for i, s := range layout { - if s == "" { - continue - } - for j, t := range layout { - if i != j && t != "" && strings.Contains(s, t) { - changed = true - layout[j] = "" - } - } - } - } - - // Join strings where one suffix matches another prefix. - for { - // Find best i, j, k such that layout[i][len-k:] == layout[j][:k], - // maximizing overlap length k. - besti := -1 - bestj := -1 - bestk := 0 - for i, s := range layout { - if s == "" { - continue - } - for j, t := range layout { - if i == j { - continue - } - for k := bestk + 1; k <= len(s) && k <= len(t); k++ { - if s[len(s)-k:] == t[:k] { - besti = i - bestj = j - bestk = k - } - } - } - } - if bestk > 0 { - layout[besti] += layout[bestj][bestk:] - layout[bestj] = "" - continue - } - break - } - - text := strings.Join(layout, "") - - atom := map[string]uint32{} - for _, s := range all { - off := strings.Index(text, s) - if off < 0 { - panic("lost string " + s) - } - atom[s] = uint32(off<<8 | len(s)) - } - - // Generate the Go code. - fmt.Printf("// generated by go run gen.go; DO NOT EDIT\n\n") - fmt.Printf("package atom\n\nconst (\n") - for _, s := range all { - fmt.Printf("\t%s Atom = %#x\n", identifier(s), atom[s]) - } - fmt.Printf(")\n\n") - - fmt.Printf("const hash0 = %#x\n\n", best.h0) - fmt.Printf("const maxAtomLen = %d\n\n", maxLen) - - fmt.Printf("var table = [1<<%d]Atom{\n", best.k) - for i, s := range best.tab { - if s == "" { - continue - } - fmt.Printf("\t%#x: %#x, // %s\n", i, atom[s], s) - } - fmt.Printf("}\n") - datasize := (1 << best.k) * 4 - - fmt.Printf("const atomText =\n") - textsize := len(text) - for len(text) > 60 { - fmt.Printf("\t%q +\n", text[:60]) - text = text[60:] - } - fmt.Printf("\t%q\n\n", text) - - fmt.Fprintf(os.Stderr, "%d atoms; %d string bytes + %d tables = %d total data\n", len(all), textsize, datasize, textsize+datasize) -} - -type byLen []string - -func (x byLen) Less(i, j int) bool { return len(x[i]) > len(x[j]) } -func (x byLen) Swap(i, j int) { x[i], x[j] = x[j], x[i] } -func (x byLen) Len() int { return len(x) } - -// fnv computes the FNV hash with an arbitrary starting value h. -func fnv(h uint32, s string) uint32 { - for i := 0; i < len(s); i++ { - h ^= uint32(s[i]) - h *= 16777619 - } - return h -} - -// A table represents an attempt at constructing the lookup table. -// The lookup table uses cuckoo hashing, meaning that each string -// can be found in one of two positions. -type table struct { - h0 uint32 - k uint - mask uint32 - tab []string -} - -// hash returns the two hashes for s. -func (t *table) hash(s string) (h1, h2 uint32) { - h := fnv(t.h0, s) - h1 = h & t.mask - h2 = (h >> 16) & t.mask - return -} - -// init initializes the table with the given parameters. -// h0 is the initial hash value, -// k is the number of bits of hash value to use, and -// x is the list of strings to store in the table. -// init returns false if the table cannot be constructed. -func (t *table) init(h0 uint32, k uint, x []string) bool { - t.h0 = h0 - t.k = k - t.tab = make([]string, 1< len(t.tab) { - return false - } - s := t.tab[i] - h1, h2 := t.hash(s) - j := h1 + h2 - i - if t.tab[j] != "" && !t.push(j, depth+1) { - return false - } - t.tab[j] = s - return true -} - -// The lists of element names and attribute keys were taken from -// https://html.spec.whatwg.org/multipage/indices.html#index -// as of the "HTML Living Standard - Last Updated 21 February 2015" version. - -var elements = []string{ - "a", - "abbr", - "address", - "area", - "article", - "aside", - "audio", - "b", - "base", - "bdi", - "bdo", - "blockquote", - "body", - "br", - "button", - "canvas", - "caption", - "cite", - "code", - "col", - "colgroup", - "command", - "data", - "datalist", - "dd", - "del", - "details", - "dfn", - "dialog", - "div", - "dl", - "dt", - "em", - "embed", - "fieldset", - "figcaption", - "figure", - "footer", - "form", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "head", - "header", - "hgroup", - "hr", - "html", - "i", - "iframe", - "img", - "input", - "ins", - "kbd", - "keygen", - "label", - "legend", - "li", - "link", - "map", - "mark", - "menu", - "menuitem", - "meta", - "meter", - "nav", - "noscript", - "object", - "ol", - "optgroup", - "option", - "output", - "p", - "param", - "pre", - "progress", - "q", - "rp", - "rt", - "ruby", - "s", - "samp", - "script", - "section", - "select", - "small", - "source", - "span", - "strong", - "style", - "sub", - "summary", - "sup", - "table", - "tbody", - "td", - "template", - "textarea", - "tfoot", - "th", - "thead", - "time", - "title", - "tr", - "track", - "u", - "ul", - "var", - "video", - "wbr", -} - -// https://html.spec.whatwg.org/multipage/indices.html#attributes-3 - -var attributes = []string{ - "abbr", - "accept", - "accept-charset", - "accesskey", - "action", - "alt", - "async", - "autocomplete", - "autofocus", - "autoplay", - "challenge", - "charset", - "checked", - "cite", - "class", - "cols", - "colspan", - "command", - "content", - "contenteditable", - "contextmenu", - "controls", - "coords", - "crossorigin", - "data", - "datetime", - "default", - "defer", - "dir", - "dirname", - "disabled", - "download", - "draggable", - "dropzone", - "enctype", - "for", - "form", - "formaction", - "formenctype", - "formmethod", - "formnovalidate", - "formtarget", - "headers", - "height", - "hidden", - "high", - "href", - "hreflang", - "http-equiv", - "icon", - "id", - "inputmode", - "ismap", - "itemid", - "itemprop", - "itemref", - "itemscope", - "itemtype", - "keytype", - "kind", - "label", - "lang", - "list", - "loop", - "low", - "manifest", - "max", - "maxlength", - "media", - "mediagroup", - "method", - "min", - "minlength", - "multiple", - "muted", - "name", - "novalidate", - "open", - "optimum", - "pattern", - "ping", - "placeholder", - "poster", - "preload", - "radiogroup", - "readonly", - "rel", - "required", - "reversed", - "rows", - "rowspan", - "sandbox", - "spellcheck", - "scope", - "scoped", - "seamless", - "selected", - "shape", - "size", - "sizes", - "sortable", - "sorted", - "span", - "src", - "srcdoc", - "srclang", - "start", - "step", - "style", - "tabindex", - "target", - "title", - "translate", - "type", - "typemustmatch", - "usemap", - "value", - "width", - "wrap", -} - -var eventHandlers = []string{ - "onabort", - "onautocomplete", - "onautocompleteerror", - "onafterprint", - "onbeforeprint", - "onbeforeunload", - "onblur", - "oncancel", - "oncanplay", - "oncanplaythrough", - "onchange", - "onclick", - "onclose", - "oncontextmenu", - "oncuechange", - "ondblclick", - "ondrag", - "ondragend", - "ondragenter", - "ondragleave", - "ondragover", - "ondragstart", - "ondrop", - "ondurationchange", - "onemptied", - "onended", - "onerror", - "onfocus", - "onhashchange", - "oninput", - "oninvalid", - "onkeydown", - "onkeypress", - "onkeyup", - "onlanguagechange", - "onload", - "onloadeddata", - "onloadedmetadata", - "onloadstart", - "onmessage", - "onmousedown", - "onmousemove", - "onmouseout", - "onmouseover", - "onmouseup", - "onmousewheel", - "onoffline", - "ononline", - "onpagehide", - "onpageshow", - "onpause", - "onplay", - "onplaying", - "onpopstate", - "onprogress", - "onratechange", - "onreset", - "onresize", - "onscroll", - "onseeked", - "onseeking", - "onselect", - "onshow", - "onsort", - "onstalled", - "onstorage", - "onsubmit", - "onsuspend", - "ontimeupdate", - "ontoggle", - "onunload", - "onvolumechange", - "onwaiting", -} - -// extra are ad-hoc values not covered by any of the lists above. -var extra = []string{ - "align", - "annotation", - "annotation-xml", - "applet", - "basefont", - "bgsound", - "big", - "blink", - "center", - "color", - "desc", - "face", - "font", - "foreignObject", // HTML is case-insensitive, but SVG-embedded-in-HTML is case-sensitive. - "foreignobject", - "frame", - "frameset", - "image", - "isindex", - "listing", - "malignmark", - "marquee", - "math", - "mglyph", - "mi", - "mn", - "mo", - "ms", - "mtext", - "nobr", - "noembed", - "noframes", - "plaintext", - "prompt", - "public", - "spacer", - "strike", - "svg", - "system", - "tt", - "xmp", -} diff --git a/vendor/golang.org/x/net/html/atom/table.go b/vendor/golang.org/x/net/html/atom/table.go deleted file mode 100644 index 2605ba3102f..00000000000 --- a/vendor/golang.org/x/net/html/atom/table.go +++ /dev/null @@ -1,713 +0,0 @@ -// generated by go run gen.go; DO NOT EDIT - -package atom - -const ( - A Atom = 0x1 - Abbr Atom = 0x4 - Accept Atom = 0x2106 - AcceptCharset Atom = 0x210e - Accesskey Atom = 0x3309 - Action Atom = 0x1f606 - Address Atom = 0x4f307 - Align Atom = 0x1105 - Alt Atom = 0x4503 - Annotation Atom = 0x1670a - AnnotationXml Atom = 0x1670e - Applet Atom = 0x2b306 - Area Atom = 0x2fa04 - Article Atom = 0x38807 - Aside Atom = 0x8305 - Async Atom = 0x7b05 - Audio Atom = 0xa605 - Autocomplete Atom = 0x1fc0c - Autofocus Atom = 0xb309 - Autoplay Atom = 0xce08 - B Atom = 0x101 - Base Atom = 0xd604 - Basefont Atom = 0xd608 - Bdi Atom = 0x1a03 - Bdo Atom = 0xe703 - Bgsound Atom = 0x11807 - Big Atom = 0x12403 - Blink Atom = 0x12705 - Blockquote Atom = 0x12c0a - Body Atom = 0x2f04 - Br Atom = 0x202 - Button Atom = 0x13606 - Canvas Atom = 0x7f06 - Caption Atom = 0x1bb07 - Center Atom = 0x5b506 - Challenge Atom = 0x21f09 - Charset Atom = 0x2807 - Checked Atom = 0x32807 - Cite Atom = 0x3c804 - Class Atom = 0x4de05 - Code Atom = 0x14904 - Col Atom = 0x15003 - Colgroup Atom = 0x15008 - Color Atom = 0x15d05 - Cols Atom = 0x16204 - Colspan Atom = 0x16207 - Command Atom = 0x17507 - Content Atom = 0x42307 - Contenteditable Atom = 0x4230f - Contextmenu Atom = 0x3310b - Controls Atom = 0x18808 - Coords Atom = 0x19406 - Crossorigin Atom = 0x19f0b - Data Atom = 0x44a04 - Datalist Atom = 0x44a08 - Datetime Atom = 0x23c08 - Dd Atom = 0x26702 - Default Atom = 0x8607 - Defer Atom = 0x14b05 - Del Atom = 0x3ef03 - Desc Atom = 0x4db04 - Details Atom = 0x4807 - Dfn Atom = 0x6103 - Dialog Atom = 0x1b06 - Dir Atom = 0x6903 - Dirname Atom = 0x6907 - Disabled Atom = 0x10c08 - Div Atom = 0x11303 - Dl Atom = 0x11e02 - Download Atom = 0x40008 - Draggable Atom = 0x17b09 - Dropzone Atom = 0x39108 - Dt Atom = 0x50902 - Em Atom = 0x6502 - Embed Atom = 0x6505 - Enctype Atom = 0x21107 - Face Atom = 0x5b304 - Fieldset Atom = 0x1b008 - Figcaption Atom = 0x1b80a - Figure Atom = 0x1cc06 - Font Atom = 0xda04 - Footer Atom = 0x8d06 - For Atom = 0x1d803 - ForeignObject Atom = 0x1d80d - Foreignobject Atom = 0x1e50d - Form Atom = 0x1f204 - Formaction Atom = 0x1f20a - Formenctype Atom = 0x20d0b - Formmethod Atom = 0x2280a - Formnovalidate Atom = 0x2320e - Formtarget Atom = 0x2470a - Frame Atom = 0x9a05 - Frameset Atom = 0x9a08 - H1 Atom = 0x26e02 - H2 Atom = 0x29402 - H3 Atom = 0x2a702 - H4 Atom = 0x2e902 - H5 Atom = 0x2f302 - H6 Atom = 0x50b02 - Head Atom = 0x2d504 - Header Atom = 0x2d506 - Headers Atom = 0x2d507 - Height Atom = 0x25106 - Hgroup Atom = 0x25906 - Hidden Atom = 0x26506 - High Atom = 0x26b04 - Hr Atom = 0x27002 - Href Atom = 0x27004 - Hreflang Atom = 0x27008 - Html Atom = 0x25504 - HttpEquiv Atom = 0x2780a - I Atom = 0x601 - Icon Atom = 0x42204 - Id Atom = 0x8502 - Iframe Atom = 0x29606 - Image Atom = 0x29c05 - Img Atom = 0x2a103 - Input Atom = 0x3e805 - Inputmode Atom = 0x3e809 - Ins Atom = 0x1a803 - Isindex Atom = 0x2a907 - Ismap Atom = 0x2b005 - Itemid Atom = 0x33c06 - Itemprop Atom = 0x3c908 - Itemref Atom = 0x5ad07 - Itemscope Atom = 0x2b909 - Itemtype Atom = 0x2c308 - Kbd Atom = 0x1903 - Keygen Atom = 0x3906 - Keytype Atom = 0x53707 - Kind Atom = 0x10904 - Label Atom = 0xf005 - Lang Atom = 0x27404 - Legend Atom = 0x18206 - Li Atom = 0x1202 - Link Atom = 0x12804 - List Atom = 0x44e04 - Listing Atom = 0x44e07 - Loop Atom = 0xf404 - Low Atom = 0x11f03 - Malignmark Atom = 0x100a - Manifest Atom = 0x5f108 - Map Atom = 0x2b203 - Mark Atom = 0x1604 - Marquee Atom = 0x2cb07 - Math Atom = 0x2d204 - Max Atom = 0x2e103 - Maxlength Atom = 0x2e109 - Media Atom = 0x6e05 - Mediagroup Atom = 0x6e0a - Menu Atom = 0x33804 - Menuitem Atom = 0x33808 - Meta Atom = 0x45d04 - Meter Atom = 0x24205 - Method Atom = 0x22c06 - Mglyph Atom = 0x2a206 - Mi Atom = 0x2eb02 - Min Atom = 0x2eb03 - Minlength Atom = 0x2eb09 - Mn Atom = 0x23502 - Mo Atom = 0x3ed02 - Ms Atom = 0x2bc02 - Mtext Atom = 0x2f505 - Multiple Atom = 0x30308 - Muted Atom = 0x30b05 - Name Atom = 0x6c04 - Nav Atom = 0x3e03 - Nobr Atom = 0x5704 - Noembed Atom = 0x6307 - Noframes Atom = 0x9808 - Noscript Atom = 0x3d208 - Novalidate Atom = 0x2360a - Object Atom = 0x1ec06 - Ol Atom = 0xc902 - Onabort Atom = 0x13a07 - Onafterprint Atom = 0x1c00c - Onautocomplete Atom = 0x1fa0e - Onautocompleteerror Atom = 0x1fa13 - Onbeforeprint Atom = 0x6040d - Onbeforeunload Atom = 0x4e70e - Onblur Atom = 0xaa06 - Oncancel Atom = 0xe908 - Oncanplay Atom = 0x28509 - Oncanplaythrough Atom = 0x28510 - Onchange Atom = 0x3a708 - Onclick Atom = 0x31007 - Onclose Atom = 0x31707 - Oncontextmenu Atom = 0x32f0d - Oncuechange Atom = 0x3420b - Ondblclick Atom = 0x34d0a - Ondrag Atom = 0x35706 - Ondragend Atom = 0x35709 - Ondragenter Atom = 0x3600b - Ondragleave Atom = 0x36b0b - Ondragover Atom = 0x3760a - Ondragstart Atom = 0x3800b - Ondrop Atom = 0x38f06 - Ondurationchange Atom = 0x39f10 - Onemptied Atom = 0x39609 - Onended Atom = 0x3af07 - Onerror Atom = 0x3b607 - Onfocus Atom = 0x3bd07 - Onhashchange Atom = 0x3da0c - Oninput Atom = 0x3e607 - Oninvalid Atom = 0x3f209 - Onkeydown Atom = 0x3fb09 - Onkeypress Atom = 0x4080a - Onkeyup Atom = 0x41807 - Onlanguagechange Atom = 0x43210 - Onload Atom = 0x44206 - Onloadeddata Atom = 0x4420c - Onloadedmetadata Atom = 0x45510 - Onloadstart Atom = 0x46b0b - Onmessage Atom = 0x47609 - Onmousedown Atom = 0x47f0b - Onmousemove Atom = 0x48a0b - Onmouseout Atom = 0x4950a - Onmouseover Atom = 0x4a20b - Onmouseup Atom = 0x4ad09 - Onmousewheel Atom = 0x4b60c - Onoffline Atom = 0x4c209 - Ononline Atom = 0x4cb08 - Onpagehide Atom = 0x4d30a - Onpageshow Atom = 0x4fe0a - Onpause Atom = 0x50d07 - Onplay Atom = 0x51706 - Onplaying Atom = 0x51709 - Onpopstate Atom = 0x5200a - Onprogress Atom = 0x52a0a - Onratechange Atom = 0x53e0c - Onreset Atom = 0x54a07 - Onresize Atom = 0x55108 - Onscroll Atom = 0x55f08 - Onseeked Atom = 0x56708 - Onseeking Atom = 0x56f09 - Onselect Atom = 0x57808 - Onshow Atom = 0x58206 - Onsort Atom = 0x58b06 - Onstalled Atom = 0x59509 - Onstorage Atom = 0x59e09 - Onsubmit Atom = 0x5a708 - Onsuspend Atom = 0x5bb09 - Ontimeupdate Atom = 0xdb0c - Ontoggle Atom = 0x5c408 - Onunload Atom = 0x5cc08 - Onvolumechange Atom = 0x5d40e - Onwaiting Atom = 0x5e209 - Open Atom = 0x3cf04 - Optgroup Atom = 0xf608 - Optimum Atom = 0x5eb07 - Option Atom = 0x60006 - Output Atom = 0x49c06 - P Atom = 0xc01 - Param Atom = 0xc05 - Pattern Atom = 0x5107 - Ping Atom = 0x7704 - Placeholder Atom = 0xc30b - Plaintext Atom = 0xfd09 - Poster Atom = 0x15706 - Pre Atom = 0x25e03 - Preload Atom = 0x25e07 - Progress Atom = 0x52c08 - Prompt Atom = 0x5fa06 - Public Atom = 0x41e06 - Q Atom = 0x13101 - Radiogroup Atom = 0x30a - Readonly Atom = 0x2fb08 - Rel Atom = 0x25f03 - Required Atom = 0x1d008 - Reversed Atom = 0x5a08 - Rows Atom = 0x9204 - Rowspan Atom = 0x9207 - Rp Atom = 0x1c602 - Rt Atom = 0x13f02 - Ruby Atom = 0xaf04 - S Atom = 0x2c01 - Samp Atom = 0x4e04 - Sandbox Atom = 0xbb07 - Scope Atom = 0x2bd05 - Scoped Atom = 0x2bd06 - Script Atom = 0x3d406 - Seamless Atom = 0x31c08 - Section Atom = 0x4e207 - Select Atom = 0x57a06 - Selected Atom = 0x57a08 - Shape Atom = 0x4f905 - Size Atom = 0x55504 - Sizes Atom = 0x55505 - Small Atom = 0x18f05 - Sortable Atom = 0x58d08 - Sorted Atom = 0x19906 - Source Atom = 0x1aa06 - Spacer Atom = 0x2db06 - Span Atom = 0x9504 - Spellcheck Atom = 0x3230a - Src Atom = 0x3c303 - Srcdoc Atom = 0x3c306 - Srclang Atom = 0x41107 - Start Atom = 0x38605 - Step Atom = 0x5f704 - Strike Atom = 0x53306 - Strong Atom = 0x55906 - Style Atom = 0x61105 - Sub Atom = 0x5a903 - Summary Atom = 0x61607 - Sup Atom = 0x61d03 - Svg Atom = 0x62003 - System Atom = 0x62306 - Tabindex Atom = 0x46308 - Table Atom = 0x42d05 - Target Atom = 0x24b06 - Tbody Atom = 0x2e05 - Td Atom = 0x4702 - Template Atom = 0x62608 - Textarea Atom = 0x2f608 - Tfoot Atom = 0x8c05 - Th Atom = 0x22e02 - Thead Atom = 0x2d405 - Time Atom = 0xdd04 - Title Atom = 0xa105 - Tr Atom = 0x10502 - Track Atom = 0x10505 - Translate Atom = 0x14009 - Tt Atom = 0x5302 - Type Atom = 0x21404 - Typemustmatch Atom = 0x2140d - U Atom = 0xb01 - Ul Atom = 0x8a02 - Usemap Atom = 0x51106 - Value Atom = 0x4005 - Var Atom = 0x11503 - Video Atom = 0x28105 - Wbr Atom = 0x12103 - Width Atom = 0x50705 - Wrap Atom = 0x58704 - Xmp Atom = 0xc103 -) - -const hash0 = 0xc17da63e - -const maxAtomLen = 19 - -var table = [1 << 9]Atom{ - 0x1: 0x48a0b, // onmousemove - 0x2: 0x5e209, // onwaiting - 0x3: 0x1fa13, // onautocompleteerror - 0x4: 0x5fa06, // prompt - 0x7: 0x5eb07, // optimum - 0x8: 0x1604, // mark - 0xa: 0x5ad07, // itemref - 0xb: 0x4fe0a, // onpageshow - 0xc: 0x57a06, // select - 0xd: 0x17b09, // draggable - 0xe: 0x3e03, // nav - 0xf: 0x17507, // command - 0x11: 0xb01, // u - 0x14: 0x2d507, // headers - 0x15: 0x44a08, // datalist - 0x17: 0x4e04, // samp - 0x1a: 0x3fb09, // onkeydown - 0x1b: 0x55f08, // onscroll - 0x1c: 0x15003, // col - 0x20: 0x3c908, // itemprop - 0x21: 0x2780a, // http-equiv - 0x22: 0x61d03, // sup - 0x24: 0x1d008, // required - 0x2b: 0x25e07, // preload - 0x2c: 0x6040d, // onbeforeprint - 0x2d: 0x3600b, // ondragenter - 0x2e: 0x50902, // dt - 0x2f: 0x5a708, // onsubmit - 0x30: 0x27002, // hr - 0x31: 0x32f0d, // oncontextmenu - 0x33: 0x29c05, // image - 0x34: 0x50d07, // onpause - 0x35: 0x25906, // hgroup - 0x36: 0x7704, // ping - 0x37: 0x57808, // onselect - 0x3a: 0x11303, // div - 0x3b: 0x1fa0e, // onautocomplete - 0x40: 0x2eb02, // mi - 0x41: 0x31c08, // seamless - 0x42: 0x2807, // charset - 0x43: 0x8502, // id - 0x44: 0x5200a, // onpopstate - 0x45: 0x3ef03, // del - 0x46: 0x2cb07, // marquee - 0x47: 0x3309, // accesskey - 0x49: 0x8d06, // footer - 0x4a: 0x44e04, // list - 0x4b: 0x2b005, // ismap - 0x51: 0x33804, // menu - 0x52: 0x2f04, // body - 0x55: 0x9a08, // frameset - 0x56: 0x54a07, // onreset - 0x57: 0x12705, // blink - 0x58: 0xa105, // title - 0x59: 0x38807, // article - 0x5b: 0x22e02, // th - 0x5d: 0x13101, // q - 0x5e: 0x3cf04, // open - 0x5f: 0x2fa04, // area - 0x61: 0x44206, // onload - 0x62: 0xda04, // font - 0x63: 0xd604, // base - 0x64: 0x16207, // colspan - 0x65: 0x53707, // keytype - 0x66: 0x11e02, // dl - 0x68: 0x1b008, // fieldset - 0x6a: 0x2eb03, // min - 0x6b: 0x11503, // var - 0x6f: 0x2d506, // header - 0x70: 0x13f02, // rt - 0x71: 0x15008, // colgroup - 0x72: 0x23502, // mn - 0x74: 0x13a07, // onabort - 0x75: 0x3906, // keygen - 0x76: 0x4c209, // onoffline - 0x77: 0x21f09, // challenge - 0x78: 0x2b203, // map - 0x7a: 0x2e902, // h4 - 0x7b: 0x3b607, // onerror - 0x7c: 0x2e109, // maxlength - 0x7d: 0x2f505, // mtext - 0x7e: 0xbb07, // sandbox - 0x7f: 0x58b06, // onsort - 0x80: 0x100a, // malignmark - 0x81: 0x45d04, // meta - 0x82: 0x7b05, // async - 0x83: 0x2a702, // h3 - 0x84: 0x26702, // dd - 0x85: 0x27004, // href - 0x86: 0x6e0a, // mediagroup - 0x87: 0x19406, // coords - 0x88: 0x41107, // srclang - 0x89: 0x34d0a, // ondblclick - 0x8a: 0x4005, // value - 0x8c: 0xe908, // oncancel - 0x8e: 0x3230a, // spellcheck - 0x8f: 0x9a05, // frame - 0x91: 0x12403, // big - 0x94: 0x1f606, // action - 0x95: 0x6903, // dir - 0x97: 0x2fb08, // readonly - 0x99: 0x42d05, // table - 0x9a: 0x61607, // summary - 0x9b: 0x12103, // wbr - 0x9c: 0x30a, // radiogroup - 0x9d: 0x6c04, // name - 0x9f: 0x62306, // system - 0xa1: 0x15d05, // color - 0xa2: 0x7f06, // canvas - 0xa3: 0x25504, // html - 0xa5: 0x56f09, // onseeking - 0xac: 0x4f905, // shape - 0xad: 0x25f03, // rel - 0xae: 0x28510, // oncanplaythrough - 0xaf: 0x3760a, // ondragover - 0xb0: 0x62608, // template - 0xb1: 0x1d80d, // foreignObject - 0xb3: 0x9204, // rows - 0xb6: 0x44e07, // listing - 0xb7: 0x49c06, // output - 0xb9: 0x3310b, // contextmenu - 0xbb: 0x11f03, // low - 0xbc: 0x1c602, // rp - 0xbd: 0x5bb09, // onsuspend - 0xbe: 0x13606, // button - 0xbf: 0x4db04, // desc - 0xc1: 0x4e207, // section - 0xc2: 0x52a0a, // onprogress - 0xc3: 0x59e09, // onstorage - 0xc4: 0x2d204, // math - 0xc5: 0x4503, // alt - 0xc7: 0x8a02, // ul - 0xc8: 0x5107, // pattern - 0xc9: 0x4b60c, // onmousewheel - 0xca: 0x35709, // ondragend - 0xcb: 0xaf04, // ruby - 0xcc: 0xc01, // p - 0xcd: 0x31707, // onclose - 0xce: 0x24205, // meter - 0xcf: 0x11807, // bgsound - 0xd2: 0x25106, // height - 0xd4: 0x101, // b - 0xd5: 0x2c308, // itemtype - 0xd8: 0x1bb07, // caption - 0xd9: 0x10c08, // disabled - 0xdb: 0x33808, // menuitem - 0xdc: 0x62003, // svg - 0xdd: 0x18f05, // small - 0xde: 0x44a04, // data - 0xe0: 0x4cb08, // ononline - 0xe1: 0x2a206, // mglyph - 0xe3: 0x6505, // embed - 0xe4: 0x10502, // tr - 0xe5: 0x46b0b, // onloadstart - 0xe7: 0x3c306, // srcdoc - 0xeb: 0x5c408, // ontoggle - 0xed: 0xe703, // bdo - 0xee: 0x4702, // td - 0xef: 0x8305, // aside - 0xf0: 0x29402, // h2 - 0xf1: 0x52c08, // progress - 0xf2: 0x12c0a, // blockquote - 0xf4: 0xf005, // label - 0xf5: 0x601, // i - 0xf7: 0x9207, // rowspan - 0xfb: 0x51709, // onplaying - 0xfd: 0x2a103, // img - 0xfe: 0xf608, // optgroup - 0xff: 0x42307, // content - 0x101: 0x53e0c, // onratechange - 0x103: 0x3da0c, // onhashchange - 0x104: 0x4807, // details - 0x106: 0x40008, // download - 0x109: 0x14009, // translate - 0x10b: 0x4230f, // contenteditable - 0x10d: 0x36b0b, // ondragleave - 0x10e: 0x2106, // accept - 0x10f: 0x57a08, // selected - 0x112: 0x1f20a, // formaction - 0x113: 0x5b506, // center - 0x115: 0x45510, // onloadedmetadata - 0x116: 0x12804, // link - 0x117: 0xdd04, // time - 0x118: 0x19f0b, // crossorigin - 0x119: 0x3bd07, // onfocus - 0x11a: 0x58704, // wrap - 0x11b: 0x42204, // icon - 0x11d: 0x28105, // video - 0x11e: 0x4de05, // class - 0x121: 0x5d40e, // onvolumechange - 0x122: 0xaa06, // onblur - 0x123: 0x2b909, // itemscope - 0x124: 0x61105, // style - 0x127: 0x41e06, // public - 0x129: 0x2320e, // formnovalidate - 0x12a: 0x58206, // onshow - 0x12c: 0x51706, // onplay - 0x12d: 0x3c804, // cite - 0x12e: 0x2bc02, // ms - 0x12f: 0xdb0c, // ontimeupdate - 0x130: 0x10904, // kind - 0x131: 0x2470a, // formtarget - 0x135: 0x3af07, // onended - 0x136: 0x26506, // hidden - 0x137: 0x2c01, // s - 0x139: 0x2280a, // formmethod - 0x13a: 0x3e805, // input - 0x13c: 0x50b02, // h6 - 0x13d: 0xc902, // ol - 0x13e: 0x3420b, // oncuechange - 0x13f: 0x1e50d, // foreignobject - 0x143: 0x4e70e, // onbeforeunload - 0x144: 0x2bd05, // scope - 0x145: 0x39609, // onemptied - 0x146: 0x14b05, // defer - 0x147: 0xc103, // xmp - 0x148: 0x39f10, // ondurationchange - 0x149: 0x1903, // kbd - 0x14c: 0x47609, // onmessage - 0x14d: 0x60006, // option - 0x14e: 0x2eb09, // minlength - 0x14f: 0x32807, // checked - 0x150: 0xce08, // autoplay - 0x152: 0x202, // br - 0x153: 0x2360a, // novalidate - 0x156: 0x6307, // noembed - 0x159: 0x31007, // onclick - 0x15a: 0x47f0b, // onmousedown - 0x15b: 0x3a708, // onchange - 0x15e: 0x3f209, // oninvalid - 0x15f: 0x2bd06, // scoped - 0x160: 0x18808, // controls - 0x161: 0x30b05, // muted - 0x162: 0x58d08, // sortable - 0x163: 0x51106, // usemap - 0x164: 0x1b80a, // figcaption - 0x165: 0x35706, // ondrag - 0x166: 0x26b04, // high - 0x168: 0x3c303, // src - 0x169: 0x15706, // poster - 0x16b: 0x1670e, // annotation-xml - 0x16c: 0x5f704, // step - 0x16d: 0x4, // abbr - 0x16e: 0x1b06, // dialog - 0x170: 0x1202, // li - 0x172: 0x3ed02, // mo - 0x175: 0x1d803, // for - 0x176: 0x1a803, // ins - 0x178: 0x55504, // size - 0x179: 0x43210, // onlanguagechange - 0x17a: 0x8607, // default - 0x17b: 0x1a03, // bdi - 0x17c: 0x4d30a, // onpagehide - 0x17d: 0x6907, // dirname - 0x17e: 0x21404, // type - 0x17f: 0x1f204, // form - 0x181: 0x28509, // oncanplay - 0x182: 0x6103, // dfn - 0x183: 0x46308, // tabindex - 0x186: 0x6502, // em - 0x187: 0x27404, // lang - 0x189: 0x39108, // dropzone - 0x18a: 0x4080a, // onkeypress - 0x18b: 0x23c08, // datetime - 0x18c: 0x16204, // cols - 0x18d: 0x1, // a - 0x18e: 0x4420c, // onloadeddata - 0x190: 0xa605, // audio - 0x192: 0x2e05, // tbody - 0x193: 0x22c06, // method - 0x195: 0xf404, // loop - 0x196: 0x29606, // iframe - 0x198: 0x2d504, // head - 0x19e: 0x5f108, // manifest - 0x19f: 0xb309, // autofocus - 0x1a0: 0x14904, // code - 0x1a1: 0x55906, // strong - 0x1a2: 0x30308, // multiple - 0x1a3: 0xc05, // param - 0x1a6: 0x21107, // enctype - 0x1a7: 0x5b304, // face - 0x1a8: 0xfd09, // plaintext - 0x1a9: 0x26e02, // h1 - 0x1aa: 0x59509, // onstalled - 0x1ad: 0x3d406, // script - 0x1ae: 0x2db06, // spacer - 0x1af: 0x55108, // onresize - 0x1b0: 0x4a20b, // onmouseover - 0x1b1: 0x5cc08, // onunload - 0x1b2: 0x56708, // onseeked - 0x1b4: 0x2140d, // typemustmatch - 0x1b5: 0x1cc06, // figure - 0x1b6: 0x4950a, // onmouseout - 0x1b7: 0x25e03, // pre - 0x1b8: 0x50705, // width - 0x1b9: 0x19906, // sorted - 0x1bb: 0x5704, // nobr - 0x1be: 0x5302, // tt - 0x1bf: 0x1105, // align - 0x1c0: 0x3e607, // oninput - 0x1c3: 0x41807, // onkeyup - 0x1c6: 0x1c00c, // onafterprint - 0x1c7: 0x210e, // accept-charset - 0x1c8: 0x33c06, // itemid - 0x1c9: 0x3e809, // inputmode - 0x1cb: 0x53306, // strike - 0x1cc: 0x5a903, // sub - 0x1cd: 0x10505, // track - 0x1ce: 0x38605, // start - 0x1d0: 0xd608, // basefont - 0x1d6: 0x1aa06, // source - 0x1d7: 0x18206, // legend - 0x1d8: 0x2d405, // thead - 0x1da: 0x8c05, // tfoot - 0x1dd: 0x1ec06, // object - 0x1de: 0x6e05, // media - 0x1df: 0x1670a, // annotation - 0x1e0: 0x20d0b, // formenctype - 0x1e2: 0x3d208, // noscript - 0x1e4: 0x55505, // sizes - 0x1e5: 0x1fc0c, // autocomplete - 0x1e6: 0x9504, // span - 0x1e7: 0x9808, // noframes - 0x1e8: 0x24b06, // target - 0x1e9: 0x38f06, // ondrop - 0x1ea: 0x2b306, // applet - 0x1ec: 0x5a08, // reversed - 0x1f0: 0x2a907, // isindex - 0x1f3: 0x27008, // hreflang - 0x1f5: 0x2f302, // h5 - 0x1f6: 0x4f307, // address - 0x1fa: 0x2e103, // max - 0x1fb: 0xc30b, // placeholder - 0x1fc: 0x2f608, // textarea - 0x1fe: 0x4ad09, // onmouseup - 0x1ff: 0x3800b, // ondragstart -} - -const atomText = "abbradiogrouparamalignmarkbdialogaccept-charsetbodyaccesskey" + - "genavaluealtdetailsampatternobreversedfnoembedirnamediagroup" + - "ingasyncanvasidefaultfooterowspanoframesetitleaudionblurubya" + - "utofocusandboxmplaceholderautoplaybasefontimeupdatebdoncance" + - "labelooptgrouplaintextrackindisabledivarbgsoundlowbrbigblink" + - "blockquotebuttonabortranslatecodefercolgroupostercolorcolspa" + - "nnotation-xmlcommandraggablegendcontrolsmallcoordsortedcross" + - "originsourcefieldsetfigcaptionafterprintfigurequiredforeignO" + - "bjectforeignobjectformactionautocompleteerrorformenctypemust" + - "matchallengeformmethodformnovalidatetimeterformtargetheightm" + - "lhgroupreloadhiddenhigh1hreflanghttp-equivideoncanplaythroug" + - "h2iframeimageimglyph3isindexismappletitemscopeditemtypemarqu" + - "eematheaderspacermaxlength4minlength5mtextareadonlymultiplem" + - "utedonclickoncloseamlesspellcheckedoncontextmenuitemidoncuec" + - "hangeondblclickondragendondragenterondragleaveondragoverondr" + - "agstarticleondropzonemptiedondurationchangeonendedonerroronf" + - "ocusrcdocitempropenoscriptonhashchangeoninputmodeloninvalido" + - "nkeydownloadonkeypressrclangonkeyupublicontenteditableonlang" + - "uagechangeonloadeddatalistingonloadedmetadatabindexonloadsta" + - "rtonmessageonmousedownonmousemoveonmouseoutputonmouseoveronm" + - "ouseuponmousewheelonofflineononlineonpagehidesclassectionbef" + - "oreunloaddresshapeonpageshowidth6onpausemaponplayingonpopsta" + - "teonprogresstrikeytypeonratechangeonresetonresizestrongonscr" + - "ollonseekedonseekingonselectedonshowraponsortableonstalledon" + - "storageonsubmitemrefacenteronsuspendontoggleonunloadonvolume" + - "changeonwaitingoptimumanifestepromptoptionbeforeprintstylesu" + - "mmarysupsvgsystemplate" diff --git a/vendor/golang.org/x/net/html/charset/charset.go b/vendor/golang.org/x/net/html/charset/charset.go deleted file mode 100644 index 13bed1599f7..00000000000 --- a/vendor/golang.org/x/net/html/charset/charset.go +++ /dev/null @@ -1,257 +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 charset provides common text encodings for HTML documents. -// -// The mapping from encoding labels to encodings is defined at -// https://encoding.spec.whatwg.org/. -package charset // import "golang.org/x/net/html/charset" - -import ( - "bytes" - "fmt" - "io" - "mime" - "strings" - "unicode/utf8" - - "golang.org/x/net/html" - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/htmlindex" - "golang.org/x/text/transform" -) - -// Lookup returns the encoding with the specified label, and its canonical -// name. It returns nil and the empty string if label is not one of the -// standard encodings for HTML. Matching is case-insensitive and ignores -// leading and trailing whitespace. Encoders will use HTML escape sequences for -// runes that are not supported by the character set. -func Lookup(label string) (e encoding.Encoding, name string) { - e, err := htmlindex.Get(label) - if err != nil { - return nil, "" - } - name, _ = htmlindex.Name(e) - return &htmlEncoding{e}, name -} - -type htmlEncoding struct{ encoding.Encoding } - -func (h *htmlEncoding) NewEncoder() *encoding.Encoder { - // HTML requires a non-terminating legacy encoder. We use HTML escapes to - // substitute unsupported code points. - return encoding.HTMLEscapeUnsupported(h.Encoding.NewEncoder()) -} - -// DetermineEncoding determines the encoding of an HTML document by examining -// up to the first 1024 bytes of content and the declared Content-Type. -// -// See http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#determining-the-character-encoding -func DetermineEncoding(content []byte, contentType string) (e encoding.Encoding, name string, certain bool) { - if len(content) > 1024 { - content = content[:1024] - } - - for _, b := range boms { - if bytes.HasPrefix(content, b.bom) { - e, name = Lookup(b.enc) - return e, name, true - } - } - - if _, params, err := mime.ParseMediaType(contentType); err == nil { - if cs, ok := params["charset"]; ok { - if e, name = Lookup(cs); e != nil { - return e, name, true - } - } - } - - if len(content) > 0 { - e, name = prescan(content) - if e != nil { - return e, name, false - } - } - - // Try to detect UTF-8. - // First eliminate any partial rune at the end. - for i := len(content) - 1; i >= 0 && i > len(content)-4; i-- { - b := content[i] - if b < 0x80 { - break - } - if utf8.RuneStart(b) { - content = content[:i] - break - } - } - hasHighBit := false - for _, c := range content { - if c >= 0x80 { - hasHighBit = true - break - } - } - if hasHighBit && utf8.Valid(content) { - return encoding.Nop, "utf-8", false - } - - // TODO: change default depending on user's locale? - return charmap.Windows1252, "windows-1252", false -} - -// NewReader returns an io.Reader that converts the content of r to UTF-8. -// It calls DetermineEncoding to find out what r's encoding is. -func NewReader(r io.Reader, contentType string) (io.Reader, error) { - preview := make([]byte, 1024) - n, err := io.ReadFull(r, preview) - switch { - case err == io.ErrUnexpectedEOF: - preview = preview[:n] - r = bytes.NewReader(preview) - case err != nil: - return nil, err - default: - r = io.MultiReader(bytes.NewReader(preview), r) - } - - if e, _, _ := DetermineEncoding(preview, contentType); e != encoding.Nop { - r = transform.NewReader(r, e.NewDecoder()) - } - return r, nil -} - -// NewReaderLabel returns a reader that converts from the specified charset to -// UTF-8. It uses Lookup to find the encoding that corresponds to label, and -// returns an error if Lookup returns nil. It is suitable for use as -// encoding/xml.Decoder's CharsetReader function. -func NewReaderLabel(label string, input io.Reader) (io.Reader, error) { - e, _ := Lookup(label) - if e == nil { - return nil, fmt.Errorf("unsupported charset: %q", label) - } - return transform.NewReader(input, e.NewDecoder()), nil -} - -func prescan(content []byte) (e encoding.Encoding, name string) { - z := html.NewTokenizer(bytes.NewReader(content)) - for { - switch z.Next() { - case html.ErrorToken: - return nil, "" - - case html.StartTagToken, html.SelfClosingTagToken: - tagName, hasAttr := z.TagName() - if !bytes.Equal(tagName, []byte("meta")) { - continue - } - attrList := make(map[string]bool) - gotPragma := false - - const ( - dontKnow = iota - doNeedPragma - doNotNeedPragma - ) - needPragma := dontKnow - - name = "" - e = nil - for hasAttr { - var key, val []byte - key, val, hasAttr = z.TagAttr() - ks := string(key) - if attrList[ks] { - continue - } - attrList[ks] = true - for i, c := range val { - if 'A' <= c && c <= 'Z' { - val[i] = c + 0x20 - } - } - - switch ks { - case "http-equiv": - if bytes.Equal(val, []byte("content-type")) { - gotPragma = true - } - - case "content": - if e == nil { - name = fromMetaElement(string(val)) - if name != "" { - e, name = Lookup(name) - if e != nil { - needPragma = doNeedPragma - } - } - } - - case "charset": - e, name = Lookup(string(val)) - needPragma = doNotNeedPragma - } - } - - if needPragma == dontKnow || needPragma == doNeedPragma && !gotPragma { - continue - } - - if strings.HasPrefix(name, "utf-16") { - name = "utf-8" - e = encoding.Nop - } - - if e != nil { - return e, name - } - } - } -} - -func fromMetaElement(s string) string { - for s != "" { - csLoc := strings.Index(s, "charset") - if csLoc == -1 { - return "" - } - s = s[csLoc+len("charset"):] - s = strings.TrimLeft(s, " \t\n\f\r") - if !strings.HasPrefix(s, "=") { - continue - } - s = s[1:] - s = strings.TrimLeft(s, " \t\n\f\r") - if s == "" { - return "" - } - if q := s[0]; q == '"' || q == '\'' { - s = s[1:] - closeQuote := strings.IndexRune(s, rune(q)) - if closeQuote == -1 { - return "" - } - return s[:closeQuote] - } - - end := strings.IndexAny(s, "; \t\n\f\r") - if end == -1 { - end = len(s) - } - return s[:end] - } - return "" -} - -var boms = []struct { - bom []byte - enc string -}{ - {[]byte{0xfe, 0xff}, "utf-16be"}, - {[]byte{0xff, 0xfe}, "utf-16le"}, - {[]byte{0xef, 0xbb, 0xbf}, "utf-8"}, -} diff --git a/vendor/golang.org/x/net/html/charset/testdata/HTTP-charset.html b/vendor/golang.org/x/net/html/charset/testdata/HTTP-charset.html deleted file mode 100644 index 9915fa0ee4f..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/HTTP-charset.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - HTTP charset - - - - - - - - - - - -

HTTP charset

- - -
- - -
 
- - - - - -
-

The character encoding of a page can be set using the HTTP header charset declaration.

-

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

The only character encoding declaration for this HTML file is in the HTTP header, which sets the encoding to ISO 8859-15.

-
-
-
HTML5
-

the-input-byte-stream-001
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html b/vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html deleted file mode 100644 index 26e5d8b4ebf..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - HTTP vs UTF-8 BOM - - - - - - - - - - - -

HTTP vs UTF-8 BOM

- - -
- - -
 
- - - - - -
-

A character encoding set in the HTTP header has lower precedence than the UTF-8 signature.

-

The HTTP header attempts to set the character encoding to ISO 8859-15. The page starts with a UTF-8 signature.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ýäè. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.

If the test is unsuccessful, the characters  should appear at the top of the page. These represent the bytes that make up the UTF-8 signature when encountered in the ISO 8859-15 encoding.

-
-
-
HTML5
-

the-input-byte-stream-034
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-charset.html b/vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-charset.html deleted file mode 100644 index 2f07e95158e..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-charset.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - HTTP vs meta charset - - - - - - - - - - - -

HTTP vs meta charset

- - -
- - -
 
- - - - - -
-

The HTTP header has a higher precedence than an encoding declaration in a meta charset attribute.

-

The HTTP header attempts to set the character encoding to ISO 8859-15. The page contains an encoding declaration in a meta charset attribute that attempts to set the character encoding to ISO 8859-1.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-018
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-content.html b/vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-content.html deleted file mode 100644 index 6853cddeccc..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-content.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - HTTP vs meta content - - - - - - - - - - - -

HTTP vs meta content

- - -
- - -
 
- - - - - -
-

The HTTP header has a higher precedence than an encoding declaration in a meta content attribute.

-

The HTTP header attempts to set the character encoding to ISO 8859-15. The page contains an encoding declaration in a meta content attribute that attempts to set the character encoding to ISO 8859-1.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-016
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/golang.org/x/net/html/charset/testdata/No-encoding-declaration.html b/vendor/golang.org/x/net/html/charset/testdata/No-encoding-declaration.html deleted file mode 100644 index 612e26c6c52..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/No-encoding-declaration.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - No encoding declaration - - - - - - - - - - - -

No encoding declaration

- - -
- - -
 
- - - - - -
-

A page with no encoding information in HTTP, BOM, XML declaration or meta element will be treated as UTF-8.

-

The test on this page contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ýäè. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-015
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/golang.org/x/net/html/charset/testdata/README b/vendor/golang.org/x/net/html/charset/testdata/README deleted file mode 100644 index 38ef0f9f121..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/README +++ /dev/null @@ -1,9 +0,0 @@ -These test cases come from -http://www.w3.org/International/tests/repository/html5/the-input-byte-stream/results-basics - -Distributed under both the W3C Test Suite License -(http://www.w3.org/Consortium/Legal/2008/04-testsuite-license) -and the W3C 3-clause BSD License -(http://www.w3.org/Consortium/Legal/2008/03-bsd-license). -To contribute to a W3C Test Suite, see the policies and contribution -forms (http://www.w3.org/2004/10/27-testcases). diff --git a/vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html b/vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html deleted file mode 100644 index 3abf7a9343c20518e57dfea58b374fb0f4fb58a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2670 zcmcJR?QRoS5Qc}JAoU&=BQ-(7b^;2j8i*i3RV1JlO@;VXIsPurV!WHiDdLW}i`*CO z^UnC>tih=KsVr;H&Y7?C&O3AV(?534uG?e##U9y_y|!QNi4``n+D>d{2lky^LnFNx z?9HrarH$>rwQR_$g)Hk0*&STI*EYq|47~&U9sfUB+ji})9eR{QqCUra7oDsZ5obtB zdxP%<)-$4Q;rSHJiM>U(#ZI=;?n^BC?Dp6lu=~_1-lnX3u03&2BlmQIY>L+!Uq7XoytKw^Q#oZSM?3*J?)&ojG&yzQRkC!Ml5JE?ax;lp_NYEcdUht`ZswOviB~L5hmJ|pXI71nn20w;>vG! zQGB$EE9&wC``&J#_Ym~PgRu-Bd>1!pOp0||k`kr=VJ zfH6I6rmRaeHA7U-A^OTsT+|d2a^i(>DePzZ{)ibXoCBvJnuYrd-3kkN$uy{qQK;=*Y;S87ro12aTgu^i*%f8zC3>a}9DIe4cfxOzsCw&(cqvP9{ud{N6f` z#TNDY(B6@Gpr|uN+%&x^XZjBHdc@2vsM(Tyc2=vshHQ5w+obmp>tuWT(t4BTUGAQw zxeI$UGSLUBg=WFbF;4f@4=^P2AgY@CFn8A`bcC=_&~)fiDe)#cUARRBzJ^k|%X)69 z+{Cb`wq}Rsg%B62CC_tK!AV(W{(MV?#mndR46CU#BUN<{8e?*oT+!pE5wF#O#TR#a z$9qRT)tpbw8zAI~QQJg2C3|6$I%(T(;`zOMy6SO+&;pG=c#2P|P-WZn$$DpWJlC3U z3*nvmz zwP{u~r$L?-m3uqp9I1+#3yE|3M$(s-BEtih=LQ>`qYoiktOop(wi%!;yh%+Rm z{e|xntY<{q!1F1Z6MKtngPm-p-4|H&+3m4AVE3_AyiHm6Tzlf4M(*ht*%YrezJ6kr zHGj45pc?64*$Cm%-zseWMA`x;)v*~jA=i}szqts9xmQkS`M11|(H7bTXAycsXU53+ zJ?120SRZeyiFjW7enPN`bxk$IaWV3o48oJF7D&2ysoY;6(s6%6vVfaYd&mC=erK!) zNGI^7upQgN)53OHe_VE<@J+G8*Y|p*)zB2Thdi}+YR<5QWHm!|a_*AoZXuv7)$xe| zm3Q$D7{|#}{m4X&UY!6(ZhyYi2(5JLzGE$H)W6BQklnjPMwn<Yvv7Z*TVWwD*=E3QpH37* z#lqXJA0A~J9T_<^W5smspmDg2p6ac5Bjn+~LAoow%1TCdZ*$K8`O zw_$HaCi+0N&@7la#_7KL5r$+QL{)Pi=I&aDjt~|Knht#`CEi4*3%97i_fSfASlwUz0=3V0GCxY}z81UC-nP=CGt2OqYV$ zoRCo+qM9YX*3FFORLC=E3B~S@+KROyk4r5 yX7?DaslDfIebqXgC!KKp4IYy+W~X?ddE6o=`A+x#x0AK&6MF#W&AXxbRrv+SX}PNa diff --git a/vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html b/vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html deleted file mode 100644 index 83de43338ec..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - UTF-8 BOM vs meta charset - - - - - - - - - - - -

UTF-8 BOM vs meta charset

- - -
- - -
 
- - - - - -
-

A page with a UTF-8 BOM will be recognized as UTF-8 even if the meta charset attribute declares a different encoding.

-

The page contains an encoding declaration in a meta charset attribute that attempts to set the character encoding to ISO 8859-15, but the file starts with a UTF-8 signature.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ýäè. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-038
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html b/vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html deleted file mode 100644 index 501aac2d6a5..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - UTF-8 BOM vs meta content - - - - - - - - - - - -

UTF-8 BOM vs meta content

- - -
- - -
 
- - - - - -
-

A page with a UTF-8 BOM will be recognized as UTF-8 even if the meta content attribute declares a different encoding.

-

The page contains an encoding declaration in a meta content attribute that attempts to set the character encoding to ISO 8859-15, but the file starts with a UTF-8 signature.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ýäè. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-037
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/golang.org/x/net/html/charset/testdata/meta-charset-attribute.html b/vendor/golang.org/x/net/html/charset/testdata/meta-charset-attribute.html deleted file mode 100644 index 2d7d25aba14..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/meta-charset-attribute.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - meta charset attribute - - - - - - - - - - - -

meta charset attribute

- - -
- - -
 
- - - - - -
-

The character encoding of the page can be set by a meta element with charset attribute.

-

The only character encoding declaration for this HTML file is in the charset attribute of the meta element, which declares the encoding to be ISO 8859-15.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-009
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/golang.org/x/net/html/charset/testdata/meta-content-attribute.html b/vendor/golang.org/x/net/html/charset/testdata/meta-content-attribute.html deleted file mode 100644 index 1c3f228e7c9..00000000000 --- a/vendor/golang.org/x/net/html/charset/testdata/meta-content-attribute.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - meta content attribute - - - - - - - - - - - -

meta content attribute

- - -
- - -
 
- - - - - -
-

The character encoding of the page can be set by a meta element with http-equiv and content attributes.

-

The only character encoding declaration for this HTML file is in the content attribute of the meta element, which declares the encoding to be ISO 8859-15.

The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector .test div.ÜÀÚ. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.

-
-
-
HTML5
-

the-input-byte-stream-007
Result summary & related tests
Detailed results for this test
Link to spec

-
Assumptions:
  • The default encoding for the browser you are testing is not set to ISO 8859-15.
  • -
  • The test is read from a server that supports HTTP.
-
- - - - - - diff --git a/vendor/golang.org/x/net/html/const.go b/vendor/golang.org/x/net/html/const.go deleted file mode 100644 index 52f651ff6db..00000000000 --- a/vendor/golang.org/x/net/html/const.go +++ /dev/null @@ -1,102 +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 html - -// Section 12.2.3.2 of the HTML5 specification says "The following elements -// have varying levels of special parsing rules". -// https://html.spec.whatwg.org/multipage/syntax.html#the-stack-of-open-elements -var isSpecialElementMap = map[string]bool{ - "address": true, - "applet": true, - "area": true, - "article": true, - "aside": true, - "base": true, - "basefont": true, - "bgsound": true, - "blockquote": true, - "body": true, - "br": true, - "button": true, - "caption": true, - "center": true, - "col": true, - "colgroup": true, - "dd": true, - "details": true, - "dir": true, - "div": true, - "dl": true, - "dt": true, - "embed": true, - "fieldset": true, - "figcaption": true, - "figure": true, - "footer": true, - "form": true, - "frame": true, - "frameset": true, - "h1": true, - "h2": true, - "h3": true, - "h4": true, - "h5": true, - "h6": true, - "head": true, - "header": true, - "hgroup": true, - "hr": true, - "html": true, - "iframe": true, - "img": true, - "input": true, - "isindex": true, - "li": true, - "link": true, - "listing": true, - "marquee": true, - "menu": true, - "meta": true, - "nav": true, - "noembed": true, - "noframes": true, - "noscript": true, - "object": true, - "ol": true, - "p": true, - "param": true, - "plaintext": true, - "pre": true, - "script": true, - "section": true, - "select": true, - "source": true, - "style": true, - "summary": true, - "table": true, - "tbody": true, - "td": true, - "template": true, - "textarea": true, - "tfoot": true, - "th": true, - "thead": true, - "title": true, - "tr": true, - "track": true, - "ul": true, - "wbr": true, - "xmp": true, -} - -func isSpecialElement(element *Node) bool { - switch element.Namespace { - case "", "html": - return isSpecialElementMap[element.Data] - case "svg": - return element.Data == "foreignObject" - } - return false -} diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go deleted file mode 100644 index 94f496874ab..00000000000 --- a/vendor/golang.org/x/net/html/doc.go +++ /dev/null @@ -1,106 +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. - -/* -Package html implements an HTML5-compliant tokenizer and parser. - -Tokenization is done by creating a Tokenizer for an io.Reader r. It is the -caller's responsibility to ensure that r provides UTF-8 encoded HTML. - - z := html.NewTokenizer(r) - -Given a Tokenizer z, the HTML is tokenized by repeatedly calling z.Next(), -which parses the next token and returns its type, or an error: - - for { - tt := z.Next() - if tt == html.ErrorToken { - // ... - return ... - } - // Process the current token. - } - -There are two APIs for retrieving the current token. The high-level API is to -call Token; the low-level API is to call Text or TagName / TagAttr. Both APIs -allow optionally calling Raw after Next but before Token, Text, TagName, or -TagAttr. In EBNF notation, the valid call sequence per token is: - - Next {Raw} [ Token | Text | TagName {TagAttr} ] - -Token returns an independent data structure that completely describes a token. -Entities (such as "<") are unescaped, tag names and attribute keys are -lower-cased, and attributes are collected into a []Attribute. For example: - - for { - if z.Next() == html.ErrorToken { - // Returning io.EOF indicates success. - return z.Err() - } - emitToken(z.Token()) - } - -The low-level API performs fewer allocations and copies, but the contents of -the []byte values returned by Text, TagName and TagAttr may change on the next -call to Next. For example, to extract an HTML page's anchor text: - - depth := 0 - for { - tt := z.Next() - switch tt { - case ErrorToken: - return z.Err() - case TextToken: - if depth > 0 { - // emitBytes should copy the []byte it receives, - // if it doesn't process it immediately. - emitBytes(z.Text()) - } - case StartTagToken, EndTagToken: - tn, _ := z.TagName() - if len(tn) == 1 && tn[0] == 'a' { - if tt == StartTagToken { - depth++ - } else { - depth-- - } - } - } - } - -Parsing is done by calling Parse with an io.Reader, which returns the root of -the parse tree (the document element) as a *Node. It is the caller's -responsibility to ensure that the Reader provides UTF-8 encoded HTML. For -example, to process each anchor node in depth-first order: - - doc, err := html.Parse(r) - if err != nil { - // ... - } - var f func(*html.Node) - f = func(n *html.Node) { - if n.Type == html.ElementNode && n.Data == "a" { - // Do something with n... - } - for c := n.FirstChild; c != nil; c = c.NextSibling { - f(c) - } - } - f(doc) - -The relevant specifications include: -https://html.spec.whatwg.org/multipage/syntax.html and -https://html.spec.whatwg.org/multipage/syntax.html#tokenization -*/ -package html // import "golang.org/x/net/html" - -// The tokenization algorithm implemented by this package is not a line-by-line -// transliteration of the relatively verbose state-machine in the WHATWG -// specification. A more direct approach is used instead, where the program -// counter implies the state, such as whether it is tokenizing a tag or a text -// node. Specification compliance is verified by checking expected and actual -// outputs over a test suite rather than aiming for algorithmic fidelity. - -// TODO(nigeltao): Does a DOM API belong in this package or a separate one? -// TODO(nigeltao): How does parsing interact with a JavaScript engine? diff --git a/vendor/golang.org/x/net/html/doctype.go b/vendor/golang.org/x/net/html/doctype.go deleted file mode 100644 index c484e5a94fb..00000000000 --- a/vendor/golang.org/x/net/html/doctype.go +++ /dev/null @@ -1,156 +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 html - -import ( - "strings" -) - -// parseDoctype parses the data from a DoctypeToken into a name, -// public identifier, and system identifier. It returns a Node whose Type -// is DoctypeNode, whose Data is the name, and which has attributes -// named "system" and "public" for the two identifiers if they were present. -// quirks is whether the document should be parsed in "quirks mode". -func parseDoctype(s string) (n *Node, quirks bool) { - n = &Node{Type: DoctypeNode} - - // Find the name. - space := strings.IndexAny(s, whitespace) - if space == -1 { - space = len(s) - } - n.Data = s[:space] - // The comparison to "html" is case-sensitive. - if n.Data != "html" { - quirks = true - } - n.Data = strings.ToLower(n.Data) - s = strings.TrimLeft(s[space:], whitespace) - - if len(s) < 6 { - // It can't start with "PUBLIC" or "SYSTEM". - // Ignore the rest of the string. - return n, quirks || s != "" - } - - key := strings.ToLower(s[:6]) - s = s[6:] - for key == "public" || key == "system" { - s = strings.TrimLeft(s, whitespace) - if s == "" { - break - } - quote := s[0] - if quote != '"' && quote != '\'' { - break - } - s = s[1:] - q := strings.IndexRune(s, rune(quote)) - var id string - if q == -1 { - id = s - s = "" - } else { - id = s[:q] - s = s[q+1:] - } - n.Attr = append(n.Attr, Attribute{Key: key, Val: id}) - if key == "public" { - key = "system" - } else { - key = "" - } - } - - if key != "" || s != "" { - quirks = true - } else if len(n.Attr) > 0 { - if n.Attr[0].Key == "public" { - public := strings.ToLower(n.Attr[0].Val) - switch public { - case "-//w3o//dtd w3 html strict 3.0//en//", "-/w3d/dtd html 4.0 transitional/en", "html": - quirks = true - default: - for _, q := range quirkyIDs { - if strings.HasPrefix(public, q) { - quirks = true - break - } - } - } - // The following two public IDs only cause quirks mode if there is no system ID. - if len(n.Attr) == 1 && (strings.HasPrefix(public, "-//w3c//dtd html 4.01 frameset//") || - strings.HasPrefix(public, "-//w3c//dtd html 4.01 transitional//")) { - quirks = true - } - } - if lastAttr := n.Attr[len(n.Attr)-1]; lastAttr.Key == "system" && - strings.ToLower(lastAttr.Val) == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" { - quirks = true - } - } - - return n, quirks -} - -// quirkyIDs is a list of public doctype identifiers that cause a document -// to be interpreted in quirks mode. The identifiers should be in lower case. -var quirkyIDs = []string{ - "+//silmaril//dtd html pro v0r11 19970101//", - "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", - "-//as//dtd html 3.0 aswedit + extensions//", - "-//ietf//dtd html 2.0 level 1//", - "-//ietf//dtd html 2.0 level 2//", - "-//ietf//dtd html 2.0 strict level 1//", - "-//ietf//dtd html 2.0 strict level 2//", - "-//ietf//dtd html 2.0 strict//", - "-//ietf//dtd html 2.0//", - "-//ietf//dtd html 2.1e//", - "-//ietf//dtd html 3.0//", - "-//ietf//dtd html 3.2 final//", - "-//ietf//dtd html 3.2//", - "-//ietf//dtd html 3//", - "-//ietf//dtd html level 0//", - "-//ietf//dtd html level 1//", - "-//ietf//dtd html level 2//", - "-//ietf//dtd html level 3//", - "-//ietf//dtd html strict level 0//", - "-//ietf//dtd html strict level 1//", - "-//ietf//dtd html strict level 2//", - "-//ietf//dtd html strict level 3//", - "-//ietf//dtd html strict//", - "-//ietf//dtd html//", - "-//metrius//dtd metrius presentational//", - "-//microsoft//dtd internet explorer 2.0 html strict//", - "-//microsoft//dtd internet explorer 2.0 html//", - "-//microsoft//dtd internet explorer 2.0 tables//", - "-//microsoft//dtd internet explorer 3.0 html strict//", - "-//microsoft//dtd internet explorer 3.0 html//", - "-//microsoft//dtd internet explorer 3.0 tables//", - "-//netscape comm. corp.//dtd html//", - "-//netscape comm. corp.//dtd strict html//", - "-//o'reilly and associates//dtd html 2.0//", - "-//o'reilly and associates//dtd html extended 1.0//", - "-//o'reilly and associates//dtd html extended relaxed 1.0//", - "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", - "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", - "-//spyglass//dtd html 2.0 extended//", - "-//sq//dtd html 2.0 hotmetal + extensions//", - "-//sun microsystems corp.//dtd hotjava html//", - "-//sun microsystems corp.//dtd hotjava strict html//", - "-//w3c//dtd html 3 1995-03-24//", - "-//w3c//dtd html 3.2 draft//", - "-//w3c//dtd html 3.2 final//", - "-//w3c//dtd html 3.2//", - "-//w3c//dtd html 3.2s draft//", - "-//w3c//dtd html 4.0 frameset//", - "-//w3c//dtd html 4.0 transitional//", - "-//w3c//dtd html experimental 19960712//", - "-//w3c//dtd html experimental 970421//", - "-//w3c//dtd w3 html//", - "-//w3o//dtd w3 html 3.0//", - "-//webtechs//dtd mozilla html 2.0//", - "-//webtechs//dtd mozilla html//", -} diff --git a/vendor/golang.org/x/net/html/entity.go b/vendor/golang.org/x/net/html/entity.go deleted file mode 100644 index a50c04c60e9..00000000000 --- a/vendor/golang.org/x/net/html/entity.go +++ /dev/null @@ -1,2253 +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. - -package html - -// All entities that do not end with ';' are 6 or fewer bytes long. -const longestEntityWithoutSemicolon = 6 - -// entity is a map from HTML entity names to their values. The semicolon matters: -// https://html.spec.whatwg.org/multipage/syntax.html#named-character-references -// lists both "amp" and "amp;" as two separate entries. -// -// Note that the HTML5 list is larger than the HTML4 list at -// http://www.w3.org/TR/html4/sgml/entities.html -var entity = map[string]rune{ - "AElig;": '\U000000C6', - "AMP;": '\U00000026', - "Aacute;": '\U000000C1', - "Abreve;": '\U00000102', - "Acirc;": '\U000000C2', - "Acy;": '\U00000410', - "Afr;": '\U0001D504', - "Agrave;": '\U000000C0', - "Alpha;": '\U00000391', - "Amacr;": '\U00000100', - "And;": '\U00002A53', - "Aogon;": '\U00000104', - "Aopf;": '\U0001D538', - "ApplyFunction;": '\U00002061', - "Aring;": '\U000000C5', - "Ascr;": '\U0001D49C', - "Assign;": '\U00002254', - "Atilde;": '\U000000C3', - "Auml;": '\U000000C4', - "Backslash;": '\U00002216', - "Barv;": '\U00002AE7', - "Barwed;": '\U00002306', - "Bcy;": '\U00000411', - "Because;": '\U00002235', - "Bernoullis;": '\U0000212C', - "Beta;": '\U00000392', - "Bfr;": '\U0001D505', - "Bopf;": '\U0001D539', - "Breve;": '\U000002D8', - "Bscr;": '\U0000212C', - "Bumpeq;": '\U0000224E', - "CHcy;": '\U00000427', - "COPY;": '\U000000A9', - "Cacute;": '\U00000106', - "Cap;": '\U000022D2', - "CapitalDifferentialD;": '\U00002145', - "Cayleys;": '\U0000212D', - "Ccaron;": '\U0000010C', - "Ccedil;": '\U000000C7', - "Ccirc;": '\U00000108', - "Cconint;": '\U00002230', - "Cdot;": '\U0000010A', - "Cedilla;": '\U000000B8', - "CenterDot;": '\U000000B7', - "Cfr;": '\U0000212D', - "Chi;": '\U000003A7', - "CircleDot;": '\U00002299', - "CircleMinus;": '\U00002296', - "CirclePlus;": '\U00002295', - "CircleTimes;": '\U00002297', - "ClockwiseContourIntegral;": '\U00002232', - "CloseCurlyDoubleQuote;": '\U0000201D', - "CloseCurlyQuote;": '\U00002019', - "Colon;": '\U00002237', - "Colone;": '\U00002A74', - "Congruent;": '\U00002261', - "Conint;": '\U0000222F', - "ContourIntegral;": '\U0000222E', - "Copf;": '\U00002102', - "Coproduct;": '\U00002210', - "CounterClockwiseContourIntegral;": '\U00002233', - "Cross;": '\U00002A2F', - "Cscr;": '\U0001D49E', - "Cup;": '\U000022D3', - "CupCap;": '\U0000224D', - "DD;": '\U00002145', - "DDotrahd;": '\U00002911', - "DJcy;": '\U00000402', - "DScy;": '\U00000405', - "DZcy;": '\U0000040F', - "Dagger;": '\U00002021', - "Darr;": '\U000021A1', - "Dashv;": '\U00002AE4', - "Dcaron;": '\U0000010E', - "Dcy;": '\U00000414', - "Del;": '\U00002207', - "Delta;": '\U00000394', - "Dfr;": '\U0001D507', - "DiacriticalAcute;": '\U000000B4', - "DiacriticalDot;": '\U000002D9', - "DiacriticalDoubleAcute;": '\U000002DD', - "DiacriticalGrave;": '\U00000060', - "DiacriticalTilde;": '\U000002DC', - "Diamond;": '\U000022C4', - "DifferentialD;": '\U00002146', - "Dopf;": '\U0001D53B', - "Dot;": '\U000000A8', - "DotDot;": '\U000020DC', - "DotEqual;": '\U00002250', - "DoubleContourIntegral;": '\U0000222F', - "DoubleDot;": '\U000000A8', - "DoubleDownArrow;": '\U000021D3', - "DoubleLeftArrow;": '\U000021D0', - "DoubleLeftRightArrow;": '\U000021D4', - "DoubleLeftTee;": '\U00002AE4', - "DoubleLongLeftArrow;": '\U000027F8', - "DoubleLongLeftRightArrow;": '\U000027FA', - "DoubleLongRightArrow;": '\U000027F9', - "DoubleRightArrow;": '\U000021D2', - "DoubleRightTee;": '\U000022A8', - "DoubleUpArrow;": '\U000021D1', - "DoubleUpDownArrow;": '\U000021D5', - "DoubleVerticalBar;": '\U00002225', - "DownArrow;": '\U00002193', - "DownArrowBar;": '\U00002913', - "DownArrowUpArrow;": '\U000021F5', - "DownBreve;": '\U00000311', - "DownLeftRightVector;": '\U00002950', - "DownLeftTeeVector;": '\U0000295E', - "DownLeftVector;": '\U000021BD', - "DownLeftVectorBar;": '\U00002956', - "DownRightTeeVector;": '\U0000295F', - "DownRightVector;": '\U000021C1', - "DownRightVectorBar;": '\U00002957', - "DownTee;": '\U000022A4', - "DownTeeArrow;": '\U000021A7', - "Downarrow;": '\U000021D3', - "Dscr;": '\U0001D49F', - "Dstrok;": '\U00000110', - "ENG;": '\U0000014A', - "ETH;": '\U000000D0', - "Eacute;": '\U000000C9', - "Ecaron;": '\U0000011A', - "Ecirc;": '\U000000CA', - "Ecy;": '\U0000042D', - "Edot;": '\U00000116', - "Efr;": '\U0001D508', - "Egrave;": '\U000000C8', - "Element;": '\U00002208', - "Emacr;": '\U00000112', - "EmptySmallSquare;": '\U000025FB', - "EmptyVerySmallSquare;": '\U000025AB', - "Eogon;": '\U00000118', - "Eopf;": '\U0001D53C', - "Epsilon;": '\U00000395', - "Equal;": '\U00002A75', - "EqualTilde;": '\U00002242', - "Equilibrium;": '\U000021CC', - "Escr;": '\U00002130', - "Esim;": '\U00002A73', - "Eta;": '\U00000397', - "Euml;": '\U000000CB', - "Exists;": '\U00002203', - "ExponentialE;": '\U00002147', - "Fcy;": '\U00000424', - "Ffr;": '\U0001D509', - "FilledSmallSquare;": '\U000025FC', - "FilledVerySmallSquare;": '\U000025AA', - "Fopf;": '\U0001D53D', - "ForAll;": '\U00002200', - "Fouriertrf;": '\U00002131', - "Fscr;": '\U00002131', - "GJcy;": '\U00000403', - "GT;": '\U0000003E', - "Gamma;": '\U00000393', - "Gammad;": '\U000003DC', - "Gbreve;": '\U0000011E', - "Gcedil;": '\U00000122', - "Gcirc;": '\U0000011C', - "Gcy;": '\U00000413', - "Gdot;": '\U00000120', - "Gfr;": '\U0001D50A', - "Gg;": '\U000022D9', - "Gopf;": '\U0001D53E', - "GreaterEqual;": '\U00002265', - "GreaterEqualLess;": '\U000022DB', - "GreaterFullEqual;": '\U00002267', - "GreaterGreater;": '\U00002AA2', - "GreaterLess;": '\U00002277', - "GreaterSlantEqual;": '\U00002A7E', - "GreaterTilde;": '\U00002273', - "Gscr;": '\U0001D4A2', - "Gt;": '\U0000226B', - "HARDcy;": '\U0000042A', - "Hacek;": '\U000002C7', - "Hat;": '\U0000005E', - "Hcirc;": '\U00000124', - "Hfr;": '\U0000210C', - "HilbertSpace;": '\U0000210B', - "Hopf;": '\U0000210D', - "HorizontalLine;": '\U00002500', - "Hscr;": '\U0000210B', - "Hstrok;": '\U00000126', - "HumpDownHump;": '\U0000224E', - "HumpEqual;": '\U0000224F', - "IEcy;": '\U00000415', - "IJlig;": '\U00000132', - "IOcy;": '\U00000401', - "Iacute;": '\U000000CD', - "Icirc;": '\U000000CE', - "Icy;": '\U00000418', - "Idot;": '\U00000130', - "Ifr;": '\U00002111', - "Igrave;": '\U000000CC', - "Im;": '\U00002111', - "Imacr;": '\U0000012A', - "ImaginaryI;": '\U00002148', - "Implies;": '\U000021D2', - "Int;": '\U0000222C', - "Integral;": '\U0000222B', - "Intersection;": '\U000022C2', - "InvisibleComma;": '\U00002063', - "InvisibleTimes;": '\U00002062', - "Iogon;": '\U0000012E', - "Iopf;": '\U0001D540', - "Iota;": '\U00000399', - "Iscr;": '\U00002110', - "Itilde;": '\U00000128', - "Iukcy;": '\U00000406', - "Iuml;": '\U000000CF', - "Jcirc;": '\U00000134', - "Jcy;": '\U00000419', - "Jfr;": '\U0001D50D', - "Jopf;": '\U0001D541', - "Jscr;": '\U0001D4A5', - "Jsercy;": '\U00000408', - "Jukcy;": '\U00000404', - "KHcy;": '\U00000425', - "KJcy;": '\U0000040C', - "Kappa;": '\U0000039A', - "Kcedil;": '\U00000136', - "Kcy;": '\U0000041A', - "Kfr;": '\U0001D50E', - "Kopf;": '\U0001D542', - "Kscr;": '\U0001D4A6', - "LJcy;": '\U00000409', - "LT;": '\U0000003C', - "Lacute;": '\U00000139', - "Lambda;": '\U0000039B', - "Lang;": '\U000027EA', - "Laplacetrf;": '\U00002112', - "Larr;": '\U0000219E', - "Lcaron;": '\U0000013D', - "Lcedil;": '\U0000013B', - "Lcy;": '\U0000041B', - "LeftAngleBracket;": '\U000027E8', - "LeftArrow;": '\U00002190', - "LeftArrowBar;": '\U000021E4', - "LeftArrowRightArrow;": '\U000021C6', - "LeftCeiling;": '\U00002308', - "LeftDoubleBracket;": '\U000027E6', - "LeftDownTeeVector;": '\U00002961', - "LeftDownVector;": '\U000021C3', - "LeftDownVectorBar;": '\U00002959', - "LeftFloor;": '\U0000230A', - "LeftRightArrow;": '\U00002194', - "LeftRightVector;": '\U0000294E', - "LeftTee;": '\U000022A3', - "LeftTeeArrow;": '\U000021A4', - "LeftTeeVector;": '\U0000295A', - "LeftTriangle;": '\U000022B2', - "LeftTriangleBar;": '\U000029CF', - "LeftTriangleEqual;": '\U000022B4', - "LeftUpDownVector;": '\U00002951', - "LeftUpTeeVector;": '\U00002960', - "LeftUpVector;": '\U000021BF', - "LeftUpVectorBar;": '\U00002958', - "LeftVector;": '\U000021BC', - "LeftVectorBar;": '\U00002952', - "Leftarrow;": '\U000021D0', - "Leftrightarrow;": '\U000021D4', - "LessEqualGreater;": '\U000022DA', - "LessFullEqual;": '\U00002266', - "LessGreater;": '\U00002276', - "LessLess;": '\U00002AA1', - "LessSlantEqual;": '\U00002A7D', - "LessTilde;": '\U00002272', - "Lfr;": '\U0001D50F', - "Ll;": '\U000022D8', - "Lleftarrow;": '\U000021DA', - "Lmidot;": '\U0000013F', - "LongLeftArrow;": '\U000027F5', - "LongLeftRightArrow;": '\U000027F7', - "LongRightArrow;": '\U000027F6', - "Longleftarrow;": '\U000027F8', - "Longleftrightarrow;": '\U000027FA', - "Longrightarrow;": '\U000027F9', - "Lopf;": '\U0001D543', - "LowerLeftArrow;": '\U00002199', - "LowerRightArrow;": '\U00002198', - "Lscr;": '\U00002112', - "Lsh;": '\U000021B0', - "Lstrok;": '\U00000141', - "Lt;": '\U0000226A', - "Map;": '\U00002905', - "Mcy;": '\U0000041C', - "MediumSpace;": '\U0000205F', - "Mellintrf;": '\U00002133', - "Mfr;": '\U0001D510', - "MinusPlus;": '\U00002213', - "Mopf;": '\U0001D544', - "Mscr;": '\U00002133', - "Mu;": '\U0000039C', - "NJcy;": '\U0000040A', - "Nacute;": '\U00000143', - "Ncaron;": '\U00000147', - "Ncedil;": '\U00000145', - "Ncy;": '\U0000041D', - "NegativeMediumSpace;": '\U0000200B', - "NegativeThickSpace;": '\U0000200B', - "NegativeThinSpace;": '\U0000200B', - "NegativeVeryThinSpace;": '\U0000200B', - "NestedGreaterGreater;": '\U0000226B', - "NestedLessLess;": '\U0000226A', - "NewLine;": '\U0000000A', - "Nfr;": '\U0001D511', - "NoBreak;": '\U00002060', - "NonBreakingSpace;": '\U000000A0', - "Nopf;": '\U00002115', - "Not;": '\U00002AEC', - "NotCongruent;": '\U00002262', - "NotCupCap;": '\U0000226D', - "NotDoubleVerticalBar;": '\U00002226', - "NotElement;": '\U00002209', - "NotEqual;": '\U00002260', - "NotExists;": '\U00002204', - "NotGreater;": '\U0000226F', - "NotGreaterEqual;": '\U00002271', - "NotGreaterLess;": '\U00002279', - "NotGreaterTilde;": '\U00002275', - "NotLeftTriangle;": '\U000022EA', - "NotLeftTriangleEqual;": '\U000022EC', - "NotLess;": '\U0000226E', - "NotLessEqual;": '\U00002270', - "NotLessGreater;": '\U00002278', - "NotLessTilde;": '\U00002274', - "NotPrecedes;": '\U00002280', - "NotPrecedesSlantEqual;": '\U000022E0', - "NotReverseElement;": '\U0000220C', - "NotRightTriangle;": '\U000022EB', - "NotRightTriangleEqual;": '\U000022ED', - "NotSquareSubsetEqual;": '\U000022E2', - "NotSquareSupersetEqual;": '\U000022E3', - "NotSubsetEqual;": '\U00002288', - "NotSucceeds;": '\U00002281', - "NotSucceedsSlantEqual;": '\U000022E1', - "NotSupersetEqual;": '\U00002289', - "NotTilde;": '\U00002241', - "NotTildeEqual;": '\U00002244', - "NotTildeFullEqual;": '\U00002247', - "NotTildeTilde;": '\U00002249', - "NotVerticalBar;": '\U00002224', - "Nscr;": '\U0001D4A9', - "Ntilde;": '\U000000D1', - "Nu;": '\U0000039D', - "OElig;": '\U00000152', - "Oacute;": '\U000000D3', - "Ocirc;": '\U000000D4', - "Ocy;": '\U0000041E', - "Odblac;": '\U00000150', - "Ofr;": '\U0001D512', - "Ograve;": '\U000000D2', - "Omacr;": '\U0000014C', - "Omega;": '\U000003A9', - "Omicron;": '\U0000039F', - "Oopf;": '\U0001D546', - "OpenCurlyDoubleQuote;": '\U0000201C', - "OpenCurlyQuote;": '\U00002018', - "Or;": '\U00002A54', - "Oscr;": '\U0001D4AA', - "Oslash;": '\U000000D8', - "Otilde;": '\U000000D5', - "Otimes;": '\U00002A37', - "Ouml;": '\U000000D6', - "OverBar;": '\U0000203E', - "OverBrace;": '\U000023DE', - "OverBracket;": '\U000023B4', - "OverParenthesis;": '\U000023DC', - "PartialD;": '\U00002202', - "Pcy;": '\U0000041F', - "Pfr;": '\U0001D513', - "Phi;": '\U000003A6', - "Pi;": '\U000003A0', - "PlusMinus;": '\U000000B1', - "Poincareplane;": '\U0000210C', - "Popf;": '\U00002119', - "Pr;": '\U00002ABB', - "Precedes;": '\U0000227A', - "PrecedesEqual;": '\U00002AAF', - "PrecedesSlantEqual;": '\U0000227C', - "PrecedesTilde;": '\U0000227E', - "Prime;": '\U00002033', - "Product;": '\U0000220F', - "Proportion;": '\U00002237', - "Proportional;": '\U0000221D', - "Pscr;": '\U0001D4AB', - "Psi;": '\U000003A8', - "QUOT;": '\U00000022', - "Qfr;": '\U0001D514', - "Qopf;": '\U0000211A', - "Qscr;": '\U0001D4AC', - "RBarr;": '\U00002910', - "REG;": '\U000000AE', - "Racute;": '\U00000154', - "Rang;": '\U000027EB', - "Rarr;": '\U000021A0', - "Rarrtl;": '\U00002916', - "Rcaron;": '\U00000158', - "Rcedil;": '\U00000156', - "Rcy;": '\U00000420', - "Re;": '\U0000211C', - "ReverseElement;": '\U0000220B', - "ReverseEquilibrium;": '\U000021CB', - "ReverseUpEquilibrium;": '\U0000296F', - "Rfr;": '\U0000211C', - "Rho;": '\U000003A1', - "RightAngleBracket;": '\U000027E9', - "RightArrow;": '\U00002192', - "RightArrowBar;": '\U000021E5', - "RightArrowLeftArrow;": '\U000021C4', - "RightCeiling;": '\U00002309', - "RightDoubleBracket;": '\U000027E7', - "RightDownTeeVector;": '\U0000295D', - "RightDownVector;": '\U000021C2', - "RightDownVectorBar;": '\U00002955', - "RightFloor;": '\U0000230B', - "RightTee;": '\U000022A2', - "RightTeeArrow;": '\U000021A6', - "RightTeeVector;": '\U0000295B', - "RightTriangle;": '\U000022B3', - "RightTriangleBar;": '\U000029D0', - "RightTriangleEqual;": '\U000022B5', - "RightUpDownVector;": '\U0000294F', - "RightUpTeeVector;": '\U0000295C', - "RightUpVector;": '\U000021BE', - "RightUpVectorBar;": '\U00002954', - "RightVector;": '\U000021C0', - "RightVectorBar;": '\U00002953', - "Rightarrow;": '\U000021D2', - "Ropf;": '\U0000211D', - "RoundImplies;": '\U00002970', - "Rrightarrow;": '\U000021DB', - "Rscr;": '\U0000211B', - "Rsh;": '\U000021B1', - "RuleDelayed;": '\U000029F4', - "SHCHcy;": '\U00000429', - "SHcy;": '\U00000428', - "SOFTcy;": '\U0000042C', - "Sacute;": '\U0000015A', - "Sc;": '\U00002ABC', - "Scaron;": '\U00000160', - "Scedil;": '\U0000015E', - "Scirc;": '\U0000015C', - "Scy;": '\U00000421', - "Sfr;": '\U0001D516', - "ShortDownArrow;": '\U00002193', - "ShortLeftArrow;": '\U00002190', - "ShortRightArrow;": '\U00002192', - "ShortUpArrow;": '\U00002191', - "Sigma;": '\U000003A3', - "SmallCircle;": '\U00002218', - "Sopf;": '\U0001D54A', - "Sqrt;": '\U0000221A', - "Square;": '\U000025A1', - "SquareIntersection;": '\U00002293', - "SquareSubset;": '\U0000228F', - "SquareSubsetEqual;": '\U00002291', - "SquareSuperset;": '\U00002290', - "SquareSupersetEqual;": '\U00002292', - "SquareUnion;": '\U00002294', - "Sscr;": '\U0001D4AE', - "Star;": '\U000022C6', - "Sub;": '\U000022D0', - "Subset;": '\U000022D0', - "SubsetEqual;": '\U00002286', - "Succeeds;": '\U0000227B', - "SucceedsEqual;": '\U00002AB0', - "SucceedsSlantEqual;": '\U0000227D', - "SucceedsTilde;": '\U0000227F', - "SuchThat;": '\U0000220B', - "Sum;": '\U00002211', - "Sup;": '\U000022D1', - "Superset;": '\U00002283', - "SupersetEqual;": '\U00002287', - "Supset;": '\U000022D1', - "THORN;": '\U000000DE', - "TRADE;": '\U00002122', - "TSHcy;": '\U0000040B', - "TScy;": '\U00000426', - "Tab;": '\U00000009', - "Tau;": '\U000003A4', - "Tcaron;": '\U00000164', - "Tcedil;": '\U00000162', - "Tcy;": '\U00000422', - "Tfr;": '\U0001D517', - "Therefore;": '\U00002234', - "Theta;": '\U00000398', - "ThinSpace;": '\U00002009', - "Tilde;": '\U0000223C', - "TildeEqual;": '\U00002243', - "TildeFullEqual;": '\U00002245', - "TildeTilde;": '\U00002248', - "Topf;": '\U0001D54B', - "TripleDot;": '\U000020DB', - "Tscr;": '\U0001D4AF', - "Tstrok;": '\U00000166', - "Uacute;": '\U000000DA', - "Uarr;": '\U0000219F', - "Uarrocir;": '\U00002949', - "Ubrcy;": '\U0000040E', - "Ubreve;": '\U0000016C', - "Ucirc;": '\U000000DB', - "Ucy;": '\U00000423', - "Udblac;": '\U00000170', - "Ufr;": '\U0001D518', - "Ugrave;": '\U000000D9', - "Umacr;": '\U0000016A', - "UnderBar;": '\U0000005F', - "UnderBrace;": '\U000023DF', - "UnderBracket;": '\U000023B5', - "UnderParenthesis;": '\U000023DD', - "Union;": '\U000022C3', - "UnionPlus;": '\U0000228E', - "Uogon;": '\U00000172', - "Uopf;": '\U0001D54C', - "UpArrow;": '\U00002191', - "UpArrowBar;": '\U00002912', - "UpArrowDownArrow;": '\U000021C5', - "UpDownArrow;": '\U00002195', - "UpEquilibrium;": '\U0000296E', - "UpTee;": '\U000022A5', - "UpTeeArrow;": '\U000021A5', - "Uparrow;": '\U000021D1', - "Updownarrow;": '\U000021D5', - "UpperLeftArrow;": '\U00002196', - "UpperRightArrow;": '\U00002197', - "Upsi;": '\U000003D2', - "Upsilon;": '\U000003A5', - "Uring;": '\U0000016E', - "Uscr;": '\U0001D4B0', - "Utilde;": '\U00000168', - "Uuml;": '\U000000DC', - "VDash;": '\U000022AB', - "Vbar;": '\U00002AEB', - "Vcy;": '\U00000412', - "Vdash;": '\U000022A9', - "Vdashl;": '\U00002AE6', - "Vee;": '\U000022C1', - "Verbar;": '\U00002016', - "Vert;": '\U00002016', - "VerticalBar;": '\U00002223', - "VerticalLine;": '\U0000007C', - "VerticalSeparator;": '\U00002758', - "VerticalTilde;": '\U00002240', - "VeryThinSpace;": '\U0000200A', - "Vfr;": '\U0001D519', - "Vopf;": '\U0001D54D', - "Vscr;": '\U0001D4B1', - "Vvdash;": '\U000022AA', - "Wcirc;": '\U00000174', - "Wedge;": '\U000022C0', - "Wfr;": '\U0001D51A', - "Wopf;": '\U0001D54E', - "Wscr;": '\U0001D4B2', - "Xfr;": '\U0001D51B', - "Xi;": '\U0000039E', - "Xopf;": '\U0001D54F', - "Xscr;": '\U0001D4B3', - "YAcy;": '\U0000042F', - "YIcy;": '\U00000407', - "YUcy;": '\U0000042E', - "Yacute;": '\U000000DD', - "Ycirc;": '\U00000176', - "Ycy;": '\U0000042B', - "Yfr;": '\U0001D51C', - "Yopf;": '\U0001D550', - "Yscr;": '\U0001D4B4', - "Yuml;": '\U00000178', - "ZHcy;": '\U00000416', - "Zacute;": '\U00000179', - "Zcaron;": '\U0000017D', - "Zcy;": '\U00000417', - "Zdot;": '\U0000017B', - "ZeroWidthSpace;": '\U0000200B', - "Zeta;": '\U00000396', - "Zfr;": '\U00002128', - "Zopf;": '\U00002124', - "Zscr;": '\U0001D4B5', - "aacute;": '\U000000E1', - "abreve;": '\U00000103', - "ac;": '\U0000223E', - "acd;": '\U0000223F', - "acirc;": '\U000000E2', - "acute;": '\U000000B4', - "acy;": '\U00000430', - "aelig;": '\U000000E6', - "af;": '\U00002061', - "afr;": '\U0001D51E', - "agrave;": '\U000000E0', - "alefsym;": '\U00002135', - "aleph;": '\U00002135', - "alpha;": '\U000003B1', - "amacr;": '\U00000101', - "amalg;": '\U00002A3F', - "amp;": '\U00000026', - "and;": '\U00002227', - "andand;": '\U00002A55', - "andd;": '\U00002A5C', - "andslope;": '\U00002A58', - "andv;": '\U00002A5A', - "ang;": '\U00002220', - "ange;": '\U000029A4', - "angle;": '\U00002220', - "angmsd;": '\U00002221', - "angmsdaa;": '\U000029A8', - "angmsdab;": '\U000029A9', - "angmsdac;": '\U000029AA', - "angmsdad;": '\U000029AB', - "angmsdae;": '\U000029AC', - "angmsdaf;": '\U000029AD', - "angmsdag;": '\U000029AE', - "angmsdah;": '\U000029AF', - "angrt;": '\U0000221F', - "angrtvb;": '\U000022BE', - "angrtvbd;": '\U0000299D', - "angsph;": '\U00002222', - "angst;": '\U000000C5', - "angzarr;": '\U0000237C', - "aogon;": '\U00000105', - "aopf;": '\U0001D552', - "ap;": '\U00002248', - "apE;": '\U00002A70', - "apacir;": '\U00002A6F', - "ape;": '\U0000224A', - "apid;": '\U0000224B', - "apos;": '\U00000027', - "approx;": '\U00002248', - "approxeq;": '\U0000224A', - "aring;": '\U000000E5', - "ascr;": '\U0001D4B6', - "ast;": '\U0000002A', - "asymp;": '\U00002248', - "asympeq;": '\U0000224D', - "atilde;": '\U000000E3', - "auml;": '\U000000E4', - "awconint;": '\U00002233', - "awint;": '\U00002A11', - "bNot;": '\U00002AED', - "backcong;": '\U0000224C', - "backepsilon;": '\U000003F6', - "backprime;": '\U00002035', - "backsim;": '\U0000223D', - "backsimeq;": '\U000022CD', - "barvee;": '\U000022BD', - "barwed;": '\U00002305', - "barwedge;": '\U00002305', - "bbrk;": '\U000023B5', - "bbrktbrk;": '\U000023B6', - "bcong;": '\U0000224C', - "bcy;": '\U00000431', - "bdquo;": '\U0000201E', - "becaus;": '\U00002235', - "because;": '\U00002235', - "bemptyv;": '\U000029B0', - "bepsi;": '\U000003F6', - "bernou;": '\U0000212C', - "beta;": '\U000003B2', - "beth;": '\U00002136', - "between;": '\U0000226C', - "bfr;": '\U0001D51F', - "bigcap;": '\U000022C2', - "bigcirc;": '\U000025EF', - "bigcup;": '\U000022C3', - "bigodot;": '\U00002A00', - "bigoplus;": '\U00002A01', - "bigotimes;": '\U00002A02', - "bigsqcup;": '\U00002A06', - "bigstar;": '\U00002605', - "bigtriangledown;": '\U000025BD', - "bigtriangleup;": '\U000025B3', - "biguplus;": '\U00002A04', - "bigvee;": '\U000022C1', - "bigwedge;": '\U000022C0', - "bkarow;": '\U0000290D', - "blacklozenge;": '\U000029EB', - "blacksquare;": '\U000025AA', - "blacktriangle;": '\U000025B4', - "blacktriangledown;": '\U000025BE', - "blacktriangleleft;": '\U000025C2', - "blacktriangleright;": '\U000025B8', - "blank;": '\U00002423', - "blk12;": '\U00002592', - "blk14;": '\U00002591', - "blk34;": '\U00002593', - "block;": '\U00002588', - "bnot;": '\U00002310', - "bopf;": '\U0001D553', - "bot;": '\U000022A5', - "bottom;": '\U000022A5', - "bowtie;": '\U000022C8', - "boxDL;": '\U00002557', - "boxDR;": '\U00002554', - "boxDl;": '\U00002556', - "boxDr;": '\U00002553', - "boxH;": '\U00002550', - "boxHD;": '\U00002566', - "boxHU;": '\U00002569', - "boxHd;": '\U00002564', - "boxHu;": '\U00002567', - "boxUL;": '\U0000255D', - "boxUR;": '\U0000255A', - "boxUl;": '\U0000255C', - "boxUr;": '\U00002559', - "boxV;": '\U00002551', - "boxVH;": '\U0000256C', - "boxVL;": '\U00002563', - "boxVR;": '\U00002560', - "boxVh;": '\U0000256B', - "boxVl;": '\U00002562', - "boxVr;": '\U0000255F', - "boxbox;": '\U000029C9', - "boxdL;": '\U00002555', - "boxdR;": '\U00002552', - "boxdl;": '\U00002510', - "boxdr;": '\U0000250C', - "boxh;": '\U00002500', - "boxhD;": '\U00002565', - "boxhU;": '\U00002568', - "boxhd;": '\U0000252C', - "boxhu;": '\U00002534', - "boxminus;": '\U0000229F', - "boxplus;": '\U0000229E', - "boxtimes;": '\U000022A0', - "boxuL;": '\U0000255B', - "boxuR;": '\U00002558', - "boxul;": '\U00002518', - "boxur;": '\U00002514', - "boxv;": '\U00002502', - "boxvH;": '\U0000256A', - "boxvL;": '\U00002561', - "boxvR;": '\U0000255E', - "boxvh;": '\U0000253C', - "boxvl;": '\U00002524', - "boxvr;": '\U0000251C', - "bprime;": '\U00002035', - "breve;": '\U000002D8', - "brvbar;": '\U000000A6', - "bscr;": '\U0001D4B7', - "bsemi;": '\U0000204F', - "bsim;": '\U0000223D', - "bsime;": '\U000022CD', - "bsol;": '\U0000005C', - "bsolb;": '\U000029C5', - "bsolhsub;": '\U000027C8', - "bull;": '\U00002022', - "bullet;": '\U00002022', - "bump;": '\U0000224E', - "bumpE;": '\U00002AAE', - "bumpe;": '\U0000224F', - "bumpeq;": '\U0000224F', - "cacute;": '\U00000107', - "cap;": '\U00002229', - "capand;": '\U00002A44', - "capbrcup;": '\U00002A49', - "capcap;": '\U00002A4B', - "capcup;": '\U00002A47', - "capdot;": '\U00002A40', - "caret;": '\U00002041', - "caron;": '\U000002C7', - "ccaps;": '\U00002A4D', - "ccaron;": '\U0000010D', - "ccedil;": '\U000000E7', - "ccirc;": '\U00000109', - "ccups;": '\U00002A4C', - "ccupssm;": '\U00002A50', - "cdot;": '\U0000010B', - "cedil;": '\U000000B8', - "cemptyv;": '\U000029B2', - "cent;": '\U000000A2', - "centerdot;": '\U000000B7', - "cfr;": '\U0001D520', - "chcy;": '\U00000447', - "check;": '\U00002713', - "checkmark;": '\U00002713', - "chi;": '\U000003C7', - "cir;": '\U000025CB', - "cirE;": '\U000029C3', - "circ;": '\U000002C6', - "circeq;": '\U00002257', - "circlearrowleft;": '\U000021BA', - "circlearrowright;": '\U000021BB', - "circledR;": '\U000000AE', - "circledS;": '\U000024C8', - "circledast;": '\U0000229B', - "circledcirc;": '\U0000229A', - "circleddash;": '\U0000229D', - "cire;": '\U00002257', - "cirfnint;": '\U00002A10', - "cirmid;": '\U00002AEF', - "cirscir;": '\U000029C2', - "clubs;": '\U00002663', - "clubsuit;": '\U00002663', - "colon;": '\U0000003A', - "colone;": '\U00002254', - "coloneq;": '\U00002254', - "comma;": '\U0000002C', - "commat;": '\U00000040', - "comp;": '\U00002201', - "compfn;": '\U00002218', - "complement;": '\U00002201', - "complexes;": '\U00002102', - "cong;": '\U00002245', - "congdot;": '\U00002A6D', - "conint;": '\U0000222E', - "copf;": '\U0001D554', - "coprod;": '\U00002210', - "copy;": '\U000000A9', - "copysr;": '\U00002117', - "crarr;": '\U000021B5', - "cross;": '\U00002717', - "cscr;": '\U0001D4B8', - "csub;": '\U00002ACF', - "csube;": '\U00002AD1', - "csup;": '\U00002AD0', - "csupe;": '\U00002AD2', - "ctdot;": '\U000022EF', - "cudarrl;": '\U00002938', - "cudarrr;": '\U00002935', - "cuepr;": '\U000022DE', - "cuesc;": '\U000022DF', - "cularr;": '\U000021B6', - "cularrp;": '\U0000293D', - "cup;": '\U0000222A', - "cupbrcap;": '\U00002A48', - "cupcap;": '\U00002A46', - "cupcup;": '\U00002A4A', - "cupdot;": '\U0000228D', - "cupor;": '\U00002A45', - "curarr;": '\U000021B7', - "curarrm;": '\U0000293C', - "curlyeqprec;": '\U000022DE', - "curlyeqsucc;": '\U000022DF', - "curlyvee;": '\U000022CE', - "curlywedge;": '\U000022CF', - "curren;": '\U000000A4', - "curvearrowleft;": '\U000021B6', - "curvearrowright;": '\U000021B7', - "cuvee;": '\U000022CE', - "cuwed;": '\U000022CF', - "cwconint;": '\U00002232', - "cwint;": '\U00002231', - "cylcty;": '\U0000232D', - "dArr;": '\U000021D3', - "dHar;": '\U00002965', - "dagger;": '\U00002020', - "daleth;": '\U00002138', - "darr;": '\U00002193', - "dash;": '\U00002010', - "dashv;": '\U000022A3', - "dbkarow;": '\U0000290F', - "dblac;": '\U000002DD', - "dcaron;": '\U0000010F', - "dcy;": '\U00000434', - "dd;": '\U00002146', - "ddagger;": '\U00002021', - "ddarr;": '\U000021CA', - "ddotseq;": '\U00002A77', - "deg;": '\U000000B0', - "delta;": '\U000003B4', - "demptyv;": '\U000029B1', - "dfisht;": '\U0000297F', - "dfr;": '\U0001D521', - "dharl;": '\U000021C3', - "dharr;": '\U000021C2', - "diam;": '\U000022C4', - "diamond;": '\U000022C4', - "diamondsuit;": '\U00002666', - "diams;": '\U00002666', - "die;": '\U000000A8', - "digamma;": '\U000003DD', - "disin;": '\U000022F2', - "div;": '\U000000F7', - "divide;": '\U000000F7', - "divideontimes;": '\U000022C7', - "divonx;": '\U000022C7', - "djcy;": '\U00000452', - "dlcorn;": '\U0000231E', - "dlcrop;": '\U0000230D', - "dollar;": '\U00000024', - "dopf;": '\U0001D555', - "dot;": '\U000002D9', - "doteq;": '\U00002250', - "doteqdot;": '\U00002251', - "dotminus;": '\U00002238', - "dotplus;": '\U00002214', - "dotsquare;": '\U000022A1', - "doublebarwedge;": '\U00002306', - "downarrow;": '\U00002193', - "downdownarrows;": '\U000021CA', - "downharpoonleft;": '\U000021C3', - "downharpoonright;": '\U000021C2', - "drbkarow;": '\U00002910', - "drcorn;": '\U0000231F', - "drcrop;": '\U0000230C', - "dscr;": '\U0001D4B9', - "dscy;": '\U00000455', - "dsol;": '\U000029F6', - "dstrok;": '\U00000111', - "dtdot;": '\U000022F1', - "dtri;": '\U000025BF', - "dtrif;": '\U000025BE', - "duarr;": '\U000021F5', - "duhar;": '\U0000296F', - "dwangle;": '\U000029A6', - "dzcy;": '\U0000045F', - "dzigrarr;": '\U000027FF', - "eDDot;": '\U00002A77', - "eDot;": '\U00002251', - "eacute;": '\U000000E9', - "easter;": '\U00002A6E', - "ecaron;": '\U0000011B', - "ecir;": '\U00002256', - "ecirc;": '\U000000EA', - "ecolon;": '\U00002255', - "ecy;": '\U0000044D', - "edot;": '\U00000117', - "ee;": '\U00002147', - "efDot;": '\U00002252', - "efr;": '\U0001D522', - "eg;": '\U00002A9A', - "egrave;": '\U000000E8', - "egs;": '\U00002A96', - "egsdot;": '\U00002A98', - "el;": '\U00002A99', - "elinters;": '\U000023E7', - "ell;": '\U00002113', - "els;": '\U00002A95', - "elsdot;": '\U00002A97', - "emacr;": '\U00000113', - "empty;": '\U00002205', - "emptyset;": '\U00002205', - "emptyv;": '\U00002205', - "emsp;": '\U00002003', - "emsp13;": '\U00002004', - "emsp14;": '\U00002005', - "eng;": '\U0000014B', - "ensp;": '\U00002002', - "eogon;": '\U00000119', - "eopf;": '\U0001D556', - "epar;": '\U000022D5', - "eparsl;": '\U000029E3', - "eplus;": '\U00002A71', - "epsi;": '\U000003B5', - "epsilon;": '\U000003B5', - "epsiv;": '\U000003F5', - "eqcirc;": '\U00002256', - "eqcolon;": '\U00002255', - "eqsim;": '\U00002242', - "eqslantgtr;": '\U00002A96', - "eqslantless;": '\U00002A95', - "equals;": '\U0000003D', - "equest;": '\U0000225F', - "equiv;": '\U00002261', - "equivDD;": '\U00002A78', - "eqvparsl;": '\U000029E5', - "erDot;": '\U00002253', - "erarr;": '\U00002971', - "escr;": '\U0000212F', - "esdot;": '\U00002250', - "esim;": '\U00002242', - "eta;": '\U000003B7', - "eth;": '\U000000F0', - "euml;": '\U000000EB', - "euro;": '\U000020AC', - "excl;": '\U00000021', - "exist;": '\U00002203', - "expectation;": '\U00002130', - "exponentiale;": '\U00002147', - "fallingdotseq;": '\U00002252', - "fcy;": '\U00000444', - "female;": '\U00002640', - "ffilig;": '\U0000FB03', - "fflig;": '\U0000FB00', - "ffllig;": '\U0000FB04', - "ffr;": '\U0001D523', - "filig;": '\U0000FB01', - "flat;": '\U0000266D', - "fllig;": '\U0000FB02', - "fltns;": '\U000025B1', - "fnof;": '\U00000192', - "fopf;": '\U0001D557', - "forall;": '\U00002200', - "fork;": '\U000022D4', - "forkv;": '\U00002AD9', - "fpartint;": '\U00002A0D', - "frac12;": '\U000000BD', - "frac13;": '\U00002153', - "frac14;": '\U000000BC', - "frac15;": '\U00002155', - "frac16;": '\U00002159', - "frac18;": '\U0000215B', - "frac23;": '\U00002154', - "frac25;": '\U00002156', - "frac34;": '\U000000BE', - "frac35;": '\U00002157', - "frac38;": '\U0000215C', - "frac45;": '\U00002158', - "frac56;": '\U0000215A', - "frac58;": '\U0000215D', - "frac78;": '\U0000215E', - "frasl;": '\U00002044', - "frown;": '\U00002322', - "fscr;": '\U0001D4BB', - "gE;": '\U00002267', - "gEl;": '\U00002A8C', - "gacute;": '\U000001F5', - "gamma;": '\U000003B3', - "gammad;": '\U000003DD', - "gap;": '\U00002A86', - "gbreve;": '\U0000011F', - "gcirc;": '\U0000011D', - "gcy;": '\U00000433', - "gdot;": '\U00000121', - "ge;": '\U00002265', - "gel;": '\U000022DB', - "geq;": '\U00002265', - "geqq;": '\U00002267', - "geqslant;": '\U00002A7E', - "ges;": '\U00002A7E', - "gescc;": '\U00002AA9', - "gesdot;": '\U00002A80', - "gesdoto;": '\U00002A82', - "gesdotol;": '\U00002A84', - "gesles;": '\U00002A94', - "gfr;": '\U0001D524', - "gg;": '\U0000226B', - "ggg;": '\U000022D9', - "gimel;": '\U00002137', - "gjcy;": '\U00000453', - "gl;": '\U00002277', - "glE;": '\U00002A92', - "gla;": '\U00002AA5', - "glj;": '\U00002AA4', - "gnE;": '\U00002269', - "gnap;": '\U00002A8A', - "gnapprox;": '\U00002A8A', - "gne;": '\U00002A88', - "gneq;": '\U00002A88', - "gneqq;": '\U00002269', - "gnsim;": '\U000022E7', - "gopf;": '\U0001D558', - "grave;": '\U00000060', - "gscr;": '\U0000210A', - "gsim;": '\U00002273', - "gsime;": '\U00002A8E', - "gsiml;": '\U00002A90', - "gt;": '\U0000003E', - "gtcc;": '\U00002AA7', - "gtcir;": '\U00002A7A', - "gtdot;": '\U000022D7', - "gtlPar;": '\U00002995', - "gtquest;": '\U00002A7C', - "gtrapprox;": '\U00002A86', - "gtrarr;": '\U00002978', - "gtrdot;": '\U000022D7', - "gtreqless;": '\U000022DB', - "gtreqqless;": '\U00002A8C', - "gtrless;": '\U00002277', - "gtrsim;": '\U00002273', - "hArr;": '\U000021D4', - "hairsp;": '\U0000200A', - "half;": '\U000000BD', - "hamilt;": '\U0000210B', - "hardcy;": '\U0000044A', - "harr;": '\U00002194', - "harrcir;": '\U00002948', - "harrw;": '\U000021AD', - "hbar;": '\U0000210F', - "hcirc;": '\U00000125', - "hearts;": '\U00002665', - "heartsuit;": '\U00002665', - "hellip;": '\U00002026', - "hercon;": '\U000022B9', - "hfr;": '\U0001D525', - "hksearow;": '\U00002925', - "hkswarow;": '\U00002926', - "hoarr;": '\U000021FF', - "homtht;": '\U0000223B', - "hookleftarrow;": '\U000021A9', - "hookrightarrow;": '\U000021AA', - "hopf;": '\U0001D559', - "horbar;": '\U00002015', - "hscr;": '\U0001D4BD', - "hslash;": '\U0000210F', - "hstrok;": '\U00000127', - "hybull;": '\U00002043', - "hyphen;": '\U00002010', - "iacute;": '\U000000ED', - "ic;": '\U00002063', - "icirc;": '\U000000EE', - "icy;": '\U00000438', - "iecy;": '\U00000435', - "iexcl;": '\U000000A1', - "iff;": '\U000021D4', - "ifr;": '\U0001D526', - "igrave;": '\U000000EC', - "ii;": '\U00002148', - "iiiint;": '\U00002A0C', - "iiint;": '\U0000222D', - "iinfin;": '\U000029DC', - "iiota;": '\U00002129', - "ijlig;": '\U00000133', - "imacr;": '\U0000012B', - "image;": '\U00002111', - "imagline;": '\U00002110', - "imagpart;": '\U00002111', - "imath;": '\U00000131', - "imof;": '\U000022B7', - "imped;": '\U000001B5', - "in;": '\U00002208', - "incare;": '\U00002105', - "infin;": '\U0000221E', - "infintie;": '\U000029DD', - "inodot;": '\U00000131', - "int;": '\U0000222B', - "intcal;": '\U000022BA', - "integers;": '\U00002124', - "intercal;": '\U000022BA', - "intlarhk;": '\U00002A17', - "intprod;": '\U00002A3C', - "iocy;": '\U00000451', - "iogon;": '\U0000012F', - "iopf;": '\U0001D55A', - "iota;": '\U000003B9', - "iprod;": '\U00002A3C', - "iquest;": '\U000000BF', - "iscr;": '\U0001D4BE', - "isin;": '\U00002208', - "isinE;": '\U000022F9', - "isindot;": '\U000022F5', - "isins;": '\U000022F4', - "isinsv;": '\U000022F3', - "isinv;": '\U00002208', - "it;": '\U00002062', - "itilde;": '\U00000129', - "iukcy;": '\U00000456', - "iuml;": '\U000000EF', - "jcirc;": '\U00000135', - "jcy;": '\U00000439', - "jfr;": '\U0001D527', - "jmath;": '\U00000237', - "jopf;": '\U0001D55B', - "jscr;": '\U0001D4BF', - "jsercy;": '\U00000458', - "jukcy;": '\U00000454', - "kappa;": '\U000003BA', - "kappav;": '\U000003F0', - "kcedil;": '\U00000137', - "kcy;": '\U0000043A', - "kfr;": '\U0001D528', - "kgreen;": '\U00000138', - "khcy;": '\U00000445', - "kjcy;": '\U0000045C', - "kopf;": '\U0001D55C', - "kscr;": '\U0001D4C0', - "lAarr;": '\U000021DA', - "lArr;": '\U000021D0', - "lAtail;": '\U0000291B', - "lBarr;": '\U0000290E', - "lE;": '\U00002266', - "lEg;": '\U00002A8B', - "lHar;": '\U00002962', - "lacute;": '\U0000013A', - "laemptyv;": '\U000029B4', - "lagran;": '\U00002112', - "lambda;": '\U000003BB', - "lang;": '\U000027E8', - "langd;": '\U00002991', - "langle;": '\U000027E8', - "lap;": '\U00002A85', - "laquo;": '\U000000AB', - "larr;": '\U00002190', - "larrb;": '\U000021E4', - "larrbfs;": '\U0000291F', - "larrfs;": '\U0000291D', - "larrhk;": '\U000021A9', - "larrlp;": '\U000021AB', - "larrpl;": '\U00002939', - "larrsim;": '\U00002973', - "larrtl;": '\U000021A2', - "lat;": '\U00002AAB', - "latail;": '\U00002919', - "late;": '\U00002AAD', - "lbarr;": '\U0000290C', - "lbbrk;": '\U00002772', - "lbrace;": '\U0000007B', - "lbrack;": '\U0000005B', - "lbrke;": '\U0000298B', - "lbrksld;": '\U0000298F', - "lbrkslu;": '\U0000298D', - "lcaron;": '\U0000013E', - "lcedil;": '\U0000013C', - "lceil;": '\U00002308', - "lcub;": '\U0000007B', - "lcy;": '\U0000043B', - "ldca;": '\U00002936', - "ldquo;": '\U0000201C', - "ldquor;": '\U0000201E', - "ldrdhar;": '\U00002967', - "ldrushar;": '\U0000294B', - "ldsh;": '\U000021B2', - "le;": '\U00002264', - "leftarrow;": '\U00002190', - "leftarrowtail;": '\U000021A2', - "leftharpoondown;": '\U000021BD', - "leftharpoonup;": '\U000021BC', - "leftleftarrows;": '\U000021C7', - "leftrightarrow;": '\U00002194', - "leftrightarrows;": '\U000021C6', - "leftrightharpoons;": '\U000021CB', - "leftrightsquigarrow;": '\U000021AD', - "leftthreetimes;": '\U000022CB', - "leg;": '\U000022DA', - "leq;": '\U00002264', - "leqq;": '\U00002266', - "leqslant;": '\U00002A7D', - "les;": '\U00002A7D', - "lescc;": '\U00002AA8', - "lesdot;": '\U00002A7F', - "lesdoto;": '\U00002A81', - "lesdotor;": '\U00002A83', - "lesges;": '\U00002A93', - "lessapprox;": '\U00002A85', - "lessdot;": '\U000022D6', - "lesseqgtr;": '\U000022DA', - "lesseqqgtr;": '\U00002A8B', - "lessgtr;": '\U00002276', - "lesssim;": '\U00002272', - "lfisht;": '\U0000297C', - "lfloor;": '\U0000230A', - "lfr;": '\U0001D529', - "lg;": '\U00002276', - "lgE;": '\U00002A91', - "lhard;": '\U000021BD', - "lharu;": '\U000021BC', - "lharul;": '\U0000296A', - "lhblk;": '\U00002584', - "ljcy;": '\U00000459', - "ll;": '\U0000226A', - "llarr;": '\U000021C7', - "llcorner;": '\U0000231E', - "llhard;": '\U0000296B', - "lltri;": '\U000025FA', - "lmidot;": '\U00000140', - "lmoust;": '\U000023B0', - "lmoustache;": '\U000023B0', - "lnE;": '\U00002268', - "lnap;": '\U00002A89', - "lnapprox;": '\U00002A89', - "lne;": '\U00002A87', - "lneq;": '\U00002A87', - "lneqq;": '\U00002268', - "lnsim;": '\U000022E6', - "loang;": '\U000027EC', - "loarr;": '\U000021FD', - "lobrk;": '\U000027E6', - "longleftarrow;": '\U000027F5', - "longleftrightarrow;": '\U000027F7', - "longmapsto;": '\U000027FC', - "longrightarrow;": '\U000027F6', - "looparrowleft;": '\U000021AB', - "looparrowright;": '\U000021AC', - "lopar;": '\U00002985', - "lopf;": '\U0001D55D', - "loplus;": '\U00002A2D', - "lotimes;": '\U00002A34', - "lowast;": '\U00002217', - "lowbar;": '\U0000005F', - "loz;": '\U000025CA', - "lozenge;": '\U000025CA', - "lozf;": '\U000029EB', - "lpar;": '\U00000028', - "lparlt;": '\U00002993', - "lrarr;": '\U000021C6', - "lrcorner;": '\U0000231F', - "lrhar;": '\U000021CB', - "lrhard;": '\U0000296D', - "lrm;": '\U0000200E', - "lrtri;": '\U000022BF', - "lsaquo;": '\U00002039', - "lscr;": '\U0001D4C1', - "lsh;": '\U000021B0', - "lsim;": '\U00002272', - "lsime;": '\U00002A8D', - "lsimg;": '\U00002A8F', - "lsqb;": '\U0000005B', - "lsquo;": '\U00002018', - "lsquor;": '\U0000201A', - "lstrok;": '\U00000142', - "lt;": '\U0000003C', - "ltcc;": '\U00002AA6', - "ltcir;": '\U00002A79', - "ltdot;": '\U000022D6', - "lthree;": '\U000022CB', - "ltimes;": '\U000022C9', - "ltlarr;": '\U00002976', - "ltquest;": '\U00002A7B', - "ltrPar;": '\U00002996', - "ltri;": '\U000025C3', - "ltrie;": '\U000022B4', - "ltrif;": '\U000025C2', - "lurdshar;": '\U0000294A', - "luruhar;": '\U00002966', - "mDDot;": '\U0000223A', - "macr;": '\U000000AF', - "male;": '\U00002642', - "malt;": '\U00002720', - "maltese;": '\U00002720', - "map;": '\U000021A6', - "mapsto;": '\U000021A6', - "mapstodown;": '\U000021A7', - "mapstoleft;": '\U000021A4', - "mapstoup;": '\U000021A5', - "marker;": '\U000025AE', - "mcomma;": '\U00002A29', - "mcy;": '\U0000043C', - "mdash;": '\U00002014', - "measuredangle;": '\U00002221', - "mfr;": '\U0001D52A', - "mho;": '\U00002127', - "micro;": '\U000000B5', - "mid;": '\U00002223', - "midast;": '\U0000002A', - "midcir;": '\U00002AF0', - "middot;": '\U000000B7', - "minus;": '\U00002212', - "minusb;": '\U0000229F', - "minusd;": '\U00002238', - "minusdu;": '\U00002A2A', - "mlcp;": '\U00002ADB', - "mldr;": '\U00002026', - "mnplus;": '\U00002213', - "models;": '\U000022A7', - "mopf;": '\U0001D55E', - "mp;": '\U00002213', - "mscr;": '\U0001D4C2', - "mstpos;": '\U0000223E', - "mu;": '\U000003BC', - "multimap;": '\U000022B8', - "mumap;": '\U000022B8', - "nLeftarrow;": '\U000021CD', - "nLeftrightarrow;": '\U000021CE', - "nRightarrow;": '\U000021CF', - "nVDash;": '\U000022AF', - "nVdash;": '\U000022AE', - "nabla;": '\U00002207', - "nacute;": '\U00000144', - "nap;": '\U00002249', - "napos;": '\U00000149', - "napprox;": '\U00002249', - "natur;": '\U0000266E', - "natural;": '\U0000266E', - "naturals;": '\U00002115', - "nbsp;": '\U000000A0', - "ncap;": '\U00002A43', - "ncaron;": '\U00000148', - "ncedil;": '\U00000146', - "ncong;": '\U00002247', - "ncup;": '\U00002A42', - "ncy;": '\U0000043D', - "ndash;": '\U00002013', - "ne;": '\U00002260', - "neArr;": '\U000021D7', - "nearhk;": '\U00002924', - "nearr;": '\U00002197', - "nearrow;": '\U00002197', - "nequiv;": '\U00002262', - "nesear;": '\U00002928', - "nexist;": '\U00002204', - "nexists;": '\U00002204', - "nfr;": '\U0001D52B', - "nge;": '\U00002271', - "ngeq;": '\U00002271', - "ngsim;": '\U00002275', - "ngt;": '\U0000226F', - "ngtr;": '\U0000226F', - "nhArr;": '\U000021CE', - "nharr;": '\U000021AE', - "nhpar;": '\U00002AF2', - "ni;": '\U0000220B', - "nis;": '\U000022FC', - "nisd;": '\U000022FA', - "niv;": '\U0000220B', - "njcy;": '\U0000045A', - "nlArr;": '\U000021CD', - "nlarr;": '\U0000219A', - "nldr;": '\U00002025', - "nle;": '\U00002270', - "nleftarrow;": '\U0000219A', - "nleftrightarrow;": '\U000021AE', - "nleq;": '\U00002270', - "nless;": '\U0000226E', - "nlsim;": '\U00002274', - "nlt;": '\U0000226E', - "nltri;": '\U000022EA', - "nltrie;": '\U000022EC', - "nmid;": '\U00002224', - "nopf;": '\U0001D55F', - "not;": '\U000000AC', - "notin;": '\U00002209', - "notinva;": '\U00002209', - "notinvb;": '\U000022F7', - "notinvc;": '\U000022F6', - "notni;": '\U0000220C', - "notniva;": '\U0000220C', - "notnivb;": '\U000022FE', - "notnivc;": '\U000022FD', - "npar;": '\U00002226', - "nparallel;": '\U00002226', - "npolint;": '\U00002A14', - "npr;": '\U00002280', - "nprcue;": '\U000022E0', - "nprec;": '\U00002280', - "nrArr;": '\U000021CF', - "nrarr;": '\U0000219B', - "nrightarrow;": '\U0000219B', - "nrtri;": '\U000022EB', - "nrtrie;": '\U000022ED', - "nsc;": '\U00002281', - "nsccue;": '\U000022E1', - "nscr;": '\U0001D4C3', - "nshortmid;": '\U00002224', - "nshortparallel;": '\U00002226', - "nsim;": '\U00002241', - "nsime;": '\U00002244', - "nsimeq;": '\U00002244', - "nsmid;": '\U00002224', - "nspar;": '\U00002226', - "nsqsube;": '\U000022E2', - "nsqsupe;": '\U000022E3', - "nsub;": '\U00002284', - "nsube;": '\U00002288', - "nsubseteq;": '\U00002288', - "nsucc;": '\U00002281', - "nsup;": '\U00002285', - "nsupe;": '\U00002289', - "nsupseteq;": '\U00002289', - "ntgl;": '\U00002279', - "ntilde;": '\U000000F1', - "ntlg;": '\U00002278', - "ntriangleleft;": '\U000022EA', - "ntrianglelefteq;": '\U000022EC', - "ntriangleright;": '\U000022EB', - "ntrianglerighteq;": '\U000022ED', - "nu;": '\U000003BD', - "num;": '\U00000023', - "numero;": '\U00002116', - "numsp;": '\U00002007', - "nvDash;": '\U000022AD', - "nvHarr;": '\U00002904', - "nvdash;": '\U000022AC', - "nvinfin;": '\U000029DE', - "nvlArr;": '\U00002902', - "nvrArr;": '\U00002903', - "nwArr;": '\U000021D6', - "nwarhk;": '\U00002923', - "nwarr;": '\U00002196', - "nwarrow;": '\U00002196', - "nwnear;": '\U00002927', - "oS;": '\U000024C8', - "oacute;": '\U000000F3', - "oast;": '\U0000229B', - "ocir;": '\U0000229A', - "ocirc;": '\U000000F4', - "ocy;": '\U0000043E', - "odash;": '\U0000229D', - "odblac;": '\U00000151', - "odiv;": '\U00002A38', - "odot;": '\U00002299', - "odsold;": '\U000029BC', - "oelig;": '\U00000153', - "ofcir;": '\U000029BF', - "ofr;": '\U0001D52C', - "ogon;": '\U000002DB', - "ograve;": '\U000000F2', - "ogt;": '\U000029C1', - "ohbar;": '\U000029B5', - "ohm;": '\U000003A9', - "oint;": '\U0000222E', - "olarr;": '\U000021BA', - "olcir;": '\U000029BE', - "olcross;": '\U000029BB', - "oline;": '\U0000203E', - "olt;": '\U000029C0', - "omacr;": '\U0000014D', - "omega;": '\U000003C9', - "omicron;": '\U000003BF', - "omid;": '\U000029B6', - "ominus;": '\U00002296', - "oopf;": '\U0001D560', - "opar;": '\U000029B7', - "operp;": '\U000029B9', - "oplus;": '\U00002295', - "or;": '\U00002228', - "orarr;": '\U000021BB', - "ord;": '\U00002A5D', - "order;": '\U00002134', - "orderof;": '\U00002134', - "ordf;": '\U000000AA', - "ordm;": '\U000000BA', - "origof;": '\U000022B6', - "oror;": '\U00002A56', - "orslope;": '\U00002A57', - "orv;": '\U00002A5B', - "oscr;": '\U00002134', - "oslash;": '\U000000F8', - "osol;": '\U00002298', - "otilde;": '\U000000F5', - "otimes;": '\U00002297', - "otimesas;": '\U00002A36', - "ouml;": '\U000000F6', - "ovbar;": '\U0000233D', - "par;": '\U00002225', - "para;": '\U000000B6', - "parallel;": '\U00002225', - "parsim;": '\U00002AF3', - "parsl;": '\U00002AFD', - "part;": '\U00002202', - "pcy;": '\U0000043F', - "percnt;": '\U00000025', - "period;": '\U0000002E', - "permil;": '\U00002030', - "perp;": '\U000022A5', - "pertenk;": '\U00002031', - "pfr;": '\U0001D52D', - "phi;": '\U000003C6', - "phiv;": '\U000003D5', - "phmmat;": '\U00002133', - "phone;": '\U0000260E', - "pi;": '\U000003C0', - "pitchfork;": '\U000022D4', - "piv;": '\U000003D6', - "planck;": '\U0000210F', - "planckh;": '\U0000210E', - "plankv;": '\U0000210F', - "plus;": '\U0000002B', - "plusacir;": '\U00002A23', - "plusb;": '\U0000229E', - "pluscir;": '\U00002A22', - "plusdo;": '\U00002214', - "plusdu;": '\U00002A25', - "pluse;": '\U00002A72', - "plusmn;": '\U000000B1', - "plussim;": '\U00002A26', - "plustwo;": '\U00002A27', - "pm;": '\U000000B1', - "pointint;": '\U00002A15', - "popf;": '\U0001D561', - "pound;": '\U000000A3', - "pr;": '\U0000227A', - "prE;": '\U00002AB3', - "prap;": '\U00002AB7', - "prcue;": '\U0000227C', - "pre;": '\U00002AAF', - "prec;": '\U0000227A', - "precapprox;": '\U00002AB7', - "preccurlyeq;": '\U0000227C', - "preceq;": '\U00002AAF', - "precnapprox;": '\U00002AB9', - "precneqq;": '\U00002AB5', - "precnsim;": '\U000022E8', - "precsim;": '\U0000227E', - "prime;": '\U00002032', - "primes;": '\U00002119', - "prnE;": '\U00002AB5', - "prnap;": '\U00002AB9', - "prnsim;": '\U000022E8', - "prod;": '\U0000220F', - "profalar;": '\U0000232E', - "profline;": '\U00002312', - "profsurf;": '\U00002313', - "prop;": '\U0000221D', - "propto;": '\U0000221D', - "prsim;": '\U0000227E', - "prurel;": '\U000022B0', - "pscr;": '\U0001D4C5', - "psi;": '\U000003C8', - "puncsp;": '\U00002008', - "qfr;": '\U0001D52E', - "qint;": '\U00002A0C', - "qopf;": '\U0001D562', - "qprime;": '\U00002057', - "qscr;": '\U0001D4C6', - "quaternions;": '\U0000210D', - "quatint;": '\U00002A16', - "quest;": '\U0000003F', - "questeq;": '\U0000225F', - "quot;": '\U00000022', - "rAarr;": '\U000021DB', - "rArr;": '\U000021D2', - "rAtail;": '\U0000291C', - "rBarr;": '\U0000290F', - "rHar;": '\U00002964', - "racute;": '\U00000155', - "radic;": '\U0000221A', - "raemptyv;": '\U000029B3', - "rang;": '\U000027E9', - "rangd;": '\U00002992', - "range;": '\U000029A5', - "rangle;": '\U000027E9', - "raquo;": '\U000000BB', - "rarr;": '\U00002192', - "rarrap;": '\U00002975', - "rarrb;": '\U000021E5', - "rarrbfs;": '\U00002920', - "rarrc;": '\U00002933', - "rarrfs;": '\U0000291E', - "rarrhk;": '\U000021AA', - "rarrlp;": '\U000021AC', - "rarrpl;": '\U00002945', - "rarrsim;": '\U00002974', - "rarrtl;": '\U000021A3', - "rarrw;": '\U0000219D', - "ratail;": '\U0000291A', - "ratio;": '\U00002236', - "rationals;": '\U0000211A', - "rbarr;": '\U0000290D', - "rbbrk;": '\U00002773', - "rbrace;": '\U0000007D', - "rbrack;": '\U0000005D', - "rbrke;": '\U0000298C', - "rbrksld;": '\U0000298E', - "rbrkslu;": '\U00002990', - "rcaron;": '\U00000159', - "rcedil;": '\U00000157', - "rceil;": '\U00002309', - "rcub;": '\U0000007D', - "rcy;": '\U00000440', - "rdca;": '\U00002937', - "rdldhar;": '\U00002969', - "rdquo;": '\U0000201D', - "rdquor;": '\U0000201D', - "rdsh;": '\U000021B3', - "real;": '\U0000211C', - "realine;": '\U0000211B', - "realpart;": '\U0000211C', - "reals;": '\U0000211D', - "rect;": '\U000025AD', - "reg;": '\U000000AE', - "rfisht;": '\U0000297D', - "rfloor;": '\U0000230B', - "rfr;": '\U0001D52F', - "rhard;": '\U000021C1', - "rharu;": '\U000021C0', - "rharul;": '\U0000296C', - "rho;": '\U000003C1', - "rhov;": '\U000003F1', - "rightarrow;": '\U00002192', - "rightarrowtail;": '\U000021A3', - "rightharpoondown;": '\U000021C1', - "rightharpoonup;": '\U000021C0', - "rightleftarrows;": '\U000021C4', - "rightleftharpoons;": '\U000021CC', - "rightrightarrows;": '\U000021C9', - "rightsquigarrow;": '\U0000219D', - "rightthreetimes;": '\U000022CC', - "ring;": '\U000002DA', - "risingdotseq;": '\U00002253', - "rlarr;": '\U000021C4', - "rlhar;": '\U000021CC', - "rlm;": '\U0000200F', - "rmoust;": '\U000023B1', - "rmoustache;": '\U000023B1', - "rnmid;": '\U00002AEE', - "roang;": '\U000027ED', - "roarr;": '\U000021FE', - "robrk;": '\U000027E7', - "ropar;": '\U00002986', - "ropf;": '\U0001D563', - "roplus;": '\U00002A2E', - "rotimes;": '\U00002A35', - "rpar;": '\U00000029', - "rpargt;": '\U00002994', - "rppolint;": '\U00002A12', - "rrarr;": '\U000021C9', - "rsaquo;": '\U0000203A', - "rscr;": '\U0001D4C7', - "rsh;": '\U000021B1', - "rsqb;": '\U0000005D', - "rsquo;": '\U00002019', - "rsquor;": '\U00002019', - "rthree;": '\U000022CC', - "rtimes;": '\U000022CA', - "rtri;": '\U000025B9', - "rtrie;": '\U000022B5', - "rtrif;": '\U000025B8', - "rtriltri;": '\U000029CE', - "ruluhar;": '\U00002968', - "rx;": '\U0000211E', - "sacute;": '\U0000015B', - "sbquo;": '\U0000201A', - "sc;": '\U0000227B', - "scE;": '\U00002AB4', - "scap;": '\U00002AB8', - "scaron;": '\U00000161', - "sccue;": '\U0000227D', - "sce;": '\U00002AB0', - "scedil;": '\U0000015F', - "scirc;": '\U0000015D', - "scnE;": '\U00002AB6', - "scnap;": '\U00002ABA', - "scnsim;": '\U000022E9', - "scpolint;": '\U00002A13', - "scsim;": '\U0000227F', - "scy;": '\U00000441', - "sdot;": '\U000022C5', - "sdotb;": '\U000022A1', - "sdote;": '\U00002A66', - "seArr;": '\U000021D8', - "searhk;": '\U00002925', - "searr;": '\U00002198', - "searrow;": '\U00002198', - "sect;": '\U000000A7', - "semi;": '\U0000003B', - "seswar;": '\U00002929', - "setminus;": '\U00002216', - "setmn;": '\U00002216', - "sext;": '\U00002736', - "sfr;": '\U0001D530', - "sfrown;": '\U00002322', - "sharp;": '\U0000266F', - "shchcy;": '\U00000449', - "shcy;": '\U00000448', - "shortmid;": '\U00002223', - "shortparallel;": '\U00002225', - "shy;": '\U000000AD', - "sigma;": '\U000003C3', - "sigmaf;": '\U000003C2', - "sigmav;": '\U000003C2', - "sim;": '\U0000223C', - "simdot;": '\U00002A6A', - "sime;": '\U00002243', - "simeq;": '\U00002243', - "simg;": '\U00002A9E', - "simgE;": '\U00002AA0', - "siml;": '\U00002A9D', - "simlE;": '\U00002A9F', - "simne;": '\U00002246', - "simplus;": '\U00002A24', - "simrarr;": '\U00002972', - "slarr;": '\U00002190', - "smallsetminus;": '\U00002216', - "smashp;": '\U00002A33', - "smeparsl;": '\U000029E4', - "smid;": '\U00002223', - "smile;": '\U00002323', - "smt;": '\U00002AAA', - "smte;": '\U00002AAC', - "softcy;": '\U0000044C', - "sol;": '\U0000002F', - "solb;": '\U000029C4', - "solbar;": '\U0000233F', - "sopf;": '\U0001D564', - "spades;": '\U00002660', - "spadesuit;": '\U00002660', - "spar;": '\U00002225', - "sqcap;": '\U00002293', - "sqcup;": '\U00002294', - "sqsub;": '\U0000228F', - "sqsube;": '\U00002291', - "sqsubset;": '\U0000228F', - "sqsubseteq;": '\U00002291', - "sqsup;": '\U00002290', - "sqsupe;": '\U00002292', - "sqsupset;": '\U00002290', - "sqsupseteq;": '\U00002292', - "squ;": '\U000025A1', - "square;": '\U000025A1', - "squarf;": '\U000025AA', - "squf;": '\U000025AA', - "srarr;": '\U00002192', - "sscr;": '\U0001D4C8', - "ssetmn;": '\U00002216', - "ssmile;": '\U00002323', - "sstarf;": '\U000022C6', - "star;": '\U00002606', - "starf;": '\U00002605', - "straightepsilon;": '\U000003F5', - "straightphi;": '\U000003D5', - "strns;": '\U000000AF', - "sub;": '\U00002282', - "subE;": '\U00002AC5', - "subdot;": '\U00002ABD', - "sube;": '\U00002286', - "subedot;": '\U00002AC3', - "submult;": '\U00002AC1', - "subnE;": '\U00002ACB', - "subne;": '\U0000228A', - "subplus;": '\U00002ABF', - "subrarr;": '\U00002979', - "subset;": '\U00002282', - "subseteq;": '\U00002286', - "subseteqq;": '\U00002AC5', - "subsetneq;": '\U0000228A', - "subsetneqq;": '\U00002ACB', - "subsim;": '\U00002AC7', - "subsub;": '\U00002AD5', - "subsup;": '\U00002AD3', - "succ;": '\U0000227B', - "succapprox;": '\U00002AB8', - "succcurlyeq;": '\U0000227D', - "succeq;": '\U00002AB0', - "succnapprox;": '\U00002ABA', - "succneqq;": '\U00002AB6', - "succnsim;": '\U000022E9', - "succsim;": '\U0000227F', - "sum;": '\U00002211', - "sung;": '\U0000266A', - "sup;": '\U00002283', - "sup1;": '\U000000B9', - "sup2;": '\U000000B2', - "sup3;": '\U000000B3', - "supE;": '\U00002AC6', - "supdot;": '\U00002ABE', - "supdsub;": '\U00002AD8', - "supe;": '\U00002287', - "supedot;": '\U00002AC4', - "suphsol;": '\U000027C9', - "suphsub;": '\U00002AD7', - "suplarr;": '\U0000297B', - "supmult;": '\U00002AC2', - "supnE;": '\U00002ACC', - "supne;": '\U0000228B', - "supplus;": '\U00002AC0', - "supset;": '\U00002283', - "supseteq;": '\U00002287', - "supseteqq;": '\U00002AC6', - "supsetneq;": '\U0000228B', - "supsetneqq;": '\U00002ACC', - "supsim;": '\U00002AC8', - "supsub;": '\U00002AD4', - "supsup;": '\U00002AD6', - "swArr;": '\U000021D9', - "swarhk;": '\U00002926', - "swarr;": '\U00002199', - "swarrow;": '\U00002199', - "swnwar;": '\U0000292A', - "szlig;": '\U000000DF', - "target;": '\U00002316', - "tau;": '\U000003C4', - "tbrk;": '\U000023B4', - "tcaron;": '\U00000165', - "tcedil;": '\U00000163', - "tcy;": '\U00000442', - "tdot;": '\U000020DB', - "telrec;": '\U00002315', - "tfr;": '\U0001D531', - "there4;": '\U00002234', - "therefore;": '\U00002234', - "theta;": '\U000003B8', - "thetasym;": '\U000003D1', - "thetav;": '\U000003D1', - "thickapprox;": '\U00002248', - "thicksim;": '\U0000223C', - "thinsp;": '\U00002009', - "thkap;": '\U00002248', - "thksim;": '\U0000223C', - "thorn;": '\U000000FE', - "tilde;": '\U000002DC', - "times;": '\U000000D7', - "timesb;": '\U000022A0', - "timesbar;": '\U00002A31', - "timesd;": '\U00002A30', - "tint;": '\U0000222D', - "toea;": '\U00002928', - "top;": '\U000022A4', - "topbot;": '\U00002336', - "topcir;": '\U00002AF1', - "topf;": '\U0001D565', - "topfork;": '\U00002ADA', - "tosa;": '\U00002929', - "tprime;": '\U00002034', - "trade;": '\U00002122', - "triangle;": '\U000025B5', - "triangledown;": '\U000025BF', - "triangleleft;": '\U000025C3', - "trianglelefteq;": '\U000022B4', - "triangleq;": '\U0000225C', - "triangleright;": '\U000025B9', - "trianglerighteq;": '\U000022B5', - "tridot;": '\U000025EC', - "trie;": '\U0000225C', - "triminus;": '\U00002A3A', - "triplus;": '\U00002A39', - "trisb;": '\U000029CD', - "tritime;": '\U00002A3B', - "trpezium;": '\U000023E2', - "tscr;": '\U0001D4C9', - "tscy;": '\U00000446', - "tshcy;": '\U0000045B', - "tstrok;": '\U00000167', - "twixt;": '\U0000226C', - "twoheadleftarrow;": '\U0000219E', - "twoheadrightarrow;": '\U000021A0', - "uArr;": '\U000021D1', - "uHar;": '\U00002963', - "uacute;": '\U000000FA', - "uarr;": '\U00002191', - "ubrcy;": '\U0000045E', - "ubreve;": '\U0000016D', - "ucirc;": '\U000000FB', - "ucy;": '\U00000443', - "udarr;": '\U000021C5', - "udblac;": '\U00000171', - "udhar;": '\U0000296E', - "ufisht;": '\U0000297E', - "ufr;": '\U0001D532', - "ugrave;": '\U000000F9', - "uharl;": '\U000021BF', - "uharr;": '\U000021BE', - "uhblk;": '\U00002580', - "ulcorn;": '\U0000231C', - "ulcorner;": '\U0000231C', - "ulcrop;": '\U0000230F', - "ultri;": '\U000025F8', - "umacr;": '\U0000016B', - "uml;": '\U000000A8', - "uogon;": '\U00000173', - "uopf;": '\U0001D566', - "uparrow;": '\U00002191', - "updownarrow;": '\U00002195', - "upharpoonleft;": '\U000021BF', - "upharpoonright;": '\U000021BE', - "uplus;": '\U0000228E', - "upsi;": '\U000003C5', - "upsih;": '\U000003D2', - "upsilon;": '\U000003C5', - "upuparrows;": '\U000021C8', - "urcorn;": '\U0000231D', - "urcorner;": '\U0000231D', - "urcrop;": '\U0000230E', - "uring;": '\U0000016F', - "urtri;": '\U000025F9', - "uscr;": '\U0001D4CA', - "utdot;": '\U000022F0', - "utilde;": '\U00000169', - "utri;": '\U000025B5', - "utrif;": '\U000025B4', - "uuarr;": '\U000021C8', - "uuml;": '\U000000FC', - "uwangle;": '\U000029A7', - "vArr;": '\U000021D5', - "vBar;": '\U00002AE8', - "vBarv;": '\U00002AE9', - "vDash;": '\U000022A8', - "vangrt;": '\U0000299C', - "varepsilon;": '\U000003F5', - "varkappa;": '\U000003F0', - "varnothing;": '\U00002205', - "varphi;": '\U000003D5', - "varpi;": '\U000003D6', - "varpropto;": '\U0000221D', - "varr;": '\U00002195', - "varrho;": '\U000003F1', - "varsigma;": '\U000003C2', - "vartheta;": '\U000003D1', - "vartriangleleft;": '\U000022B2', - "vartriangleright;": '\U000022B3', - "vcy;": '\U00000432', - "vdash;": '\U000022A2', - "vee;": '\U00002228', - "veebar;": '\U000022BB', - "veeeq;": '\U0000225A', - "vellip;": '\U000022EE', - "verbar;": '\U0000007C', - "vert;": '\U0000007C', - "vfr;": '\U0001D533', - "vltri;": '\U000022B2', - "vopf;": '\U0001D567', - "vprop;": '\U0000221D', - "vrtri;": '\U000022B3', - "vscr;": '\U0001D4CB', - "vzigzag;": '\U0000299A', - "wcirc;": '\U00000175', - "wedbar;": '\U00002A5F', - "wedge;": '\U00002227', - "wedgeq;": '\U00002259', - "weierp;": '\U00002118', - "wfr;": '\U0001D534', - "wopf;": '\U0001D568', - "wp;": '\U00002118', - "wr;": '\U00002240', - "wreath;": '\U00002240', - "wscr;": '\U0001D4CC', - "xcap;": '\U000022C2', - "xcirc;": '\U000025EF', - "xcup;": '\U000022C3', - "xdtri;": '\U000025BD', - "xfr;": '\U0001D535', - "xhArr;": '\U000027FA', - "xharr;": '\U000027F7', - "xi;": '\U000003BE', - "xlArr;": '\U000027F8', - "xlarr;": '\U000027F5', - "xmap;": '\U000027FC', - "xnis;": '\U000022FB', - "xodot;": '\U00002A00', - "xopf;": '\U0001D569', - "xoplus;": '\U00002A01', - "xotime;": '\U00002A02', - "xrArr;": '\U000027F9', - "xrarr;": '\U000027F6', - "xscr;": '\U0001D4CD', - "xsqcup;": '\U00002A06', - "xuplus;": '\U00002A04', - "xutri;": '\U000025B3', - "xvee;": '\U000022C1', - "xwedge;": '\U000022C0', - "yacute;": '\U000000FD', - "yacy;": '\U0000044F', - "ycirc;": '\U00000177', - "ycy;": '\U0000044B', - "yen;": '\U000000A5', - "yfr;": '\U0001D536', - "yicy;": '\U00000457', - "yopf;": '\U0001D56A', - "yscr;": '\U0001D4CE', - "yucy;": '\U0000044E', - "yuml;": '\U000000FF', - "zacute;": '\U0000017A', - "zcaron;": '\U0000017E', - "zcy;": '\U00000437', - "zdot;": '\U0000017C', - "zeetrf;": '\U00002128', - "zeta;": '\U000003B6', - "zfr;": '\U0001D537', - "zhcy;": '\U00000436', - "zigrarr;": '\U000021DD', - "zopf;": '\U0001D56B', - "zscr;": '\U0001D4CF', - "zwj;": '\U0000200D', - "zwnj;": '\U0000200C', - "AElig": '\U000000C6', - "AMP": '\U00000026', - "Aacute": '\U000000C1', - "Acirc": '\U000000C2', - "Agrave": '\U000000C0', - "Aring": '\U000000C5', - "Atilde": '\U000000C3', - "Auml": '\U000000C4', - "COPY": '\U000000A9', - "Ccedil": '\U000000C7', - "ETH": '\U000000D0', - "Eacute": '\U000000C9', - "Ecirc": '\U000000CA', - "Egrave": '\U000000C8', - "Euml": '\U000000CB', - "GT": '\U0000003E', - "Iacute": '\U000000CD', - "Icirc": '\U000000CE', - "Igrave": '\U000000CC', - "Iuml": '\U000000CF', - "LT": '\U0000003C', - "Ntilde": '\U000000D1', - "Oacute": '\U000000D3', - "Ocirc": '\U000000D4', - "Ograve": '\U000000D2', - "Oslash": '\U000000D8', - "Otilde": '\U000000D5', - "Ouml": '\U000000D6', - "QUOT": '\U00000022', - "REG": '\U000000AE', - "THORN": '\U000000DE', - "Uacute": '\U000000DA', - "Ucirc": '\U000000DB', - "Ugrave": '\U000000D9', - "Uuml": '\U000000DC', - "Yacute": '\U000000DD', - "aacute": '\U000000E1', - "acirc": '\U000000E2', - "acute": '\U000000B4', - "aelig": '\U000000E6', - "agrave": '\U000000E0', - "amp": '\U00000026', - "aring": '\U000000E5', - "atilde": '\U000000E3', - "auml": '\U000000E4', - "brvbar": '\U000000A6', - "ccedil": '\U000000E7', - "cedil": '\U000000B8', - "cent": '\U000000A2', - "copy": '\U000000A9', - "curren": '\U000000A4', - "deg": '\U000000B0', - "divide": '\U000000F7', - "eacute": '\U000000E9', - "ecirc": '\U000000EA', - "egrave": '\U000000E8', - "eth": '\U000000F0', - "euml": '\U000000EB', - "frac12": '\U000000BD', - "frac14": '\U000000BC', - "frac34": '\U000000BE', - "gt": '\U0000003E', - "iacute": '\U000000ED', - "icirc": '\U000000EE', - "iexcl": '\U000000A1', - "igrave": '\U000000EC', - "iquest": '\U000000BF', - "iuml": '\U000000EF', - "laquo": '\U000000AB', - "lt": '\U0000003C', - "macr": '\U000000AF', - "micro": '\U000000B5', - "middot": '\U000000B7', - "nbsp": '\U000000A0', - "not": '\U000000AC', - "ntilde": '\U000000F1', - "oacute": '\U000000F3', - "ocirc": '\U000000F4', - "ograve": '\U000000F2', - "ordf": '\U000000AA', - "ordm": '\U000000BA', - "oslash": '\U000000F8', - "otilde": '\U000000F5', - "ouml": '\U000000F6', - "para": '\U000000B6', - "plusmn": '\U000000B1', - "pound": '\U000000A3', - "quot": '\U00000022', - "raquo": '\U000000BB', - "reg": '\U000000AE', - "sect": '\U000000A7', - "shy": '\U000000AD', - "sup1": '\U000000B9', - "sup2": '\U000000B2', - "sup3": '\U000000B3', - "szlig": '\U000000DF', - "thorn": '\U000000FE', - "times": '\U000000D7', - "uacute": '\U000000FA', - "ucirc": '\U000000FB', - "ugrave": '\U000000F9', - "uml": '\U000000A8', - "uuml": '\U000000FC', - "yacute": '\U000000FD', - "yen": '\U000000A5', - "yuml": '\U000000FF', -} - -// HTML entities that are two unicode codepoints. -var entity2 = map[string][2]rune{ - // TODO(nigeltao): Handle replacements that are wider than their names. - // "nLt;": {'\u226A', '\u20D2'}, - // "nGt;": {'\u226B', '\u20D2'}, - "NotEqualTilde;": {'\u2242', '\u0338'}, - "NotGreaterFullEqual;": {'\u2267', '\u0338'}, - "NotGreaterGreater;": {'\u226B', '\u0338'}, - "NotGreaterSlantEqual;": {'\u2A7E', '\u0338'}, - "NotHumpDownHump;": {'\u224E', '\u0338'}, - "NotHumpEqual;": {'\u224F', '\u0338'}, - "NotLeftTriangleBar;": {'\u29CF', '\u0338'}, - "NotLessLess;": {'\u226A', '\u0338'}, - "NotLessSlantEqual;": {'\u2A7D', '\u0338'}, - "NotNestedGreaterGreater;": {'\u2AA2', '\u0338'}, - "NotNestedLessLess;": {'\u2AA1', '\u0338'}, - "NotPrecedesEqual;": {'\u2AAF', '\u0338'}, - "NotRightTriangleBar;": {'\u29D0', '\u0338'}, - "NotSquareSubset;": {'\u228F', '\u0338'}, - "NotSquareSuperset;": {'\u2290', '\u0338'}, - "NotSubset;": {'\u2282', '\u20D2'}, - "NotSucceedsEqual;": {'\u2AB0', '\u0338'}, - "NotSucceedsTilde;": {'\u227F', '\u0338'}, - "NotSuperset;": {'\u2283', '\u20D2'}, - "ThickSpace;": {'\u205F', '\u200A'}, - "acE;": {'\u223E', '\u0333'}, - "bne;": {'\u003D', '\u20E5'}, - "bnequiv;": {'\u2261', '\u20E5'}, - "caps;": {'\u2229', '\uFE00'}, - "cups;": {'\u222A', '\uFE00'}, - "fjlig;": {'\u0066', '\u006A'}, - "gesl;": {'\u22DB', '\uFE00'}, - "gvertneqq;": {'\u2269', '\uFE00'}, - "gvnE;": {'\u2269', '\uFE00'}, - "lates;": {'\u2AAD', '\uFE00'}, - "lesg;": {'\u22DA', '\uFE00'}, - "lvertneqq;": {'\u2268', '\uFE00'}, - "lvnE;": {'\u2268', '\uFE00'}, - "nGg;": {'\u22D9', '\u0338'}, - "nGtv;": {'\u226B', '\u0338'}, - "nLl;": {'\u22D8', '\u0338'}, - "nLtv;": {'\u226A', '\u0338'}, - "nang;": {'\u2220', '\u20D2'}, - "napE;": {'\u2A70', '\u0338'}, - "napid;": {'\u224B', '\u0338'}, - "nbump;": {'\u224E', '\u0338'}, - "nbumpe;": {'\u224F', '\u0338'}, - "ncongdot;": {'\u2A6D', '\u0338'}, - "nedot;": {'\u2250', '\u0338'}, - "nesim;": {'\u2242', '\u0338'}, - "ngE;": {'\u2267', '\u0338'}, - "ngeqq;": {'\u2267', '\u0338'}, - "ngeqslant;": {'\u2A7E', '\u0338'}, - "nges;": {'\u2A7E', '\u0338'}, - "nlE;": {'\u2266', '\u0338'}, - "nleqq;": {'\u2266', '\u0338'}, - "nleqslant;": {'\u2A7D', '\u0338'}, - "nles;": {'\u2A7D', '\u0338'}, - "notinE;": {'\u22F9', '\u0338'}, - "notindot;": {'\u22F5', '\u0338'}, - "nparsl;": {'\u2AFD', '\u20E5'}, - "npart;": {'\u2202', '\u0338'}, - "npre;": {'\u2AAF', '\u0338'}, - "npreceq;": {'\u2AAF', '\u0338'}, - "nrarrc;": {'\u2933', '\u0338'}, - "nrarrw;": {'\u219D', '\u0338'}, - "nsce;": {'\u2AB0', '\u0338'}, - "nsubE;": {'\u2AC5', '\u0338'}, - "nsubset;": {'\u2282', '\u20D2'}, - "nsubseteqq;": {'\u2AC5', '\u0338'}, - "nsucceq;": {'\u2AB0', '\u0338'}, - "nsupE;": {'\u2AC6', '\u0338'}, - "nsupset;": {'\u2283', '\u20D2'}, - "nsupseteqq;": {'\u2AC6', '\u0338'}, - "nvap;": {'\u224D', '\u20D2'}, - "nvge;": {'\u2265', '\u20D2'}, - "nvgt;": {'\u003E', '\u20D2'}, - "nvle;": {'\u2264', '\u20D2'}, - "nvlt;": {'\u003C', '\u20D2'}, - "nvltrie;": {'\u22B4', '\u20D2'}, - "nvrtrie;": {'\u22B5', '\u20D2'}, - "nvsim;": {'\u223C', '\u20D2'}, - "race;": {'\u223D', '\u0331'}, - "smtes;": {'\u2AAC', '\uFE00'}, - "sqcaps;": {'\u2293', '\uFE00'}, - "sqcups;": {'\u2294', '\uFE00'}, - "varsubsetneq;": {'\u228A', '\uFE00'}, - "varsubsetneqq;": {'\u2ACB', '\uFE00'}, - "varsupsetneq;": {'\u228B', '\uFE00'}, - "varsupsetneqq;": {'\u2ACC', '\uFE00'}, - "vnsub;": {'\u2282', '\u20D2'}, - "vnsup;": {'\u2283', '\u20D2'}, - "vsubnE;": {'\u2ACB', '\uFE00'}, - "vsubne;": {'\u228A', '\uFE00'}, - "vsupnE;": {'\u2ACC', '\uFE00'}, - "vsupne;": {'\u228B', '\uFE00'}, -} diff --git a/vendor/golang.org/x/net/html/escape.go b/vendor/golang.org/x/net/html/escape.go deleted file mode 100644 index d8561396200..00000000000 --- a/vendor/golang.org/x/net/html/escape.go +++ /dev/null @@ -1,258 +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. - -package html - -import ( - "bytes" - "strings" - "unicode/utf8" -) - -// These replacements permit compatibility with old numeric entities that -// assumed Windows-1252 encoding. -// https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference -var replacementTable = [...]rune{ - '\u20AC', // First entry is what 0x80 should be replaced with. - '\u0081', - '\u201A', - '\u0192', - '\u201E', - '\u2026', - '\u2020', - '\u2021', - '\u02C6', - '\u2030', - '\u0160', - '\u2039', - '\u0152', - '\u008D', - '\u017D', - '\u008F', - '\u0090', - '\u2018', - '\u2019', - '\u201C', - '\u201D', - '\u2022', - '\u2013', - '\u2014', - '\u02DC', - '\u2122', - '\u0161', - '\u203A', - '\u0153', - '\u009D', - '\u017E', - '\u0178', // Last entry is 0x9F. - // 0x00->'\uFFFD' is handled programmatically. - // 0x0D->'\u000D' is a no-op. -} - -// unescapeEntity reads an entity like "<" from b[src:] and writes the -// corresponding "<" to b[dst:], returning the incremented dst and src cursors. -// Precondition: b[src] == '&' && dst <= src. -// attribute should be true if parsing an attribute value. -func unescapeEntity(b []byte, dst, src int, attribute bool) (dst1, src1 int) { - // https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference - - // i starts at 1 because we already know that s[0] == '&'. - i, s := 1, b[src:] - - if len(s) <= 1 { - b[dst] = b[src] - return dst + 1, src + 1 - } - - if s[i] == '#' { - if len(s) <= 3 { // We need to have at least "&#.". - b[dst] = b[src] - return dst + 1, src + 1 - } - i++ - c := s[i] - hex := false - if c == 'x' || c == 'X' { - hex = true - i++ - } - - x := '\x00' - for i < len(s) { - c = s[i] - i++ - if hex { - if '0' <= c && c <= '9' { - x = 16*x + rune(c) - '0' - continue - } else if 'a' <= c && c <= 'f' { - x = 16*x + rune(c) - 'a' + 10 - continue - } else if 'A' <= c && c <= 'F' { - x = 16*x + rune(c) - 'A' + 10 - continue - } - } else if '0' <= c && c <= '9' { - x = 10*x + rune(c) - '0' - continue - } - if c != ';' { - i-- - } - break - } - - if i <= 3 { // No characters matched. - b[dst] = b[src] - return dst + 1, src + 1 - } - - if 0x80 <= x && x <= 0x9F { - // Replace characters from Windows-1252 with UTF-8 equivalents. - x = replacementTable[x-0x80] - } else if x == 0 || (0xD800 <= x && x <= 0xDFFF) || x > 0x10FFFF { - // Replace invalid characters with the replacement character. - x = '\uFFFD' - } - - return dst + utf8.EncodeRune(b[dst:], x), src + i - } - - // Consume the maximum number of characters possible, with the - // consumed characters matching one of the named references. - - for i < len(s) { - c := s[i] - i++ - // Lower-cased characters are more common in entities, so we check for them first. - if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' { - continue - } - if c != ';' { - i-- - } - break - } - - entityName := string(s[1:i]) - if entityName == "" { - // No-op. - } else if attribute && entityName[len(entityName)-1] != ';' && len(s) > i && s[i] == '=' { - // No-op. - } else if x := entity[entityName]; x != 0 { - return dst + utf8.EncodeRune(b[dst:], x), src + i - } else if x := entity2[entityName]; x[0] != 0 { - dst1 := dst + utf8.EncodeRune(b[dst:], x[0]) - return dst1 + utf8.EncodeRune(b[dst1:], x[1]), src + i - } else if !attribute { - maxLen := len(entityName) - 1 - if maxLen > longestEntityWithoutSemicolon { - maxLen = longestEntityWithoutSemicolon - } - for j := maxLen; j > 1; j-- { - if x := entity[entityName[:j]]; x != 0 { - return dst + utf8.EncodeRune(b[dst:], x), src + j + 1 - } - } - } - - dst1, src1 = dst+i, src+i - copy(b[dst:dst1], b[src:src1]) - return dst1, src1 -} - -// unescape unescapes b's entities in-place, so that "a<b" becomes "a': - esc = ">" - case '"': - // """ is shorter than """. - esc = """ - case '\r': - esc = " " - default: - panic("unrecognized escape character") - } - s = s[i+1:] - if _, err := w.WriteString(esc); err != nil { - return err - } - i = strings.IndexAny(s, escapedChars) - } - _, err := w.WriteString(s) - return err -} - -// EscapeString escapes special characters like "<" to become "<". It -// escapes only five such characters: <, >, &, ' and ". -// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't -// always true. -func EscapeString(s string) string { - if strings.IndexAny(s, escapedChars) == -1 { - return s - } - var buf bytes.Buffer - escape(&buf, s) - return buf.String() -} - -// UnescapeString unescapes entities like "<" to become "<". It unescapes a -// larger range of entities than EscapeString escapes. For example, "á" -// unescapes to "á", as does "á" and "&xE1;". -// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't -// always true. -func UnescapeString(s string) string { - for _, c := range s { - if c == '&' { - return string(unescape([]byte(s), false)) - } - } - return s -} diff --git a/vendor/golang.org/x/net/html/foreign.go b/vendor/golang.org/x/net/html/foreign.go deleted file mode 100644 index d3b3844099b..00000000000 --- a/vendor/golang.org/x/net/html/foreign.go +++ /dev/null @@ -1,226 +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 html - -import ( - "strings" -) - -func adjustAttributeNames(aa []Attribute, nameMap map[string]string) { - for i := range aa { - if newName, ok := nameMap[aa[i].Key]; ok { - aa[i].Key = newName - } - } -} - -func adjustForeignAttributes(aa []Attribute) { - for i, a := range aa { - if a.Key == "" || a.Key[0] != 'x' { - continue - } - switch a.Key { - case "xlink:actuate", "xlink:arcrole", "xlink:href", "xlink:role", "xlink:show", - "xlink:title", "xlink:type", "xml:base", "xml:lang", "xml:space", "xmlns:xlink": - j := strings.Index(a.Key, ":") - aa[i].Namespace = a.Key[:j] - aa[i].Key = a.Key[j+1:] - } - } -} - -func htmlIntegrationPoint(n *Node) bool { - if n.Type != ElementNode { - return false - } - switch n.Namespace { - case "math": - if n.Data == "annotation-xml" { - for _, a := range n.Attr { - if a.Key == "encoding" { - val := strings.ToLower(a.Val) - if val == "text/html" || val == "application/xhtml+xml" { - return true - } - } - } - } - case "svg": - switch n.Data { - case "desc", "foreignObject", "title": - return true - } - } - return false -} - -func mathMLTextIntegrationPoint(n *Node) bool { - if n.Namespace != "math" { - return false - } - switch n.Data { - case "mi", "mo", "mn", "ms", "mtext": - return true - } - return false -} - -// Section 12.2.5.5. -var breakout = map[string]bool{ - "b": true, - "big": true, - "blockquote": true, - "body": true, - "br": true, - "center": true, - "code": true, - "dd": true, - "div": true, - "dl": true, - "dt": true, - "em": true, - "embed": true, - "h1": true, - "h2": true, - "h3": true, - "h4": true, - "h5": true, - "h6": true, - "head": true, - "hr": true, - "i": true, - "img": true, - "li": true, - "listing": true, - "menu": true, - "meta": true, - "nobr": true, - "ol": true, - "p": true, - "pre": true, - "ruby": true, - "s": true, - "small": true, - "span": true, - "strong": true, - "strike": true, - "sub": true, - "sup": true, - "table": true, - "tt": true, - "u": true, - "ul": true, - "var": true, -} - -// Section 12.2.5.5. -var svgTagNameAdjustments = map[string]string{ - "altglyph": "altGlyph", - "altglyphdef": "altGlyphDef", - "altglyphitem": "altGlyphItem", - "animatecolor": "animateColor", - "animatemotion": "animateMotion", - "animatetransform": "animateTransform", - "clippath": "clipPath", - "feblend": "feBlend", - "fecolormatrix": "feColorMatrix", - "fecomponenttransfer": "feComponentTransfer", - "fecomposite": "feComposite", - "feconvolvematrix": "feConvolveMatrix", - "fediffuselighting": "feDiffuseLighting", - "fedisplacementmap": "feDisplacementMap", - "fedistantlight": "feDistantLight", - "feflood": "feFlood", - "fefunca": "feFuncA", - "fefuncb": "feFuncB", - "fefuncg": "feFuncG", - "fefuncr": "feFuncR", - "fegaussianblur": "feGaussianBlur", - "feimage": "feImage", - "femerge": "feMerge", - "femergenode": "feMergeNode", - "femorphology": "feMorphology", - "feoffset": "feOffset", - "fepointlight": "fePointLight", - "fespecularlighting": "feSpecularLighting", - "fespotlight": "feSpotLight", - "fetile": "feTile", - "feturbulence": "feTurbulence", - "foreignobject": "foreignObject", - "glyphref": "glyphRef", - "lineargradient": "linearGradient", - "radialgradient": "radialGradient", - "textpath": "textPath", -} - -// Section 12.2.5.1 -var mathMLAttributeAdjustments = map[string]string{ - "definitionurl": "definitionURL", -} - -var svgAttributeAdjustments = map[string]string{ - "attributename": "attributeName", - "attributetype": "attributeType", - "basefrequency": "baseFrequency", - "baseprofile": "baseProfile", - "calcmode": "calcMode", - "clippathunits": "clipPathUnits", - "contentscripttype": "contentScriptType", - "contentstyletype": "contentStyleType", - "diffuseconstant": "diffuseConstant", - "edgemode": "edgeMode", - "externalresourcesrequired": "externalResourcesRequired", - "filterres": "filterRes", - "filterunits": "filterUnits", - "glyphref": "glyphRef", - "gradienttransform": "gradientTransform", - "gradientunits": "gradientUnits", - "kernelmatrix": "kernelMatrix", - "kernelunitlength": "kernelUnitLength", - "keypoints": "keyPoints", - "keysplines": "keySplines", - "keytimes": "keyTimes", - "lengthadjust": "lengthAdjust", - "limitingconeangle": "limitingConeAngle", - "markerheight": "markerHeight", - "markerunits": "markerUnits", - "markerwidth": "markerWidth", - "maskcontentunits": "maskContentUnits", - "maskunits": "maskUnits", - "numoctaves": "numOctaves", - "pathlength": "pathLength", - "patterncontentunits": "patternContentUnits", - "patterntransform": "patternTransform", - "patternunits": "patternUnits", - "pointsatx": "pointsAtX", - "pointsaty": "pointsAtY", - "pointsatz": "pointsAtZ", - "preservealpha": "preserveAlpha", - "preserveaspectratio": "preserveAspectRatio", - "primitiveunits": "primitiveUnits", - "refx": "refX", - "refy": "refY", - "repeatcount": "repeatCount", - "repeatdur": "repeatDur", - "requiredextensions": "requiredExtensions", - "requiredfeatures": "requiredFeatures", - "specularconstant": "specularConstant", - "specularexponent": "specularExponent", - "spreadmethod": "spreadMethod", - "startoffset": "startOffset", - "stddeviation": "stdDeviation", - "stitchtiles": "stitchTiles", - "surfacescale": "surfaceScale", - "systemlanguage": "systemLanguage", - "tablevalues": "tableValues", - "targetx": "targetX", - "targety": "targetY", - "textlength": "textLength", - "viewbox": "viewBox", - "viewtarget": "viewTarget", - "xchannelselector": "xChannelSelector", - "ychannelselector": "yChannelSelector", - "zoomandpan": "zoomAndPan", -} diff --git a/vendor/golang.org/x/net/html/node.go b/vendor/golang.org/x/net/html/node.go deleted file mode 100644 index 26b657aec83..00000000000 --- a/vendor/golang.org/x/net/html/node.go +++ /dev/null @@ -1,193 +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 html - -import ( - "golang.org/x/net/html/atom" -) - -// A NodeType is the type of a Node. -type NodeType uint32 - -const ( - ErrorNode NodeType = iota - TextNode - DocumentNode - ElementNode - CommentNode - DoctypeNode - scopeMarkerNode -) - -// Section 12.2.3.3 says "scope markers are inserted when entering applet -// elements, buttons, object elements, marquees, table cells, and table -// captions, and are used to prevent formatting from 'leaking'". -var scopeMarker = Node{Type: scopeMarkerNode} - -// A Node consists of a NodeType and some Data (tag name for element nodes, -// content for text) and are part of a tree of Nodes. Element nodes may also -// have a Namespace and contain a slice of Attributes. Data is unescaped, so -// that it looks like "a 0 { - return (*s)[i-1] - } - return nil -} - -// index returns the index of the top-most occurrence of n in the stack, or -1 -// if n is not present. -func (s *nodeStack) index(n *Node) int { - for i := len(*s) - 1; i >= 0; i-- { - if (*s)[i] == n { - return i - } - } - return -1 -} - -// insert inserts a node at the given index. -func (s *nodeStack) insert(i int, n *Node) { - (*s) = append(*s, nil) - copy((*s)[i+1:], (*s)[i:]) - (*s)[i] = n -} - -// remove removes a node from the stack. It is a no-op if n is not present. -func (s *nodeStack) remove(n *Node) { - i := s.index(n) - if i == -1 { - return - } - copy((*s)[i:], (*s)[i+1:]) - j := len(*s) - 1 - (*s)[j] = nil - *s = (*s)[:j] -} diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go deleted file mode 100644 index be4b2bf5aa9..00000000000 --- a/vendor/golang.org/x/net/html/parse.go +++ /dev/null @@ -1,2094 +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. - -package html - -import ( - "errors" - "fmt" - "io" - "strings" - - a "golang.org/x/net/html/atom" -) - -// A parser implements the HTML5 parsing algorithm: -// https://html.spec.whatwg.org/multipage/syntax.html#tree-construction -type parser struct { - // tokenizer provides the tokens for the parser. - tokenizer *Tokenizer - // tok is the most recently read token. - tok Token - // Self-closing tags like
are treated as start tags, except that - // hasSelfClosingToken is set while they are being processed. - hasSelfClosingToken bool - // doc is the document root element. - doc *Node - // The stack of open elements (section 12.2.3.2) and active formatting - // elements (section 12.2.3.3). - oe, afe nodeStack - // Element pointers (section 12.2.3.4). - head, form *Node - // Other parsing state flags (section 12.2.3.5). - scripting, framesetOK bool - // im is the current insertion mode. - im insertionMode - // originalIM is the insertion mode to go back to after completing a text - // or inTableText insertion mode. - originalIM insertionMode - // fosterParenting is whether new elements should be inserted according to - // the foster parenting rules (section 12.2.5.3). - fosterParenting bool - // quirks is whether the parser is operating in "quirks mode." - quirks bool - // fragment is whether the parser is parsing an HTML fragment. - fragment bool - // context is the context element when parsing an HTML fragment - // (section 12.4). - context *Node -} - -func (p *parser) top() *Node { - if n := p.oe.top(); n != nil { - return n - } - return p.doc -} - -// Stop tags for use in popUntil. These come from section 12.2.3.2. -var ( - defaultScopeStopTags = map[string][]a.Atom{ - "": {a.Applet, a.Caption, a.Html, a.Table, a.Td, a.Th, a.Marquee, a.Object, a.Template}, - "math": {a.AnnotationXml, a.Mi, a.Mn, a.Mo, a.Ms, a.Mtext}, - "svg": {a.Desc, a.ForeignObject, a.Title}, - } -) - -type scope int - -const ( - defaultScope scope = iota - listItemScope - buttonScope - tableScope - tableRowScope - tableBodyScope - selectScope -) - -// popUntil pops the stack of open elements at the highest element whose tag -// is in matchTags, provided there is no higher element in the scope's stop -// tags (as defined in section 12.2.3.2). It returns whether or not there was -// such an element. If there was not, popUntil leaves the stack unchanged. -// -// For example, the set of stop tags for table scope is: "html", "table". If -// the stack was: -// ["html", "body", "font", "table", "b", "i", "u"] -// then popUntil(tableScope, "font") would return false, but -// popUntil(tableScope, "i") would return true and the stack would become: -// ["html", "body", "font", "table", "b"] -// -// If an element's tag is in both the stop tags and matchTags, then the stack -// will be popped and the function returns true (provided, of course, there was -// no higher element in the stack that was also in the stop tags). For example, -// popUntil(tableScope, "table") returns true and leaves: -// ["html", "body", "font"] -func (p *parser) popUntil(s scope, matchTags ...a.Atom) bool { - if i := p.indexOfElementInScope(s, matchTags...); i != -1 { - p.oe = p.oe[:i] - return true - } - return false -} - -// indexOfElementInScope returns the index in p.oe of the highest element whose -// tag is in matchTags that is in scope. If no matching element is in scope, it -// returns -1. -func (p *parser) indexOfElementInScope(s scope, matchTags ...a.Atom) int { - for i := len(p.oe) - 1; i >= 0; i-- { - tagAtom := p.oe[i].DataAtom - if p.oe[i].Namespace == "" { - for _, t := range matchTags { - if t == tagAtom { - return i - } - } - switch s { - case defaultScope: - // No-op. - case listItemScope: - if tagAtom == a.Ol || tagAtom == a.Ul { - return -1 - } - case buttonScope: - if tagAtom == a.Button { - return -1 - } - case tableScope: - if tagAtom == a.Html || tagAtom == a.Table { - return -1 - } - case selectScope: - if tagAtom != a.Optgroup && tagAtom != a.Option { - return -1 - } - default: - panic("unreachable") - } - } - switch s { - case defaultScope, listItemScope, buttonScope: - for _, t := range defaultScopeStopTags[p.oe[i].Namespace] { - if t == tagAtom { - return -1 - } - } - } - } - return -1 -} - -// elementInScope is like popUntil, except that it doesn't modify the stack of -// open elements. -func (p *parser) elementInScope(s scope, matchTags ...a.Atom) bool { - return p.indexOfElementInScope(s, matchTags...) != -1 -} - -// clearStackToContext pops elements off the stack of open elements until a -// scope-defined element is found. -func (p *parser) clearStackToContext(s scope) { - for i := len(p.oe) - 1; i >= 0; i-- { - tagAtom := p.oe[i].DataAtom - switch s { - case tableScope: - if tagAtom == a.Html || tagAtom == a.Table { - p.oe = p.oe[:i+1] - return - } - case tableRowScope: - if tagAtom == a.Html || tagAtom == a.Tr { - p.oe = p.oe[:i+1] - return - } - case tableBodyScope: - if tagAtom == a.Html || tagAtom == a.Tbody || tagAtom == a.Tfoot || tagAtom == a.Thead { - p.oe = p.oe[:i+1] - return - } - default: - panic("unreachable") - } - } -} - -// generateImpliedEndTags pops nodes off the stack of open elements as long as -// the top node has a tag name of dd, dt, li, option, optgroup, p, rp, or rt. -// If exceptions are specified, nodes with that name will not be popped off. -func (p *parser) generateImpliedEndTags(exceptions ...string) { - var i int -loop: - for i = len(p.oe) - 1; i >= 0; i-- { - n := p.oe[i] - if n.Type == ElementNode { - switch n.DataAtom { - case a.Dd, a.Dt, a.Li, a.Option, a.Optgroup, a.P, a.Rp, a.Rt: - for _, except := range exceptions { - if n.Data == except { - break loop - } - } - continue - } - } - break - } - - p.oe = p.oe[:i+1] -} - -// addChild adds a child node n to the top element, and pushes n onto the stack -// of open elements if it is an element node. -func (p *parser) addChild(n *Node) { - if p.shouldFosterParent() { - p.fosterParent(n) - } else { - p.top().AppendChild(n) - } - - if n.Type == ElementNode { - p.oe = append(p.oe, n) - } -} - -// shouldFosterParent returns whether the next node to be added should be -// foster parented. -func (p *parser) shouldFosterParent() bool { - if p.fosterParenting { - switch p.top().DataAtom { - case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr: - return true - } - } - return false -} - -// fosterParent adds a child node according to the foster parenting rules. -// Section 12.2.5.3, "foster parenting". -func (p *parser) fosterParent(n *Node) { - var table, parent, prev *Node - var i int - for i = len(p.oe) - 1; i >= 0; i-- { - if p.oe[i].DataAtom == a.Table { - table = p.oe[i] - break - } - } - - if table == nil { - // The foster parent is the html element. - parent = p.oe[0] - } else { - parent = table.Parent - } - if parent == nil { - parent = p.oe[i-1] - } - - if table != nil { - prev = table.PrevSibling - } else { - prev = parent.LastChild - } - if prev != nil && prev.Type == TextNode && n.Type == TextNode { - prev.Data += n.Data - return - } - - parent.InsertBefore(n, table) -} - -// addText adds text to the preceding node if it is a text node, or else it -// calls addChild with a new text node. -func (p *parser) addText(text string) { - if text == "" { - return - } - - if p.shouldFosterParent() { - p.fosterParent(&Node{ - Type: TextNode, - Data: text, - }) - return - } - - t := p.top() - if n := t.LastChild; n != nil && n.Type == TextNode { - n.Data += text - return - } - p.addChild(&Node{ - Type: TextNode, - Data: text, - }) -} - -// addElement adds a child element based on the current token. -func (p *parser) addElement() { - p.addChild(&Node{ - Type: ElementNode, - DataAtom: p.tok.DataAtom, - Data: p.tok.Data, - Attr: p.tok.Attr, - }) -} - -// Section 12.2.3.3. -func (p *parser) addFormattingElement() { - tagAtom, attr := p.tok.DataAtom, p.tok.Attr - p.addElement() - - // Implement the Noah's Ark clause, but with three per family instead of two. - identicalElements := 0 -findIdenticalElements: - for i := len(p.afe) - 1; i >= 0; i-- { - n := p.afe[i] - if n.Type == scopeMarkerNode { - break - } - if n.Type != ElementNode { - continue - } - if n.Namespace != "" { - continue - } - if n.DataAtom != tagAtom { - continue - } - if len(n.Attr) != len(attr) { - continue - } - compareAttributes: - for _, t0 := range n.Attr { - for _, t1 := range attr { - if t0.Key == t1.Key && t0.Namespace == t1.Namespace && t0.Val == t1.Val { - // Found a match for this attribute, continue with the next attribute. - continue compareAttributes - } - } - // If we get here, there is no attribute that matches a. - // Therefore the element is not identical to the new one. - continue findIdenticalElements - } - - identicalElements++ - if identicalElements >= 3 { - p.afe.remove(n) - } - } - - p.afe = append(p.afe, p.top()) -} - -// Section 12.2.3.3. -func (p *parser) clearActiveFormattingElements() { - for { - n := p.afe.pop() - if len(p.afe) == 0 || n.Type == scopeMarkerNode { - return - } - } -} - -// Section 12.2.3.3. -func (p *parser) reconstructActiveFormattingElements() { - n := p.afe.top() - if n == nil { - return - } - if n.Type == scopeMarkerNode || p.oe.index(n) != -1 { - return - } - i := len(p.afe) - 1 - for n.Type != scopeMarkerNode && p.oe.index(n) == -1 { - if i == 0 { - i = -1 - break - } - i-- - n = p.afe[i] - } - for { - i++ - clone := p.afe[i].clone() - p.addChild(clone) - p.afe[i] = clone - if i == len(p.afe)-1 { - break - } - } -} - -// Section 12.2.4. -func (p *parser) acknowledgeSelfClosingTag() { - p.hasSelfClosingToken = false -} - -// An insertion mode (section 12.2.3.1) is the state transition function from -// a particular state in the HTML5 parser's state machine. It updates the -// parser's fields depending on parser.tok (where ErrorToken means EOF). -// It returns whether the token was consumed. -type insertionMode func(*parser) bool - -// setOriginalIM sets the insertion mode to return to after completing a text or -// inTableText insertion mode. -// Section 12.2.3.1, "using the rules for". -func (p *parser) setOriginalIM() { - if p.originalIM != nil { - panic("html: bad parser state: originalIM was set twice") - } - p.originalIM = p.im -} - -// Section 12.2.3.1, "reset the insertion mode". -func (p *parser) resetInsertionMode() { - for i := len(p.oe) - 1; i >= 0; i-- { - n := p.oe[i] - if i == 0 && p.context != nil { - n = p.context - } - - switch n.DataAtom { - case a.Select: - p.im = inSelectIM - case a.Td, a.Th: - p.im = inCellIM - case a.Tr: - p.im = inRowIM - case a.Tbody, a.Thead, a.Tfoot: - p.im = inTableBodyIM - case a.Caption: - p.im = inCaptionIM - case a.Colgroup: - p.im = inColumnGroupIM - case a.Table: - p.im = inTableIM - case a.Head: - p.im = inBodyIM - case a.Body: - p.im = inBodyIM - case a.Frameset: - p.im = inFramesetIM - case a.Html: - p.im = beforeHeadIM - default: - continue - } - return - } - p.im = inBodyIM -} - -const whitespace = " \t\r\n\f" - -// Section 12.2.5.4.1. -func initialIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case CommentToken: - p.doc.AppendChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - n, quirks := parseDoctype(p.tok.Data) - p.doc.AppendChild(n) - p.quirks = quirks - p.im = beforeHTMLIM - return true - } - p.quirks = true - p.im = beforeHTMLIM - return false -} - -// Section 12.2.5.4.2. -func beforeHTMLIM(p *parser) bool { - switch p.tok.Type { - case DoctypeToken: - // Ignore the token. - return true - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case StartTagToken: - if p.tok.DataAtom == a.Html { - p.addElement() - p.im = beforeHeadIM - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Head, a.Body, a.Html, a.Br: - p.parseImpliedToken(StartTagToken, a.Html, a.Html.String()) - return false - default: - // Ignore the token. - return true - } - case CommentToken: - p.doc.AppendChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - p.parseImpliedToken(StartTagToken, a.Html, a.Html.String()) - return false -} - -// Section 12.2.5.4.3. -func beforeHeadIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Head: - p.addElement() - p.head = p.top() - p.im = inHeadIM - return true - case a.Html: - return inBodyIM(p) - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Head, a.Body, a.Html, a.Br: - p.parseImpliedToken(StartTagToken, a.Head, a.Head.String()) - return false - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - } - - p.parseImpliedToken(StartTagToken, a.Head, a.Head.String()) - return false -} - -// Section 12.2.5.4.4. -func inHeadIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) < len(p.tok.Data) { - // Add the initial whitespace to the current node. - p.addText(p.tok.Data[:len(p.tok.Data)-len(s)]) - if s == "" { - return true - } - p.tok.Data = s - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta: - p.addElement() - p.oe.pop() - p.acknowledgeSelfClosingTag() - return true - case a.Script, a.Title, a.Noscript, a.Noframes, a.Style: - p.addElement() - p.setOriginalIM() - p.im = textIM - return true - case a.Head: - // Ignore the token. - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Head: - n := p.oe.pop() - if n.DataAtom != a.Head { - panic("html: bad parser state: element not found, in the in-head insertion mode") - } - p.im = afterHeadIM - return true - case a.Body, a.Html, a.Br: - p.parseImpliedToken(EndTagToken, a.Head, a.Head.String()) - return false - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - } - - p.parseImpliedToken(EndTagToken, a.Head, a.Head.String()) - return false -} - -// Section 12.2.5.4.6. -func afterHeadIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) < len(p.tok.Data) { - // Add the initial whitespace to the current node. - p.addText(p.tok.Data[:len(p.tok.Data)-len(s)]) - if s == "" { - return true - } - p.tok.Data = s - } - case StartTagToken: - switch p.tok.DataAtom { - case a.Html: - return inBodyIM(p) - case a.Body: - p.addElement() - p.framesetOK = false - p.im = inBodyIM - return true - case a.Frameset: - p.addElement() - p.im = inFramesetIM - return true - case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title: - p.oe = append(p.oe, p.head) - defer p.oe.remove(p.head) - return inHeadIM(p) - case a.Head: - // Ignore the token. - return true - } - case EndTagToken: - switch p.tok.DataAtom { - case a.Body, a.Html, a.Br: - // Drop down to creating an implied tag. - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - } - - p.parseImpliedToken(StartTagToken, a.Body, a.Body.String()) - p.framesetOK = true - return false -} - -// copyAttributes copies attributes of src not found on dst to dst. -func copyAttributes(dst *Node, src Token) { - if len(src.Attr) == 0 { - return - } - attr := map[string]string{} - for _, t := range dst.Attr { - attr[t.Key] = t.Val - } - for _, t := range src.Attr { - if _, ok := attr[t.Key]; !ok { - dst.Attr = append(dst.Attr, t) - attr[t.Key] = t.Val - } - } -} - -// Section 12.2.5.4.7. -func inBodyIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - d := p.tok.Data - switch n := p.oe.top(); n.DataAtom { - case a.Pre, a.Listing: - if n.FirstChild == nil { - // Ignore a newline at the start of a
 block.
-				if d != "" && d[0] == '\r' {
-					d = d[1:]
-				}
-				if d != "" && d[0] == '\n' {
-					d = d[1:]
-				}
-			}
-		}
-		d = strings.Replace(d, "\x00", "", -1)
-		if d == "" {
-			return true
-		}
-		p.reconstructActiveFormattingElements()
-		p.addText(d)
-		if p.framesetOK && strings.TrimLeft(d, whitespace) != "" {
-			// There were non-whitespace characters inserted.
-			p.framesetOK = false
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			copyAttributes(p.oe[0], p.tok)
-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
-			return inHeadIM(p)
-		case a.Body:
-			if len(p.oe) >= 2 {
-				body := p.oe[1]
-				if body.Type == ElementNode && body.DataAtom == a.Body {
-					p.framesetOK = false
-					copyAttributes(body, p.tok)
-				}
-			}
-		case a.Frameset:
-			if !p.framesetOK || len(p.oe) < 2 || p.oe[1].DataAtom != a.Body {
-				// Ignore the token.
-				return true
-			}
-			body := p.oe[1]
-			if body.Parent != nil {
-				body.Parent.RemoveChild(body)
-			}
-			p.oe = p.oe[:1]
-			p.addElement()
-			p.im = inFramesetIM
-			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Menu, a.Nav, a.Ol, a.P, a.Section, a.Summary, a.Ul:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-			p.popUntil(buttonScope, a.P)
-			switch n := p.top(); n.DataAtom {
-			case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-				p.oe.pop()
-			}
-			p.addElement()
-		case a.Pre, a.Listing:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-			// The newline, if any, will be dealt with by the TextToken case.
-			p.framesetOK = false
-		case a.Form:
-			if p.form == nil {
-				p.popUntil(buttonScope, a.P)
-				p.addElement()
-				p.form = p.top()
-			}
-		case a.Li:
-			p.framesetOK = false
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				node := p.oe[i]
-				switch node.DataAtom {
-				case a.Li:
-					p.oe = p.oe[:i]
-				case a.Address, a.Div, a.P:
-					continue
-				default:
-					if !isSpecialElement(node) {
-						continue
-					}
-				}
-				break
-			}
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Dd, a.Dt:
-			p.framesetOK = false
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				node := p.oe[i]
-				switch node.DataAtom {
-				case a.Dd, a.Dt:
-					p.oe = p.oe[:i]
-				case a.Address, a.Div, a.P:
-					continue
-				default:
-					if !isSpecialElement(node) {
-						continue
-					}
-				}
-				break
-			}
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Plaintext:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Button:
-			p.popUntil(defaultScope, a.Button)
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-		case a.A:
-			for i := len(p.afe) - 1; i >= 0 && p.afe[i].Type != scopeMarkerNode; i-- {
-				if n := p.afe[i]; n.Type == ElementNode && n.DataAtom == a.A {
-					p.inBodyEndTagFormatting(a.A)
-					p.oe.remove(n)
-					p.afe.remove(n)
-					break
-				}
-			}
-			p.reconstructActiveFormattingElements()
-			p.addFormattingElement()
-		case a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
-			p.reconstructActiveFormattingElements()
-			p.addFormattingElement()
-		case a.Nobr:
-			p.reconstructActiveFormattingElements()
-			if p.elementInScope(defaultScope, a.Nobr) {
-				p.inBodyEndTagFormatting(a.Nobr)
-				p.reconstructActiveFormattingElements()
-			}
-			p.addFormattingElement()
-		case a.Applet, a.Marquee, a.Object:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.afe = append(p.afe, &scopeMarker)
-			p.framesetOK = false
-		case a.Table:
-			if !p.quirks {
-				p.popUntil(buttonScope, a.P)
-			}
-			p.addElement()
-			p.framesetOK = false
-			p.im = inTableIM
-			return true
-		case a.Area, a.Br, a.Embed, a.Img, a.Input, a.Keygen, a.Wbr:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			if p.tok.DataAtom == a.Input {
-				for _, t := range p.tok.Attr {
-					if t.Key == "type" {
-						if strings.ToLower(t.Val) == "hidden" {
-							// Skip setting framesetOK = false
-							return true
-						}
-					}
-				}
-			}
-			p.framesetOK = false
-		case a.Param, a.Source, a.Track:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-		case a.Hr:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			p.framesetOK = false
-		case a.Image:
-			p.tok.DataAtom = a.Img
-			p.tok.Data = a.Img.String()
-			return false
-		case a.Isindex:
-			if p.form != nil {
-				// Ignore the token.
-				return true
-			}
-			action := ""
-			prompt := "This is a searchable index. Enter search keywords: "
-			attr := []Attribute{{Key: "name", Val: "isindex"}}
-			for _, t := range p.tok.Attr {
-				switch t.Key {
-				case "action":
-					action = t.Val
-				case "name":
-					// Ignore the attribute.
-				case "prompt":
-					prompt = t.Val
-				default:
-					attr = append(attr, t)
-				}
-			}
-			p.acknowledgeSelfClosingTag()
-			p.popUntil(buttonScope, a.P)
-			p.parseImpliedToken(StartTagToken, a.Form, a.Form.String())
-			if action != "" {
-				p.form.Attr = []Attribute{{Key: "action", Val: action}}
-			}
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(StartTagToken, a.Label, a.Label.String())
-			p.addText(prompt)
-			p.addChild(&Node{
-				Type:     ElementNode,
-				DataAtom: a.Input,
-				Data:     a.Input.String(),
-				Attr:     attr,
-			})
-			p.oe.pop()
-			p.parseImpliedToken(EndTagToken, a.Label, a.Label.String())
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(EndTagToken, a.Form, a.Form.String())
-		case a.Textarea:
-			p.addElement()
-			p.setOriginalIM()
-			p.framesetOK = false
-			p.im = textIM
-		case a.Xmp:
-			p.popUntil(buttonScope, a.P)
-			p.reconstructActiveFormattingElements()
-			p.framesetOK = false
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Iframe:
-			p.framesetOK = false
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Noembed, a.Noscript:
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-			p.im = inSelectIM
-			return true
-		case a.Optgroup, a.Option:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-		case a.Rp, a.Rt:
-			if p.elementInScope(defaultScope, a.Ruby) {
-				p.generateImpliedEndTags()
-			}
-			p.addElement()
-		case a.Math, a.Svg:
-			p.reconstructActiveFormattingElements()
-			if p.tok.DataAtom == a.Math {
-				adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
-			} else {
-				adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments)
-			}
-			adjustForeignAttributes(p.tok.Attr)
-			p.addElement()
-			p.top().Namespace = p.tok.Data
-			if p.hasSelfClosingToken {
-				p.oe.pop()
-				p.acknowledgeSelfClosingTag()
-			}
-			return true
-		case a.Caption, a.Col, a.Colgroup, a.Frame, a.Head, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			// Ignore the token.
-		default:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Body:
-			if p.elementInScope(defaultScope, a.Body) {
-				p.im = afterBodyIM
-			}
-		case a.Html:
-			if p.elementInScope(defaultScope, a.Body) {
-				p.parseImpliedToken(EndTagToken, a.Body, a.Body.String())
-				return false
-			}
-			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul:
-			p.popUntil(defaultScope, p.tok.DataAtom)
-		case a.Form:
-			node := p.form
-			p.form = nil
-			i := p.indexOfElementInScope(defaultScope, a.Form)
-			if node == nil || i == -1 || p.oe[i] != node {
-				// Ignore the token.
-				return true
-			}
-			p.generateImpliedEndTags()
-			p.oe.remove(node)
-		case a.P:
-			if !p.elementInScope(buttonScope, a.P) {
-				p.parseImpliedToken(StartTagToken, a.P, a.P.String())
-			}
-			p.popUntil(buttonScope, a.P)
-		case a.Li:
-			p.popUntil(listItemScope, a.Li)
-		case a.Dd, a.Dt:
-			p.popUntil(defaultScope, p.tok.DataAtom)
-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-			p.popUntil(defaultScope, a.H1, a.H2, a.H3, a.H4, a.H5, a.H6)
-		case a.A, a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.Nobr, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
-			p.inBodyEndTagFormatting(p.tok.DataAtom)
-		case a.Applet, a.Marquee, a.Object:
-			if p.popUntil(defaultScope, p.tok.DataAtom) {
-				p.clearActiveFormattingElements()
-			}
-		case a.Br:
-			p.tok.Type = StartTagToken
-			return false
-		default:
-			p.inBodyEndTagOther(p.tok.DataAtom)
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	}
-
-	return true
-}
-
-func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) {
-	// This is the "adoption agency" algorithm, described at
-	// https://html.spec.whatwg.org/multipage/syntax.html#adoptionAgency
-
-	// TODO: this is a fairly literal line-by-line translation of that algorithm.
-	// Once the code successfully parses the comprehensive test suite, we should
-	// refactor this code to be more idiomatic.
-
-	// Steps 1-4. The outer loop.
-	for i := 0; i < 8; i++ {
-		// Step 5. Find the formatting element.
-		var formattingElement *Node
-		for j := len(p.afe) - 1; j >= 0; j-- {
-			if p.afe[j].Type == scopeMarkerNode {
-				break
-			}
-			if p.afe[j].DataAtom == tagAtom {
-				formattingElement = p.afe[j]
-				break
-			}
-		}
-		if formattingElement == nil {
-			p.inBodyEndTagOther(tagAtom)
-			return
-		}
-		feIndex := p.oe.index(formattingElement)
-		if feIndex == -1 {
-			p.afe.remove(formattingElement)
-			return
-		}
-		if !p.elementInScope(defaultScope, tagAtom) {
-			// Ignore the tag.
-			return
-		}
-
-		// Steps 9-10. Find the furthest block.
-		var furthestBlock *Node
-		for _, e := range p.oe[feIndex:] {
-			if isSpecialElement(e) {
-				furthestBlock = e
-				break
-			}
-		}
-		if furthestBlock == nil {
-			e := p.oe.pop()
-			for e != formattingElement {
-				e = p.oe.pop()
-			}
-			p.afe.remove(e)
-			return
-		}
-
-		// Steps 11-12. Find the common ancestor and bookmark node.
-		commonAncestor := p.oe[feIndex-1]
-		bookmark := p.afe.index(formattingElement)
-
-		// Step 13. The inner loop. Find the lastNode to reparent.
-		lastNode := furthestBlock
-		node := furthestBlock
-		x := p.oe.index(node)
-		// Steps 13.1-13.2
-		for j := 0; j < 3; j++ {
-			// Step 13.3.
-			x--
-			node = p.oe[x]
-			// Step 13.4 - 13.5.
-			if p.afe.index(node) == -1 {
-				p.oe.remove(node)
-				continue
-			}
-			// Step 13.6.
-			if node == formattingElement {
-				break
-			}
-			// Step 13.7.
-			clone := node.clone()
-			p.afe[p.afe.index(node)] = clone
-			p.oe[p.oe.index(node)] = clone
-			node = clone
-			// Step 13.8.
-			if lastNode == furthestBlock {
-				bookmark = p.afe.index(node) + 1
-			}
-			// Step 13.9.
-			if lastNode.Parent != nil {
-				lastNode.Parent.RemoveChild(lastNode)
-			}
-			node.AppendChild(lastNode)
-			// Step 13.10.
-			lastNode = node
-		}
-
-		// Step 14. Reparent lastNode to the common ancestor,
-		// or for misnested table nodes, to the foster parent.
-		if lastNode.Parent != nil {
-			lastNode.Parent.RemoveChild(lastNode)
-		}
-		switch commonAncestor.DataAtom {
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			p.fosterParent(lastNode)
-		default:
-			commonAncestor.AppendChild(lastNode)
-		}
-
-		// Steps 15-17. Reparent nodes from the furthest block's children
-		// to a clone of the formatting element.
-		clone := formattingElement.clone()
-		reparentChildren(clone, furthestBlock)
-		furthestBlock.AppendChild(clone)
-
-		// Step 18. Fix up the list of active formatting elements.
-		if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark {
-			// Move the bookmark with the rest of the list.
-			bookmark--
-		}
-		p.afe.remove(formattingElement)
-		p.afe.insert(bookmark, clone)
-
-		// Step 19. Fix up the stack of open elements.
-		p.oe.remove(formattingElement)
-		p.oe.insert(p.oe.index(furthestBlock)+1, clone)
-	}
-}
-
-// inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM.
-// "Any other end tag" handling from 12.2.5.5 The rules for parsing tokens in foreign content
-// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inforeign
-func (p *parser) inBodyEndTagOther(tagAtom a.Atom) {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		if p.oe[i].DataAtom == tagAtom {
-			p.oe = p.oe[:i]
-			break
-		}
-		if isSpecialElement(p.oe[i]) {
-			break
-		}
-	}
-}
-
-// Section 12.2.5.4.8.
-func textIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		p.oe.pop()
-	case TextToken:
-		d := p.tok.Data
-		if n := p.oe.top(); n.DataAtom == a.Textarea && n.FirstChild == nil {
-			// Ignore a newline at the start of a -->
-#errors
-#document
-| 
-|   
-|   
-|     -->
-#errors
-#document
-| 
-|   
-|   
-|     
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-#document
-| 
-|   
-|   
-|     
-#errors
-Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element.
-Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element.
-Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element.
-Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element.
-Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element.
-Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element.
-Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element.
-Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element.
-Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element.
-Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element.
-Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element.
-Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element.
-Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element.
-Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element.
-Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element.
-Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element.
-Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element.
-Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element.
-Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element.
-Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element.
-Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element.
-Line: 1 Col: 130 Unexpected end tag (br). Treated as br element.
-Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 140 This element (img) has no end tag.
-Line: 1 Col: 148 Unexpected end tag (title). Ignored.
-Line: 1 Col: 155 Unexpected end tag (span). Ignored.
-Line: 1 Col: 163 Unexpected end tag (style). Ignored.
-Line: 1 Col: 172 Unexpected end tag (script). Ignored.
-Line: 1 Col: 180 Unexpected end tag (table). Ignored.
-Line: 1 Col: 185 Unexpected end tag (th). Ignored.
-Line: 1 Col: 190 Unexpected end tag (td). Ignored.
-Line: 1 Col: 195 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 203 This element (frame) has no end tag.
-Line: 1 Col: 210 This element (area) has no end tag.
-Line: 1 Col: 217 Unexpected end tag (link). Ignored.
-Line: 1 Col: 225 This element (param) has no end tag.
-Line: 1 Col: 230 This element (hr) has no end tag.
-Line: 1 Col: 238 This element (input) has no end tag.
-Line: 1 Col: 244 Unexpected end tag (col). Ignored.
-Line: 1 Col: 251 Unexpected end tag (base). Ignored.
-Line: 1 Col: 258 Unexpected end tag (meta). Ignored.
-Line: 1 Col: 269 This element (basefont) has no end tag.
-Line: 1 Col: 279 This element (bgsound) has no end tag.
-Line: 1 Col: 287 This element (embed) has no end tag.
-Line: 1 Col: 296 This element (spacer) has no end tag.
-Line: 1 Col: 300 Unexpected end tag (p). Ignored.
-Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag.
-Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag.
-Line: 1 Col: 320 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 339 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 355 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag.
-Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag.
-Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag.
-Line: 1 Col: 393 Unexpected end tag (dir). Ignored.
-Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag.
-Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag.
-Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag.
-Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag.
-Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag.
-Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag.
-Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag.
-Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 460 This element (wbr) has no end tag.
-Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag.
-Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag.
-Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag.
-Line: 1 Col: 513 Unexpected end tag (html). Ignored.
-Line: 1 Col: 513 Unexpected end tag (frameset). Ignored.
-Line: 1 Col: 520 Unexpected end tag (head). Ignored.
-Line: 1 Col: 529 Unexpected end tag (iframe). Ignored.
-Line: 1 Col: 537 This element (image) has no end tag.
-Line: 1 Col: 547 This element (isindex) has no end tag.
-Line: 1 Col: 557 Unexpected end tag (noembed). Ignored.
-Line: 1 Col: 568 Unexpected end tag (noframes). Ignored.
-Line: 1 Col: 579 Unexpected end tag (noscript). Ignored.
-Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored.
-Line: 1 Col: 599 Unexpected end tag (option). Ignored.
-Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored.
-Line: 1 Col: 622 Unexpected end tag (textarea). Ignored.
-#document
-| 
-|   
-|   
-|     
-|

- -#data -

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 diff --git a/vendor/github.com/klauspost/cpuid/testdata/getall.go b/vendor/github.com/klauspost/cpuid/testdata/getall.go deleted file mode 100644 index 9b51c7aa8d2..00000000000 --- a/vendor/github.com/klauspost/cpuid/testdata/getall.go +++ /dev/null @@ -1,77 +0,0 @@ -package main - -import ( - "archive/zip" - _ "bytes" - "fmt" - "golang.org/x/net/html" - "io" - "net/http" - "os" - "strings" -) - -// Download all CPUID dumps from http://users.atw.hu/instlatx64/ -func main() { - resp, err := http.Get("http://users.atw.hu/instlatx64/?") - if err != nil { - panic(err) - } - - node, err := html.Parse(resp.Body) - if err != nil { - panic(err) - } - - file, err := os.Create("cpuid_data.zip") - if err != nil { - panic(err) - } - defer file.Close() - gw := zip.NewWriter(file) - - var f func(*html.Node) - f = func(n *html.Node) { - if n.Type == html.ElementNode && n.Data == "a" { - for _, a := range n.Attr { - if a.Key == "href" { - err := ParseURL(a.Val, gw) - if err != nil { - panic(err) - } - break - } - } - } - for c := n.FirstChild; c != nil; c = c.NextSibling { - f(c) - } - } - - f(node) - err = gw.Close() - if err != nil { - panic(err) - } -} - -func ParseURL(s string, gw *zip.Writer) error { - if strings.Contains(s, "CPUID.txt") { - fmt.Println("Adding", "http://users.atw.hu/instlatx64/"+s) - resp, err := http.Get("http://users.atw.hu/instlatx64/" + s) - if err != nil { - fmt.Println("Error getting ", s, ":", err) - } - defer resp.Body.Close() - w, err := gw.Create(s) - if err != nil { - return err - } - - _, err = io.Copy(w, resp.Body) - if err != nil { - return err - } - } - return nil -} diff --git a/vendor/github.com/klauspost/crc32/README.md b/vendor/github.com/klauspost/crc32/README.md index 440541c7ff3..029625d3609 100644 --- a/vendor/github.com/klauspost/crc32/README.md +++ b/vendor/github.com/klauspost/crc32/README.md @@ -12,12 +12,15 @@ Install using `go get github.com/klauspost/crc32`. This library is based on Go 1 Replace `import "hash/crc32"` with `import "github.com/klauspost/crc32"` and you are good to go. # changes - +* Oct 20, 2016: Changes have been merged to upstream Go. Package updated to match. * Dec 4, 2015: Uses the "slice-by-8" trick more extensively, which gives a 1.5 to 2.5x speedup if assembler is unavailable. # performance +For *Go 1.7* performance is equivalent to the standard library. So if you use this package for Go 1.7 you can switch back. + + For IEEE tables (the most common), there is approximately a factor 10 speedup with "CLMUL" (Carryless multiplication) instruction: ``` benchmark old ns/op new ns/op delta diff --git a/vendor/github.com/klauspost/crc32/crc32.go b/vendor/github.com/klauspost/crc32/crc32.go index 8d6ba5d3dc5..8aa91b17e90 100644 --- a/vendor/github.com/klauspost/crc32/crc32.go +++ b/vendor/github.com/klauspost/crc32/crc32.go @@ -40,71 +40,96 @@ const ( // Table is a 256-word table representing the polynomial for efficient processing. type Table [256]uint32 +// This file makes use of functions implemented in architecture-specific files. +// The interface that they implement is as follows: +// +// // archAvailableIEEE reports whether an architecture-specific CRC32-IEEE +// // algorithm is available. +// archAvailableIEEE() bool +// +// // archInitIEEE initializes the architecture-specific CRC3-IEEE algorithm. +// // It can only be called if archAvailableIEEE() returns true. +// archInitIEEE() +// +// // archUpdateIEEE updates the given CRC32-IEEE. It can only be called if +// // archInitIEEE() was previously called. +// archUpdateIEEE(crc uint32, p []byte) uint32 +// +// // archAvailableCastagnoli reports whether an architecture-specific +// // CRC32-C algorithm is available. +// archAvailableCastagnoli() bool +// +// // archInitCastagnoli initializes the architecture-specific CRC32-C +// // algorithm. It can only be called if archAvailableCastagnoli() returns +// // true. +// archInitCastagnoli() +// +// // archUpdateCastagnoli updates the given CRC32-C. It can only be called +// // if archInitCastagnoli() was previously called. +// archUpdateCastagnoli(crc uint32, p []byte) uint32 + // castagnoliTable points to a lazily initialized Table for the Castagnoli // polynomial. MakeTable will always return this value when asked to make a // Castagnoli table so we can compare against it to find when the caller is // using this polynomial. var castagnoliTable *Table var castagnoliTable8 *slicing8Table +var castagnoliArchImpl bool +var updateCastagnoli func(crc uint32, p []byte) uint32 var castagnoliOnce sync.Once func castagnoliInit() { - castagnoliTable = makeTable(Castagnoli) - castagnoliTable8 = makeTable8(Castagnoli) + castagnoliTable = simpleMakeTable(Castagnoli) + castagnoliArchImpl = archAvailableCastagnoli() + + if castagnoliArchImpl { + archInitCastagnoli() + updateCastagnoli = archUpdateCastagnoli + } else { + // Initialize the slicing-by-8 table. + castagnoliTable8 = slicingMakeTable(Castagnoli) + updateCastagnoli = func(crc uint32, p []byte) uint32 { + return slicingUpdate(crc, castagnoliTable8, p) + } + } } // IEEETable is the table for the IEEE polynomial. -var IEEETable = makeTable(IEEE) - -// slicing8Table is array of 8 Tables -type slicing8Table [8]Table +var IEEETable = simpleMakeTable(IEEE) // ieeeTable8 is the slicing8Table for IEEE var ieeeTable8 *slicing8Table -var ieeeTable8Once sync.Once +var ieeeArchImpl bool +var updateIEEE func(crc uint32, p []byte) uint32 +var ieeeOnce sync.Once + +func ieeeInit() { + ieeeArchImpl = archAvailableIEEE() + + if ieeeArchImpl { + archInitIEEE() + updateIEEE = archUpdateIEEE + } else { + // Initialize the slicing-by-8 table. + ieeeTable8 = slicingMakeTable(IEEE) + updateIEEE = func(crc uint32, p []byte) uint32 { + return slicingUpdate(crc, ieeeTable8, p) + } + } +} // MakeTable returns a Table constructed from the specified polynomial. // The contents of this Table must not be modified. func MakeTable(poly uint32) *Table { switch poly { case IEEE: + ieeeOnce.Do(ieeeInit) return IEEETable case Castagnoli: castagnoliOnce.Do(castagnoliInit) return castagnoliTable } - return makeTable(poly) -} - -// makeTable returns the Table constructed from the specified polynomial. -func makeTable(poly uint32) *Table { - t := new(Table) - for i := 0; i < 256; i++ { - crc := uint32(i) - for j := 0; j < 8; j++ { - if crc&1 == 1 { - crc = (crc >> 1) ^ poly - } else { - crc >>= 1 - } - } - t[i] = crc - } - return t -} - -// makeTable8 returns slicing8Table constructed from the specified polynomial. -func makeTable8(poly uint32) *slicing8Table { - t := new(slicing8Table) - t[0] = *makeTable(poly) - for i := 0; i < 256; i++ { - crc := t[0][i] - for j := 1; j < 8; j++ { - crc = t[0][crc&0xFF] ^ (crc >> 8) - t[j][i] = crc - } - } - return t + return simpleMakeTable(poly) } // digest represents the partial evaluation of a checksum. @@ -116,7 +141,12 @@ type digest struct { // New creates a new hash.Hash32 computing the CRC-32 checksum // using the polynomial represented by the Table. // Its Sum method will lay the value out in big-endian byte order. -func New(tab *Table) hash.Hash32 { return &digest{0, tab} } +func New(tab *Table) hash.Hash32 { + if tab == IEEETable { + ieeeOnce.Do(ieeeInit) + } + return &digest{0, tab} +} // NewIEEE creates a new hash.Hash32 computing the CRC-32 checksum // using the IEEE polynomial. @@ -129,44 +159,32 @@ func (d *digest) BlockSize() int { return 1 } func (d *digest) Reset() { d.crc = 0 } -func update(crc uint32, tab *Table, p []byte) uint32 { - crc = ^crc - for _, v := range p { - crc = tab[byte(crc)^v] ^ (crc >> 8) - } - return ^crc -} - -// updateSlicingBy8 updates CRC using Slicing-by-8 -func updateSlicingBy8(crc uint32, tab *slicing8Table, p []byte) uint32 { - crc = ^crc - for len(p) > 8 { - crc ^= uint32(p[0]) | uint32(p[1])<<8 | uint32(p[2])<<16 | uint32(p[3])<<24 - crc = tab[0][p[7]] ^ tab[1][p[6]] ^ tab[2][p[5]] ^ tab[3][p[4]] ^ - tab[4][crc>>24] ^ tab[5][(crc>>16)&0xFF] ^ - tab[6][(crc>>8)&0xFF] ^ tab[7][crc&0xFF] - p = p[8:] - } - crc = ^crc - if len(p) == 0 { - return crc - } - return update(crc, &tab[0], p) -} - // Update returns the result of adding the bytes in p to the crc. func Update(crc uint32, tab *Table, p []byte) uint32 { - if tab == castagnoliTable { + switch tab { + case castagnoliTable: return updateCastagnoli(crc, p) - } - if tab == IEEETable { + case IEEETable: + // Unfortunately, because IEEETable is exported, IEEE may be used without a + // call to MakeTable. We have to make sure it gets initialized in that case. + ieeeOnce.Do(ieeeInit) return updateIEEE(crc, p) + default: + return simpleUpdate(crc, tab, p) } - return update(crc, tab, p) } func (d *digest) Write(p []byte) (n int, err error) { - d.crc = Update(d.crc, d.tab, p) + switch d.tab { + case castagnoliTable: + d.crc = updateCastagnoli(d.crc, p) + case IEEETable: + // We only create digest objects through New() which takes care of + // initialization in this case. + d.crc = updateIEEE(d.crc, p) + default: + d.crc = simpleUpdate(d.crc, d.tab, p) + } return len(p), nil } @@ -183,4 +201,7 @@ func Checksum(data []byte, tab *Table) uint32 { return Update(0, tab, data) } // ChecksumIEEE returns the CRC-32 checksum of data // using the IEEE polynomial. -func ChecksumIEEE(data []byte) uint32 { return updateIEEE(0, data) } +func ChecksumIEEE(data []byte) uint32 { + ieeeOnce.Do(ieeeInit) + return updateIEEE(0, data) +} diff --git a/vendor/github.com/klauspost/crc32/crc32_amd64.go b/vendor/github.com/klauspost/crc32/crc32_amd64.go index 4827128ea04..af2a0b844bd 100644 --- a/vendor/github.com/klauspost/crc32/crc32_amd64.go +++ b/vendor/github.com/klauspost/crc32/crc32_amd64.go @@ -4,8 +4,14 @@ // +build !appengine,!gccgo +// AMD64-specific hardware-assisted CRC32 algorithms. See crc32.go for a +// description of the interface that each architecture-specific file +// implements. + package crc32 +import "unsafe" + // This file contains the code to call the SSE 4.2 version of the Castagnoli // and IEEE CRC. @@ -15,11 +21,20 @@ func haveSSE41() bool func haveSSE42() bool func haveCLMUL() bool -// castagnoliSSE42 is defined in crc_amd64.s and uses the SSE4.2 CRC32 +// castagnoliSSE42 is defined in crc32_amd64.s and uses the SSE4.2 CRC32 // instruction. //go:noescape func castagnoliSSE42(crc uint32, p []byte) uint32 +// castagnoliSSE42Triple is defined in crc32_amd64.s and uses the SSE4.2 CRC32 +// instruction. +//go:noescape +func castagnoliSSE42Triple( + crcA, crcB, crcC uint32, + a, b, c []byte, + rounds uint32, +) (retA uint32, retB uint32, retC uint32) + // ieeeCLMUL is defined in crc_amd64.s and uses the PCLMULQDQ // instruction as well as SSE 4.1. //go:noescape @@ -28,35 +43,188 @@ func ieeeCLMUL(crc uint32, p []byte) uint32 var sse42 = haveSSE42() var useFastIEEE = haveCLMUL() && haveSSE41() -func updateCastagnoli(crc uint32, p []byte) uint32 { - if sse42 { - return castagnoliSSE42(crc, p) +const castagnoliK1 = 168 +const castagnoliK2 = 1344 + +type sse42Table [4]Table + +var castagnoliSSE42TableK1 *sse42Table +var castagnoliSSE42TableK2 *sse42Table + +func archAvailableCastagnoli() bool { + return sse42 +} + +func archInitCastagnoli() { + if !sse42 { + panic("arch-specific Castagnoli not available") } - // only use slicing-by-8 when input is >= 16 Bytes - if len(p) >= 16 { - return updateSlicingBy8(crc, castagnoliTable8, p) + castagnoliSSE42TableK1 = new(sse42Table) + castagnoliSSE42TableK2 = new(sse42Table) + // See description in updateCastagnoli. + // t[0][i] = CRC(i000, O) + // t[1][i] = CRC(0i00, O) + // t[2][i] = CRC(00i0, O) + // t[3][i] = CRC(000i, O) + // where O is a sequence of K zeros. + var tmp [castagnoliK2]byte + for b := 0; b < 4; b++ { + for i := 0; i < 256; i++ { + val := uint32(i) << uint32(b*8) + castagnoliSSE42TableK1[b][i] = castagnoliSSE42(val, tmp[:castagnoliK1]) + castagnoliSSE42TableK2[b][i] = castagnoliSSE42(val, tmp[:]) + } } - return update(crc, castagnoliTable, p) } -func updateIEEE(crc uint32, p []byte) uint32 { - if useFastIEEE && len(p) >= 64 { - left := len(p) & 15 - do := len(p) - left - crc = ^ieeeCLMUL(^crc, p[:do]) - if left > 0 { - crc = update(crc, IEEETable, p[do:]) +// castagnoliShift computes the CRC32-C of K1 or K2 zeroes (depending on the +// table given) with the given initial crc value. This corresponds to +// CRC(crc, O) in the description in updateCastagnoli. +func castagnoliShift(table *sse42Table, crc uint32) uint32 { + return table[3][crc>>24] ^ + table[2][(crc>>16)&0xFF] ^ + table[1][(crc>>8)&0xFF] ^ + table[0][crc&0xFF] +} + +func archUpdateCastagnoli(crc uint32, p []byte) uint32 { + if !sse42 { + panic("not available") + } + + // This method is inspired from the algorithm in Intel's white paper: + // "Fast CRC Computation for iSCSI Polynomial Using CRC32 Instruction" + // The same strategy of splitting the buffer in three is used but the + // combining calculation is different; the complete derivation is explained + // below. + // + // -- The basic idea -- + // + // The CRC32 instruction (available in SSE4.2) can process 8 bytes at a + // time. In recent Intel architectures the instruction takes 3 cycles; + // however the processor can pipeline up to three instructions if they + // don't depend on each other. + // + // Roughly this means that we can process three buffers in about the same + // time we can process one buffer. + // + // The idea is then to split the buffer in three, CRC the three pieces + // separately and then combine the results. + // + // Combining the results requires precomputed tables, so we must choose a + // fixed buffer length to optimize. The longer the length, the faster; but + // only buffers longer than this length will use the optimization. We choose + // two cutoffs and compute tables for both: + // - one around 512: 168*3=504 + // - one around 4KB: 1344*3=4032 + // + // -- The nitty gritty -- + // + // Let CRC(I, X) be the non-inverted CRC32-C of the sequence X (with + // initial non-inverted CRC I). This function has the following properties: + // (a) CRC(I, AB) = CRC(CRC(I, A), B) + // (b) CRC(I, A xor B) = CRC(I, A) xor CRC(0, B) + // + // Say we want to compute CRC(I, ABC) where A, B, C are three sequences of + // K bytes each, where K is a fixed constant. Let O be the sequence of K zero + // bytes. + // + // CRC(I, ABC) = CRC(I, ABO xor C) + // = CRC(I, ABO) xor CRC(0, C) + // = CRC(CRC(I, AB), O) xor CRC(0, C) + // = CRC(CRC(I, AO xor B), O) xor CRC(0, C) + // = CRC(CRC(I, AO) xor CRC(0, B), O) xor CRC(0, C) + // = CRC(CRC(CRC(I, A), O) xor CRC(0, B), O) xor CRC(0, C) + // + // The castagnoliSSE42Triple function can compute CRC(I, A), CRC(0, B), + // and CRC(0, C) efficiently. We just need to find a way to quickly compute + // CRC(uvwx, O) given a 4-byte initial value uvwx. We can precompute these + // values; since we can't have a 32-bit table, we break it up into four + // 8-bit tables: + // + // CRC(uvwx, O) = CRC(u000, O) xor + // CRC(0v00, O) xor + // CRC(00w0, O) xor + // CRC(000x, O) + // + // We can compute tables corresponding to the four terms for all 8-bit + // values. + + crc = ^crc + + // If a buffer is long enough to use the optimization, process the first few + // bytes to align the buffer to an 8 byte boundary (if necessary). + if len(p) >= castagnoliK1*3 { + delta := int(uintptr(unsafe.Pointer(&p[0])) & 7) + if delta != 0 { + delta = 8 - delta + crc = castagnoliSSE42(crc, p[:delta]) + p = p[delta:] } - return crc } - // only use slicing-by-8 when input is >= 16 Bytes - if len(p) >= 16 { - ieeeTable8Once.Do(func() { - ieeeTable8 = makeTable8(IEEE) - }) - return updateSlicingBy8(crc, ieeeTable8, p) + // Process 3*K2 at a time. + for len(p) >= castagnoliK2*3 { + // Compute CRC(I, A), CRC(0, B), and CRC(0, C). + crcA, crcB, crcC := castagnoliSSE42Triple( + crc, 0, 0, + p, p[castagnoliK2:], p[castagnoliK2*2:], + castagnoliK2/24) + + // CRC(I, AB) = CRC(CRC(I, A), O) xor CRC(0, B) + crcAB := castagnoliShift(castagnoliSSE42TableK2, crcA) ^ crcB + // CRC(I, ABC) = CRC(CRC(I, AB), O) xor CRC(0, C) + crc = castagnoliShift(castagnoliSSE42TableK2, crcAB) ^ crcC + p = p[castagnoliK2*3:] + } + + // Process 3*K1 at a time. + for len(p) >= castagnoliK1*3 { + // Compute CRC(I, A), CRC(0, B), and CRC(0, C). + crcA, crcB, crcC := castagnoliSSE42Triple( + crc, 0, 0, + p, p[castagnoliK1:], p[castagnoliK1*2:], + castagnoliK1/24) + + // CRC(I, AB) = CRC(CRC(I, A), O) xor CRC(0, B) + crcAB := castagnoliShift(castagnoliSSE42TableK1, crcA) ^ crcB + // CRC(I, ABC) = CRC(CRC(I, AB), O) xor CRC(0, C) + crc = castagnoliShift(castagnoliSSE42TableK1, crcAB) ^ crcC + p = p[castagnoliK1*3:] + } + + // Use the simple implementation for what's left. + crc = castagnoliSSE42(crc, p) + return ^crc +} + +func archAvailableIEEE() bool { + return useFastIEEE +} + +var archIeeeTable8 *slicing8Table + +func archInitIEEE() { + if !useFastIEEE { + panic("not available") } + // We still use slicing-by-8 for small buffers. + archIeeeTable8 = slicingMakeTable(IEEE) +} - return update(crc, IEEETable, p) +func archUpdateIEEE(crc uint32, p []byte) uint32 { + if !useFastIEEE { + panic("not available") + } + + if len(p) >= 64 { + left := len(p) & 15 + do := len(p) - left + crc = ^ieeeCLMUL(^crc, p[:do]) + p = p[do:] + } + if len(p) == 0 { + return crc + } + return slicingUpdate(crc, archIeeeTable8, p) } diff --git a/vendor/github.com/klauspost/crc32/crc32_amd64.s b/vendor/github.com/klauspost/crc32/crc32_amd64.s index 9bf05d89b8d..e8a7941ce75 100644 --- a/vendor/github.com/klauspost/crc32/crc32_amd64.s +++ b/vendor/github.com/klauspost/crc32/crc32_amd64.s @@ -7,54 +7,136 @@ #define NOSPLIT 4 #define RODATA 8 +// castagnoliSSE42 updates the (non-inverted) crc with the given buffer. +// // func castagnoliSSE42(crc uint32, p []byte) uint32 TEXT ·castagnoliSSE42(SB), NOSPLIT, $0 MOVL crc+0(FP), AX // CRC value MOVQ p+8(FP), SI // data pointer MOVQ p_len+16(FP), CX // len(p) - NOTL AX - - // If there's less than 8 bytes to process, we do it byte-by-byte. + // If there are fewer than 8 bytes to process, skip alignment. CMPQ CX, $8 - JL cleanup + JL less_than_8 - // Process individual bytes until the input is 8-byte aligned. -startup: MOVQ SI, BX ANDQ $7, BX JZ aligned + // Process the first few bytes to 8-byte align the input. + + // BX = 8 - BX. We need to process this many bytes to align. + SUBQ $1, BX + XORQ $7, BX + + BTQ $0, BX + JNC align_2 + CRC32B (SI), AX DECQ CX INCQ SI - JMP startup + +align_2: + BTQ $1, BX + JNC align_4 + + // CRC32W (SI), AX + BYTE $0x66; BYTE $0xf2; BYTE $0x0f; BYTE $0x38; BYTE $0xf1; BYTE $0x06 + + SUBQ $2, CX + ADDQ $2, SI + +align_4: + BTQ $2, BX + JNC aligned + + // CRC32L (SI), AX + BYTE $0xf2; BYTE $0x0f; BYTE $0x38; BYTE $0xf1; BYTE $0x06 + + SUBQ $4, CX + ADDQ $4, SI aligned: // The input is now 8-byte aligned and we can process 8-byte chunks. CMPQ CX, $8 - JL cleanup + JL less_than_8 CRC32Q (SI), AX ADDQ $8, SI SUBQ $8, CX JMP aligned -cleanup: - // We may have some bytes left over that we process one at a time. - CMPQ CX, $0 - JE done +less_than_8: + // We may have some bytes left over; process 4 bytes, then 2, then 1. + BTQ $2, CX + JNC less_than_4 + + // CRC32L (SI), AX + BYTE $0xf2; BYTE $0x0f; BYTE $0x38; BYTE $0xf1; BYTE $0x06 + ADDQ $4, SI + +less_than_4: + BTQ $1, CX + JNC less_than_2 + + // CRC32W (SI), AX + BYTE $0x66; BYTE $0xf2; BYTE $0x0f; BYTE $0x38; BYTE $0xf1; BYTE $0x06 + ADDQ $2, SI + +less_than_2: + BTQ $0, CX + JNC done CRC32B (SI), AX - INCQ SI - DECQ CX - JMP cleanup done: - NOTL AX MOVL AX, ret+32(FP) RET +// castagnoliSSE42Triple updates three (non-inverted) crcs with (24*rounds) +// bytes from each buffer. +// +// func castagnoliSSE42Triple( +// crc1, crc2, crc3 uint32, +// a, b, c []byte, +// rounds uint32, +// ) (retA uint32, retB uint32, retC uint32) +TEXT ·castagnoliSSE42Triple(SB), NOSPLIT, $0 + MOVL crcA+0(FP), AX + MOVL crcB+4(FP), CX + MOVL crcC+8(FP), DX + + MOVQ a+16(FP), R8 // data pointer + MOVQ b+40(FP), R9 // data pointer + MOVQ c+64(FP), R10 // data pointer + + MOVL rounds+88(FP), R11 + +loop: + CRC32Q (R8), AX + CRC32Q (R9), CX + CRC32Q (R10), DX + + CRC32Q 8(R8), AX + CRC32Q 8(R9), CX + CRC32Q 8(R10), DX + + CRC32Q 16(R8), AX + CRC32Q 16(R9), CX + CRC32Q 16(R10), DX + + ADDQ $24, R8 + ADDQ $24, R9 + ADDQ $24, R10 + + DECQ R11 + JNZ loop + + MOVL AX, retA+96(FP) + MOVL CX, retB+100(FP) + MOVL DX, retC+104(FP) + RET + // func haveSSE42() bool TEXT ·haveSSE42(SB), NOSPLIT, $0 XORQ AX, AX @@ -185,7 +267,7 @@ remain64: PXOR X5, X1 PXOR X4, X1 - // More than 16 bytes left? + // If there is less than 16 bytes left we are done CMPQ CX, $16 JB finish diff --git a/vendor/github.com/klauspost/crc32/crc32_amd64p32.go b/vendor/github.com/klauspost/crc32/crc32_amd64p32.go index 926473e7c0e..3222b06a5a0 100644 --- a/vendor/github.com/klauspost/crc32/crc32_amd64p32.go +++ b/vendor/github.com/klauspost/crc32/crc32_amd64p32.go @@ -9,32 +9,35 @@ package crc32 // This file contains the code to call the SSE 4.2 version of the Castagnoli // CRC. -// haveSSE42 is defined in crc_amd64p32.s and uses CPUID to test for SSE 4.2 +// haveSSE42 is defined in crc32_amd64p32.s and uses CPUID to test for SSE 4.2 // support. func haveSSE42() bool -// castagnoliSSE42 is defined in crc_amd64.s and uses the SSE4.2 CRC32 +// castagnoliSSE42 is defined in crc32_amd64p32.s and uses the SSE4.2 CRC32 // instruction. //go:noescape func castagnoliSSE42(crc uint32, p []byte) uint32 var sse42 = haveSSE42() -func updateCastagnoli(crc uint32, p []byte) uint32 { - if sse42 { - return castagnoliSSE42(crc, p) - } - return update(crc, castagnoliTable, p) +func archAvailableCastagnoli() bool { + return sse42 } -func updateIEEE(crc uint32, p []byte) uint32 { - // only use slicing-by-8 when input is >= 4KB - if len(p) >= 4096 { - ieeeTable8Once.Do(func() { - ieeeTable8 = makeTable8(IEEE) - }) - return updateSlicingBy8(crc, ieeeTable8, p) +func archInitCastagnoli() { + if !sse42 { + panic("not available") } + // No initialization necessary. +} - return update(crc, IEEETable, p) +func archUpdateCastagnoli(crc uint32, p []byte) uint32 { + if !sse42 { + panic("not available") + } + return castagnoliSSE42(crc, p) } + +func archAvailableIEEE() bool { return false } +func archInitIEEE() { panic("not available") } +func archUpdateIEEE(crc uint32, p []byte) uint32 { panic("not available") } diff --git a/vendor/github.com/klauspost/crc32/crc32_generic.go b/vendor/github.com/klauspost/crc32/crc32_generic.go index a53cf96a00b..abacbb663d4 100644 --- a/vendor/github.com/klauspost/crc32/crc32_generic.go +++ b/vendor/github.com/klauspost/crc32/crc32_generic.go @@ -2,28 +2,88 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !amd64,!amd64p32 appengine gccgo +// This file contains CRC32 algorithms that are not specific to any architecture +// and don't use hardware acceleration. +// +// The simple (and slow) CRC32 implementation only uses a 256*4 bytes table. +// +// The slicing-by-8 algorithm is a faster implementation that uses a bigger +// table (8*256*4 bytes). package crc32 -// This file contains the generic version of updateCastagnoli which does -// slicing-by-8, or uses the fallback for very small sizes. +// simpleMakeTable allocates and constructs a Table for the specified +// polynomial. The table is suitable for use with the simple algorithm +// (simpleUpdate). +func simpleMakeTable(poly uint32) *Table { + t := new(Table) + simplePopulateTable(poly, t) + return t +} + +// simplePopulateTable constructs a Table for the specified polynomial, suitable +// for use with simpleUpdate. +func simplePopulateTable(poly uint32, t *Table) { + for i := 0; i < 256; i++ { + crc := uint32(i) + for j := 0; j < 8; j++ { + if crc&1 == 1 { + crc = (crc >> 1) ^ poly + } else { + crc >>= 1 + } + } + t[i] = crc + } +} + +// simpleUpdate uses the simple algorithm to update the CRC, given a table that +// was previously computed using simpleMakeTable. +func simpleUpdate(crc uint32, tab *Table, p []byte) uint32 { + crc = ^crc + for _, v := range p { + crc = tab[byte(crc)^v] ^ (crc >> 8) + } + return ^crc +} + +// Use slicing-by-8 when payload >= this value. +const slicing8Cutoff = 16 -func updateCastagnoli(crc uint32, p []byte) uint32 { - // only use slicing-by-8 when input is >= 16 Bytes - if len(p) >= 16 { - return updateSlicingBy8(crc, castagnoliTable8, p) +// slicing8Table is array of 8 Tables, used by the slicing-by-8 algorithm. +type slicing8Table [8]Table + +// slicingMakeTable constructs a slicing8Table for the specified polynomial. The +// table is suitable for use with the slicing-by-8 algorithm (slicingUpdate). +func slicingMakeTable(poly uint32) *slicing8Table { + t := new(slicing8Table) + simplePopulateTable(poly, &t[0]) + for i := 0; i < 256; i++ { + crc := t[0][i] + for j := 1; j < 8; j++ { + crc = t[0][crc&0xFF] ^ (crc >> 8) + t[j][i] = crc + } } - return update(crc, castagnoliTable, p) + return t } -func updateIEEE(crc uint32, p []byte) uint32 { - // only use slicing-by-8 when input is >= 16 Bytes - if len(p) >= 16 { - ieeeTable8Once.Do(func() { - ieeeTable8 = makeTable8(IEEE) - }) - return updateSlicingBy8(crc, ieeeTable8, p) +// slicingUpdate uses the slicing-by-8 algorithm to update the CRC, given a +// table that was previously computed using slicingMakeTable. +func slicingUpdate(crc uint32, tab *slicing8Table, p []byte) uint32 { + if len(p) >= slicing8Cutoff { + crc = ^crc + for len(p) > 8 { + crc ^= uint32(p[0]) | uint32(p[1])<<8 | uint32(p[2])<<16 | uint32(p[3])<<24 + crc = tab[0][p[7]] ^ tab[1][p[6]] ^ tab[2][p[5]] ^ tab[3][p[4]] ^ + tab[4][crc>>24] ^ tab[5][(crc>>16)&0xFF] ^ + tab[6][(crc>>8)&0xFF] ^ tab[7][crc&0xFF] + p = p[8:] + } + crc = ^crc + } + if len(p) == 0 { + return crc } - return update(crc, IEEETable, p) + return simpleUpdate(crc, &tab[0], p) } diff --git a/vendor/github.com/klauspost/crc32/crc32_otherarch.go b/vendor/github.com/klauspost/crc32/crc32_otherarch.go new file mode 100644 index 00000000000..cc960764bce --- /dev/null +++ b/vendor/github.com/klauspost/crc32/crc32_otherarch.go @@ -0,0 +1,15 @@ +// 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 !amd64,!amd64p32,!s390x + +package crc32 + +func archAvailableIEEE() bool { return false } +func archInitIEEE() { panic("not available") } +func archUpdateIEEE(crc uint32, p []byte) uint32 { panic("not available") } + +func archAvailableCastagnoli() bool { return false } +func archInitCastagnoli() { panic("not available") } +func archUpdateCastagnoli(crc uint32, p []byte) uint32 { panic("not available") } diff --git a/vendor/github.com/klauspost/crc32/crc32_s390x.go b/vendor/github.com/klauspost/crc32/crc32_s390x.go new file mode 100644 index 00000000000..ce96f032819 --- /dev/null +++ b/vendor/github.com/klauspost/crc32/crc32_s390x.go @@ -0,0 +1,91 @@ +// 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 + +package crc32 + +const ( + vxMinLen = 64 + vxAlignMask = 15 // align to 16 bytes +) + +// hasVectorFacility reports whether the machine has the z/Architecture +// vector facility installed and enabled. +func hasVectorFacility() bool + +var hasVX = hasVectorFacility() + +// vectorizedCastagnoli implements CRC32 using vector instructions. +// It is defined in crc32_s390x.s. +//go:noescape +func vectorizedCastagnoli(crc uint32, p []byte) uint32 + +// vectorizedIEEE implements CRC32 using vector instructions. +// It is defined in crc32_s390x.s. +//go:noescape +func vectorizedIEEE(crc uint32, p []byte) uint32 + +func archAvailableCastagnoli() bool { + return hasVX +} + +var archCastagnoliTable8 *slicing8Table + +func archInitCastagnoli() { + if !hasVX { + panic("not available") + } + // We still use slicing-by-8 for small buffers. + archCastagnoliTable8 = slicingMakeTable(Castagnoli) +} + +// archUpdateCastagnoli calculates the checksum of p using +// vectorizedCastagnoli. +func archUpdateCastagnoli(crc uint32, p []byte) uint32 { + if !hasVX { + panic("not available") + } + // Use vectorized function if data length is above threshold. + if len(p) >= vxMinLen { + aligned := len(p) & ^vxAlignMask + crc = vectorizedCastagnoli(crc, p[:aligned]) + p = p[aligned:] + } + if len(p) == 0 { + return crc + } + return slicingUpdate(crc, archCastagnoliTable8, p) +} + +func archAvailableIEEE() bool { + return hasVX +} + +var archIeeeTable8 *slicing8Table + +func archInitIEEE() { + if !hasVX { + panic("not available") + } + // We still use slicing-by-8 for small buffers. + archIeeeTable8 = slicingMakeTable(IEEE) +} + +// archUpdateIEEE calculates the checksum of p using vectorizedIEEE. +func archUpdateIEEE(crc uint32, p []byte) uint32 { + if !hasVX { + panic("not available") + } + // Use vectorized function if data length is above threshold. + if len(p) >= vxMinLen { + aligned := len(p) & ^vxAlignMask + crc = vectorizedIEEE(crc, p[:aligned]) + p = p[aligned:] + } + if len(p) == 0 { + return crc + } + return slicingUpdate(crc, archIeeeTable8, p) +} diff --git a/vendor/github.com/klauspost/crc32/crc32_s390x.s b/vendor/github.com/klauspost/crc32/crc32_s390x.s new file mode 100644 index 00000000000..e980ca29d6d --- /dev/null +++ b/vendor/github.com/klauspost/crc32/crc32_s390x.s @@ -0,0 +1,249 @@ +// 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 + +#include "textflag.h" + +// Vector register range containing CRC-32 constants + +#define CONST_PERM_LE2BE V9 +#define CONST_R2R1 V10 +#define CONST_R4R3 V11 +#define CONST_R5 V12 +#define CONST_RU_POLY V13 +#define CONST_CRC_POLY V14 + +// The CRC-32 constant block contains reduction constants to fold and +// process particular chunks of the input data stream in parallel. +// +// Note that the constant definitions below are extended in order to compute +// intermediate results with a single VECTOR GALOIS FIELD MULTIPLY instruction. +// The rightmost doubleword can be 0 to prevent contribution to the result or +// can be multiplied by 1 to perform an XOR without the need for a separate +// VECTOR EXCLUSIVE OR instruction. +// +// The polynomials used are bit-reflected: +// +// IEEE: P'(x) = 0x0edb88320 +// Castagnoli: P'(x) = 0x082f63b78 + +// IEEE polynomial constants +DATA ·crcleconskp+0(SB)/8, $0x0F0E0D0C0B0A0908 // LE-to-BE mask +DATA ·crcleconskp+8(SB)/8, $0x0706050403020100 +DATA ·crcleconskp+16(SB)/8, $0x00000001c6e41596 // R2 +DATA ·crcleconskp+24(SB)/8, $0x0000000154442bd4 // R1 +DATA ·crcleconskp+32(SB)/8, $0x00000000ccaa009e // R4 +DATA ·crcleconskp+40(SB)/8, $0x00000001751997d0 // R3 +DATA ·crcleconskp+48(SB)/8, $0x0000000000000000 +DATA ·crcleconskp+56(SB)/8, $0x0000000163cd6124 // R5 +DATA ·crcleconskp+64(SB)/8, $0x0000000000000000 +DATA ·crcleconskp+72(SB)/8, $0x00000001F7011641 // u' +DATA ·crcleconskp+80(SB)/8, $0x0000000000000000 +DATA ·crcleconskp+88(SB)/8, $0x00000001DB710641 // P'(x) << 1 + +GLOBL ·crcleconskp(SB), RODATA, $144 + +// Castagonli Polynomial constants +DATA ·crccleconskp+0(SB)/8, $0x0F0E0D0C0B0A0908 // LE-to-BE mask +DATA ·crccleconskp+8(SB)/8, $0x0706050403020100 +DATA ·crccleconskp+16(SB)/8, $0x000000009e4addf8 // R2 +DATA ·crccleconskp+24(SB)/8, $0x00000000740eef02 // R1 +DATA ·crccleconskp+32(SB)/8, $0x000000014cd00bd6 // R4 +DATA ·crccleconskp+40(SB)/8, $0x00000000f20c0dfe // R3 +DATA ·crccleconskp+48(SB)/8, $0x0000000000000000 +DATA ·crccleconskp+56(SB)/8, $0x00000000dd45aab8 // R5 +DATA ·crccleconskp+64(SB)/8, $0x0000000000000000 +DATA ·crccleconskp+72(SB)/8, $0x00000000dea713f1 // u' +DATA ·crccleconskp+80(SB)/8, $0x0000000000000000 +DATA ·crccleconskp+88(SB)/8, $0x0000000105ec76f0 // P'(x) << 1 + +GLOBL ·crccleconskp(SB), RODATA, $144 + +// func hasVectorFacility() bool +TEXT ·hasVectorFacility(SB), NOSPLIT, $24-1 + MOVD $x-24(SP), R1 + XC $24, 0(R1), 0(R1) // clear the storage + MOVD $2, R0 // R0 is the number of double words stored -1 + WORD $0xB2B01000 // STFLE 0(R1) + XOR R0, R0 // reset the value of R0 + MOVBZ z-8(SP), R1 + AND $0x40, R1 + BEQ novector + +vectorinstalled: + // check if the vector instruction has been enabled + VLEIB $0, $0xF, V16 + VLGVB $0, V16, R1 + CMPBNE R1, $0xF, novector + MOVB $1, ret+0(FP) // have vx + RET + +novector: + MOVB $0, ret+0(FP) // no vx + RET + +// The CRC-32 function(s) use these calling conventions: +// +// Parameters: +// +// R2: Initial CRC value, typically ~0; and final CRC (return) value. +// R3: Input buffer pointer, performance might be improved if the +// buffer is on a doubleword boundary. +// R4: Length of the buffer, must be 64 bytes or greater. +// +// Register usage: +// +// R5: CRC-32 constant pool base pointer. +// V0: Initial CRC value and intermediate constants and results. +// V1..V4: Data for CRC computation. +// V5..V8: Next data chunks that are fetched from the input buffer. +// +// V9..V14: CRC-32 constants. + +// func vectorizedIEEE(crc uint32, p []byte) uint32 +TEXT ·vectorizedIEEE(SB), NOSPLIT, $0 + MOVWZ crc+0(FP), R2 // R2 stores the CRC value + MOVD p+8(FP), R3 // data pointer + MOVD p_len+16(FP), R4 // len(p) + + MOVD $·crcleconskp(SB), R5 + BR vectorizedBody<>(SB) + +// func vectorizedCastagnoli(crc uint32, p []byte) uint32 +TEXT ·vectorizedCastagnoli(SB), NOSPLIT, $0 + MOVWZ crc+0(FP), R2 // R2 stores the CRC value + MOVD p+8(FP), R3 // data pointer + MOVD p_len+16(FP), R4 // len(p) + + // R5: crc-32 constant pool base pointer, constant is used to reduce crc + MOVD $·crccleconskp(SB), R5 + BR vectorizedBody<>(SB) + +TEXT vectorizedBody<>(SB), NOSPLIT, $0 + XOR $0xffffffff, R2 // NOTW R2 + VLM 0(R5), CONST_PERM_LE2BE, CONST_CRC_POLY + + // Load the initial CRC value into the rightmost word of V0 + VZERO V0 + VLVGF $3, R2, V0 + + // Crash if the input size is less than 64-bytes. + CMP R4, $64 + BLT crash + + // Load a 64-byte data chunk and XOR with CRC + VLM 0(R3), V1, V4 // 64-bytes into V1..V4 + + // Reflect the data if the CRC operation is in the bit-reflected domain + VPERM V1, V1, CONST_PERM_LE2BE, V1 + VPERM V2, V2, CONST_PERM_LE2BE, V2 + VPERM V3, V3, CONST_PERM_LE2BE, V3 + VPERM V4, V4, CONST_PERM_LE2BE, V4 + + VX V0, V1, V1 // V1 ^= CRC + ADD $64, R3 // BUF = BUF + 64 + ADD $(-64), R4 + + // Check remaining buffer size and jump to proper folding method + CMP R4, $64 + BLT less_than_64bytes + +fold_64bytes_loop: + // Load the next 64-byte data chunk into V5 to V8 + VLM 0(R3), V5, V8 + VPERM V5, V5, CONST_PERM_LE2BE, V5 + VPERM V6, V6, CONST_PERM_LE2BE, V6 + VPERM V7, V7, CONST_PERM_LE2BE, V7 + VPERM V8, V8, CONST_PERM_LE2BE, V8 + + // Perform a GF(2) multiplication of the doublewords in V1 with + // the reduction constants in V0. The intermediate result is + // then folded (accumulated) with the next data chunk in V5 and + // stored in V1. Repeat this step for the register contents + // in V2, V3, and V4 respectively. + + VGFMAG CONST_R2R1, V1, V5, V1 + VGFMAG CONST_R2R1, V2, V6, V2 + VGFMAG CONST_R2R1, V3, V7, V3 + VGFMAG CONST_R2R1, V4, V8, V4 + + // Adjust buffer pointer and length for next loop + ADD $64, R3 // BUF = BUF + 64 + ADD $(-64), R4 // LEN = LEN - 64 + + CMP R4, $64 + BGE fold_64bytes_loop + +less_than_64bytes: + // Fold V1 to V4 into a single 128-bit value in V1 + VGFMAG CONST_R4R3, V1, V2, V1 + VGFMAG CONST_R4R3, V1, V3, V1 + VGFMAG CONST_R4R3, V1, V4, V1 + + // Check whether to continue with 64-bit folding + CMP R4, $16 + BLT final_fold + +fold_16bytes_loop: + VL 0(R3), V2 // Load next data chunk + VPERM V2, V2, CONST_PERM_LE2BE, V2 + + VGFMAG CONST_R4R3, V1, V2, V1 // Fold next data chunk + + // Adjust buffer pointer and size for folding next data chunk + ADD $16, R3 + ADD $-16, R4 + + // Process remaining data chunks + CMP R4, $16 + BGE fold_16bytes_loop + +final_fold: + VLEIB $7, $0x40, V9 + VSRLB V9, CONST_R4R3, V0 + VLEIG $0, $1, V0 + + VGFMG V0, V1, V1 + + VLEIB $7, $0x20, V9 // Shift by words + VSRLB V9, V1, V2 // Store remaining bits in V2 + VUPLLF V1, V1 // Split rightmost doubleword + VGFMAG CONST_R5, V1, V2, V1 // V1 = (V1 * R5) XOR V2 + + // The input values to the Barret reduction are the degree-63 polynomial + // in V1 (R(x)), degree-32 generator polynomial, and the reduction + // constant u. The Barret reduction result is the CRC value of R(x) mod + // P(x). + // + // The Barret reduction algorithm is defined as: + // + // 1. T1(x) = floor( R(x) / x^32 ) GF2MUL u + // 2. T2(x) = floor( T1(x) / x^32 ) GF2MUL P(x) + // 3. C(x) = R(x) XOR T2(x) mod x^32 + // + // Note: To compensate the division by x^32, use the vector unpack + // instruction to move the leftmost word into the leftmost doubleword + // of the vector register. The rightmost doubleword is multiplied + // with zero to not contribute to the intermedate results. + + // T1(x) = floor( R(x) / x^32 ) GF2MUL u + VUPLLF V1, V2 + VGFMG CONST_RU_POLY, V2, V2 + + // Compute the GF(2) product of the CRC polynomial in VO with T1(x) in + // V2 and XOR the intermediate result, T2(x), with the value in V1. + // The final result is in the rightmost word of V2. + + VUPLLF V2, V2 + VGFMAG CONST_CRC_POLY, V2, V1, V2 + +done: + VLGVF $2, V2, R2 + XOR $0xffffffff, R2 // NOTW R2 + MOVWZ R2, ret + 32(FP) + RET + +crash: + MOVD $0, (R0) // input size is less than 64-bytes diff --git a/vendor/github.com/miekg/dns/dnsutil/util.go b/vendor/github.com/miekg/dns/dnsutil/util.go deleted file mode 100644 index 9ed03f2969c..00000000000 --- a/vendor/github.com/miekg/dns/dnsutil/util.go +++ /dev/null @@ -1,79 +0,0 @@ -// Package dnsutil contains higher-level methods useful with the dns -// package. While package dns implements the DNS protocols itself, -// these functions are related but not directly required for protocol -// processing. They are often useful in preparing input/output of the -// functions in package dns. -package dnsutil - -import ( - "strings" - - "github.com/miekg/dns" -) - -// AddDomain adds origin to s if s is not already a FQDN. -// Note that the result may not be a FQDN. If origin does not end -// with a ".", the result won't either. -// This implements the zonefile convention (specified in RFC 1035, -// Section "5.1. Format") that "@" represents the -// apex (bare) domain. i.e. AddOrigin("@", "foo.com.") returns "foo.com.". -func AddOrigin(s, origin string) string { - // ("foo.", "origin.") -> "foo." (already a FQDN) - // ("foo", "origin.") -> "foo.origin." - // ("foo"), "origin" -> "foo.origin" - // ("@", "origin.") -> "origin." (@ represents the apex (bare) domain) - // ("", "origin.") -> "origin." (not obvious) - // ("foo", "") -> "foo" (not obvious) - - if dns.IsFqdn(s) { - return s // s is already a FQDN, no need to mess with it. - } - if len(origin) == 0 { - return s // Nothing to append. - } - if s == "@" || len(s) == 0 { - return origin // Expand apex. - } - - if origin == "." { - return s + origin // AddOrigin(s, ".") is an expensive way to add a ".". - } - - return s + "." + origin // The simple case. -} - -// TrimDomainName trims origin from s if s is a subdomain. -// This function will never return "", but returns "@" instead (@ represents the apex (bare) domain). -func TrimDomainName(s, origin string) string { - // An apex (bare) domain is always returned as "@". - // If the return value ends in a ".", the domain was not the suffix. - // origin can end in "." or not. Either way the results should be the same. - - if len(s) == 0 { - return "@" // Return the apex (@) rather than "". - } - // Someone is using TrimDomainName(s, ".") to remove a dot if it exists. - if origin == "." { - return strings.TrimSuffix(s, origin) - } - - // Dude, you aren't even if the right subdomain! - if !dns.IsSubDomain(origin, s) { - return s - } - - slabels := dns.Split(s) - olabels := dns.Split(origin) - m := dns.CompareDomainName(s, origin) - if len(olabels) == m { - if len(olabels) == len(slabels) { - return "@" // origin == s - } - if (s[0] == '.') && (len(slabels) == (len(olabels) + 1)) { - return "@" // TrimDomainName(".foo.", "foo.") - } - } - - // Return the first (len-m) labels: - return s[:slabels[len(slabels)-m]-1] -} diff --git a/vendor/github.com/miekg/dns/idn/code_points.go b/vendor/github.com/miekg/dns/idn/code_points.go deleted file mode 100644 index 129c3742f58..00000000000 --- a/vendor/github.com/miekg/dns/idn/code_points.go +++ /dev/null @@ -1,2346 +0,0 @@ -package idn - -const ( - propertyUnknown property = iota // unknown character property - propertyPVALID // allowed to be used in IDNs - propertyCONTEXTJ // invisible or problematic characters (join controls) - propertyCONTEXTO // invisible or problematic characters (others) - propertyDISALLOWED // should not be included in IDNs - propertyUNASSIGNED // code points that are not designated in the Unicode Standard -) - -// property stores the property of a code point, as described in RFC 5892, -// section 1 -type property int - -// codePoints list all code points in Unicode Character Database (UCD) Format -// according to RFC 5892, appendix B.1. Thanks to libidn2 (GNU) - -// http://www.gnu.org/software/libidn/libidn2/ -var codePoints = []struct { - start rune - end rune - state property -}{ - {0x0000, 0x002C, propertyDISALLOWED}, // ..COMMA - {0x002D, 0x0, propertyPVALID}, // HYPHEN-MINUS - {0x002E, 0x002F, propertyDISALLOWED}, // FULL STOP..SOLIDUS - {0x0030, 0x0039, propertyPVALID}, // DIGIT ZERO..DIGIT NINE - {0x003A, 0x0060, propertyDISALLOWED}, // COLON..GRAVE ACCENT - {0x0041, 0x005A, propertyPVALID}, // LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z - {0x0061, 0x007A, propertyPVALID}, // LATIN SMALL LETTER A..LATIN SMALL LETTER Z - {0x007B, 0x00B6, propertyDISALLOWED}, // LEFT CURLY BRACKET..PILCROW SIGN - {0x00B7, 0x0, propertyCONTEXTO}, // MIDDLE DOT - {0x00B8, 0x00DE, propertyDISALLOWED}, // CEDILLA..LATIN CAPITAL LETTER THORN - {0x00DF, 0x00F6, propertyPVALID}, // LATIN SMALL LETTER SHARP S..LATIN SMALL LETT - {0x00F7, 0x0, propertyDISALLOWED}, // DIVISION SIGN - {0x00F8, 0x00FF, propertyPVALID}, // LATIN SMALL LETTER O WITH STROKE..LATIN SMAL - {0x0100, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH MACRON - {0x0101, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH MACRON - {0x0102, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE - {0x0103, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE - {0x0104, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH OGONEK - {0x0105, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH OGONEK - {0x0106, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH ACUTE - {0x0107, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH ACUTE - {0x0108, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH CIRCUMFLEX - {0x0109, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH CIRCUMFLEX - {0x010A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH DOT ABOVE - {0x010B, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH DOT ABOVE - {0x010C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH CARON - {0x010D, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH CARON - {0x010E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH CARON - {0x010F, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH CARON - {0x0110, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH STROKE - {0x0111, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH STROKE - {0x0112, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH MACRON - {0x0113, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH MACRON - {0x0114, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH BREVE - {0x0115, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH BREVE - {0x0116, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH DOT ABOVE - {0x0117, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH DOT ABOVE - {0x0118, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH OGONEK - {0x0119, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH OGONEK - {0x011A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CARON - {0x011B, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CARON - {0x011C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH CIRCUMFLEX - {0x011D, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH CIRCUMFLEX - {0x011E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH BREVE - {0x011F, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH BREVE - {0x0120, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH DOT ABOVE - {0x0121, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH DOT ABOVE - {0x0122, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH CEDILLA - {0x0123, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH CEDILLA - {0x0124, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH CIRCUMFLEX - {0x0125, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH CIRCUMFLEX - {0x0126, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH STROKE - {0x0127, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH STROKE - {0x0128, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH TILDE - {0x0129, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH TILDE - {0x012A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH MACRON - {0x012B, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH MACRON - {0x012C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH BREVE - {0x012D, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH BREVE - {0x012E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH OGONEK - {0x012F, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH OGONEK - {0x0130, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH DOT ABOVE - {0x0131, 0x0, propertyPVALID}, // LATIN SMALL LETTER DOTLESS I - {0x0132, 0x0134, propertyDISALLOWED}, // LATIN CAPITAL LIGATURE IJ..LATIN CAPITAL LET - {0x0135, 0x0, propertyPVALID}, // LATIN SMALL LETTER J WITH CIRCUMFLEX - {0x0136, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH CEDILLA - {0x0137, 0x0138, propertyPVALID}, // LATIN SMALL LETTER K WITH CEDILLA..LATIN SMA - {0x0139, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH ACUTE - {0x013A, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH ACUTE - {0x013B, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH CEDILLA - {0x013C, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH CEDILLA - {0x013D, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH CARON - {0x013E, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH CARON - {0x013F, 0x0141, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATI - {0x0142, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH STROKE - {0x0143, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH ACUTE - {0x0144, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH ACUTE - {0x0145, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH CEDILLA - {0x0146, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH CEDILLA - {0x0147, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH CARON - {0x0148, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH CARON - {0x0149, 0x014A, propertyDISALLOWED}, // LATIN SMALL LETTER N PRECEDED BY APOSTROPHE. - {0x014B, 0x0, propertyPVALID}, // LATIN SMALL LETTER ENG - {0x014C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH MACRON - {0x014D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH MACRON - {0x014E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH BREVE - {0x014F, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH BREVE - {0x0150, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - {0x0151, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOUBLE ACUTE - {0x0152, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LIGATURE OE - {0x0153, 0x0, propertyPVALID}, // LATIN SMALL LIGATURE OE - {0x0154, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH ACUTE - {0x0155, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH ACUTE - {0x0156, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH CEDILLA - {0x0157, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH CEDILLA - {0x0158, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH CARON - {0x0159, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH CARON - {0x015A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH ACUTE - {0x015B, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH ACUTE - {0x015C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH CIRCUMFLEX - {0x015D, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH CIRCUMFLEX - {0x015E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH CEDILLA - {0x015F, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH CEDILLA - {0x0160, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH CARON - {0x0161, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH CARON - {0x0162, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH CEDILLA - {0x0163, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH CEDILLA - {0x0164, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH CARON - {0x0165, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH CARON - {0x0166, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH STROKE - {0x0167, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH STROKE - {0x0168, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH TILDE - {0x0169, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH TILDE - {0x016A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH MACRON - {0x016B, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH MACRON - {0x016C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH BREVE - {0x016D, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH BREVE - {0x016E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH RING ABOVE - {0x016F, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH RING ABOVE - {0x0170, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - {0x0171, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DOUBLE ACUTE - {0x0172, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH OGONEK - {0x0173, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH OGONEK - {0x0174, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH CIRCUMFLEX - {0x0175, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH CIRCUMFLEX - {0x0176, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX - {0x0177, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH CIRCUMFLEX - {0x0178, 0x0179, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN - {0x017A, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH ACUTE - {0x017B, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH DOT ABOVE - {0x017C, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH DOT ABOVE - {0x017D, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH CARON - {0x017E, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH CARON - {0x017F, 0x0, propertyDISALLOWED}, // LATIN SMALL LETTER LONG S - {0x0180, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH STROKE - {0x0181, 0x0182, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPI - {0x0183, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH TOPBAR - {0x0184, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TONE SIX - {0x0185, 0x0, propertyPVALID}, // LATIN SMALL LETTER TONE SIX - {0x0186, 0x0187, propertyDISALLOWED}, // LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL L - {0x0188, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH HOOK - {0x0189, 0x018B, propertyDISALLOWED}, // LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITA - {0x018C, 0x018D, propertyPVALID}, // LATIN SMALL LETTER D WITH TOPBAR..LATIN SMAL - {0x018E, 0x0191, propertyDISALLOWED}, // LATIN CAPITAL LETTER REVERSED E..LATIN CAPIT - {0x0192, 0x0, propertyPVALID}, // LATIN SMALL LETTER F WITH HOOK - {0x0193, 0x0194, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPI - {0x0195, 0x0, propertyPVALID}, // LATIN SMALL LETTER HV - {0x0196, 0x0198, propertyDISALLOWED}, // LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LET - {0x0199, 0x019B, propertyPVALID}, // LATIN SMALL LETTER K WITH HOOK..LATIN SMALL - {0x019C, 0x019D, propertyDISALLOWED}, // LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL - {0x019E, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH LONG RIGHT LEG - {0x019F, 0x01A0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LA - {0x01A1, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN - {0x01A2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER OI - {0x01A3, 0x0, propertyPVALID}, // LATIN SMALL LETTER OI - {0x01A4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH HOOK - {0x01A5, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH HOOK - {0x01A6, 0x01A7, propertyDISALLOWED}, // LATIN LETTER YR..LATIN CAPITAL LETTER TONE T - {0x01A8, 0x0, propertyPVALID}, // LATIN SMALL LETTER TONE TWO - {0x01A9, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER ESH - {0x01AA, 0x01AB, propertyPVALID}, // LATIN LETTER REVERSED ESH LOOP..LATIN SMALL - {0x01AC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH HOOK - {0x01AD, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH HOOK - {0x01AE, 0x01AF, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH RETROFLEX HOOK.. - {0x01B0, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN - {0x01B1, 0x01B3, propertyDISALLOWED}, // LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL - {0x01B4, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH HOOK - {0x01B5, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH STROKE - {0x01B6, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH STROKE - {0x01B7, 0x01B8, propertyDISALLOWED}, // LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETT - {0x01B9, 0x01BB, propertyPVALID}, // LATIN SMALL LETTER EZH REVERSED..LATIN LETTE - {0x01BC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TONE FIVE - {0x01BD, 0x01C3, propertyPVALID}, // LATIN SMALL LETTER TONE FIVE..LATIN LETTER R - {0x01C4, 0x01CD, propertyDISALLOWED}, // LATIN CAPITAL LETTER DZ WITH CARON..LATIN CA - {0x01CE, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CARON - {0x01CF, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH CARON - {0x01D0, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH CARON - {0x01D1, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CARON - {0x01D2, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CARON - {0x01D3, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH CARON - {0x01D4, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH CARON - {0x01D5, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS AND MA - {0x01D6, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS AND MACR - {0x01D7, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS AND AC - {0x01D8, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS AND ACUT - {0x01D9, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS AND CA - {0x01DA, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS AND CARO - {0x01DB, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS AND GR - {0x01DC, 0x01DD, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS AND GRAV - {0x01DE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DIAERESIS AND MA - {0x01DF, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DIAERESIS AND MACR - {0x01E0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DOT ABOVE AND MA - {0x01E1, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DOT ABOVE AND MACR - {0x01E2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AE WITH MACRON - {0x01E3, 0x0, propertyPVALID}, // LATIN SMALL LETTER AE WITH MACRON - {0x01E4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH STROKE - {0x01E5, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH STROKE - {0x01E6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH CARON - {0x01E7, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH CARON - {0x01E8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH CARON - {0x01E9, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH CARON - {0x01EA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH OGONEK - {0x01EB, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH OGONEK - {0x01EC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH OGONEK AND MACRO - {0x01ED, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH OGONEK AND MACRON - {0x01EE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER EZH WITH CARON - {0x01EF, 0x01F0, propertyPVALID}, // LATIN SMALL LETTER EZH WITH CARON..LATIN SMA - {0x01F1, 0x01F4, propertyDISALLOWED}, // LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTE - {0x01F5, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH ACUTE - {0x01F6, 0x01F8, propertyDISALLOWED}, // LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LE - {0x01F9, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH GRAVE - {0x01FA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH RING ABOVE AND A - {0x01FB, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH RING ABOVE AND ACU - {0x01FC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AE WITH ACUTE - {0x01FD, 0x0, propertyPVALID}, // LATIN SMALL LETTER AE WITH ACUTE - {0x01FE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH STROKE AND ACUTE - {0x01FF, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH STROKE AND ACUTE - {0x0200, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DOUBLE GRAVE - {0x0201, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DOUBLE GRAVE - {0x0202, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH INVERTED BREVE - {0x0203, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH INVERTED BREVE - {0x0204, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH DOUBLE GRAVE - {0x0205, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH DOUBLE GRAVE - {0x0206, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH INVERTED BREVE - {0x0207, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH INVERTED BREVE - {0x0208, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH DOUBLE GRAVE - {0x0209, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH DOUBLE GRAVE - {0x020A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH INVERTED BREVE - {0x020B, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH INVERTED BREVE - {0x020C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOUBLE GRAVE - {0x020D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOUBLE GRAVE - {0x020E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH INVERTED BREVE - {0x020F, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH INVERTED BREVE - {0x0210, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH DOUBLE GRAVE - {0x0211, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH DOUBLE GRAVE - {0x0212, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH INVERTED BREVE - {0x0213, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH INVERTED BREVE - {0x0214, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DOUBLE GRAVE - {0x0215, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DOUBLE GRAVE - {0x0216, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH INVERTED BREVE - {0x0217, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH INVERTED BREVE - {0x0218, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH COMMA BELOW - {0x0219, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH COMMA BELOW - {0x021A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH COMMA BELOW - {0x021B, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH COMMA BELOW - {0x021C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER YOGH - {0x021D, 0x0, propertyPVALID}, // LATIN SMALL LETTER YOGH - {0x021E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH CARON - {0x021F, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH CARON - {0x0220, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH LONG RIGHT LEG - {0x0221, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH CURL - {0x0222, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER OU - {0x0223, 0x0, propertyPVALID}, // LATIN SMALL LETTER OU - {0x0224, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH HOOK - {0x0225, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH HOOK - {0x0226, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DOT ABOVE - {0x0227, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DOT ABOVE - {0x0228, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CEDILLA - {0x0229, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CEDILLA - {0x022A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DIAERESIS AND MA - {0x022B, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DIAERESIS AND MACR - {0x022C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH TILDE AND MACRON - {0x022D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH TILDE AND MACRON - {0x022E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOT ABOVE - {0x022F, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOT ABOVE - {0x0230, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOT ABOVE AND MA - {0x0231, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOT ABOVE AND MACR - {0x0232, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH MACRON - {0x0233, 0x0239, propertyPVALID}, // LATIN SMALL LETTER Y WITH MACRON..LATIN SMAL - {0x023A, 0x023B, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH STROKE..LATIN CA - {0x023C, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH STROKE - {0x023D, 0x023E, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH BAR..LATIN CAPIT - {0x023F, 0x0240, propertyPVALID}, // LATIN SMALL LETTER S WITH SWASH TAIL..LATIN - {0x0241, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER GLOTTAL STOP - {0x0242, 0x0, propertyPVALID}, // LATIN SMALL LETTER GLOTTAL STOP - {0x0243, 0x0246, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH STROKE..LATIN CA - {0x0247, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH STROKE - {0x0248, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER J WITH STROKE - {0x0249, 0x0, propertyPVALID}, // LATIN SMALL LETTER J WITH STROKE - {0x024A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL - {0x024B, 0x0, propertyPVALID}, // LATIN SMALL LETTER Q WITH HOOK TAIL - {0x024C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH STROKE - {0x024D, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH STROKE - {0x024E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH STROKE - {0x024F, 0x02AF, propertyPVALID}, // LATIN SMALL LETTER Y WITH STROKE..LATIN SMAL - {0x02B0, 0x02B8, propertyDISALLOWED}, // MODIFIER LETTER SMALL H..MODIFIER LETTER SMA - {0x02B9, 0x02C1, propertyPVALID}, // MODIFIER LETTER PRIME..MODIFIER LETTER REVER - {0x02C2, 0x02C5, propertyDISALLOWED}, // MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LET - {0x02C6, 0x02D1, propertyPVALID}, // MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER - {0x02D2, 0x02EB, propertyDISALLOWED}, // MODIFIER LETTER CENTRED RIGHT HALF RING..MOD - {0x02EC, 0x0, propertyPVALID}, // MODIFIER LETTER VOICING - {0x02ED, 0x0, propertyDISALLOWED}, // MODIFIER LETTER UNASPIRATED - {0x02EE, 0x0, propertyPVALID}, // MODIFIER LETTER DOUBLE APOSTROPHE - {0x02EF, 0x02FF, propertyDISALLOWED}, // MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER - {0x0300, 0x033F, propertyPVALID}, // COMBINING GRAVE ACCENT..COMBINING DOUBLE OVE - {0x0340, 0x0341, propertyDISALLOWED}, // COMBINING GRAVE TONE MARK..COMBINING ACUTE T - {0x0342, 0x0, propertyPVALID}, // COMBINING GREEK PERISPOMENI - {0x0343, 0x0345, propertyDISALLOWED}, // COMBINING GREEK KORONIS..COMBINING GREEK YPO - {0x0346, 0x034E, propertyPVALID}, // COMBINING BRIDGE ABOVE..COMBINING UPWARDS AR - {0x034F, 0x0, propertyDISALLOWED}, // COMBINING GRAPHEME JOINER - {0x0350, 0x036F, propertyPVALID}, // COMBINING RIGHT ARROWHEAD ABOVE..COMBINING L - {0x0370, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER HETA - {0x0371, 0x0, propertyPVALID}, // GREEK SMALL LETTER HETA - {0x0372, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER ARCHAIC SAMPI - {0x0373, 0x0, propertyPVALID}, // GREEK SMALL LETTER ARCHAIC SAMPI - {0x0374, 0x0, propertyDISALLOWED}, // GREEK NUMERAL SIGN - {0x0375, 0x0, propertyCONTEXTO}, // GREEK LOWER NUMERAL SIGN - {0x0376, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA - {0x0377, 0x0, propertyPVALID}, // GREEK SMALL LETTER PAMPHYLIAN DIGAMMA - {0x0378, 0x0379, propertyUNASSIGNED}, // .. - {0x037A, 0x0, propertyDISALLOWED}, // GREEK YPOGEGRAMMENI - {0x037B, 0x037D, propertyPVALID}, // GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GR - {0x037E, 0x0, propertyDISALLOWED}, // GREEK QUESTION MARK - {0x037F, 0x0383, propertyUNASSIGNED}, // .. - {0x0384, 0x038A, propertyDISALLOWED}, // GREEK TONOS..GREEK CAPITAL LETTER IOTA WITH - {0x038B, 0x0, propertyUNASSIGNED}, // - {0x038C, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER OMICRON WITH TONOS - {0x038D, 0x0, propertyUNASSIGNED}, // - {0x038E, 0x038F, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH TONOS..GRE - {0x0390, 0x0, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND T - {0x0391, 0x03A1, propertyDISALLOWED}, // GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LE - {0x03A2, 0x0, propertyUNASSIGNED}, // - {0x03A3, 0x03AB, propertyDISALLOWED}, // GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LE - {0x03AC, 0x03CE, propertyPVALID}, // GREEK SMALL LETTER ALPHA WITH TONOS..GREEK S - {0x03CF, 0x03D6, propertyDISALLOWED}, // GREEK CAPITAL KAI SYMBOL..GREEK PI SYMBOL - {0x03D7, 0x0, propertyPVALID}, // GREEK KAI SYMBOL - {0x03D8, 0x0, propertyDISALLOWED}, // GREEK LETTER ARCHAIC KOPPA - {0x03D9, 0x0, propertyPVALID}, // GREEK SMALL LETTER ARCHAIC KOPPA - {0x03DA, 0x0, propertyDISALLOWED}, // GREEK LETTER STIGMA - {0x03DB, 0x0, propertyPVALID}, // GREEK SMALL LETTER STIGMA - {0x03DC, 0x0, propertyDISALLOWED}, // GREEK LETTER DIGAMMA - {0x03DD, 0x0, propertyPVALID}, // GREEK SMALL LETTER DIGAMMA - {0x03DE, 0x0, propertyDISALLOWED}, // GREEK LETTER KOPPA - {0x03DF, 0x0, propertyPVALID}, // GREEK SMALL LETTER KOPPA - {0x03E0, 0x0, propertyDISALLOWED}, // GREEK LETTER SAMPI - {0x03E1, 0x0, propertyPVALID}, // GREEK SMALL LETTER SAMPI - {0x03E2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SHEI - {0x03E3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SHEI - {0x03E4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER FEI - {0x03E5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER FEI - {0x03E6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER KHEI - {0x03E7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER KHEI - {0x03E8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER HORI - {0x03E9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER HORI - {0x03EA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER GANGIA - {0x03EB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER GANGIA - {0x03EC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SHIMA - {0x03ED, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SHIMA - {0x03EE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DEI - {0x03EF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DEI - {0x03F0, 0x03F2, propertyDISALLOWED}, // GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBO - {0x03F3, 0x0, propertyPVALID}, // GREEK LETTER YOT - {0x03F4, 0x03F7, propertyDISALLOWED}, // GREEK CAPITAL THETA SYMBOL..GREEK CAPITAL LE - {0x03F8, 0x0, propertyPVALID}, // GREEK SMALL LETTER SHO - {0x03F9, 0x03FA, propertyDISALLOWED}, // GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAP - {0x03FB, 0x03FC, propertyPVALID}, // GREEK SMALL LETTER SAN..GREEK RHO WITH STROK - {0x03FD, 0x042F, propertyDISALLOWED}, // GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL.. - {0x0430, 0x045F, propertyPVALID}, // CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETT - {0x0460, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER OMEGA - {0x0461, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER OMEGA - {0x0462, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YAT - {0x0463, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YAT - {0x0464, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED E - {0x0465, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED E - {0x0466, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER LITTLE YUS - {0x0467, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER LITTLE YUS - {0x0468, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS - {0x0469, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS - {0x046A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BIG YUS - {0x046B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BIG YUS - {0x046C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS - {0x046D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED BIG YUS - {0x046E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KSI - {0x046F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KSI - {0x0470, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER PSI - {0x0471, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER PSI - {0x0472, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER FITA - {0x0473, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER FITA - {0x0474, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IZHITSA - {0x0475, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IZHITSA - {0x0476, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE - {0x0477, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GR - {0x0478, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER UK - {0x0479, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER UK - {0x047A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ROUND OMEGA - {0x047B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ROUND OMEGA - {0x047C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER OMEGA WITH TITLO - {0x047D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER OMEGA WITH TITLO - {0x047E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER OT - {0x047F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER OT - {0x0480, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOPPA - {0x0481, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOPPA - {0x0482, 0x0, propertyDISALLOWED}, // CYRILLIC THOUSANDS SIGN - {0x0483, 0x0487, propertyPVALID}, // COMBINING CYRILLIC TITLO..COMBINING CYRILLIC - {0x0488, 0x048A, propertyDISALLOWED}, // COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..C - {0x048B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SHORT I WITH TAIL - {0x048C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SEMISOFT SIGN - {0x048D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SEMISOFT SIGN - {0x048E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ER WITH TICK - {0x048F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ER WITH TICK - {0x0490, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH UPTURN - {0x0491, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH UPTURN - {0x0492, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH STROKE - {0x0493, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH STROKE - {0x0494, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK - {0x0495, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK - {0x0496, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER - {0x0497, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZHE WITH DESCENDER - {0x0498, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZE WITH DESCENDER - {0x0499, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZE WITH DESCENDER - {0x049A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KA WITH DESCENDER - {0x049B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KA WITH DESCENDER - {0x049C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KA WITH VERTICAL STR - {0x049D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KA WITH VERTICAL STROK - {0x049E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KA WITH STROKE - {0x049F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KA WITH STROKE - {0x04A0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BASHKIR KA - {0x04A1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BASHKIR KA - {0x04A2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EN WITH DESCENDER - {0x04A3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EN WITH DESCENDER - {0x04A4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LIGATURE EN GHE - {0x04A5, 0x0, propertyPVALID}, // CYRILLIC SMALL LIGATURE EN GHE - {0x04A6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK - {0x04A7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK - {0x04A8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ABKHASIAN HA - {0x04A9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ABKHASIAN HA - {0x04AA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ES WITH DESCENDER - {0x04AB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ES WITH DESCENDER - {0x04AC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TE WITH DESCENDER - {0x04AD, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TE WITH DESCENDER - {0x04AE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER STRAIGHT U - {0x04AF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER STRAIGHT U - {0x04B0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER STRAIGHT U WITH STRO - {0x04B1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE - {0x04B2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER HA WITH DESCENDER - {0x04B3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER HA WITH DESCENDER - {0x04B4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LIGATURE TE TSE - {0x04B5, 0x0, propertyPVALID}, // CYRILLIC SMALL LIGATURE TE TSE - {0x04B6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CHE WITH DESCENDER - {0x04B7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CHE WITH DESCENDER - {0x04B8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CHE WITH VERTICAL ST - {0x04B9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CHE WITH VERTICAL STRO - {0x04BA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SHHA - {0x04BB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SHHA - {0x04BC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ABKHASIAN CHE - {0x04BD, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ABKHASIAN CHE - {0x04BE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH D - {0x04BF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DES - {0x04C0, 0x04C1, propertyDISALLOWED}, // CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL L - {0x04C2, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZHE WITH BREVE - {0x04C3, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KA WITH HOOK - {0x04C4, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KA WITH HOOK - {0x04C5, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EL WITH TAIL - {0x04C6, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EL WITH TAIL - {0x04C7, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EN WITH HOOK - {0x04C8, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EN WITH HOOK - {0x04C9, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EN WITH TAIL - {0x04CA, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EN WITH TAIL - {0x04CB, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KHAKASSIAN CHE - {0x04CC, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KHAKASSIAN CHE - {0x04CD, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EM WITH TAIL - {0x04CE, 0x04CF, propertyPVALID}, // CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC - {0x04D0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER A WITH BREVE - {0x04D1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER A WITH BREVE - {0x04D2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER A WITH DIAERESIS - {0x04D3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER A WITH DIAERESIS - {0x04D4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LIGATURE A IE - {0x04D5, 0x0, propertyPVALID}, // CYRILLIC SMALL LIGATURE A IE - {0x04D6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IE WITH BREVE - {0x04D7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IE WITH BREVE - {0x04D8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SCHWA - {0x04D9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SCHWA - {0x04DA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS - {0x04DB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS - {0x04DC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS - {0x04DD, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZHE WITH DIAERESIS - {0x04DE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS - {0x04DF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZE WITH DIAERESIS - {0x04E0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ABKHASIAN DZE - {0x04E1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ABKHASIAN DZE - {0x04E2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER I WITH MACRON - {0x04E3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER I WITH MACRON - {0x04E4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER I WITH DIAERESIS - {0x04E5, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER I WITH DIAERESIS - {0x04E6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER O WITH DIAERESIS - {0x04E7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER O WITH DIAERESIS - {0x04E8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BARRED O - {0x04E9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BARRED O - {0x04EA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BARRED O WITH DIAERE - {0x04EB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BARRED O WITH DIAERESI - {0x04EC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER E WITH DIAERESIS - {0x04ED, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER E WITH DIAERESIS - {0x04EE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER U WITH MACRON - {0x04EF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER U WITH MACRON - {0x04F0, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER U WITH DIAERESIS - {0x04F1, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER U WITH DIAERESIS - {0x04F2, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE - {0x04F3, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE - {0x04F4, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS - {0x04F5, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CHE WITH DIAERESIS - {0x04F6, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH DESCENDER - {0x04F7, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH DESCENDER - {0x04F8, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS - {0x04F9, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YERU WITH DIAERESIS - {0x04FA, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER GHE WITH STROKE AND - {0x04FB, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER GHE WITH STROKE AND HO - {0x04FC, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER HA WITH HOOK - {0x04FD, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER HA WITH HOOK - {0x04FE, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER HA WITH STROKE - {0x04FF, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER HA WITH STROKE - {0x0500, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI DE - {0x0501, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI DE - {0x0502, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI DJE - {0x0503, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI DJE - {0x0504, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI ZJE - {0x0505, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI ZJE - {0x0506, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI DZJE - {0x0507, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI DZJE - {0x0508, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI LJE - {0x0509, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI LJE - {0x050A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI NJE - {0x050B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI NJE - {0x050C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI SJE - {0x050D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI SJE - {0x050E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER KOMI TJE - {0x050F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER KOMI TJE - {0x0510, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER REVERSED ZE - {0x0511, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER REVERSED ZE - {0x0512, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EL WITH HOOK - {0x0513, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EL WITH HOOK - {0x0514, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER LHA - {0x0515, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER LHA - {0x0516, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER RHA - {0x0517, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER RHA - {0x0518, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YAE - {0x0519, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YAE - {0x051A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER QA - {0x051B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER QA - {0x051C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER WE - {0x051D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER WE - {0x051E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ALEUT KA - {0x051F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ALEUT KA - {0x0520, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK - {0x0521, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK - {0x0522, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK - {0x0523, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK - {0x0524, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER PE WITH DESCENDER - {0x0525, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER PE WITH DESCENDER - {0x0526, 0x0530, propertyUNASSIGNED}, // .. - {0x0531, 0x0556, propertyDISALLOWED}, // ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITA - {0x0557, 0x0558, propertyUNASSIGNED}, // .. - {0x0559, 0x0, propertyPVALID}, // ARMENIAN MODIFIER LETTER LEFT HALF RING - {0x055A, 0x055F, propertyDISALLOWED}, // ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION M - {0x0560, 0x0, propertyUNASSIGNED}, // - {0x0561, 0x0586, propertyPVALID}, // ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LE - {0x0587, 0x0, propertyDISALLOWED}, // ARMENIAN SMALL LIGATURE ECH YIWN - {0x0588, 0x0, propertyUNASSIGNED}, // - {0x0589, 0x058A, propertyDISALLOWED}, // ARMENIAN FULL STOP..ARMENIAN HYPHEN - {0x058B, 0x0590, propertyUNASSIGNED}, // .. - {0x0591, 0x05BD, propertyPVALID}, // HEBREW ACCENT ETNAHTA..HEBREW POINT METEG - {0x05BE, 0x0, propertyDISALLOWED}, // HEBREW PUNCTUATION MAQAF - {0x05BF, 0x0, propertyPVALID}, // HEBREW POINT RAFE - {0x05C0, 0x0, propertyDISALLOWED}, // HEBREW PUNCTUATION PASEQ - {0x05C1, 0x05C2, propertyPVALID}, // HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT - {0x05C3, 0x0, propertyDISALLOWED}, // HEBREW PUNCTUATION SOF PASUQ - {0x05C4, 0x05C5, propertyPVALID}, // HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT - {0x05C6, 0x0, propertyDISALLOWED}, // HEBREW PUNCTUATION NUN HAFUKHA - {0x05C7, 0x0, propertyPVALID}, // HEBREW POINT QAMATS QATAN - {0x05C8, 0x05CF, propertyUNASSIGNED}, // .. - {0x05D0, 0x05EA, propertyPVALID}, // HEBREW LETTER ALEF..HEBREW LETTER TAV - {0x05EB, 0x05EF, propertyUNASSIGNED}, // .. - {0x05F0, 0x05F2, propertyPVALID}, // HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW L - {0x05F3, 0x05F4, propertyCONTEXTO}, // HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATIO - {0x05F5, 0x05FF, propertyUNASSIGNED}, // .. - {0x0600, 0x0603, propertyDISALLOWED}, // ARABIC NUMBER SIGN..ARABIC SIGN SAFHA - {0x0604, 0x0605, propertyUNASSIGNED}, // .. - {0x0606, 0x060F, propertyDISALLOWED}, // ARABIC-INDIC CUBE ROOT..ARABIC SIGN MISRA - {0x0610, 0x061A, propertyPVALID}, // ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..AR - {0x061B, 0x0, propertyDISALLOWED}, // ARABIC SEMICOLON - {0x061C, 0x061D, propertyUNASSIGNED}, // .. - {0x061E, 0x061F, propertyDISALLOWED}, // ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC Q - {0x0620, 0x0, propertyUNASSIGNED}, // - {0x0621, 0x063F, propertyPVALID}, // ARABIC LETTER HAMZA..ARABIC LETTER FARSI YEH - {0x0640, 0x0, propertyDISALLOWED}, // ARABIC TATWEEL - {0x0641, 0x065E, propertyPVALID}, // ARABIC LETTER FEH..ARABIC FATHA WITH TWO DOT - {0x065F, 0x0, propertyUNASSIGNED}, // - {0x0660, 0x0669, propertyCONTEXTO}, // ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT - {0x066A, 0x066D, propertyDISALLOWED}, // ARABIC PERCENT SIGN..ARABIC FIVE POINTED STA - {0x066E, 0x0674, propertyPVALID}, // ARABIC LETTER DOTLESS BEH..ARABIC LETTER HIG - {0x0675, 0x0678, propertyDISALLOWED}, // ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER - {0x0679, 0x06D3, propertyPVALID}, // ARABIC LETTER TTEH..ARABIC LETTER YEH BARREE - {0x06D4, 0x0, propertyDISALLOWED}, // ARABIC FULL STOP - {0x06D5, 0x06DC, propertyPVALID}, // ARABIC LETTER AE..ARABIC SMALL HIGH SEEN - {0x06DD, 0x06DE, propertyDISALLOWED}, // ARABIC END OF AYAH..ARABIC START OF RUB EL H - {0x06DF, 0x06E8, propertyPVALID}, // ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL - {0x06E9, 0x0, propertyDISALLOWED}, // ARABIC PLACE OF SAJDAH - {0x06EA, 0x06EF, propertyPVALID}, // ARABIC EMPTY CENTRE LOW STOP..ARABIC LETTER - {0x06F0, 0x06F9, propertyCONTEXTO}, // EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED A - {0x06FA, 0x06FF, propertyPVALID}, // ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC L - {0x0700, 0x070D, propertyDISALLOWED}, // SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN AST - {0x070E, 0x0, propertyUNASSIGNED}, // - {0x070F, 0x0, propertyDISALLOWED}, // SYRIAC ABBREVIATION MARK - {0x0710, 0x074A, propertyPVALID}, // SYRIAC LETTER ALAPH..SYRIAC BARREKH - {0x074B, 0x074C, propertyUNASSIGNED}, // .. - {0x074D, 0x07B1, propertyPVALID}, // SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER N - {0x07B2, 0x07BF, propertyUNASSIGNED}, // .. - {0x07C0, 0x07F5, propertyPVALID}, // NKO DIGIT ZERO..NKO LOW TONE APOSTROPHE - {0x07F6, 0x07FA, propertyDISALLOWED}, // NKO SYMBOL OO DENNEN..NKO LAJANYALAN - {0x07FB, 0x07FF, propertyUNASSIGNED}, // .. - {0x0800, 0x082D, propertyPVALID}, // SAMARITAN LETTER ALAF..SAMARITAN MARK NEQUDA - {0x082E, 0x082F, propertyUNASSIGNED}, // .. - {0x0830, 0x083E, propertyDISALLOWED}, // SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUN - {0x083F, 0x08FF, propertyUNASSIGNED}, // .. - {0x0900, 0x0939, propertyPVALID}, // DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANA - {0x093A, 0x093B, propertyUNASSIGNED}, // .. - {0x093C, 0x094E, propertyPVALID}, // DEVANAGARI SIGN NUKTA..DEVANAGARI VOWEL SIGN - {0x094F, 0x0, propertyUNASSIGNED}, // - {0x0950, 0x0955, propertyPVALID}, // DEVANAGARI OM..DEVANAGARI VOWEL SIGN CANDRA - {0x0956, 0x0957, propertyUNASSIGNED}, // .. - {0x0958, 0x095F, propertyDISALLOWED}, // DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA - {0x0960, 0x0963, propertyPVALID}, // DEVANAGARI LETTER VOCALIC RR..DEVANAGARI VOW - {0x0964, 0x0965, propertyDISALLOWED}, // DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA - {0x0966, 0x096F, propertyPVALID}, // DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE - {0x0970, 0x0, propertyDISALLOWED}, // DEVANAGARI ABBREVIATION SIGN - {0x0971, 0x0972, propertyPVALID}, // DEVANAGARI SIGN HIGH SPACING DOT..DEVANAGARI - {0x0973, 0x0978, propertyUNASSIGNED}, // .. - {0x0979, 0x097F, propertyPVALID}, // DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA - {0x0980, 0x0, propertyUNASSIGNED}, // - {0x0981, 0x0983, propertyPVALID}, // BENGALI SIGN CANDRABINDU..BENGALI SIGN VISAR - {0x0984, 0x0, propertyUNASSIGNED}, // - {0x0985, 0x098C, propertyPVALID}, // BENGALI LETTER A..BENGALI LETTER VOCALIC L - {0x098D, 0x098E, propertyUNASSIGNED}, // .. - {0x098F, 0x0990, propertyPVALID}, // BENGALI LETTER E..BENGALI LETTER AI - {0x0991, 0x0992, propertyUNASSIGNED}, // .. - {0x0993, 0x09A8, propertyPVALID}, // BENGALI LETTER O..BENGALI LETTER NA - {0x09A9, 0x0, propertyUNASSIGNED}, // - {0x09AA, 0x09B0, propertyPVALID}, // BENGALI LETTER PA..BENGALI LETTER RA - {0x09B1, 0x0, propertyUNASSIGNED}, // - {0x09B2, 0x0, propertyPVALID}, // BENGALI LETTER LA - {0x09B3, 0x09B5, propertyUNASSIGNED}, // .. - {0x09B6, 0x09B9, propertyPVALID}, // BENGALI LETTER SHA..BENGALI LETTER HA - {0x09BA, 0x09BB, propertyUNASSIGNED}, // .. - {0x09BC, 0x09C4, propertyPVALID}, // BENGALI SIGN NUKTA..BENGALI VOWEL SIGN VOCAL - {0x09C5, 0x09C6, propertyUNASSIGNED}, // .. - {0x09C7, 0x09C8, propertyPVALID}, // BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI - {0x09C9, 0x09CA, propertyUNASSIGNED}, // .. - {0x09CB, 0x09CE, propertyPVALID}, // BENGALI VOWEL SIGN O..BENGALI LETTER KHANDA - {0x09CF, 0x09D6, propertyUNASSIGNED}, // .. - {0x09D7, 0x0, propertyPVALID}, // BENGALI AU LENGTH MARK - {0x09D8, 0x09DB, propertyUNASSIGNED}, // .. - {0x09DC, 0x09DD, propertyDISALLOWED}, // BENGALI LETTER RRA..BENGALI LETTER RHA - {0x09DE, 0x0, propertyUNASSIGNED}, // - {0x09DF, 0x0, propertyDISALLOWED}, // BENGALI LETTER YYA - {0x09E0, 0x09E3, propertyPVALID}, // BENGALI LETTER VOCALIC RR..BENGALI VOWEL SIG - {0x09E4, 0x09E5, propertyUNASSIGNED}, // .. - {0x09E6, 0x09F1, propertyPVALID}, // BENGALI DIGIT ZERO..BENGALI LETTER RA WITH L - {0x09F2, 0x09FB, propertyDISALLOWED}, // BENGALI RUPEE MARK..BENGALI GANDA MARK - {0x09FC, 0x0A00, propertyUNASSIGNED}, // .. - {0x0A01, 0x0A03, propertyPVALID}, // GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN VISA - {0x0A04, 0x0, propertyUNASSIGNED}, // - {0x0A05, 0x0A0A, propertyPVALID}, // GURMUKHI LETTER A..GURMUKHI LETTER UU - {0x0A0B, 0x0A0E, propertyUNASSIGNED}, // .. - {0x0A0F, 0x0A10, propertyPVALID}, // GURMUKHI LETTER EE..GURMUKHI LETTER AI - {0x0A11, 0x0A12, propertyUNASSIGNED}, // .. - {0x0A13, 0x0A28, propertyPVALID}, // GURMUKHI LETTER OO..GURMUKHI LETTER NA - {0x0A29, 0x0, propertyUNASSIGNED}, // - {0x0A2A, 0x0A30, propertyPVALID}, // GURMUKHI LETTER PA..GURMUKHI LETTER RA - {0x0A31, 0x0, propertyUNASSIGNED}, // - {0x0A32, 0x0, propertyPVALID}, // GURMUKHI LETTER LA - {0x0A33, 0x0, propertyDISALLOWED}, // GURMUKHI LETTER LLA - {0x0A34, 0x0, propertyUNASSIGNED}, // - {0x0A35, 0x0, propertyPVALID}, // GURMUKHI LETTER VA - {0x0A36, 0x0, propertyDISALLOWED}, // GURMUKHI LETTER SHA - {0x0A37, 0x0, propertyUNASSIGNED}, // - {0x0A38, 0x0A39, propertyPVALID}, // GURMUKHI LETTER SA..GURMUKHI LETTER HA - {0x0A3A, 0x0A3B, propertyUNASSIGNED}, // .. - {0x0A3C, 0x0, propertyPVALID}, // GURMUKHI SIGN NUKTA - {0x0A3D, 0x0, propertyUNASSIGNED}, // - {0x0A3E, 0x0A42, propertyPVALID}, // GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN - {0x0A43, 0x0A46, propertyUNASSIGNED}, // .. - {0x0A47, 0x0A48, propertyPVALID}, // GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN - {0x0A49, 0x0A4A, propertyUNASSIGNED}, // .. - {0x0A4B, 0x0A4D, propertyPVALID}, // GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA - {0x0A4E, 0x0A50, propertyUNASSIGNED}, // .. - {0x0A51, 0x0, propertyPVALID}, // GURMUKHI SIGN UDAAT - {0x0A52, 0x0A58, propertyUNASSIGNED}, // .. - {0x0A59, 0x0A5B, propertyDISALLOWED}, // GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA - {0x0A5C, 0x0, propertyPVALID}, // GURMUKHI LETTER RRA - {0x0A5D, 0x0, propertyUNASSIGNED}, // - {0x0A5E, 0x0, propertyDISALLOWED}, // GURMUKHI LETTER FA - {0x0A5F, 0x0A65, propertyUNASSIGNED}, // .. - {0x0A66, 0x0A75, propertyPVALID}, // GURMUKHI DIGIT ZERO..GURMUKHI SIGN YAKASH - {0x0A76, 0x0A80, propertyUNASSIGNED}, // .. - {0x0A81, 0x0A83, propertyPVALID}, // GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VIS - {0x0A84, 0x0, propertyUNASSIGNED}, // - {0x0A85, 0x0A8D, propertyPVALID}, // GUJARATI LETTER A..GUJARATI VOWEL CANDRA E - {0x0A8E, 0x0, propertyUNASSIGNED}, // - {0x0A8F, 0x0A91, propertyPVALID}, // GUJARATI LETTER E..GUJARATI VOWEL CANDRA O - {0x0A92, 0x0, propertyUNASSIGNED}, // - {0x0A93, 0x0AA8, propertyPVALID}, // GUJARATI LETTER O..GUJARATI LETTER NA - {0x0AA9, 0x0, propertyUNASSIGNED}, // - {0x0AAA, 0x0AB0, propertyPVALID}, // GUJARATI LETTER PA..GUJARATI LETTER RA - {0x0AB1, 0x0, propertyUNASSIGNED}, // - {0x0AB2, 0x0AB3, propertyPVALID}, // GUJARATI LETTER LA..GUJARATI LETTER LLA - {0x0AB4, 0x0, propertyUNASSIGNED}, // - {0x0AB5, 0x0AB9, propertyPVALID}, // GUJARATI LETTER VA..GUJARATI LETTER HA - {0x0ABA, 0x0ABB, propertyUNASSIGNED}, // .. - {0x0ABC, 0x0AC5, propertyPVALID}, // GUJARATI SIGN NUKTA..GUJARATI VOWEL SIGN CAN - {0x0AC6, 0x0, propertyUNASSIGNED}, // - {0x0AC7, 0x0AC9, propertyPVALID}, // GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN C - {0x0ACA, 0x0, propertyUNASSIGNED}, // - {0x0ACB, 0x0ACD, propertyPVALID}, // GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA - {0x0ACE, 0x0ACF, propertyUNASSIGNED}, // .. - {0x0AD0, 0x0, propertyPVALID}, // GUJARATI OM - {0x0AD1, 0x0ADF, propertyUNASSIGNED}, // .. - {0x0AE0, 0x0AE3, propertyPVALID}, // GUJARATI LETTER VOCALIC RR..GUJARATI VOWEL S - {0x0AE4, 0x0AE5, propertyUNASSIGNED}, // .. - {0x0AE6, 0x0AEF, propertyPVALID}, // GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE - {0x0AF0, 0x0, propertyUNASSIGNED}, // - {0x0AF1, 0x0, propertyDISALLOWED}, // GUJARATI RUPEE SIGN - {0x0AF2, 0x0B00, propertyUNASSIGNED}, // .. - {0x0B01, 0x0B03, propertyPVALID}, // ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA - {0x0B04, 0x0, propertyUNASSIGNED}, // - {0x0B05, 0x0B0C, propertyPVALID}, // ORIYA LETTER A..ORIYA LETTER VOCALIC L - {0x0B0D, 0x0B0E, propertyUNASSIGNED}, // .. - {0x0B0F, 0x0B10, propertyPVALID}, // ORIYA LETTER E..ORIYA LETTER AI - {0x0B11, 0x0B12, propertyUNASSIGNED}, // .. - {0x0B13, 0x0B28, propertyPVALID}, // ORIYA LETTER O..ORIYA LETTER NA - {0x0B29, 0x0, propertyUNASSIGNED}, // - {0x0B2A, 0x0B30, propertyPVALID}, // ORIYA LETTER PA..ORIYA LETTER RA - {0x0B31, 0x0, propertyUNASSIGNED}, // - {0x0B32, 0x0B33, propertyPVALID}, // ORIYA LETTER LA..ORIYA LETTER LLA - {0x0B34, 0x0, propertyUNASSIGNED}, // - {0x0B35, 0x0B39, propertyPVALID}, // ORIYA LETTER VA..ORIYA LETTER HA - {0x0B3A, 0x0B3B, propertyUNASSIGNED}, // .. - {0x0B3C, 0x0B44, propertyPVALID}, // ORIYA SIGN NUKTA..ORIYA VOWEL SIGN VOCALIC R - {0x0B45, 0x0B46, propertyUNASSIGNED}, // .. - {0x0B47, 0x0B48, propertyPVALID}, // ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI - {0x0B49, 0x0B4A, propertyUNASSIGNED}, // .. - {0x0B4B, 0x0B4D, propertyPVALID}, // ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA - {0x0B4E, 0x0B55, propertyUNASSIGNED}, // .. - {0x0B56, 0x0B57, propertyPVALID}, // ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK - {0x0B58, 0x0B5B, propertyUNASSIGNED}, // .. - {0x0B5C, 0x0B5D, propertyDISALLOWED}, // ORIYA LETTER RRA..ORIYA LETTER RHA - {0x0B5E, 0x0, propertyUNASSIGNED}, // - {0x0B5F, 0x0B63, propertyPVALID}, // ORIYA LETTER YYA..ORIYA VOWEL SIGN VOCALIC L - {0x0B64, 0x0B65, propertyUNASSIGNED}, // .. - {0x0B66, 0x0B6F, propertyPVALID}, // ORIYA DIGIT ZERO..ORIYA DIGIT NINE - {0x0B70, 0x0, propertyDISALLOWED}, // ORIYA ISSHAR - {0x0B71, 0x0, propertyPVALID}, // ORIYA LETTER WA - {0x0B72, 0x0B81, propertyUNASSIGNED}, // .. - {0x0B82, 0x0B83, propertyPVALID}, // TAMIL SIGN ANUSVARA..TAMIL SIGN VISARGA - {0x0B84, 0x0, propertyUNASSIGNED}, // - {0x0B85, 0x0B8A, propertyPVALID}, // TAMIL LETTER A..TAMIL LETTER UU - {0x0B8B, 0x0B8D, propertyUNASSIGNED}, // .. - {0x0B8E, 0x0B90, propertyPVALID}, // TAMIL LETTER E..TAMIL LETTER AI - {0x0B91, 0x0, propertyUNASSIGNED}, // - {0x0B92, 0x0B95, propertyPVALID}, // TAMIL LETTER O..TAMIL LETTER KA - {0x0B96, 0x0B98, propertyUNASSIGNED}, // .. - {0x0B99, 0x0B9A, propertyPVALID}, // TAMIL LETTER NGA..TAMIL LETTER CA - {0x0B9B, 0x0, propertyUNASSIGNED}, // - {0x0B9C, 0x0, propertyPVALID}, // TAMIL LETTER JA - {0x0B9D, 0x0, propertyUNASSIGNED}, // - {0x0B9E, 0x0B9F, propertyPVALID}, // TAMIL LETTER NYA..TAMIL LETTER TTA - {0x0BA0, 0x0BA2, propertyUNASSIGNED}, // .. - {0x0BA3, 0x0BA4, propertyPVALID}, // TAMIL LETTER NNA..TAMIL LETTER TA - {0x0BA5, 0x0BA7, propertyUNASSIGNED}, // .. - {0x0BA8, 0x0BAA, propertyPVALID}, // TAMIL LETTER NA..TAMIL LETTER PA - {0x0BAB, 0x0BAD, propertyUNASSIGNED}, // .. - {0x0BAE, 0x0BB9, propertyPVALID}, // TAMIL LETTER MA..TAMIL LETTER HA - {0x0BBA, 0x0BBD, propertyUNASSIGNED}, // .. - {0x0BBE, 0x0BC2, propertyPVALID}, // TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU - {0x0BC3, 0x0BC5, propertyUNASSIGNED}, // .. - {0x0BC6, 0x0BC8, propertyPVALID}, // TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI - {0x0BC9, 0x0, propertyUNASSIGNED}, // - {0x0BCA, 0x0BCD, propertyPVALID}, // TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA - {0x0BCE, 0x0BCF, propertyUNASSIGNED}, // .. - {0x0BD0, 0x0, propertyPVALID}, // TAMIL OM - {0x0BD1, 0x0BD6, propertyUNASSIGNED}, // .. - {0x0BD7, 0x0, propertyPVALID}, // TAMIL AU LENGTH MARK - {0x0BD8, 0x0BE5, propertyUNASSIGNED}, // .. - {0x0BE6, 0x0BEF, propertyPVALID}, // TAMIL DIGIT ZERO..TAMIL DIGIT NINE - {0x0BF0, 0x0BFA, propertyDISALLOWED}, // TAMIL NUMBER TEN..TAMIL NUMBER SIGN - {0x0BFB, 0x0C00, propertyUNASSIGNED}, // .. - {0x0C01, 0x0C03, propertyPVALID}, // TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA - {0x0C04, 0x0, propertyUNASSIGNED}, // - {0x0C05, 0x0C0C, propertyPVALID}, // TELUGU LETTER A..TELUGU LETTER VOCALIC L - {0x0C0D, 0x0, propertyUNASSIGNED}, // - {0x0C0E, 0x0C10, propertyPVALID}, // TELUGU LETTER E..TELUGU LETTER AI - {0x0C11, 0x0, propertyUNASSIGNED}, // - {0x0C12, 0x0C28, propertyPVALID}, // TELUGU LETTER O..TELUGU LETTER NA - {0x0C29, 0x0, propertyUNASSIGNED}, // - {0x0C2A, 0x0C33, propertyPVALID}, // TELUGU LETTER PA..TELUGU LETTER LLA - {0x0C34, 0x0, propertyUNASSIGNED}, // - {0x0C35, 0x0C39, propertyPVALID}, // TELUGU LETTER VA..TELUGU LETTER HA - {0x0C3A, 0x0C3C, propertyUNASSIGNED}, // .. - {0x0C3D, 0x0C44, propertyPVALID}, // TELUGU SIGN AVAGRAHA..TELUGU VOWEL SIGN VOCA - {0x0C45, 0x0, propertyUNASSIGNED}, // - {0x0C46, 0x0C48, propertyPVALID}, // TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI - {0x0C49, 0x0, propertyUNASSIGNED}, // - {0x0C4A, 0x0C4D, propertyPVALID}, // TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA - {0x0C4E, 0x0C54, propertyUNASSIGNED}, // .. - {0x0C55, 0x0C56, propertyPVALID}, // TELUGU LENGTH MARK..TELUGU AI LENGTH MARK - {0x0C57, 0x0, propertyUNASSIGNED}, // - {0x0C58, 0x0C59, propertyPVALID}, // TELUGU LETTER TSA..TELUGU LETTER DZA - {0x0C5A, 0x0C5F, propertyUNASSIGNED}, // .. - {0x0C60, 0x0C63, propertyPVALID}, // TELUGU LETTER VOCALIC RR..TELUGU VOWEL SIGN - {0x0C64, 0x0C65, propertyUNASSIGNED}, // .. - {0x0C66, 0x0C6F, propertyPVALID}, // TELUGU DIGIT ZERO..TELUGU DIGIT NINE - {0x0C70, 0x0C77, propertyUNASSIGNED}, // .. - {0x0C78, 0x0C7F, propertyDISALLOWED}, // TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF - {0x0C80, 0x0C81, propertyUNASSIGNED}, // .. - {0x0C82, 0x0C83, propertyPVALID}, // KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA - {0x0C84, 0x0, propertyUNASSIGNED}, // - {0x0C85, 0x0C8C, propertyPVALID}, // KANNADA LETTER A..KANNADA LETTER VOCALIC L - {0x0C8D, 0x0, propertyUNASSIGNED}, // - {0x0C8E, 0x0C90, propertyPVALID}, // KANNADA LETTER E..KANNADA LETTER AI - {0x0C91, 0x0, propertyUNASSIGNED}, // - {0x0C92, 0x0CA8, propertyPVALID}, // KANNADA LETTER O..KANNADA LETTER NA - {0x0CA9, 0x0, propertyUNASSIGNED}, // - {0x0CAA, 0x0CB3, propertyPVALID}, // KANNADA LETTER PA..KANNADA LETTER LLA - {0x0CB4, 0x0, propertyUNASSIGNED}, // - {0x0CB5, 0x0CB9, propertyPVALID}, // KANNADA LETTER VA..KANNADA LETTER HA - {0x0CBA, 0x0CBB, propertyUNASSIGNED}, // .. - {0x0CBC, 0x0CC4, propertyPVALID}, // KANNADA SIGN NUKTA..KANNADA VOWEL SIGN VOCAL - {0x0CC5, 0x0, propertyUNASSIGNED}, // - {0x0CC6, 0x0CC8, propertyPVALID}, // KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI - {0x0CC9, 0x0, propertyUNASSIGNED}, // - {0x0CCA, 0x0CCD, propertyPVALID}, // KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA - {0x0CCE, 0x0CD4, propertyUNASSIGNED}, // .. - {0x0CD5, 0x0CD6, propertyPVALID}, // KANNADA LENGTH MARK..KANNADA AI LENGTH MARK - {0x0CD7, 0x0CDD, propertyUNASSIGNED}, // .. - {0x0CDE, 0x0, propertyPVALID}, // KANNADA LETTER FA - {0x0CDF, 0x0, propertyUNASSIGNED}, // - {0x0CE0, 0x0CE3, propertyPVALID}, // KANNADA LETTER VOCALIC RR..KANNADA VOWEL SIG - {0x0CE4, 0x0CE5, propertyUNASSIGNED}, // .. - {0x0CE6, 0x0CEF, propertyPVALID}, // KANNADA DIGIT ZERO..KANNADA DIGIT NINE - {0x0CF0, 0x0, propertyUNASSIGNED}, // - {0x0CF1, 0x0CF2, propertyDISALLOWED}, // KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADH - {0x0CF3, 0x0D01, propertyUNASSIGNED}, // .. - {0x0D02, 0x0D03, propertyPVALID}, // MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISA - {0x0D04, 0x0, propertyUNASSIGNED}, // - {0x0D05, 0x0D0C, propertyPVALID}, // MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC - {0x0D0D, 0x0, propertyUNASSIGNED}, // - {0x0D0E, 0x0D10, propertyPVALID}, // MALAYALAM LETTER E..MALAYALAM LETTER AI - {0x0D11, 0x0, propertyUNASSIGNED}, // - {0x0D12, 0x0D28, propertyPVALID}, // MALAYALAM LETTER O..MALAYALAM LETTER NA - {0x0D29, 0x0, propertyUNASSIGNED}, // - {0x0D2A, 0x0D39, propertyPVALID}, // MALAYALAM LETTER PA..MALAYALAM LETTER HA - {0x0D3A, 0x0D3C, propertyUNASSIGNED}, // .. - {0x0D3D, 0x0D44, propertyPVALID}, // MALAYALAM SIGN AVAGRAHA..MALAYALAM VOWEL SIG - {0x0D45, 0x0, propertyUNASSIGNED}, // - {0x0D46, 0x0D48, propertyPVALID}, // MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN - {0x0D49, 0x0, propertyUNASSIGNED}, // - {0x0D4A, 0x0D4D, propertyPVALID}, // MALAYALAM VOWEL SIGN O..MALAYALAM SIGN VIRAM - {0x0D4E, 0x0D56, propertyUNASSIGNED}, // .. - {0x0D57, 0x0, propertyPVALID}, // MALAYALAM AU LENGTH MARK - {0x0D58, 0x0D5F, propertyUNASSIGNED}, // .. - {0x0D60, 0x0D63, propertyPVALID}, // MALAYALAM LETTER VOCALIC RR..MALAYALAM VOWEL - {0x0D64, 0x0D65, propertyUNASSIGNED}, // .. - {0x0D66, 0x0D6F, propertyPVALID}, // MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE - {0x0D70, 0x0D75, propertyDISALLOWED}, // MALAYALAM NUMBER TEN..MALAYALAM FRACTION THR - {0x0D76, 0x0D78, propertyUNASSIGNED}, // .. - {0x0D79, 0x0, propertyDISALLOWED}, // MALAYALAM DATE MARK - {0x0D7A, 0x0D7F, propertyPVALID}, // MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER - {0x0D80, 0x0D81, propertyUNASSIGNED}, // .. - {0x0D82, 0x0D83, propertyPVALID}, // SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARG - {0x0D84, 0x0, propertyUNASSIGNED}, // - {0x0D85, 0x0D96, propertyPVALID}, // SINHALA LETTER AYANNA..SINHALA LETTER AUYANN - {0x0D97, 0x0D99, propertyUNASSIGNED}, // .. - {0x0D9A, 0x0DB1, propertyPVALID}, // SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA L - {0x0DB2, 0x0, propertyUNASSIGNED}, // - {0x0DB3, 0x0DBB, propertyPVALID}, // SINHALA LETTER SANYAKA DAYANNA..SINHALA LETT - {0x0DBC, 0x0, propertyUNASSIGNED}, // - {0x0DBD, 0x0, propertyPVALID}, // SINHALA LETTER DANTAJA LAYANNA - {0x0DBE, 0x0DBF, propertyUNASSIGNED}, // .. - {0x0DC0, 0x0DC6, propertyPVALID}, // SINHALA LETTER VAYANNA..SINHALA LETTER FAYAN - {0x0DC7, 0x0DC9, propertyUNASSIGNED}, // .. - {0x0DCA, 0x0, propertyPVALID}, // SINHALA SIGN AL-LAKUNA - {0x0DCB, 0x0DCE, propertyUNASSIGNED}, // .. - {0x0DCF, 0x0DD4, propertyPVALID}, // SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL - {0x0DD5, 0x0, propertyUNASSIGNED}, // - {0x0DD6, 0x0, propertyPVALID}, // SINHALA VOWEL SIGN DIGA PAA-PILLA - {0x0DD7, 0x0, propertyUNASSIGNED}, // - {0x0DD8, 0x0DDF, propertyPVALID}, // SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOW - {0x0DE0, 0x0DF1, propertyUNASSIGNED}, // .. - {0x0DF2, 0x0DF3, propertyPVALID}, // SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHAL - {0x0DF4, 0x0, propertyDISALLOWED}, // SINHALA PUNCTUATION KUNDDALIYA - {0x0DF5, 0x0E00, propertyUNASSIGNED}, // .. - {0x0E01, 0x0E32, propertyPVALID}, // THAI CHARACTER KO KAI..THAI CHARACTER SARA A - {0x0E33, 0x0, propertyDISALLOWED}, // THAI CHARACTER SARA AM - {0x0E34, 0x0E3A, propertyPVALID}, // THAI CHARACTER SARA I..THAI CHARACTER PHINTH - {0x0E3B, 0x0E3E, propertyUNASSIGNED}, // .. - {0x0E3F, 0x0, propertyDISALLOWED}, // THAI CURRENCY SYMBOL BAHT - {0x0E40, 0x0E4E, propertyPVALID}, // THAI CHARACTER SARA E..THAI CHARACTER YAMAKK - {0x0E4F, 0x0, propertyDISALLOWED}, // THAI CHARACTER FONGMAN - {0x0E50, 0x0E59, propertyPVALID}, // THAI DIGIT ZERO..THAI DIGIT NINE - {0x0E5A, 0x0E5B, propertyDISALLOWED}, // THAI CHARACTER ANGKHANKHU..THAI CHARACTER KH - {0x0E5C, 0x0E80, propertyUNASSIGNED}, // .. - {0x0E81, 0x0E82, propertyPVALID}, // LAO LETTER KO..LAO LETTER KHO SUNG - {0x0E83, 0x0, propertyUNASSIGNED}, // - {0x0E84, 0x0, propertyPVALID}, // LAO LETTER KHO TAM - {0x0E85, 0x0E86, propertyUNASSIGNED}, // .. - {0x0E87, 0x0E88, propertyPVALID}, // LAO LETTER NGO..LAO LETTER CO - {0x0E89, 0x0, propertyUNASSIGNED}, // - {0x0E8A, 0x0, propertyPVALID}, // LAO LETTER SO TAM - {0x0E8B, 0x0E8C, propertyUNASSIGNED}, // .. - {0x0E8D, 0x0, propertyPVALID}, // LAO LETTER NYO - {0x0E8E, 0x0E93, propertyUNASSIGNED}, // .. - {0x0E94, 0x0E97, propertyPVALID}, // LAO LETTER DO..LAO LETTER THO TAM - {0x0E98, 0x0, propertyUNASSIGNED}, // - {0x0E99, 0x0E9F, propertyPVALID}, // LAO LETTER NO..LAO LETTER FO SUNG - {0x0EA0, 0x0, propertyUNASSIGNED}, // - {0x0EA1, 0x0EA3, propertyPVALID}, // LAO LETTER MO..LAO LETTER LO LING - {0x0EA4, 0x0, propertyUNASSIGNED}, // - {0x0EA5, 0x0, propertyPVALID}, // LAO LETTER LO LOOT - {0x0EA6, 0x0, propertyUNASSIGNED}, // - {0x0EA7, 0x0, propertyPVALID}, // LAO LETTER WO - {0x0EA8, 0x0EA9, propertyUNASSIGNED}, // .. - {0x0EAA, 0x0EAB, propertyPVALID}, // LAO LETTER SO SUNG..LAO LETTER HO SUNG - {0x0EAC, 0x0, propertyUNASSIGNED}, // - {0x0EAD, 0x0EB2, propertyPVALID}, // LAO LETTER O..LAO VOWEL SIGN AA - {0x0EB3, 0x0, propertyDISALLOWED}, // LAO VOWEL SIGN AM - {0x0EB4, 0x0EB9, propertyPVALID}, // LAO VOWEL SIGN I..LAO VOWEL SIGN UU - {0x0EBA, 0x0, propertyUNASSIGNED}, // - {0x0EBB, 0x0EBD, propertyPVALID}, // LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN N - {0x0EBE, 0x0EBF, propertyUNASSIGNED}, // .. - {0x0EC0, 0x0EC4, propertyPVALID}, // LAO VOWEL SIGN E..LAO VOWEL SIGN AI - {0x0EC5, 0x0, propertyUNASSIGNED}, // - {0x0EC6, 0x0, propertyPVALID}, // LAO KO LA - {0x0EC7, 0x0, propertyUNASSIGNED}, // - {0x0EC8, 0x0ECD, propertyPVALID}, // LAO TONE MAI EK..LAO NIGGAHITA - {0x0ECE, 0x0ECF, propertyUNASSIGNED}, // .. - {0x0ED0, 0x0ED9, propertyPVALID}, // LAO DIGIT ZERO..LAO DIGIT NINE - {0x0EDA, 0x0EDB, propertyUNASSIGNED}, // .. - {0x0EDC, 0x0EDD, propertyDISALLOWED}, // LAO HO NO..LAO HO MO - {0x0EDE, 0x0EFF, propertyUNASSIGNED}, // .. - {0x0F00, 0x0, propertyPVALID}, // TIBETAN SYLLABLE OM - {0x0F01, 0x0F0A, propertyDISALLOWED}, // TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBET - {0x0F0B, 0x0, propertyPVALID}, // TIBETAN MARK INTERSYLLABIC TSHEG - {0x0F0C, 0x0F17, propertyDISALLOWED}, // TIBETAN MARK DELIMITER TSHEG BSTAR..TIBETAN - {0x0F18, 0x0F19, propertyPVALID}, // TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN - {0x0F1A, 0x0F1F, propertyDISALLOWED}, // TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RD - {0x0F20, 0x0F29, propertyPVALID}, // TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE - {0x0F2A, 0x0F34, propertyDISALLOWED}, // TIBETAN DIGIT HALF ONE..TIBETAN MARK BSDUS R - {0x0F35, 0x0, propertyPVALID}, // TIBETAN MARK NGAS BZUNG NYI ZLA - {0x0F36, 0x0, propertyDISALLOWED}, // TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN - {0x0F37, 0x0, propertyPVALID}, // TIBETAN MARK NGAS BZUNG SGOR RTAGS - {0x0F38, 0x0, propertyDISALLOWED}, // TIBETAN MARK CHE MGO - {0x0F39, 0x0, propertyPVALID}, // TIBETAN MARK TSA -PHRU - {0x0F3A, 0x0F3D, propertyDISALLOWED}, // TIBETAN MARK GUG RTAGS GYON..TIBETAN MARK AN - {0x0F3E, 0x0F42, propertyPVALID}, // TIBETAN SIGN YAR TSHES..TIBETAN LETTER GA - {0x0F43, 0x0, propertyDISALLOWED}, // TIBETAN LETTER GHA - {0x0F44, 0x0F47, propertyPVALID}, // TIBETAN LETTER NGA..TIBETAN LETTER JA - {0x0F48, 0x0, propertyUNASSIGNED}, // - {0x0F49, 0x0F4C, propertyPVALID}, // TIBETAN LETTER NYA..TIBETAN LETTER DDA - {0x0F4D, 0x0, propertyDISALLOWED}, // TIBETAN LETTER DDHA - {0x0F4E, 0x0F51, propertyPVALID}, // TIBETAN LETTER NNA..TIBETAN LETTER DA - {0x0F52, 0x0, propertyDISALLOWED}, // TIBETAN LETTER DHA - {0x0F53, 0x0F56, propertyPVALID}, // TIBETAN LETTER NA..TIBETAN LETTER BA - {0x0F57, 0x0, propertyDISALLOWED}, // TIBETAN LETTER BHA - {0x0F58, 0x0F5B, propertyPVALID}, // TIBETAN LETTER MA..TIBETAN LETTER DZA - {0x0F5C, 0x0, propertyDISALLOWED}, // TIBETAN LETTER DZHA - {0x0F5D, 0x0F68, propertyPVALID}, // TIBETAN LETTER WA..TIBETAN LETTER A - {0x0F69, 0x0, propertyDISALLOWED}, // TIBETAN LETTER KSSA - {0x0F6A, 0x0F6C, propertyPVALID}, // TIBETAN LETTER FIXED-FORM RA..TIBETAN LETTER - {0x0F6D, 0x0F70, propertyUNASSIGNED}, // .. - {0x0F71, 0x0F72, propertyPVALID}, // TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I - {0x0F73, 0x0, propertyDISALLOWED}, // TIBETAN VOWEL SIGN II - {0x0F74, 0x0, propertyPVALID}, // TIBETAN VOWEL SIGN U - {0x0F75, 0x0F79, propertyDISALLOWED}, // TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VO - {0x0F7A, 0x0F80, propertyPVALID}, // TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REV - {0x0F81, 0x0, propertyDISALLOWED}, // TIBETAN VOWEL SIGN REVERSED II - {0x0F82, 0x0F84, propertyPVALID}, // TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HA - {0x0F85, 0x0, propertyDISALLOWED}, // TIBETAN MARK PALUTA - {0x0F86, 0x0F8B, propertyPVALID}, // TIBETAN SIGN LCI RTAGS..TIBETAN SIGN GRU MED - {0x0F8C, 0x0F8F, propertyUNASSIGNED}, // .. - {0x0F90, 0x0F92, propertyPVALID}, // TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOIN - {0x0F93, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER GHA - {0x0F94, 0x0F97, propertyPVALID}, // TIBETAN SUBJOINED LETTER NGA..TIBETAN SUBJOI - {0x0F98, 0x0, propertyUNASSIGNED}, // - {0x0F99, 0x0F9C, propertyPVALID}, // TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOI - {0x0F9D, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER DDHA - {0x0F9E, 0x0FA1, propertyPVALID}, // TIBETAN SUBJOINED LETTER NNA..TIBETAN SUBJOI - {0x0FA2, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER DHA - {0x0FA3, 0x0FA6, propertyPVALID}, // TIBETAN SUBJOINED LETTER NA..TIBETAN SUBJOIN - {0x0FA7, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER BHA - {0x0FA8, 0x0FAB, propertyPVALID}, // TIBETAN SUBJOINED LETTER MA..TIBETAN SUBJOIN - {0x0FAC, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER DZHA - {0x0FAD, 0x0FB8, propertyPVALID}, // TIBETAN SUBJOINED LETTER WA..TIBETAN SUBJOIN - {0x0FB9, 0x0, propertyDISALLOWED}, // TIBETAN SUBJOINED LETTER KSSA - {0x0FBA, 0x0FBC, propertyPVALID}, // TIBETAN SUBJOINED LETTER FIXED-FORM WA..TIBE - {0x0FBD, 0x0, propertyUNASSIGNED}, // - {0x0FBE, 0x0FC5, propertyDISALLOWED}, // TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE - {0x0FC6, 0x0, propertyPVALID}, // TIBETAN SYMBOL PADMA GDAN - {0x0FC7, 0x0FCC, propertyDISALLOWED}, // TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SY - {0x0FCD, 0x0, propertyUNASSIGNED}, // - {0x0FCE, 0x0FD8, propertyDISALLOWED}, // TIBETAN SIGN RDEL NAG RDEL DKAR..LEFT-FACING - {0x0FD9, 0x0FFF, propertyUNASSIGNED}, // .. - {0x1000, 0x1049, propertyPVALID}, // MYANMAR LETTER KA..MYANMAR DIGIT NINE - {0x104A, 0x104F, propertyDISALLOWED}, // MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL - {0x1050, 0x109D, propertyPVALID}, // MYANMAR LETTER SHA..MYANMAR VOWEL SIGN AITON - {0x109E, 0x10C5, propertyDISALLOWED}, // MYANMAR SYMBOL SHAN ONE..GEORGIAN CAPITAL LE - {0x10C6, 0x10CF, propertyUNASSIGNED}, // .. - {0x10D0, 0x10FA, propertyPVALID}, // GEORGIAN LETTER AN..GEORGIAN LETTER AIN - {0x10FB, 0x10FC, propertyDISALLOWED}, // GEORGIAN PARAGRAPH SEPARATOR..MODIFIER LETTE - {0x10FD, 0x10FF, propertyUNASSIGNED}, // .. - {0x1100, 0x11FF, propertyDISALLOWED}, // HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSA - {0x1200, 0x1248, propertyPVALID}, // ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA - {0x1249, 0x0, propertyUNASSIGNED}, // - {0x124A, 0x124D, propertyPVALID}, // ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE - {0x124E, 0x124F, propertyUNASSIGNED}, // .. - {0x1250, 0x1256, propertyPVALID}, // ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO - {0x1257, 0x0, propertyUNASSIGNED}, // - {0x1258, 0x0, propertyPVALID}, // ETHIOPIC SYLLABLE QHWA - {0x1259, 0x0, propertyUNASSIGNED}, // - {0x125A, 0x125D, propertyPVALID}, // ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QH - {0x125E, 0x125F, propertyUNASSIGNED}, // .. - {0x1260, 0x1288, propertyPVALID}, // ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA - {0x1289, 0x0, propertyUNASSIGNED}, // - {0x128A, 0x128D, propertyPVALID}, // ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE - {0x128E, 0x128F, propertyUNASSIGNED}, // .. - {0x1290, 0x12B0, propertyPVALID}, // ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA - {0x12B1, 0x0, propertyUNASSIGNED}, // - {0x12B2, 0x12B5, propertyPVALID}, // ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE - {0x12B6, 0x12B7, propertyUNASSIGNED}, // .. - {0x12B8, 0x12BE, propertyPVALID}, // ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO - {0x12BF, 0x0, propertyUNASSIGNED}, // - {0x12C0, 0x0, propertyPVALID}, // ETHIOPIC SYLLABLE KXWA - {0x12C1, 0x0, propertyUNASSIGNED}, // - {0x12C2, 0x12C5, propertyPVALID}, // ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KX - {0x12C6, 0x12C7, propertyUNASSIGNED}, // .. - {0x12C8, 0x12D6, propertyPVALID}, // ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHAR - {0x12D7, 0x0, propertyUNASSIGNED}, // - {0x12D8, 0x1310, propertyPVALID}, // ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA - {0x1311, 0x0, propertyUNASSIGNED}, // - {0x1312, 0x1315, propertyPVALID}, // ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE - {0x1316, 0x1317, propertyUNASSIGNED}, // .. - {0x1318, 0x135A, propertyPVALID}, // ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA - {0x135B, 0x135E, propertyUNASSIGNED}, // .. - {0x135F, 0x0, propertyPVALID}, // ETHIOPIC COMBINING GEMINATION MARK - {0x1360, 0x137C, propertyDISALLOWED}, // ETHIOPIC SECTION MARK..ETHIOPIC NUMBER TEN T - {0x137D, 0x137F, propertyUNASSIGNED}, // .. - {0x1380, 0x138F, propertyPVALID}, // ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SY - {0x1390, 0x1399, propertyDISALLOWED}, // ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MA - {0x139A, 0x139F, propertyUNASSIGNED}, // .. - {0x13A0, 0x13F4, propertyPVALID}, // CHEROKEE LETTER A..CHEROKEE LETTER YV - {0x13F5, 0x13FF, propertyUNASSIGNED}, // .. - {0x1400, 0x0, propertyDISALLOWED}, // CANADIAN SYLLABICS HYPHEN - {0x1401, 0x166C, propertyPVALID}, // CANADIAN SYLLABICS E..CANADIAN SYLLABICS CAR - {0x166D, 0x166E, propertyDISALLOWED}, // CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLAB - {0x166F, 0x167F, propertyPVALID}, // CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS B - {0x1680, 0x0, propertyDISALLOWED}, // OGHAM SPACE MARK - {0x1681, 0x169A, propertyPVALID}, // OGHAM LETTER BEITH..OGHAM LETTER PEITH - {0x169B, 0x169C, propertyDISALLOWED}, // OGHAM FEATHER MARK..OGHAM REVERSED FEATHER M - {0x169D, 0x169F, propertyUNASSIGNED}, // .. - {0x16A0, 0x16EA, propertyPVALID}, // RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X - {0x16EB, 0x16F0, propertyDISALLOWED}, // RUNIC SINGLE PUNCTUATION..RUNIC BELGTHOR SYM - {0x16F1, 0x16FF, propertyUNASSIGNED}, // .. - {0x1700, 0x170C, propertyPVALID}, // TAGALOG LETTER A..TAGALOG LETTER YA - {0x170D, 0x0, propertyUNASSIGNED}, // - {0x170E, 0x1714, propertyPVALID}, // TAGALOG LETTER LA..TAGALOG SIGN VIRAMA - {0x1715, 0x171F, propertyUNASSIGNED}, // .. - {0x1720, 0x1734, propertyPVALID}, // HANUNOO LETTER A..HANUNOO SIGN PAMUDPOD - {0x1735, 0x1736, propertyDISALLOWED}, // PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DO - {0x1737, 0x173F, propertyUNASSIGNED}, // .. - {0x1740, 0x1753, propertyPVALID}, // BUHID LETTER A..BUHID VOWEL SIGN U - {0x1754, 0x175F, propertyUNASSIGNED}, // .. - {0x1760, 0x176C, propertyPVALID}, // TAGBANWA LETTER A..TAGBANWA LETTER YA - {0x176D, 0x0, propertyUNASSIGNED}, // - {0x176E, 0x1770, propertyPVALID}, // TAGBANWA LETTER LA..TAGBANWA LETTER SA - {0x1771, 0x0, propertyUNASSIGNED}, // - {0x1772, 0x1773, propertyPVALID}, // TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U - {0x1774, 0x177F, propertyUNASSIGNED}, // .. - {0x1780, 0x17B3, propertyPVALID}, // KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU - {0x17B4, 0x17B5, propertyDISALLOWED}, // KHMER VOWEL INHERENT AQ..KHMER VOWEL INHEREN - {0x17B6, 0x17D3, propertyPVALID}, // KHMER VOWEL SIGN AA..KHMER SIGN BATHAMASAT - {0x17D4, 0x17D6, propertyDISALLOWED}, // KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH - {0x17D7, 0x0, propertyPVALID}, // KHMER SIGN LEK TOO - {0x17D8, 0x17DB, propertyDISALLOWED}, // KHMER SIGN BEYYAL..KHMER CURRENCY SYMBOL RIE - {0x17DC, 0x17DD, propertyPVALID}, // KHMER SIGN AVAKRAHASANYA..KHMER SIGN ATTHACA - {0x17DE, 0x17DF, propertyUNASSIGNED}, // .. - {0x17E0, 0x17E9, propertyPVALID}, // KHMER DIGIT ZERO..KHMER DIGIT NINE - {0x17EA, 0x17EF, propertyUNASSIGNED}, // .. - {0x17F0, 0x17F9, propertyDISALLOWED}, // KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK - {0x17FA, 0x17FF, propertyUNASSIGNED}, // .. - {0x1800, 0x180E, propertyDISALLOWED}, // MONGOLIAN BIRGA..MONGOLIAN VOWEL SEPARATOR - {0x180F, 0x0, propertyUNASSIGNED}, // - {0x1810, 0x1819, propertyPVALID}, // MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE - {0x181A, 0x181F, propertyUNASSIGNED}, // .. - {0x1820, 0x1877, propertyPVALID}, // MONGOLIAN LETTER A..MONGOLIAN LETTER MANCHU - {0x1878, 0x187F, propertyUNASSIGNED}, // .. - {0x1880, 0x18AA, propertyPVALID}, // MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONG - {0x18AB, 0x18AF, propertyUNASSIGNED}, // .. - {0x18B0, 0x18F5, propertyPVALID}, // CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CA - {0x18F6, 0x18FF, propertyUNASSIGNED}, // .. - {0x1900, 0x191C, propertyPVALID}, // LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA - {0x191D, 0x191F, propertyUNASSIGNED}, // .. - {0x1920, 0x192B, propertyPVALID}, // LIMBU VOWEL SIGN A..LIMBU SUBJOINED LETTER W - {0x192C, 0x192F, propertyUNASSIGNED}, // .. - {0x1930, 0x193B, propertyPVALID}, // LIMBU SMALL LETTER KA..LIMBU SIGN SA-I - {0x193C, 0x193F, propertyUNASSIGNED}, // .. - {0x1940, 0x0, propertyDISALLOWED}, // LIMBU SIGN LOO - {0x1941, 0x1943, propertyUNASSIGNED}, // .. - {0x1944, 0x1945, propertyDISALLOWED}, // LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK - {0x1946, 0x196D, propertyPVALID}, // LIMBU DIGIT ZERO..TAI LE LETTER AI - {0x196E, 0x196F, propertyUNASSIGNED}, // .. - {0x1970, 0x1974, propertyPVALID}, // TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 - {0x1975, 0x197F, propertyUNASSIGNED}, // .. - {0x1980, 0x19AB, propertyPVALID}, // NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETT - {0x19AC, 0x19AF, propertyUNASSIGNED}, // .. - {0x19B0, 0x19C9, propertyPVALID}, // NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW - {0x19CA, 0x19CF, propertyUNASSIGNED}, // .. - {0x19D0, 0x19DA, propertyPVALID}, // NEW TAI LUE DIGIT ZERO..NEW TAI LUE THAM DIG - {0x19DB, 0x19DD, propertyUNASSIGNED}, // .. - {0x19DE, 0x19FF, propertyDISALLOWED}, // NEW TAI LUE SIGN LAE..KHMER SYMBOL DAP-PRAM - {0x1A00, 0x1A1B, propertyPVALID}, // BUGINESE LETTER KA..BUGINESE VOWEL SIGN AE - {0x1A1C, 0x1A1D, propertyUNASSIGNED}, // .. - {0x1A1E, 0x1A1F, propertyDISALLOWED}, // BUGINESE PALLAWA..BUGINESE END OF SECTION - {0x1A20, 0x1A5E, propertyPVALID}, // TAI THAM LETTER HIGH KA..TAI THAM CONSONANT - {0x1A5F, 0x0, propertyUNASSIGNED}, // - {0x1A60, 0x1A7C, propertyPVALID}, // TAI THAM SIGN SAKOT..TAI THAM SIGN KHUEN-LUE - {0x1A7D, 0x1A7E, propertyUNASSIGNED}, // .. - {0x1A7F, 0x1A89, propertyPVALID}, // TAI THAM COMBINING CRYPTOGRAMMIC DOT..TAI TH - {0x1A8A, 0x1A8F, propertyUNASSIGNED}, // .. - {0x1A90, 0x1A99, propertyPVALID}, // TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGI - {0x1A9A, 0x1A9F, propertyUNASSIGNED}, // .. - {0x1AA0, 0x1AA6, propertyDISALLOWED}, // TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED - {0x1AA7, 0x0, propertyPVALID}, // TAI THAM SIGN MAI YAMOK - {0x1AA8, 0x1AAD, propertyDISALLOWED}, // TAI THAM SIGN KAAN..TAI THAM SIGN CAANG - {0x1AAE, 0x1AFF, propertyUNASSIGNED}, // .. - {0x1B00, 0x1B4B, propertyPVALID}, // BALINESE SIGN ULU RICEM..BALINESE LETTER ASY - {0x1B4C, 0x1B4F, propertyUNASSIGNED}, // .. - {0x1B50, 0x1B59, propertyPVALID}, // BALINESE DIGIT ZERO..BALINESE DIGIT NINE - {0x1B5A, 0x1B6A, propertyDISALLOWED}, // BALINESE PANTI..BALINESE MUSICAL SYMBOL DANG - {0x1B6B, 0x1B73, propertyPVALID}, // BALINESE MUSICAL SYMBOL COMBINING TEGEH..BAL - {0x1B74, 0x1B7C, propertyDISALLOWED}, // BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG. - {0x1B7D, 0x1B7F, propertyUNASSIGNED}, // .. - {0x1B80, 0x1BAA, propertyPVALID}, // SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PAMA - {0x1BAB, 0x1BAD, propertyUNASSIGNED}, // .. - {0x1BAE, 0x1BB9, propertyPVALID}, // SUNDANESE LETTER KHA..SUNDANESE DIGIT NINE - {0x1BBA, 0x1BFF, propertyUNASSIGNED}, // .. - {0x1C00, 0x1C37, propertyPVALID}, // LEPCHA LETTER KA..LEPCHA SIGN NUKTA - {0x1C38, 0x1C3A, propertyUNASSIGNED}, // .. - {0x1C3B, 0x1C3F, propertyDISALLOWED}, // LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATIO - {0x1C40, 0x1C49, propertyPVALID}, // LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE - {0x1C4A, 0x1C4C, propertyUNASSIGNED}, // .. - {0x1C4D, 0x1C7D, propertyPVALID}, // LEPCHA LETTER TTA..OL CHIKI AHAD - {0x1C7E, 0x1C7F, propertyDISALLOWED}, // OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTU - {0x1C80, 0x1CCF, propertyUNASSIGNED}, // .. - {0x1CD0, 0x1CD2, propertyPVALID}, // VEDIC TONE KARSHANA..VEDIC TONE PRENKHA - {0x1CD3, 0x0, propertyDISALLOWED}, // VEDIC SIGN NIHSHVASA - {0x1CD4, 0x1CF2, propertyPVALID}, // VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC - {0x1CF3, 0x1CFF, propertyUNASSIGNED}, // .. - {0x1D00, 0x1D2B, propertyPVALID}, // LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTE - {0x1D2C, 0x1D2E, propertyDISALLOWED}, // MODIFIER LETTER CAPITAL A..MODIFIER LETTER C - {0x1D2F, 0x0, propertyPVALID}, // MODIFIER LETTER CAPITAL BARRED B - {0x1D30, 0x1D3A, propertyDISALLOWED}, // MODIFIER LETTER CAPITAL D..MODIFIER LETTER C - {0x1D3B, 0x0, propertyPVALID}, // MODIFIER LETTER CAPITAL REVERSED N - {0x1D3C, 0x1D4D, propertyDISALLOWED}, // MODIFIER LETTER CAPITAL O..MODIFIER LETTER S - {0x1D4E, 0x0, propertyPVALID}, // MODIFIER LETTER SMALL TURNED I - {0x1D4F, 0x1D6A, propertyDISALLOWED}, // MODIFIER LETTER SMALL K..GREEK SUBSCRIPT SMA - {0x1D6B, 0x1D77, propertyPVALID}, // LATIN SMALL LETTER UE..LATIN SMALL LETTER TU - {0x1D78, 0x0, propertyDISALLOWED}, // MODIFIER LETTER CYRILLIC EN - {0x1D79, 0x1D9A, propertyPVALID}, // LATIN SMALL LETTER INSULAR G..LATIN SMALL LE - {0x1D9B, 0x1DBF, propertyDISALLOWED}, // MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER - {0x1DC0, 0x1DE6, propertyPVALID}, // COMBINING DOTTED GRAVE ACCENT..COMBINING LAT - {0x1DE7, 0x1DFC, propertyUNASSIGNED}, // .. - {0x1DFD, 0x1DFF, propertyPVALID}, // COMBINING ALMOST EQUAL TO BELOW..COMBINING R - {0x1E00, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH RING BELOW - {0x1E01, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH RING BELOW - {0x1E02, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH DOT ABOVE - {0x1E03, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH DOT ABOVE - {0x1E04, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH DOT BELOW - {0x1E05, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH DOT BELOW - {0x1E06, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER B WITH LINE BELOW - {0x1E07, 0x0, propertyPVALID}, // LATIN SMALL LETTER B WITH LINE BELOW - {0x1E08, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER C WITH CEDILLA AND ACUT - {0x1E09, 0x0, propertyPVALID}, // LATIN SMALL LETTER C WITH CEDILLA AND ACUTE - {0x1E0A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH DOT ABOVE - {0x1E0B, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH DOT ABOVE - {0x1E0C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH DOT BELOW - {0x1E0D, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH DOT BELOW - {0x1E0E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH LINE BELOW - {0x1E0F, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH LINE BELOW - {0x1E10, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH CEDILLA - {0x1E11, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH CEDILLA - {0x1E12, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW - {0x1E13, 0x0, propertyPVALID}, // LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW - {0x1E14, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH MACRON AND GRAVE - {0x1E15, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH MACRON AND GRAVE - {0x1E16, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH MACRON AND ACUTE - {0x1E17, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH MACRON AND ACUTE - {0x1E18, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW - {0x1E19, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW - {0x1E1A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH TILDE BELOW - {0x1E1B, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH TILDE BELOW - {0x1E1C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CEDILLA AND BREV - {0x1E1D, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CEDILLA AND BREVE - {0x1E1E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER F WITH DOT ABOVE - {0x1E1F, 0x0, propertyPVALID}, // LATIN SMALL LETTER F WITH DOT ABOVE - {0x1E20, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER G WITH MACRON - {0x1E21, 0x0, propertyPVALID}, // LATIN SMALL LETTER G WITH MACRON - {0x1E22, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH DOT ABOVE - {0x1E23, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH DOT ABOVE - {0x1E24, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH DOT BELOW - {0x1E25, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH DOT BELOW - {0x1E26, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH DIAERESIS - {0x1E27, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH DIAERESIS - {0x1E28, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH CEDILLA - {0x1E29, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH CEDILLA - {0x1E2A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH BREVE BELOW - {0x1E2B, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH BREVE BELOW - {0x1E2C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH TILDE BELOW - {0x1E2D, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH TILDE BELOW - {0x1E2E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH DIAERESIS AND AC - {0x1E2F, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH DIAERESIS AND ACUT - {0x1E30, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH ACUTE - {0x1E31, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH ACUTE - {0x1E32, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH DOT BELOW - {0x1E33, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH DOT BELOW - {0x1E34, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH LINE BELOW - {0x1E35, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH LINE BELOW - {0x1E36, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH DOT BELOW - {0x1E37, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH DOT BELOW - {0x1E38, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH DOT BELOW AND MA - {0x1E39, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH DOT BELOW AND MACR - {0x1E3A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH LINE BELOW - {0x1E3B, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH LINE BELOW - {0x1E3C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW - {0x1E3D, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW - {0x1E3E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER M WITH ACUTE - {0x1E3F, 0x0, propertyPVALID}, // LATIN SMALL LETTER M WITH ACUTE - {0x1E40, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER M WITH DOT ABOVE - {0x1E41, 0x0, propertyPVALID}, // LATIN SMALL LETTER M WITH DOT ABOVE - {0x1E42, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER M WITH DOT BELOW - {0x1E43, 0x0, propertyPVALID}, // LATIN SMALL LETTER M WITH DOT BELOW - {0x1E44, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH DOT ABOVE - {0x1E45, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH DOT ABOVE - {0x1E46, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH DOT BELOW - {0x1E47, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH DOT BELOW - {0x1E48, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH LINE BELOW - {0x1E49, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH LINE BELOW - {0x1E4A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW - {0x1E4B, 0x0, propertyPVALID}, // LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW - {0x1E4C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH TILDE AND ACUTE - {0x1E4D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH TILDE AND ACUTE - {0x1E4E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH TILDE AND DIAERE - {0x1E4F, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH TILDE AND DIAERESI - {0x1E50, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH MACRON AND GRAVE - {0x1E51, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH MACRON AND GRAVE - {0x1E52, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH MACRON AND ACUTE - {0x1E53, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH MACRON AND ACUTE - {0x1E54, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH ACUTE - {0x1E55, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH ACUTE - {0x1E56, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH DOT ABOVE - {0x1E57, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH DOT ABOVE - {0x1E58, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH DOT ABOVE - {0x1E59, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH DOT ABOVE - {0x1E5A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH DOT BELOW - {0x1E5B, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH DOT BELOW - {0x1E5C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH DOT BELOW AND MA - {0x1E5D, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH DOT BELOW AND MACR - {0x1E5E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R WITH LINE BELOW - {0x1E5F, 0x0, propertyPVALID}, // LATIN SMALL LETTER R WITH LINE BELOW - {0x1E60, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH DOT ABOVE - {0x1E61, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH DOT ABOVE - {0x1E62, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH DOT BELOW - {0x1E63, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH DOT BELOW - {0x1E64, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH ACUTE AND DOT AB - {0x1E65, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH ACUTE AND DOT ABOV - {0x1E66, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH CARON AND DOT AB - {0x1E67, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH CARON AND DOT ABOV - {0x1E68, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER S WITH DOT BELOW AND DO - {0x1E69, 0x0, propertyPVALID}, // LATIN SMALL LETTER S WITH DOT BELOW AND DOT - {0x1E6A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH DOT ABOVE - {0x1E6B, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH DOT ABOVE - {0x1E6C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH DOT BELOW - {0x1E6D, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH DOT BELOW - {0x1E6E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH LINE BELOW - {0x1E6F, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH LINE BELOW - {0x1E70, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW - {0x1E71, 0x0, propertyPVALID}, // LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW - {0x1E72, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DIAERESIS BELOW - {0x1E73, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DIAERESIS BELOW - {0x1E74, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH TILDE BELOW - {0x1E75, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH TILDE BELOW - {0x1E76, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW - {0x1E77, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW - {0x1E78, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH TILDE AND ACUTE - {0x1E79, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH TILDE AND ACUTE - {0x1E7A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH MACRON AND DIAER - {0x1E7B, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH MACRON AND DIAERES - {0x1E7C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER V WITH TILDE - {0x1E7D, 0x0, propertyPVALID}, // LATIN SMALL LETTER V WITH TILDE - {0x1E7E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER V WITH DOT BELOW - {0x1E7F, 0x0, propertyPVALID}, // LATIN SMALL LETTER V WITH DOT BELOW - {0x1E80, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH GRAVE - {0x1E81, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH GRAVE - {0x1E82, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH ACUTE - {0x1E83, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH ACUTE - {0x1E84, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH DIAERESIS - {0x1E85, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH DIAERESIS - {0x1E86, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH DOT ABOVE - {0x1E87, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH DOT ABOVE - {0x1E88, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH DOT BELOW - {0x1E89, 0x0, propertyPVALID}, // LATIN SMALL LETTER W WITH DOT BELOW - {0x1E8A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER X WITH DOT ABOVE - {0x1E8B, 0x0, propertyPVALID}, // LATIN SMALL LETTER X WITH DOT ABOVE - {0x1E8C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER X WITH DIAERESIS - {0x1E8D, 0x0, propertyPVALID}, // LATIN SMALL LETTER X WITH DIAERESIS - {0x1E8E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH DOT ABOVE - {0x1E8F, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH DOT ABOVE - {0x1E90, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH CIRCUMFLEX - {0x1E91, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH CIRCUMFLEX - {0x1E92, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH DOT BELOW - {0x1E93, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH DOT BELOW - {0x1E94, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH LINE BELOW - {0x1E95, 0x1E99, propertyPVALID}, // LATIN SMALL LETTER Z WITH LINE BELOW..LATIN - {0x1E9A, 0x1E9B, propertyDISALLOWED}, // LATIN SMALL LETTER A WITH RIGHT HALF RING..L - {0x1E9C, 0x1E9D, propertyPVALID}, // LATIN SMALL LETTER LONG S WITH DIAGONAL STRO - {0x1E9E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER SHARP S - {0x1E9F, 0x0, propertyPVALID}, // LATIN SMALL LETTER DELTA - {0x1EA0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH DOT BELOW - {0x1EA1, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH DOT BELOW - {0x1EA2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH HOOK ABOVE - {0x1EA3, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH HOOK ABOVE - {0x1EA4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND A - {0x1EA5, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACU - {0x1EA6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND G - {0x1EA7, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRA - {0x1EA8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND H - {0x1EA9, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOO - {0x1EAA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND T - {0x1EAB, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND TIL - {0x1EAC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND D - {0x1EAD, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT - {0x1EAE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND ACUTE - {0x1EAF, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND ACUTE - {0x1EB0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND GRAVE - {0x1EB1, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND GRAVE - {0x1EB2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND HOOK A - {0x1EB3, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND HOOK ABO - {0x1EB4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND TILDE - {0x1EB5, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND TILDE - {0x1EB6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER A WITH BREVE AND DOT BE - {0x1EB7, 0x0, propertyPVALID}, // LATIN SMALL LETTER A WITH BREVE AND DOT BELO - {0x1EB8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH DOT BELOW - {0x1EB9, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH DOT BELOW - {0x1EBA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH HOOK ABOVE - {0x1EBB, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH HOOK ABOVE - {0x1EBC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH TILDE - {0x1EBD, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH TILDE - {0x1EBE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND A - {0x1EBF, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACU - {0x1EC0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND G - {0x1EC1, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRA - {0x1EC2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND H - {0x1EC3, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOO - {0x1EC4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND T - {0x1EC5, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND TIL - {0x1EC6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND D - {0x1EC7, 0x0, propertyPVALID}, // LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT - {0x1EC8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH HOOK ABOVE - {0x1EC9, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH HOOK ABOVE - {0x1ECA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER I WITH DOT BELOW - {0x1ECB, 0x0, propertyPVALID}, // LATIN SMALL LETTER I WITH DOT BELOW - {0x1ECC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH DOT BELOW - {0x1ECD, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH DOT BELOW - {0x1ECE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HOOK ABOVE - {0x1ECF, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HOOK ABOVE - {0x1ED0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND A - {0x1ED1, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACU - {0x1ED2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND G - {0x1ED3, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRA - {0x1ED4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND H - {0x1ED5, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOO - {0x1ED6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND T - {0x1ED7, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND TIL - {0x1ED8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND D - {0x1ED9, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT - {0x1EDA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND ACUTE - {0x1EDB, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND ACUTE - {0x1EDC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND GRAVE - {0x1EDD, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND GRAVE - {0x1EDE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND HOOK AB - {0x1EDF, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND HOOK ABOV - {0x1EE0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND TILDE - {0x1EE1, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND TILDE - {0x1EE2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH HORN AND DOT BEL - {0x1EE3, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH HORN AND DOT BELOW - {0x1EE4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH DOT BELOW - {0x1EE5, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH DOT BELOW - {0x1EE6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HOOK ABOVE - {0x1EE7, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HOOK ABOVE - {0x1EE8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND ACUTE - {0x1EE9, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND ACUTE - {0x1EEA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND GRAVE - {0x1EEB, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND GRAVE - {0x1EEC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND HOOK AB - {0x1EED, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND HOOK ABOV - {0x1EEE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND TILDE - {0x1EEF, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND TILDE - {0x1EF0, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER U WITH HORN AND DOT BEL - {0x1EF1, 0x0, propertyPVALID}, // LATIN SMALL LETTER U WITH HORN AND DOT BELOW - {0x1EF2, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH GRAVE - {0x1EF3, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH GRAVE - {0x1EF4, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH DOT BELOW - {0x1EF5, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH DOT BELOW - {0x1EF6, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH HOOK ABOVE - {0x1EF7, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH HOOK ABOVE - {0x1EF8, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH TILDE - {0x1EF9, 0x0, propertyPVALID}, // LATIN SMALL LETTER Y WITH TILDE - {0x1EFA, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER MIDDLE-WELSH LL - {0x1EFB, 0x0, propertyPVALID}, // LATIN SMALL LETTER MIDDLE-WELSH LL - {0x1EFC, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER MIDDLE-WELSH V - {0x1EFD, 0x0, propertyPVALID}, // LATIN SMALL LETTER MIDDLE-WELSH V - {0x1EFE, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Y WITH LOOP - {0x1EFF, 0x1F07, propertyPVALID}, // LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL - {0x1F08, 0x1F0F, propertyDISALLOWED}, // GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK - {0x1F10, 0x1F15, propertyPVALID}, // GREEK SMALL LETTER EPSILON WITH PSILI..GREEK - {0x1F16, 0x1F17, propertyUNASSIGNED}, // .. - {0x1F18, 0x1F1D, propertyDISALLOWED}, // GREEK CAPITAL LETTER EPSILON WITH PSILI..GRE - {0x1F1E, 0x1F1F, propertyUNASSIGNED}, // .. - {0x1F20, 0x1F27, propertyPVALID}, // GREEK SMALL LETTER ETA WITH PSILI..GREEK SMA - {0x1F28, 0x1F2F, propertyDISALLOWED}, // GREEK CAPITAL LETTER ETA WITH PSILI..GREEK C - {0x1F30, 0x1F37, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH PSILI..GREEK SM - {0x1F38, 0x1F3F, propertyDISALLOWED}, // GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK - {0x1F40, 0x1F45, propertyPVALID}, // GREEK SMALL LETTER OMICRON WITH PSILI..GREEK - {0x1F46, 0x1F47, propertyUNASSIGNED}, // .. - {0x1F48, 0x1F4D, propertyDISALLOWED}, // GREEK CAPITAL LETTER OMICRON WITH PSILI..GRE - {0x1F4E, 0x1F4F, propertyUNASSIGNED}, // .. - {0x1F50, 0x1F57, propertyPVALID}, // GREEK SMALL LETTER UPSILON WITH PSILI..GREEK - {0x1F58, 0x0, propertyUNASSIGNED}, // - {0x1F59, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH DASIA - {0x1F5A, 0x0, propertyUNASSIGNED}, // - {0x1F5B, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH DASIA AND - {0x1F5C, 0x0, propertyUNASSIGNED}, // - {0x1F5D, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH DASIA AND - {0x1F5E, 0x0, propertyUNASSIGNED}, // - {0x1F5F, 0x0, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH DASIA AND - {0x1F60, 0x1F67, propertyPVALID}, // GREEK SMALL LETTER OMEGA WITH PSILI..GREEK S - {0x1F68, 0x1F6F, propertyDISALLOWED}, // GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK - {0x1F70, 0x0, propertyPVALID}, // GREEK SMALL LETTER ALPHA WITH VARIA - {0x1F71, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER ALPHA WITH OXIA - {0x1F72, 0x0, propertyPVALID}, // GREEK SMALL LETTER EPSILON WITH VARIA - {0x1F73, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER EPSILON WITH OXIA - {0x1F74, 0x0, propertyPVALID}, // GREEK SMALL LETTER ETA WITH VARIA - {0x1F75, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER ETA WITH OXIA - {0x1F76, 0x0, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH VARIA - {0x1F77, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER IOTA WITH OXIA - {0x1F78, 0x0, propertyPVALID}, // GREEK SMALL LETTER OMICRON WITH VARIA - {0x1F79, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER OMICRON WITH OXIA - {0x1F7A, 0x0, propertyPVALID}, // GREEK SMALL LETTER UPSILON WITH VARIA - {0x1F7B, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER UPSILON WITH OXIA - {0x1F7C, 0x0, propertyPVALID}, // GREEK SMALL LETTER OMEGA WITH VARIA - {0x1F7D, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER OMEGA WITH OXIA - {0x1F7E, 0x1F7F, propertyUNASSIGNED}, // .. - {0x1F80, 0x1FAF, propertyDISALLOWED}, // GREEK SMALL LETTER ALPHA WITH PSILI AND YPOG - {0x1FB0, 0x1FB1, propertyPVALID}, // GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK - {0x1FB2, 0x1FB4, propertyDISALLOWED}, // GREEK SMALL LETTER ALPHA WITH VARIA AND YPOG - {0x1FB5, 0x0, propertyUNASSIGNED}, // - {0x1FB6, 0x0, propertyPVALID}, // GREEK SMALL LETTER ALPHA WITH PERISPOMENI - {0x1FB7, 0x1FC4, propertyDISALLOWED}, // GREEK SMALL LETTER ALPHA WITH PERISPOMENI AN - {0x1FC5, 0x0, propertyUNASSIGNED}, // - {0x1FC6, 0x0, propertyPVALID}, // GREEK SMALL LETTER ETA WITH PERISPOMENI - {0x1FC7, 0x1FCF, propertyDISALLOWED}, // GREEK SMALL LETTER ETA WITH PERISPOMENI AND - {0x1FD0, 0x1FD2, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH VRACHY..GREEK S - {0x1FD3, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND O - {0x1FD4, 0x1FD5, propertyUNASSIGNED}, // .. - {0x1FD6, 0x1FD7, propertyPVALID}, // GREEK SMALL LETTER IOTA WITH PERISPOMENI..GR - {0x1FD8, 0x1FDB, propertyDISALLOWED}, // GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK - {0x1FDC, 0x0, propertyUNASSIGNED}, // - {0x1FDD, 0x1FDF, propertyDISALLOWED}, // GREEK DASIA AND VARIA..GREEK DASIA AND PERIS - {0x1FE0, 0x1FE2, propertyPVALID}, // GREEK SMALL LETTER UPSILON WITH VRACHY..GREE - {0x1FE3, 0x0, propertyDISALLOWED}, // GREEK SMALL LETTER UPSILON WITH DIALYTIKA AN - {0x1FE4, 0x1FE7, propertyPVALID}, // GREEK SMALL LETTER RHO WITH PSILI..GREEK SMA - {0x1FE8, 0x1FEF, propertyDISALLOWED}, // GREEK CAPITAL LETTER UPSILON WITH VRACHY..GR - {0x1FF0, 0x1FF1, propertyUNASSIGNED}, // .. - {0x1FF2, 0x1FF4, propertyDISALLOWED}, // GREEK SMALL LETTER OMEGA WITH VARIA AND YPOG - {0x1FF5, 0x0, propertyUNASSIGNED}, // - {0x1FF6, 0x0, propertyPVALID}, // GREEK SMALL LETTER OMEGA WITH PERISPOMENI - {0x1FF7, 0x1FFE, propertyDISALLOWED}, // GREEK SMALL LETTER OMEGA WITH PERISPOMENI AN - {0x1FFF, 0x0, propertyUNASSIGNED}, // - {0x2000, 0x200B, propertyDISALLOWED}, // EN QUAD..ZERO WIDTH SPACE - {0x200C, 0x200D, propertyCONTEXTJ}, // ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER - {0x200E, 0x2064, propertyDISALLOWED}, // LEFT-TO-RIGHT MARK..INVISIBLE PLUS - {0x2065, 0x2069, propertyUNASSIGNED}, // .. - {0x206A, 0x2071, propertyDISALLOWED}, // INHIBIT SYMMETRIC SWAPPING..SUPERSCRIPT LATI - {0x2072, 0x2073, propertyUNASSIGNED}, // .. - {0x2074, 0x208E, propertyDISALLOWED}, // SUPERSCRIPT FOUR..SUBSCRIPT RIGHT PARENTHESI - {0x208F, 0x0, propertyUNASSIGNED}, // - {0x2090, 0x2094, propertyDISALLOWED}, // LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCR - {0x2095, 0x209F, propertyUNASSIGNED}, // .. - {0x20A0, 0x20B8, propertyDISALLOWED}, // EURO-CURRENCY SIGN..TENGE SIGN - {0x20B9, 0x20CF, propertyUNASSIGNED}, // .. - {0x20D0, 0x20F0, propertyDISALLOWED}, // COMBINING LEFT HARPOON ABOVE..COMBINING ASTE - {0x20F1, 0x20FF, propertyUNASSIGNED}, // .. - {0x2100, 0x214D, propertyDISALLOWED}, // ACCOUNT OF..AKTIESELSKAB - {0x214E, 0x0, propertyPVALID}, // TURNED SMALL F - {0x214F, 0x2183, propertyDISALLOWED}, // SYMBOL FOR SAMARITAN SOURCE..ROMAN NUMERAL R - {0x2184, 0x0, propertyPVALID}, // LATIN SMALL LETTER REVERSED C - {0x2185, 0x2189, propertyDISALLOWED}, // ROMAN NUMERAL SIX LATE FORM..VULGAR FRACTION - {0x218A, 0x218F, propertyUNASSIGNED}, // .. - {0x2190, 0x23E8, propertyDISALLOWED}, // LEFTWARDS ARROW..DECIMAL EXPONENT SYMBOL - {0x23E9, 0x23FF, propertyUNASSIGNED}, // .. - {0x2400, 0x2426, propertyDISALLOWED}, // SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM - {0x2427, 0x243F, propertyUNASSIGNED}, // .. - {0x2440, 0x244A, propertyDISALLOWED}, // OCR HOOK..OCR DOUBLE BACKSLASH - {0x244B, 0x245F, propertyUNASSIGNED}, // .. - {0x2460, 0x26CD, propertyDISALLOWED}, // CIRCLED DIGIT ONE..DISABLED CAR - {0x26CE, 0x0, propertyUNASSIGNED}, // - {0x26CF, 0x26E1, propertyDISALLOWED}, // PICK..RESTRICTED LEFT ENTRY-2 - {0x26E2, 0x0, propertyUNASSIGNED}, // - {0x26E3, 0x0, propertyDISALLOWED}, // HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE - {0x26E4, 0x26E7, propertyUNASSIGNED}, // .. - {0x26E8, 0x26FF, propertyDISALLOWED}, // BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZ - {0x2700, 0x0, propertyUNASSIGNED}, // - {0x2701, 0x2704, propertyDISALLOWED}, // UPPER BLADE SCISSORS..WHITE SCISSORS - {0x2705, 0x0, propertyUNASSIGNED}, // - {0x2706, 0x2709, propertyDISALLOWED}, // TELEPHONE LOCATION SIGN..ENVELOPE - {0x270A, 0x270B, propertyUNASSIGNED}, // .. - {0x270C, 0x2727, propertyDISALLOWED}, // VICTORY HAND..WHITE FOUR POINTED STAR - {0x2728, 0x0, propertyUNASSIGNED}, // - {0x2729, 0x274B, propertyDISALLOWED}, // STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEAR - {0x274C, 0x0, propertyUNASSIGNED}, // - {0x274D, 0x0, propertyDISALLOWED}, // SHADOWED WHITE CIRCLE - {0x274E, 0x0, propertyUNASSIGNED}, // - {0x274F, 0x2752, propertyDISALLOWED}, // LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPE - {0x2753, 0x2755, propertyUNASSIGNED}, // .. - {0x2756, 0x275E, propertyDISALLOWED}, // BLACK DIAMOND MINUS WHITE X..HEAVY DOUBLE CO - {0x275F, 0x2760, propertyUNASSIGNED}, // .. - {0x2761, 0x2794, propertyDISALLOWED}, // CURVED STEM PARAGRAPH SIGN ORNAMENT..HEAVY W - {0x2795, 0x2797, propertyUNASSIGNED}, // .. - {0x2798, 0x27AF, propertyDISALLOWED}, // HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT- - {0x27B0, 0x0, propertyUNASSIGNED}, // - {0x27B1, 0x27BE, propertyDISALLOWED}, // NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARD - {0x27BF, 0x0, propertyUNASSIGNED}, // - {0x27C0, 0x27CA, propertyDISALLOWED}, // THREE DIMENSIONAL ANGLE..VERTICAL BAR WITH H - {0x27CB, 0x0, propertyUNASSIGNED}, // - {0x27CC, 0x0, propertyDISALLOWED}, // LONG DIVISION - {0x27CD, 0x27CF, propertyUNASSIGNED}, // .. - {0x27D0, 0x2B4C, propertyDISALLOWED}, // WHITE DIAMOND WITH CENTRED DOT..RIGHTWARDS A - {0x2B4D, 0x2B4F, propertyUNASSIGNED}, // .. - {0x2B50, 0x2B59, propertyDISALLOWED}, // WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE - {0x2B5A, 0x2BFF, propertyUNASSIGNED}, // .. - {0x2C00, 0x2C2E, propertyDISALLOWED}, // GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CA - {0x2C2F, 0x0, propertyUNASSIGNED}, // - {0x2C30, 0x2C5E, propertyPVALID}, // GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMAL - {0x2C5F, 0x0, propertyUNASSIGNED}, // - {0x2C60, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH DOUBLE BAR - {0x2C61, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH DOUBLE BAR - {0x2C62, 0x2C64, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LA - {0x2C65, 0x2C66, propertyPVALID}, // LATIN SMALL LETTER A WITH STROKE..LATIN SMAL - {0x2C67, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER H WITH DESCENDER - {0x2C68, 0x0, propertyPVALID}, // LATIN SMALL LETTER H WITH DESCENDER - {0x2C69, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH DESCENDER - {0x2C6A, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH DESCENDER - {0x2C6B, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Z WITH DESCENDER - {0x2C6C, 0x0, propertyPVALID}, // LATIN SMALL LETTER Z WITH DESCENDER - {0x2C6D, 0x2C70, propertyDISALLOWED}, // LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LE - {0x2C71, 0x0, propertyPVALID}, // LATIN SMALL LETTER V WITH RIGHT HOOK - {0x2C72, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER W WITH HOOK - {0x2C73, 0x2C74, propertyPVALID}, // LATIN SMALL LETTER W WITH HOOK..LATIN SMALL - {0x2C75, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER HALF H - {0x2C76, 0x2C7B, propertyPVALID}, // LATIN SMALL LETTER HALF H..LATIN LETTER SMAL - {0x2C7C, 0x2C80, propertyDISALLOWED}, // LATIN SUBSCRIPT SMALL LETTER J..COPTIC CAPIT - {0x2C81, 0x0, propertyPVALID}, // COPTIC SMALL LETTER ALFA - {0x2C82, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER VIDA - {0x2C83, 0x0, propertyPVALID}, // COPTIC SMALL LETTER VIDA - {0x2C84, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER GAMMA - {0x2C85, 0x0, propertyPVALID}, // COPTIC SMALL LETTER GAMMA - {0x2C86, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DALDA - {0x2C87, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DALDA - {0x2C88, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER EIE - {0x2C89, 0x0, propertyPVALID}, // COPTIC SMALL LETTER EIE - {0x2C8A, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SOU - {0x2C8B, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SOU - {0x2C8C, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER ZATA - {0x2C8D, 0x0, propertyPVALID}, // COPTIC SMALL LETTER ZATA - {0x2C8E, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER HATE - {0x2C8F, 0x0, propertyPVALID}, // COPTIC SMALL LETTER HATE - {0x2C90, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER THETHE - {0x2C91, 0x0, propertyPVALID}, // COPTIC SMALL LETTER THETHE - {0x2C92, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER IAUDA - {0x2C93, 0x0, propertyPVALID}, // COPTIC SMALL LETTER IAUDA - {0x2C94, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER KAPA - {0x2C95, 0x0, propertyPVALID}, // COPTIC SMALL LETTER KAPA - {0x2C96, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER LAULA - {0x2C97, 0x0, propertyPVALID}, // COPTIC SMALL LETTER LAULA - {0x2C98, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER MI - {0x2C99, 0x0, propertyPVALID}, // COPTIC SMALL LETTER MI - {0x2C9A, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER NI - {0x2C9B, 0x0, propertyPVALID}, // COPTIC SMALL LETTER NI - {0x2C9C, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER KSI - {0x2C9D, 0x0, propertyPVALID}, // COPTIC SMALL LETTER KSI - {0x2C9E, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER O - {0x2C9F, 0x0, propertyPVALID}, // COPTIC SMALL LETTER O - {0x2CA0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER PI - {0x2CA1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER PI - {0x2CA2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER RO - {0x2CA3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER RO - {0x2CA4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SIMA - {0x2CA5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SIMA - {0x2CA6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER TAU - {0x2CA7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER TAU - {0x2CA8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER UA - {0x2CA9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER UA - {0x2CAA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER FI - {0x2CAB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER FI - {0x2CAC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER KHI - {0x2CAD, 0x0, propertyPVALID}, // COPTIC SMALL LETTER KHI - {0x2CAE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER PSI - {0x2CAF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER PSI - {0x2CB0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OOU - {0x2CB1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OOU - {0x2CB2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DIALECT-P ALEF - {0x2CB3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DIALECT-P ALEF - {0x2CB4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC AIN - {0x2CB5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC AIN - {0x2CB6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE - {0x2CB7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER CRYPTOGRAMMIC EIE - {0x2CB8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DIALECT-P KAPA - {0x2CB9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DIALECT-P KAPA - {0x2CBA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DIALECT-P NI - {0x2CBB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DIALECT-P NI - {0x2CBC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI - {0x2CBD, 0x0, propertyPVALID}, // COPTIC SMALL LETTER CRYPTOGRAMMIC NI - {0x2CBE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC OOU - {0x2CBF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC OOU - {0x2CC0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER SAMPI - {0x2CC1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER SAMPI - {0x2CC2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER CROSSED SHEI - {0x2CC3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER CROSSED SHEI - {0x2CC4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC SHEI - {0x2CC5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC SHEI - {0x2CC6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC ESH - {0x2CC7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC ESH - {0x2CC8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER AKHMIMIC KHEI - {0x2CC9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER AKHMIMIC KHEI - {0x2CCA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER DIALECT-P HORI - {0x2CCB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER DIALECT-P HORI - {0x2CCC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC HORI - {0x2CCD, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC HORI - {0x2CCE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC HA - {0x2CCF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC HA - {0x2CD0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER L-SHAPED HA - {0x2CD1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER L-SHAPED HA - {0x2CD2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC HEI - {0x2CD3, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC HEI - {0x2CD4, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC HAT - {0x2CD5, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC HAT - {0x2CD6, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC GANGIA - {0x2CD7, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC GANGIA - {0x2CD8, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC DJA - {0x2CD9, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC DJA - {0x2CDA, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD COPTIC SHIMA - {0x2CDB, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD COPTIC SHIMA - {0x2CDC, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD NUBIAN SHIMA - {0x2CDD, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD NUBIAN SHIMA - {0x2CDE, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD NUBIAN NGI - {0x2CDF, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD NUBIAN NGI - {0x2CE0, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD NUBIAN NYI - {0x2CE1, 0x0, propertyPVALID}, // COPTIC SMALL LETTER OLD NUBIAN NYI - {0x2CE2, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER OLD NUBIAN WAU - {0x2CE3, 0x2CE4, propertyPVALID}, // COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC S - {0x2CE5, 0x2CEB, propertyDISALLOWED}, // COPTIC SYMBOL MI RO..COPTIC CAPITAL LETTER C - {0x2CEC, 0x0, propertyPVALID}, // COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI - {0x2CED, 0x0, propertyDISALLOWED}, // COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA - {0x2CEE, 0x2CF1, propertyPVALID}, // COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA..CO - {0x2CF2, 0x2CF8, propertyUNASSIGNED}, // .. - {0x2CF9, 0x2CFF, propertyDISALLOWED}, // COPTIC OLD NUBIAN FULL STOP..COPTIC MORPHOLO - {0x2D00, 0x2D25, propertyPVALID}, // GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LET - {0x2D26, 0x2D2F, propertyUNASSIGNED}, // .. - {0x2D30, 0x2D65, propertyPVALID}, // TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ - {0x2D66, 0x2D6E, propertyUNASSIGNED}, // .. - {0x2D6F, 0x0, propertyDISALLOWED}, // TIFINAGH MODIFIER LETTER LABIALIZATION MARK - {0x2D70, 0x2D7F, propertyUNASSIGNED}, // .. - {0x2D80, 0x2D96, propertyPVALID}, // ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGW - {0x2D97, 0x2D9F, propertyUNASSIGNED}, // .. - {0x2DA0, 0x2DA6, propertyPVALID}, // ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO - {0x2DA7, 0x0, propertyUNASSIGNED}, // - {0x2DA8, 0x2DAE, propertyPVALID}, // ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO - {0x2DAF, 0x0, propertyUNASSIGNED}, // - {0x2DB0, 0x2DB6, propertyPVALID}, // ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO - {0x2DB7, 0x0, propertyUNASSIGNED}, // - {0x2DB8, 0x2DBE, propertyPVALID}, // ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CC - {0x2DBF, 0x0, propertyUNASSIGNED}, // - {0x2DC0, 0x2DC6, propertyPVALID}, // ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO - {0x2DC7, 0x0, propertyUNASSIGNED}, // - {0x2DC8, 0x2DCE, propertyPVALID}, // ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO - {0x2DCF, 0x0, propertyUNASSIGNED}, // - {0x2DD0, 0x2DD6, propertyPVALID}, // ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO - {0x2DD7, 0x0, propertyUNASSIGNED}, // - {0x2DD8, 0x2DDE, propertyPVALID}, // ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO - {0x2DDF, 0x0, propertyUNASSIGNED}, // - {0x2DE0, 0x2DFF, propertyPVALID}, // COMBINING CYRILLIC LETTER BE..COMBINING CYRI - {0x2E00, 0x2E2E, propertyDISALLOWED}, // RIGHT ANGLE SUBSTITUTION MARKER..REVERSED QU - {0x2E2F, 0x0, propertyPVALID}, // VERTICAL TILDE - {0x2E30, 0x2E31, propertyDISALLOWED}, // RING POINT..WORD SEPARATOR MIDDLE DOT - {0x2E32, 0x2E7F, propertyUNASSIGNED}, // .. - {0x2E80, 0x2E99, propertyDISALLOWED}, // CJK RADICAL REPEAT..CJK RADICAL RAP - {0x2E9A, 0x0, propertyUNASSIGNED}, // - {0x2E9B, 0x2EF3, propertyDISALLOWED}, // CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED - {0x2EF4, 0x2EFF, propertyUNASSIGNED}, // .. - {0x2F00, 0x2FD5, propertyDISALLOWED}, // KANGXI RADICAL ONE..KANGXI RADICAL FLUTE - {0x2FD6, 0x2FEF, propertyUNASSIGNED}, // .. - {0x2FF0, 0x2FFB, propertyDISALLOWED}, // IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RI - {0x2FFC, 0x2FFF, propertyUNASSIGNED}, // .. - {0x3000, 0x3004, propertyDISALLOWED}, // IDEOGRAPHIC SPACE..JAPANESE INDUSTRIAL STAND - {0x3005, 0x3007, propertyPVALID}, // IDEOGRAPHIC ITERATION MARK..IDEOGRAPHIC NUMB - {0x3008, 0x3029, propertyDISALLOWED}, // LEFT ANGLE BRACKET..HANGZHOU NUMERAL NINE - {0x302A, 0x302D, propertyPVALID}, // IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENT - {0x302E, 0x303B, propertyDISALLOWED}, // HANGUL SINGLE DOT TONE MARK..VERTICAL IDEOGR - {0x303C, 0x0, propertyPVALID}, // MASU MARK - {0x303D, 0x303F, propertyDISALLOWED}, // PART ALTERNATION MARK..IDEOGRAPHIC HALF FILL - {0x3040, 0x0, propertyUNASSIGNED}, // - {0x3041, 0x3096, propertyPVALID}, // HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMA - {0x3097, 0x3098, propertyUNASSIGNED}, // .. - {0x3099, 0x309A, propertyPVALID}, // COMBINING KATAKANA-HIRAGANA VOICED SOUND MAR - {0x309B, 0x309C, propertyDISALLOWED}, // KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKAN - {0x309D, 0x309E, propertyPVALID}, // HIRAGANA ITERATION MARK..HIRAGANA VOICED ITE - {0x309F, 0x30A0, propertyDISALLOWED}, // HIRAGANA DIGRAPH YORI..KATAKANA-HIRAGANA DOU - {0x30A1, 0x30FA, propertyPVALID}, // KATAKANA LETTER SMALL A..KATAKANA LETTER VO - {0x30FB, 0x0, propertyCONTEXTO}, // KATAKANA MIDDLE DOT - {0x30FC, 0x30FE, propertyPVALID}, // KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATA - {0x30FF, 0x0, propertyDISALLOWED}, // KATAKANA DIGRAPH KOTO - {0x3100, 0x3104, propertyUNASSIGNED}, // .. - {0x3105, 0x312D, propertyPVALID}, // BOPOMOFO LETTER B..BOPOMOFO LETTER IH - {0x312E, 0x3130, propertyUNASSIGNED}, // .. - {0x3131, 0x318E, propertyDISALLOWED}, // HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE - {0x318F, 0x0, propertyUNASSIGNED}, // - {0x3190, 0x319F, propertyDISALLOWED}, // IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRA - {0x31A0, 0x31B7, propertyPVALID}, // BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H - {0x31B8, 0x31BF, propertyUNASSIGNED}, // .. - {0x31C0, 0x31E3, propertyDISALLOWED}, // CJK STROKE T..CJK STROKE Q - {0x31E4, 0x31EF, propertyUNASSIGNED}, // .. - {0x31F0, 0x31FF, propertyPVALID}, // KATAKANA LETTER SMALL KU..KATAKANA LETTER SM - {0x3200, 0x321E, propertyDISALLOWED}, // PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED K - {0x321F, 0x0, propertyUNASSIGNED}, // - {0x3220, 0x32FE, propertyDISALLOWED}, // PARENTHESIZED IDEOGRAPH ONE..CIRCLED KATAKAN - {0x32FF, 0x0, propertyUNASSIGNED}, // - {0x3300, 0x33FF, propertyDISALLOWED}, // SQUARE APAATO..SQUARE GAL - {0x3400, 0x4DB5, propertyPVALID}, // .... - {0x4DC0, 0x4DFF, propertyDISALLOWED}, // HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM F - {0x4E00, 0x9FCB, propertyPVALID}, // .. - {0x9FCC, 0x9FFF, propertyUNASSIGNED}, // .. - {0xA000, 0xA48C, propertyPVALID}, // YI SYLLABLE IT..YI SYLLABLE YYR - {0xA48D, 0xA48F, propertyUNASSIGNED}, // .. - {0xA490, 0xA4C6, propertyDISALLOWED}, // YI RADICAL QOT..YI RADICAL KE - {0xA4C7, 0xA4CF, propertyUNASSIGNED}, // .. - {0xA4D0, 0xA4FD, propertyPVALID}, // LISU LETTER BA..LISU LETTER TONE MYA JEU - {0xA4FE, 0xA4FF, propertyDISALLOWED}, // LISU PUNCTUATION COMMA..LISU PUNCTUATION FUL - {0xA500, 0xA60C, propertyPVALID}, // VAI SYLLABLE EE..VAI SYLLABLE LENGTHENER - {0xA60D, 0xA60F, propertyDISALLOWED}, // VAI COMMA..VAI QUESTION MARK - {0xA610, 0xA62B, propertyPVALID}, // VAI SYLLABLE NDOLE FA..VAI SYLLABLE NDOLE DO - {0xA62C, 0xA63F, propertyUNASSIGNED}, // .. - {0xA640, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZEMLYA - {0xA641, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZEMLYA - {0xA642, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DZELO - {0xA643, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DZELO - {0xA644, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER REVERSED DZE - {0xA645, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER REVERSED DZE - {0xA646, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTA - {0xA647, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTA - {0xA648, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DJERV - {0xA649, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DJERV - {0xA64A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER MONOGRAPH UK - {0xA64B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER MONOGRAPH UK - {0xA64C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BROAD OMEGA - {0xA64D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BROAD OMEGA - {0xA64E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER NEUTRAL YER - {0xA64F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER NEUTRAL YER - {0xA650, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YERU WITH BACK YER - {0xA651, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YERU WITH BACK YER - {0xA652, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED YAT - {0xA653, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED YAT - {0xA654, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER REVERSED YU - {0xA655, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER REVERSED YU - {0xA656, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED A - {0xA657, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED A - {0xA658, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS - {0xA659, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CLOSED LITTLE YUS - {0xA65A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BLENDED YUS - {0xA65B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BLENDED YUS - {0xA65C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITT - {0xA65D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE - {0xA65E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER YN - {0xA65F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER YN - {0xA660, 0xA661, propertyUNASSIGNED}, // .. - {0xA662, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SOFT DE - {0xA663, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SOFT DE - {0xA664, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SOFT EL - {0xA665, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SOFT EL - {0xA666, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SOFT EM - {0xA667, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SOFT EM - {0xA668, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER MONOCULAR O - {0xA669, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER MONOCULAR O - {0xA66A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER BINOCULAR O - {0xA66B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER BINOCULAR O - {0xA66C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O - {0xA66D, 0xA66F, propertyPVALID}, // CYRILLIC SMALL LETTER DOUBLE MONOCULAR O..CO - {0xA670, 0xA673, propertyDISALLOWED}, // COMBINING CYRILLIC TEN MILLIONS SIGN..SLAVON - {0xA674, 0xA67B, propertyUNASSIGNED}, // .. - {0xA67C, 0xA67D, propertyPVALID}, // COMBINING CYRILLIC KAVYKA..COMBINING CYRILLI - {0xA67E, 0x0, propertyDISALLOWED}, // CYRILLIC KAVYKA - {0xA67F, 0x0, propertyPVALID}, // CYRILLIC PAYEROK - {0xA680, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DWE - {0xA681, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DWE - {0xA682, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DZWE - {0xA683, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DZWE - {0xA684, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER ZHWE - {0xA685, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER ZHWE - {0xA686, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER CCHE - {0xA687, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER CCHE - {0xA688, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER DZZE - {0xA689, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER DZZE - {0xA68A, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK - {0xA68B, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK - {0xA68C, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TWE - {0xA68D, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TWE - {0xA68E, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TSWE - {0xA68F, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TSWE - {0xA690, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TSSE - {0xA691, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TSSE - {0xA692, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER TCHE - {0xA693, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER TCHE - {0xA694, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER HWE - {0xA695, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER HWE - {0xA696, 0x0, propertyDISALLOWED}, // CYRILLIC CAPITAL LETTER SHWE - {0xA697, 0x0, propertyPVALID}, // CYRILLIC SMALL LETTER SHWE - {0xA698, 0xA69F, propertyUNASSIGNED}, // .. - {0xA6A0, 0xA6E5, propertyPVALID}, // BAMUM LETTER A..BAMUM LETTER KI - {0xA6E6, 0xA6EF, propertyDISALLOWED}, // BAMUM LETTER MO..BAMUM LETTER KOGHOM - {0xA6F0, 0xA6F1, propertyPVALID}, // BAMUM COMBINING MARK KOQNDON..BAMUM COMBININ - {0xA6F2, 0xA6F7, propertyDISALLOWED}, // BAMUM NJAEMLI..BAMUM QUESTION MARK - {0xA6F8, 0xA6FF, propertyUNASSIGNED}, // .. - {0xA700, 0xA716, propertyDISALLOWED}, // MODIFIER LETTER CHINESE TONE YIN PING..MODIF - {0xA717, 0xA71F, propertyPVALID}, // MODIFIER LETTER DOT VERTICAL BAR..MODIFIER L - {0xA720, 0xA722, propertyDISALLOWED}, // MODIFIER LETTER STRESS AND HIGH TONE..LATIN - {0xA723, 0x0, propertyPVALID}, // LATIN SMALL LETTER EGYPTOLOGICAL ALEF - {0xA724, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER EGYPTOLOGICAL AIN - {0xA725, 0x0, propertyPVALID}, // LATIN SMALL LETTER EGYPTOLOGICAL AIN - {0xA726, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER HENG - {0xA727, 0x0, propertyPVALID}, // LATIN SMALL LETTER HENG - {0xA728, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TZ - {0xA729, 0x0, propertyPVALID}, // LATIN SMALL LETTER TZ - {0xA72A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TRESILLO - {0xA72B, 0x0, propertyPVALID}, // LATIN SMALL LETTER TRESILLO - {0xA72C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER CUATRILLO - {0xA72D, 0x0, propertyPVALID}, // LATIN SMALL LETTER CUATRILLO - {0xA72E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER CUATRILLO WITH COMMA - {0xA72F, 0xA731, propertyPVALID}, // LATIN SMALL LETTER CUATRILLO WITH COMMA..LAT - {0xA732, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AA - {0xA733, 0x0, propertyPVALID}, // LATIN SMALL LETTER AA - {0xA734, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AO - {0xA735, 0x0, propertyPVALID}, // LATIN SMALL LETTER AO - {0xA736, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AU - {0xA737, 0x0, propertyPVALID}, // LATIN SMALL LETTER AU - {0xA738, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AV - {0xA739, 0x0, propertyPVALID}, // LATIN SMALL LETTER AV - {0xA73A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR - {0xA73B, 0x0, propertyPVALID}, // LATIN SMALL LETTER AV WITH HORIZONTAL BAR - {0xA73C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER AY - {0xA73D, 0x0, propertyPVALID}, // LATIN SMALL LETTER AY - {0xA73E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER REVERSED C WITH DOT - {0xA73F, 0x0, propertyPVALID}, // LATIN SMALL LETTER REVERSED C WITH DOT - {0xA740, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH STROKE - {0xA741, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH STROKE - {0xA742, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH DIAGONAL STROKE - {0xA743, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH DIAGONAL STROKE - {0xA744, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER K WITH STROKE AND DIAGO - {0xA745, 0x0, propertyPVALID}, // LATIN SMALL LETTER K WITH STROKE AND DIAGONA - {0xA746, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER BROKEN L - {0xA747, 0x0, propertyPVALID}, // LATIN SMALL LETTER BROKEN L - {0xA748, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER L WITH HIGH STROKE - {0xA749, 0x0, propertyPVALID}, // LATIN SMALL LETTER L WITH HIGH STROKE - {0xA74A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH LONG STROKE OVER - {0xA74B, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH LONG STROKE OVERLA - {0xA74C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER O WITH LOOP - {0xA74D, 0x0, propertyPVALID}, // LATIN SMALL LETTER O WITH LOOP - {0xA74E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER OO - {0xA74F, 0x0, propertyPVALID}, // LATIN SMALL LETTER OO - {0xA750, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH STROKE THROUGH D - {0xA751, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH STROKE THROUGH DES - {0xA752, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH FLOURISH - {0xA753, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH FLOURISH - {0xA754, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER P WITH SQUIRREL TAIL - {0xA755, 0x0, propertyPVALID}, // LATIN SMALL LETTER P WITH SQUIRREL TAIL - {0xA756, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Q WITH STROKE THROUGH D - {0xA757, 0x0, propertyPVALID}, // LATIN SMALL LETTER Q WITH STROKE THROUGH DES - {0xA758, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE - {0xA759, 0x0, propertyPVALID}, // LATIN SMALL LETTER Q WITH DIAGONAL STROKE - {0xA75A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER R ROTUNDA - {0xA75B, 0x0, propertyPVALID}, // LATIN SMALL LETTER R ROTUNDA - {0xA75C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER RUM ROTUNDA - {0xA75D, 0x0, propertyPVALID}, // LATIN SMALL LETTER RUM ROTUNDA - {0xA75E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER V WITH DIAGONAL STROKE - {0xA75F, 0x0, propertyPVALID}, // LATIN SMALL LETTER V WITH DIAGONAL STROKE - {0xA760, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER VY - {0xA761, 0x0, propertyPVALID}, // LATIN SMALL LETTER VY - {0xA762, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER VISIGOTHIC Z - {0xA763, 0x0, propertyPVALID}, // LATIN SMALL LETTER VISIGOTHIC Z - {0xA764, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER THORN WITH STROKE - {0xA765, 0x0, propertyPVALID}, // LATIN SMALL LETTER THORN WITH STROKE - {0xA766, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER THORN WITH STROKE THROU - {0xA767, 0x0, propertyPVALID}, // LATIN SMALL LETTER THORN WITH STROKE THROUGH - {0xA768, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER VEND - {0xA769, 0x0, propertyPVALID}, // LATIN SMALL LETTER VEND - {0xA76A, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER ET - {0xA76B, 0x0, propertyPVALID}, // LATIN SMALL LETTER ET - {0xA76C, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER IS - {0xA76D, 0x0, propertyPVALID}, // LATIN SMALL LETTER IS - {0xA76E, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER CON - {0xA76F, 0x0, propertyPVALID}, // LATIN SMALL LETTER CON - {0xA770, 0x0, propertyDISALLOWED}, // MODIFIER LETTER US - {0xA771, 0xA778, propertyPVALID}, // LATIN SMALL LETTER DUM..LATIN SMALL LETTER U - {0xA779, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR D - {0xA77A, 0x0, propertyPVALID}, // LATIN SMALL LETTER INSULAR D - {0xA77B, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR F - {0xA77C, 0x0, propertyPVALID}, // LATIN SMALL LETTER INSULAR F - {0xA77D, 0xA77E, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR G..LATIN CAPITA - {0xA77F, 0x0, propertyPVALID}, // LATIN SMALL LETTER TURNED INSULAR G - {0xA780, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER TURNED L - {0xA781, 0x0, propertyPVALID}, // LATIN SMALL LETTER TURNED L - {0xA782, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR R - {0xA783, 0x0, propertyPVALID}, // LATIN SMALL LETTER INSULAR R - {0xA784, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR S - {0xA785, 0x0, propertyPVALID}, // LATIN SMALL LETTER INSULAR S - {0xA786, 0x0, propertyDISALLOWED}, // LATIN CAPITAL LETTER INSULAR T - {0xA787, 0xA788, propertyPVALID}, // LATIN SMALL LETTER INSULAR T..MODIFIER LETTE - {0xA789, 0xA78B, propertyDISALLOWED}, // MODIFIER LETTER COLON..LATIN CAPITAL LETTER - {0xA78C, 0x0, propertyPVALID}, // LATIN SMALL LETTER SALTILLO - {0xA78D, 0xA7FA, propertyUNASSIGNED}, // .. - {0xA7FB, 0xA827, propertyPVALID}, // LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI N - {0xA828, 0xA82B, propertyDISALLOWED}, // SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POE - {0xA82C, 0xA82F, propertyUNASSIGNED}, // .. - {0xA830, 0xA839, propertyDISALLOWED}, // NORTH INDIC FRACTION ONE QUARTER..NORTH INDI - {0xA83A, 0xA83F, propertyUNASSIGNED}, // .. - {0xA840, 0xA873, propertyPVALID}, // PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABI - {0xA874, 0xA877, propertyDISALLOWED}, // PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOU - {0xA878, 0xA87F, propertyUNASSIGNED}, // .. - {0xA880, 0xA8C4, propertyPVALID}, // SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VI - {0xA8C5, 0xA8CD, propertyUNASSIGNED}, // .. - {0xA8CE, 0xA8CF, propertyDISALLOWED}, // SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA - {0xA8D0, 0xA8D9, propertyPVALID}, // SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE - {0xA8DA, 0xA8DF, propertyUNASSIGNED}, // .. - {0xA8E0, 0xA8F7, propertyPVALID}, // COMBINING DEVANAGARI DIGIT ZERO..DEVANAGARI - {0xA8F8, 0xA8FA, propertyDISALLOWED}, // DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET - {0xA8FB, 0x0, propertyPVALID}, // DEVANAGARI HEADSTROKE - {0xA8FC, 0xA8FF, propertyUNASSIGNED}, // .. - {0xA900, 0xA92D, propertyPVALID}, // KAYAH LI DIGIT ZERO..KAYAH LI TONE CALYA PLO - {0xA92E, 0xA92F, propertyDISALLOWED}, // KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA - {0xA930, 0xA953, propertyPVALID}, // REJANG LETTER KA..REJANG VIRAMA - {0xA954, 0xA95E, propertyUNASSIGNED}, // .. - {0xA95F, 0xA97C, propertyDISALLOWED}, // REJANG SECTION MARK..HANGUL CHOSEONG SSANGYE - {0xA97D, 0xA97F, propertyUNASSIGNED}, // .. - {0xA980, 0xA9C0, propertyPVALID}, // JAVANESE SIGN PANYANGGA..JAVANESE PANGKON - {0xA9C1, 0xA9CD, propertyDISALLOWED}, // JAVANESE LEFT RERENGGAN..JAVANESE TURNED PAD - {0xA9CE, 0x0, propertyUNASSIGNED}, // - {0xA9CF, 0xA9D9, propertyPVALID}, // JAVANESE PANGRANGKEP..JAVANESE DIGIT NINE - {0xA9DA, 0xA9DD, propertyUNASSIGNED}, // .. - {0xA9DE, 0xA9DF, propertyDISALLOWED}, // JAVANESE PADA TIRTA TUMETES..JAVANESE PADA I - {0xA9E0, 0xA9FF, propertyUNASSIGNED}, // .. - {0xAA00, 0xAA36, propertyPVALID}, // CHAM LETTER A..CHAM CONSONANT SIGN WA - {0xAA37, 0xAA3F, propertyUNASSIGNED}, // .. - {0xAA40, 0xAA4D, propertyPVALID}, // CHAM LETTER FINAL K..CHAM CONSONANT SIGN FIN - {0xAA4E, 0xAA4F, propertyUNASSIGNED}, // .. - {0xAA50, 0xAA59, propertyPVALID}, // CHAM DIGIT ZERO..CHAM DIGIT NINE - {0xAA5A, 0xAA5B, propertyUNASSIGNED}, // .. - {0xAA5C, 0xAA5F, propertyDISALLOWED}, // CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TR - {0xAA60, 0xAA76, propertyPVALID}, // MYANMAR LETTER KHAMTI GA..MYANMAR LOGOGRAM K - {0xAA77, 0xAA79, propertyDISALLOWED}, // MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SY - {0xAA7A, 0xAA7B, propertyPVALID}, // MYANMAR LETTER AITON RA..MYANMAR SIGN PAO KA - {0xAA7C, 0xAA7F, propertyUNASSIGNED}, // .. - {0xAA80, 0xAAC2, propertyPVALID}, // TAI VIET LETTER LOW KO..TAI VIET TONE MAI SO - {0xAAC3, 0xAADA, propertyUNASSIGNED}, // .. - {0xAADB, 0xAADD, propertyPVALID}, // TAI VIET SYMBOL KON..TAI VIET SYMBOL SAM - {0xAADE, 0xAADF, propertyDISALLOWED}, // TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI - {0xAAE0, 0xABBF, propertyUNASSIGNED}, // .. - {0xABC0, 0xABEA, propertyPVALID}, // MEETEI MAYEK LETTER KOK..MEETEI MAYEK VOWEL - {0xABEB, 0x0, propertyDISALLOWED}, // MEETEI MAYEK CHEIKHEI - {0xABEC, 0xABED, propertyPVALID}, // MEETEI MAYEK LUM IYEK..MEETEI MAYEK APUN IYE - {0xABEE, 0xABEF, propertyUNASSIGNED}, // .. - {0xABF0, 0xABF9, propertyPVALID}, // MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT - {0xABFA, 0xABFF, propertyUNASSIGNED}, // .. - {0xAC00, 0xD7A3, propertyPVALID}, // .. - {0xD7A4, 0xD7AF, propertyUNASSIGNED}, // .. - {0xD7B0, 0xD7C6, propertyDISALLOWED}, // HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARA - {0xD7C7, 0xD7CA, propertyUNASSIGNED}, // .. - {0xD7CB, 0xD7FB, propertyDISALLOWED}, // HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEO - {0xD7FC, 0xD7FF, propertyUNASSIGNED}, // .. - {0xD800, 0xFA0D, propertyDISALLOWED}, // ..CJK COMPAT - {0xFA0E, 0xFA0F, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPAT - {0xFA10, 0x0, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA10 - {0xFA11, 0x0, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA11 - {0xFA12, 0x0, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA12 - {0xFA13, 0xFA14, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPAT - {0xFA15, 0xFA1E, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPAT - {0xFA1F, 0x0, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA1F - {0xFA20, 0x0, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA20 - {0xFA21, 0x0, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA21 - {0xFA22, 0x0, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA22 - {0xFA23, 0xFA24, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPAT - {0xFA25, 0xFA26, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPAT - {0xFA27, 0xFA29, propertyPVALID}, // CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPAT - {0xFA2A, 0xFA2D, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPAT - {0xFA2E, 0xFA2F, propertyUNASSIGNED}, // .. - {0xFA30, 0xFA6D, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPAT - {0xFA6E, 0xFA6F, propertyUNASSIGNED}, // .. - {0xFA70, 0xFAD9, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPAT - {0xFADA, 0xFAFF, propertyUNASSIGNED}, // .. - {0xFB00, 0xFB06, propertyDISALLOWED}, // LATIN SMALL LIGATURE FF..LATIN SMALL LIGATUR - {0xFB07, 0xFB12, propertyUNASSIGNED}, // .. - {0xFB13, 0xFB17, propertyDISALLOWED}, // ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SM - {0xFB18, 0xFB1C, propertyUNASSIGNED}, // .. - {0xFB1D, 0x0, propertyDISALLOWED}, // HEBREW LETTER YOD WITH HIRIQ - {0xFB1E, 0x0, propertyPVALID}, // HEBREW POINT JUDEO-SPANISH VARIKA - {0xFB1F, 0xFB36, propertyDISALLOWED}, // HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBRE - {0xFB37, 0x0, propertyUNASSIGNED}, // - {0xFB38, 0xFB3C, propertyDISALLOWED}, // HEBREW LETTER TET WITH DAGESH..HEBREW LETTER - {0xFB3D, 0x0, propertyUNASSIGNED}, // - {0xFB3E, 0x0, propertyDISALLOWED}, // HEBREW LETTER MEM WITH DAGESH - {0xFB3F, 0x0, propertyUNASSIGNED}, // - {0xFB40, 0xFB41, propertyDISALLOWED}, // HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER - {0xFB42, 0x0, propertyUNASSIGNED}, // - {0xFB43, 0xFB44, propertyDISALLOWED}, // HEBREW LETTER FINAL PE WITH DAGESH..HEBREW L - {0xFB45, 0x0, propertyUNASSIGNED}, // - {0xFB46, 0xFBB1, propertyDISALLOWED}, // HEBREW LETTER TSADI WITH DAGESH..ARABIC LETT - {0xFBB2, 0xFBD2, propertyUNASSIGNED}, // .. - {0xFBD3, 0xFD3F, propertyDISALLOWED}, // ARABIC LETTER NG ISOLATED FORM..ORNATE RIGHT - {0xFD40, 0xFD4F, propertyUNASSIGNED}, // .. - {0xFD50, 0xFD8F, propertyDISALLOWED}, // ARABIC LIGATURE TEH WITH JEEM WITH MEEM INIT - {0xFD90, 0xFD91, propertyUNASSIGNED}, // .. - {0xFD92, 0xFDC7, propertyDISALLOWED}, // ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INI - {0xFDC8, 0xFDCF, propertyUNASSIGNED}, // .. - {0xFDD0, 0xFDFD, propertyDISALLOWED}, // ..ARABIC LIGATURE BISMILLAH AR - {0xFDFE, 0xFDFF, propertyUNASSIGNED}, // .. - {0xFE00, 0xFE19, propertyDISALLOWED}, // VARIATION SELECTOR-1..PRESENTATION FORM FOR - {0xFE1A, 0xFE1F, propertyUNASSIGNED}, // .. - {0xFE20, 0xFE26, propertyPVALID}, // COMBINING LIGATURE LEFT HALF..COMBINING CONJ - {0xFE27, 0xFE2F, propertyUNASSIGNED}, // .. - {0xFE30, 0xFE52, propertyDISALLOWED}, // PRESENTATION FORM FOR VERTICAL TWO DOT LEADE - {0xFE53, 0x0, propertyUNASSIGNED}, // - {0xFE54, 0xFE66, propertyDISALLOWED}, // SMALL SEMICOLON..SMALL EQUALS SIGN - {0xFE67, 0x0, propertyUNASSIGNED}, // - {0xFE68, 0xFE6B, propertyDISALLOWED}, // SMALL REVERSE SOLIDUS..SMALL COMMERCIAL AT - {0xFE6C, 0xFE6F, propertyUNASSIGNED}, // .. - {0xFE70, 0xFE72, propertyDISALLOWED}, // ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMAT - {0xFE73, 0x0, propertyPVALID}, // ARABIC TAIL FRAGMENT - {0xFE74, 0x0, propertyDISALLOWED}, // ARABIC KASRATAN ISOLATED FORM - {0xFE75, 0x0, propertyUNASSIGNED}, // - {0xFE76, 0xFEFC, propertyDISALLOWED}, // ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE - {0xFEFD, 0xFEFE, propertyUNASSIGNED}, // .. - {0xFEFF, 0x0, propertyDISALLOWED}, // ZERO WIDTH NO-BREAK SPACE - {0xFF00, 0x0, propertyUNASSIGNED}, // - {0xFF01, 0xFFBE, propertyDISALLOWED}, // FULLWIDTH EXCLAMATION MARK..HALFWIDTH HANGUL - {0xFFBF, 0xFFC1, propertyUNASSIGNED}, // .. - {0xFFC2, 0xFFC7, propertyDISALLOWED}, // HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL - {0xFFC8, 0xFFC9, propertyUNASSIGNED}, // .. - {0xFFCA, 0xFFCF, propertyDISALLOWED}, // HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGU - {0xFFD0, 0xFFD1, propertyUNASSIGNED}, // .. - {0xFFD2, 0xFFD7, propertyDISALLOWED}, // HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL - {0xFFD8, 0xFFD9, propertyUNASSIGNED}, // .. - {0xFFDA, 0xFFDC, propertyDISALLOWED}, // HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL - {0xFFDD, 0xFFDF, propertyUNASSIGNED}, // .. - {0xFFE0, 0xFFE6, propertyDISALLOWED}, // FULLWIDTH CENT SIGN..FULLWIDTH WON SIGN - {0xFFE7, 0x0, propertyUNASSIGNED}, // - {0xFFE8, 0xFFEE, propertyDISALLOWED}, // HALFWIDTH FORMS LIGHT VERTICAL..HALFWIDTH WH - {0xFFEF, 0xFFF8, propertyUNASSIGNED}, // .. - {0xFFF9, 0xFFFF, propertyDISALLOWED}, // INTERLINEAR ANNOTATION ANCHOR.. - {0x1000D, 0x10026, propertyPVALID}, // LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE - {0x10027, 0x0, propertyUNASSIGNED}, // - {0x10028, 0x1003A, propertyPVALID}, // LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE - {0x1003B, 0x0, propertyUNASSIGNED}, // - {0x1003C, 0x1003D, propertyPVALID}, // LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE - {0x1003E, 0x0, propertyUNASSIGNED}, // - {0x1003F, 0x1004D, propertyPVALID}, // LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE - {0x1004E, 0x1004F, propertyUNASSIGNED}, // .. - {0x10050, 0x1005D, propertyPVALID}, // LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 - {0x1005E, 0x1007F, propertyUNASSIGNED}, // .. - {0x10080, 0x100FA, propertyPVALID}, // LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRA - {0x100FB, 0x100FF, propertyUNASSIGNED}, // .. - {0x10100, 0x10102, propertyDISALLOWED}, // AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MAR - {0x10103, 0x10106, propertyUNASSIGNED}, // .. - {0x10107, 0x10133, propertyDISALLOWED}, // AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOU - {0x10134, 0x10136, propertyUNASSIGNED}, // .. - {0x10137, 0x1018A, propertyDISALLOWED}, // AEGEAN WEIGHT BASE UNIT..GREEK ZERO SIGN - {0x1018B, 0x1018F, propertyUNASSIGNED}, // .. - {0x10190, 0x1019B, propertyDISALLOWED}, // ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN - {0x1019C, 0x101CF, propertyUNASSIGNED}, // .. - {0x101D0, 0x101FC, propertyDISALLOWED}, // PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC - {0x101FD, 0x0, propertyPVALID}, // PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE - {0x101FE, 0x1027F, propertyUNASSIGNED}, // .. - {0x10280, 0x1029C, propertyPVALID}, // LYCIAN LETTER A..LYCIAN LETTER X - {0x1029D, 0x1029F, propertyUNASSIGNED}, // .. - {0x102A0, 0x102D0, propertyPVALID}, // CARIAN LETTER A..CARIAN LETTER UUU3 - {0x102D1, 0x102FF, propertyUNASSIGNED}, // .. - {0x10300, 0x1031E, propertyPVALID}, // OLD ITALIC LETTER A..OLD ITALIC LETTER UU - {0x1031F, 0x0, propertyUNASSIGNED}, // - {0x10320, 0x10323, propertyDISALLOWED}, // OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL F - {0x10324, 0x1032F, propertyUNASSIGNED}, // .. - {0x10330, 0x10340, propertyPVALID}, // GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA - {0x10341, 0x0, propertyDISALLOWED}, // GOTHIC LETTER NINETY - {0x10342, 0x10349, propertyPVALID}, // GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL - {0x1034A, 0x0, propertyDISALLOWED}, // GOTHIC LETTER NINE HUNDRED - {0x1034B, 0x1037F, propertyUNASSIGNED}, // .. - {0x10380, 0x1039D, propertyPVALID}, // UGARITIC LETTER ALPA..UGARITIC LETTER SSU - {0x1039E, 0x0, propertyUNASSIGNED}, // - {0x1039F, 0x0, propertyDISALLOWED}, // UGARITIC WORD DIVIDER - {0x103A0, 0x103C3, propertyPVALID}, // OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA - {0x103C4, 0x103C7, propertyUNASSIGNED}, // .. - {0x103C8, 0x103CF, propertyPVALID}, // OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIG - {0x103D0, 0x103D5, propertyDISALLOWED}, // OLD PERSIAN WORD DIVIDER..OLD PERSIAN NUMBER - {0x103D6, 0x103FF, propertyUNASSIGNED}, // .. - {0x10400, 0x10427, propertyDISALLOWED}, // DESERET CAPITAL LETTER LONG I..DESERET CAPIT - {0x10428, 0x1049D, propertyPVALID}, // DESERET SMALL LETTER LONG I..OSMANYA LETTER - {0x1049E, 0x1049F, propertyUNASSIGNED}, // .. - {0x104A0, 0x104A9, propertyPVALID}, // OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE - {0x104AA, 0x107FF, propertyUNASSIGNED}, // .. - {0x10800, 0x10805, propertyPVALID}, // CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA - {0x10806, 0x10807, propertyUNASSIGNED}, // .. - {0x10808, 0x0, propertyPVALID}, // CYPRIOT SYLLABLE JO - {0x10809, 0x0, propertyUNASSIGNED}, // - {0x1080A, 0x10835, propertyPVALID}, // CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO - {0x10836, 0x0, propertyUNASSIGNED}, // - {0x10837, 0x10838, propertyPVALID}, // CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE - {0x10839, 0x1083B, propertyUNASSIGNED}, // .. - {0x1083C, 0x0, propertyPVALID}, // CYPRIOT SYLLABLE ZA - {0x1083D, 0x1083E, propertyUNASSIGNED}, // .. - {0x1083F, 0x10855, propertyPVALID}, // CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER - {0x10856, 0x0, propertyUNASSIGNED}, // - {0x10857, 0x1085F, propertyDISALLOWED}, // IMPERIAL ARAMAIC SECTION SIGN..IMPERIAL ARAM - {0x10860, 0x108FF, propertyUNASSIGNED}, // .. - {0x10900, 0x10915, propertyPVALID}, // PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU - {0x10916, 0x1091B, propertyDISALLOWED}, // PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THR - {0x1091C, 0x1091E, propertyUNASSIGNED}, // .. - {0x1091F, 0x0, propertyDISALLOWED}, // PHOENICIAN WORD SEPARATOR - {0x10920, 0x10939, propertyPVALID}, // LYDIAN LETTER A..LYDIAN LETTER C - {0x1093A, 0x1093E, propertyUNASSIGNED}, // .. - {0x1093F, 0x0, propertyDISALLOWED}, // LYDIAN TRIANGULAR MARK - {0x10940, 0x109FF, propertyUNASSIGNED}, // .. - {0x10A00, 0x10A03, propertyPVALID}, // KHAROSHTHI LETTER A..KHAROSHTHI VOWEL SIGN V - {0x10A04, 0x0, propertyUNASSIGNED}, // - {0x10A05, 0x10A06, propertyPVALID}, // KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SI - {0x10A07, 0x10A0B, propertyUNASSIGNED}, // .. - {0x10A0C, 0x10A13, propertyPVALID}, // KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI LET - {0x10A14, 0x0, propertyUNASSIGNED}, // - {0x10A15, 0x10A17, propertyPVALID}, // KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA - {0x10A18, 0x0, propertyUNASSIGNED}, // - {0x10A19, 0x10A33, propertyPVALID}, // KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTT - {0x10A34, 0x10A37, propertyUNASSIGNED}, // .. - {0x10A38, 0x10A3A, propertyPVALID}, // KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN D - {0x10A3B, 0x10A3E, propertyUNASSIGNED}, // .. - {0x10A3F, 0x0, propertyPVALID}, // KHAROSHTHI VIRAMA - {0x10A40, 0x10A47, propertyDISALLOWED}, // KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE - {0x10A48, 0x10A4F, propertyUNASSIGNED}, // .. - {0x10A50, 0x10A58, propertyDISALLOWED}, // KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCT - {0x10A59, 0x10A5F, propertyUNASSIGNED}, // .. - {0x10A60, 0x10A7C, propertyPVALID}, // OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABI - {0x10A7D, 0x10A7F, propertyDISALLOWED}, // OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARAB - {0x10A80, 0x10AFF, propertyUNASSIGNED}, // .. - {0x10B00, 0x10B35, propertyPVALID}, // AVESTAN LETTER A..AVESTAN LETTER HE - {0x10B36, 0x10B38, propertyUNASSIGNED}, // .. - {0x10B39, 0x10B3F, propertyDISALLOWED}, // AVESTAN ABBREVIATION MARK..LARGE ONE RING OV - {0x10B40, 0x10B55, propertyPVALID}, // INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIP - {0x10B56, 0x10B57, propertyUNASSIGNED}, // .. - {0x10B58, 0x10B5F, propertyDISALLOWED}, // INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTI - {0x10B60, 0x10B72, propertyPVALID}, // INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPT - {0x10B73, 0x10B77, propertyUNASSIGNED}, // .. - {0x10B78, 0x10B7F, propertyDISALLOWED}, // INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIO - {0x10B80, 0x10BFF, propertyUNASSIGNED}, // .. - {0x10C00, 0x10C48, propertyPVALID}, // OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTE - {0x10C49, 0x10E5F, propertyUNASSIGNED}, // .. - {0x10E60, 0x10E7E, propertyDISALLOWED}, // RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS - {0x10E7F, 0x1107F, propertyUNASSIGNED}, // .. - {0x11080, 0x110BA, propertyPVALID}, // KAITHI SIGN CANDRABINDU..KAITHI SIGN NUKTA - {0x110BB, 0x110C1, propertyDISALLOWED}, // KAITHI ABBREVIATION SIGN..KAITHI DOUBLE DAND - {0x110C2, 0x11FFF, propertyUNASSIGNED}, // .. - {0x12000, 0x1236E, propertyPVALID}, // CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM - {0x1236F, 0x123FF, propertyUNASSIGNED}, // .. - {0x12400, 0x12462, propertyDISALLOWED}, // CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NU - {0x12463, 0x1246F, propertyUNASSIGNED}, // .. - {0x12470, 0x12473, propertyDISALLOWED}, // CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD - {0x12474, 0x12FFF, propertyUNASSIGNED}, // .. - {0x13000, 0x1342E, propertyPVALID}, // EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYP - {0x1342F, 0x1CFFF, propertyUNASSIGNED}, // .. - {0x1D000, 0x1D0F5, propertyDISALLOWED}, // BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MU - {0x1D0F6, 0x1D0FF, propertyUNASSIGNED}, // .. - {0x1D100, 0x1D126, propertyDISALLOWED}, // MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBO - {0x1D127, 0x1D128, propertyUNASSIGNED}, // .. - {0x1D129, 0x1D1DD, propertyDISALLOWED}, // MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICA - {0x1D1DE, 0x1D1FF, propertyUNASSIGNED}, // .. - {0x1D200, 0x1D245, propertyDISALLOWED}, // GREEK VOCAL NOTATION SYMBOL-1..GREEK MUSICAL - {0x1D246, 0x1D2FF, propertyUNASSIGNED}, // .. - {0x1D300, 0x1D356, propertyDISALLOWED}, // MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING - {0x1D357, 0x1D35F, propertyUNASSIGNED}, // .. - {0x1D360, 0x1D371, propertyDISALLOWED}, // COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TE - {0x1D372, 0x1D3FF, propertyUNASSIGNED}, // .. - {0x1D400, 0x1D454, propertyDISALLOWED}, // MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL IT - {0x1D455, 0x0, propertyUNASSIGNED}, // - {0x1D456, 0x1D49C, propertyDISALLOWED}, // MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SC - {0x1D49D, 0x0, propertyUNASSIGNED}, // - {0x1D49E, 0x1D49F, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL - {0x1D4A0, 0x1D4A1, propertyUNASSIGNED}, // .. - {0x1D4A2, 0x0, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL G - {0x1D4A3, 0x1D4A4, propertyUNASSIGNED}, // .. - {0x1D4A5, 0x1D4A6, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL - {0x1D4A7, 0x1D4A8, propertyUNASSIGNED}, // .. - {0x1D4A9, 0x1D4AC, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL - {0x1D4AD, 0x0, propertyUNASSIGNED}, // - {0x1D4AE, 0x1D4B9, propertyDISALLOWED}, // MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL - {0x1D4BA, 0x0, propertyUNASSIGNED}, // - {0x1D4BB, 0x0, propertyDISALLOWED}, // MATHEMATICAL SCRIPT SMALL F - {0x1D4BC, 0x0, propertyUNASSIGNED}, // - {0x1D4BD, 0x1D4C3, propertyDISALLOWED}, // MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SC - {0x1D4C4, 0x0, propertyUNASSIGNED}, // - {0x1D4C5, 0x1D505, propertyDISALLOWED}, // MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FR - {0x1D506, 0x0, propertyUNASSIGNED}, // - {0x1D507, 0x1D50A, propertyDISALLOWED}, // MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL - {0x1D50B, 0x1D50C, propertyUNASSIGNED}, // .. - {0x1D50D, 0x1D514, propertyDISALLOWED}, // MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL - {0x1D515, 0x0, propertyUNASSIGNED}, // - {0x1D516, 0x1D51C, propertyDISALLOWED}, // MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL - {0x1D51D, 0x0, propertyUNASSIGNED}, // - {0x1D51E, 0x1D539, propertyDISALLOWED}, // MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL D - {0x1D53A, 0x0, propertyUNASSIGNED}, // - {0x1D53B, 0x1D53E, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEM - {0x1D53F, 0x0, propertyUNASSIGNED}, // - {0x1D540, 0x1D544, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEM - {0x1D545, 0x0, propertyUNASSIGNED}, // - {0x1D546, 0x0, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK CAPITAL O - {0x1D547, 0x1D549, propertyUNASSIGNED}, // .. - {0x1D54A, 0x1D550, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEM - {0x1D551, 0x0, propertyUNASSIGNED}, // - {0x1D552, 0x1D6A5, propertyDISALLOWED}, // MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMAT - {0x1D6A6, 0x1D6A7, propertyUNASSIGNED}, // .. - {0x1D6A8, 0x1D7CB, propertyDISALLOWED}, // MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICA - {0x1D7CC, 0x1D7CD, propertyUNASSIGNED}, // .. - {0x1D7CE, 0x1D7FF, propertyDISALLOWED}, // MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL M - {0x1D800, 0x1EFFF, propertyUNASSIGNED}, // .. - {0x1F000, 0x1F02B, propertyDISALLOWED}, // MAHJONG TILE EAST WIND..MAHJONG TILE BACK - {0x1F02C, 0x1F02F, propertyUNASSIGNED}, // .. - {0x1F030, 0x1F093, propertyDISALLOWED}, // DOMINO TILE HORIZONTAL BACK..DOMINO TILE VER - {0x1F094, 0x1F0FF, propertyUNASSIGNED}, // .. - {0x1F100, 0x1F10A, propertyDISALLOWED}, // DIGIT ZERO FULL STOP..DIGIT NINE COMMA - {0x1F10B, 0x1F10F, propertyUNASSIGNED}, // .. - {0x1F110, 0x1F12E, propertyDISALLOWED}, // PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLE - {0x1F12F, 0x1F130, propertyUNASSIGNED}, // .. - {0x1F131, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER B - {0x1F132, 0x1F13C, propertyUNASSIGNED}, // .. - {0x1F13D, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER N - {0x1F13E, 0x0, propertyUNASSIGNED}, // - {0x1F13F, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER P - {0x1F140, 0x1F141, propertyUNASSIGNED}, // .. - {0x1F142, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER S - {0x1F143, 0x1F145, propertyUNASSIGNED}, // .. - {0x1F146, 0x0, propertyDISALLOWED}, // SQUARED LATIN CAPITAL LETTER W - {0x1F147, 0x1F149, propertyUNASSIGNED}, // .. - {0x1F14A, 0x1F14E, propertyDISALLOWED}, // SQUARED HV..SQUARED PPV - {0x1F14F, 0x1F156, propertyUNASSIGNED}, // .. - {0x1F157, 0x0, propertyDISALLOWED}, // NEGATIVE CIRCLED LATIN CAPITAL LETTER H - {0x1F158, 0x1F15E, propertyUNASSIGNED}, // .. - {0x1F15F, 0x0, propertyDISALLOWED}, // NEGATIVE CIRCLED LATIN CAPITAL LETTER P - {0x1F160, 0x1F178, propertyUNASSIGNED}, // .. - {0x1F179, 0x0, propertyDISALLOWED}, // NEGATIVE SQUARED LATIN CAPITAL LETTER J - {0x1F17A, 0x0, propertyUNASSIGNED}, // - {0x1F17B, 0x1F17C, propertyDISALLOWED}, // NEGATIVE SQUARED LATIN CAPITAL LETTER L..NEG - {0x1F17D, 0x1F17E, propertyUNASSIGNED}, // .. - {0x1F17F, 0x0, propertyDISALLOWED}, // NEGATIVE SQUARED LATIN CAPITAL LETTER P - {0x1F180, 0x1F189, propertyUNASSIGNED}, // .. - {0x1F18A, 0x1F18D, propertyDISALLOWED}, // CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTE - {0x1F18E, 0x1F18F, propertyUNASSIGNED}, // .. - {0x1F190, 0x0, propertyDISALLOWED}, // SQUARE DJ - {0x1F191, 0x1F1FF, propertyUNASSIGNED}, // .. - {0x1F200, 0x0, propertyDISALLOWED}, // SQUARE HIRAGANA HOKA - {0x1F201, 0x1F20F, propertyUNASSIGNED}, // .. - {0x1F210, 0x1F231, propertyDISALLOWED}, // SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED - {0x1F232, 0x1F23F, propertyUNASSIGNED}, // .. - {0x1F240, 0x1F248, propertyDISALLOWED}, // TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRA - {0x1F249, 0x1FFFD, propertyUNASSIGNED}, // .. - {0x1FFFE, 0x1FFFF, propertyDISALLOWED}, // .. - {0x20000, 0x2A6D6, propertyPVALID}, // .... - {0x2A700, 0x2B734, propertyPVALID}, // .... - {0x2F800, 0x2FA1D, propertyDISALLOWED}, // CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPA - {0x2FA1E, 0x2FFFD, propertyUNASSIGNED}, // .. - {0x2FFFE, 0x2FFFF, propertyDISALLOWED}, // .. - {0x30000, 0x3FFFD, propertyUNASSIGNED}, // .. - {0x3FFFE, 0x3FFFF, propertyDISALLOWED}, // .. - {0x40000, 0x4FFFD, propertyUNASSIGNED}, // .. - {0x4FFFE, 0x4FFFF, propertyDISALLOWED}, // .. - {0x50000, 0x5FFFD, propertyUNASSIGNED}, // .. - {0x5FFFE, 0x5FFFF, propertyDISALLOWED}, // .. - {0x60000, 0x6FFFD, propertyUNASSIGNED}, // .. - {0x6FFFE, 0x6FFFF, propertyDISALLOWED}, // .. - {0x70000, 0x7FFFD, propertyUNASSIGNED}, // .. - {0x7FFFE, 0x7FFFF, propertyDISALLOWED}, // .. - {0x80000, 0x8FFFD, propertyUNASSIGNED}, // .. - {0x8FFFE, 0x8FFFF, propertyDISALLOWED}, // .. - {0x90000, 0x9FFFD, propertyUNASSIGNED}, // .. - {0x9FFFE, 0x9FFFF, propertyDISALLOWED}, // .. - {0xA0000, 0xAFFFD, propertyUNASSIGNED}, // .. - {0xAFFFE, 0xAFFFF, propertyDISALLOWED}, // .. - {0xB0000, 0xBFFFD, propertyUNASSIGNED}, // .. - {0xBFFFE, 0xBFFFF, propertyDISALLOWED}, // .. - {0xC0000, 0xCFFFD, propertyUNASSIGNED}, // .. - {0xCFFFE, 0xCFFFF, propertyDISALLOWED}, // .. - {0xD0000, 0xDFFFD, propertyUNASSIGNED}, // .. - {0xDFFFE, 0xDFFFF, propertyDISALLOWED}, // .. - {0xE0000, 0x0, propertyUNASSIGNED}, // - {0xE0001, 0x0, propertyDISALLOWED}, // LANGUAGE TAG - {0xE0002, 0xE001F, propertyUNASSIGNED}, // .. - {0xE0020, 0xE007F, propertyDISALLOWED}, // TAG SPACE..CANCEL TAG - {0xE0080, 0xE00FF, propertyUNASSIGNED}, // .. - {0xE0100, 0xE01EF, propertyDISALLOWED}, // VARIATION SELECTOR-17..VARIATION SELECTOR-25 - {0xE01F0, 0xEFFFD, propertyUNASSIGNED}, // .. - {0xEFFFE, 0x10FFFF, propertyDISALLOWED}, // .. -} diff --git a/vendor/github.com/miekg/dns/idn/punycode.go b/vendor/github.com/miekg/dns/idn/punycode.go deleted file mode 100644 index 7e5c263fc85..00000000000 --- a/vendor/github.com/miekg/dns/idn/punycode.go +++ /dev/null @@ -1,373 +0,0 @@ -// Package idn implements encoding from and to punycode as speficied by RFC 3492. -package idn - -import ( - "bytes" - "strings" - "unicode" - "unicode/utf8" - - "github.com/miekg/dns" -) - -// Implementation idea from RFC itself and from from IDNA::Punycode created by -// Tatsuhiko Miyagawa and released under Perl Artistic -// License in 2002. - -const ( - _MIN rune = 1 - _MAX rune = 26 - _SKEW rune = 38 - _BASE rune = 36 - _BIAS rune = 72 - _N rune = 128 - _DAMP rune = 700 - - _DELIMITER = '-' - _PREFIX = "xn--" -) - -// ToPunycode converts unicode domain names to DNS-appropriate punycode names. -// This function will return an empty string result for domain names with -// invalid unicode strings. This function expects domain names in lowercase. -func ToPunycode(s string) string { - // Early check to see if encoding is needed. - // This will prevent making heap allocations when not needed. - if !needToPunycode(s) { - return s - } - - tokens := dns.SplitDomainName(s) - switch { - case s == "": - return "" - case tokens == nil: // s == . - return "." - case s[len(s)-1] == '.': - tokens = append(tokens, "") - } - - for i := range tokens { - t := encode([]byte(tokens[i])) - if t == nil { - return "" - } - tokens[i] = string(t) - } - return strings.Join(tokens, ".") -} - -// FromPunycode returns unicode domain name from provided punycode string. -// This function expects punycode strings in lowercase. -func FromPunycode(s string) string { - // Early check to see if decoding is needed. - // This will prevent making heap allocations when not needed. - if !needFromPunycode(s) { - return s - } - - tokens := dns.SplitDomainName(s) - switch { - case s == "": - return "" - case tokens == nil: // s == . - return "." - case s[len(s)-1] == '.': - tokens = append(tokens, "") - } - for i := range tokens { - tokens[i] = string(decode([]byte(tokens[i]))) - } - return strings.Join(tokens, ".") -} - -// digitval converts single byte into meaningful value that's used to calculate decoded unicode character. -const errdigit = 0xffff - -func digitval(code rune) rune { - switch { - case code >= 'A' && code <= 'Z': - return code - 'A' - case code >= 'a' && code <= 'z': - return code - 'a' - case code >= '0' && code <= '9': - return code - '0' + 26 - } - return errdigit -} - -// lettercode finds BASE36 byte (a-z0-9) based on calculated number. -func lettercode(digit rune) rune { - switch { - case digit >= 0 && digit <= 25: - return digit + 'a' - case digit >= 26 && digit <= 36: - return digit - 26 + '0' - } - panic("dns: not reached") -} - -// adapt calculates next bias to be used for next iteration delta. -func adapt(delta rune, numpoints int, firsttime bool) rune { - if firsttime { - delta /= _DAMP - } else { - delta /= 2 - } - - var k rune - for delta = delta + delta/rune(numpoints); delta > (_BASE-_MIN)*_MAX/2; k += _BASE { - delta /= _BASE - _MIN - } - - return k + ((_BASE-_MIN+1)*delta)/(delta+_SKEW) -} - -// next finds minimal rune (one with lowest codepoint value) that should be equal or above boundary. -func next(b []rune, boundary rune) rune { - if len(b) == 0 { - panic("dns: invalid set of runes to determine next one") - } - m := b[0] - for _, x := range b[1:] { - if x >= boundary && (m < boundary || x < m) { - m = x - } - } - return m -} - -// preprune converts unicode rune to lower case. At this time it's not -// supporting all things described in RFCs. -func preprune(r rune) rune { - if unicode.IsUpper(r) { - r = unicode.ToLower(r) - } - return r -} - -// tfunc is a function that helps calculate each character weight. -func tfunc(k, bias rune) rune { - switch { - case k <= bias: - return _MIN - case k >= bias+_MAX: - return _MAX - } - return k - bias -} - -// needToPunycode returns true for strings that require punycode encoding -// (contain unicode characters). -func needToPunycode(s string) bool { - // This function is very similar to bytes.Runes. We don't use bytes.Runes - // because it makes a heap allocation that's not needed here. - for i := 0; len(s) > 0; i++ { - r, l := utf8.DecodeRuneInString(s) - if r > 0x7f { - return true - } - s = s[l:] - } - return false -} - -// needFromPunycode returns true for strings that require punycode decoding. -func needFromPunycode(s string) bool { - if s == "." { - return false - } - - off := 0 - end := false - pl := len(_PREFIX) - sl := len(s) - - // If s starts with _PREFIX. - if sl > pl && s[off:off+pl] == _PREFIX { - return true - } - - for { - // Find the part after the next ".". - off, end = dns.NextLabel(s, off) - if end { - return false - } - // If this parts starts with _PREFIX. - if sl-off > pl && s[off:off+pl] == _PREFIX { - return true - } - } -} - -// encode transforms Unicode input bytes (that represent DNS label) into -// punycode bytestream. This function would return nil if there's an invalid -// character in the label. -func encode(input []byte) []byte { - n, bias := _N, _BIAS - - b := bytes.Runes(input) - for i := range b { - if !isValidRune(b[i]) { - return nil - } - - b[i] = preprune(b[i]) - } - - basic := make([]byte, 0, len(b)) - for _, ltr := range b { - if ltr <= 0x7f { - basic = append(basic, byte(ltr)) - } - } - basiclen := len(basic) - fulllen := len(b) - if basiclen == fulllen { - return basic - } - - var out bytes.Buffer - - out.WriteString(_PREFIX) - if basiclen > 0 { - out.Write(basic) - out.WriteByte(_DELIMITER) - } - - var ( - ltr, nextltr rune - delta, q rune // delta calculation (see rfc) - t, k, cp rune // weight and codepoint calculation - ) - - s := &bytes.Buffer{} - for h := basiclen; h < fulllen; n, delta = n+1, delta+1 { - nextltr = next(b, n) - s.Truncate(0) - s.WriteRune(nextltr) - delta, n = delta+(nextltr-n)*rune(h+1), nextltr - - for _, ltr = range b { - if ltr < n { - delta++ - } - if ltr == n { - q = delta - for k = _BASE; ; k += _BASE { - t = tfunc(k, bias) - if q < t { - break - } - cp = t + ((q - t) % (_BASE - t)) - out.WriteRune(lettercode(cp)) - q = (q - t) / (_BASE - t) - } - - out.WriteRune(lettercode(q)) - - bias = adapt(delta, h+1, h == basiclen) - h, delta = h+1, 0 - } - } - } - return out.Bytes() -} - -// decode transforms punycode input bytes (that represent DNS label) into Unicode bytestream. -func decode(b []byte) []byte { - src := b // b would move and we need to keep it - - n, bias := _N, _BIAS - if !bytes.HasPrefix(b, []byte(_PREFIX)) { - return b - } - out := make([]rune, 0, len(b)) - b = b[len(_PREFIX):] - for pos := len(b) - 1; pos >= 0; pos-- { - // only last delimiter is our interest - if b[pos] == _DELIMITER { - out = append(out, bytes.Runes(b[:pos])...) - b = b[pos+1:] // trim source string - break - } - } - if len(b) == 0 { - return src - } - var ( - i, oldi, w rune - ch byte - t, digit rune - ln int - ) - - for i = 0; len(b) > 0; i++ { - oldi, w = i, 1 - for k := _BASE; len(b) > 0; k += _BASE { - ch, b = b[0], b[1:] - digit = digitval(rune(ch)) - if digit == errdigit { - return src - } - i += digit * w - if i < 0 { - // safety check for rune overflow - return src - } - - t = tfunc(k, bias) - if digit < t { - break - } - - w *= _BASE - t - } - ln = len(out) + 1 - bias = adapt(i-oldi, ln, oldi == 0) - n += i / rune(ln) - i = i % rune(ln) - // insert - out = append(out, 0) - copy(out[i+1:], out[i:]) - out[i] = n - } - - var ret bytes.Buffer - for _, r := range out { - ret.WriteRune(r) - } - return ret.Bytes() -} - -// isValidRune checks if the character is valid. We will look for the -// character property in the code points list. For now we aren't checking special -// rules in case of contextual property -func isValidRune(r rune) bool { - return findProperty(r) == propertyPVALID -} - -// findProperty will try to check the code point property of the given -// character. It will use a binary search algorithm as we have a slice of -// ordered ranges (average case performance O(log n)) -func findProperty(r rune) property { - imin, imax := 0, len(codePoints) - - for imax >= imin { - imid := (imin + imax) / 2 - - codePoint := codePoints[imid] - if (codePoint.start == r && codePoint.end == 0) || (codePoint.start <= r && codePoint.end >= r) { - return codePoint.state - } - - if (codePoint.end > 0 && codePoint.end < r) || (codePoint.end == 0 && codePoint.start < r) { - imin = imid + 1 - } else { - imax = imid - 1 - } - } - - return propertyUnknown -} diff --git a/vendor/github.com/mitchellh/hashstructure/hashstructure.go b/vendor/github.com/mitchellh/hashstructure/hashstructure.go index 60c88396c98..1800f435438 100644 --- a/vendor/github.com/mitchellh/hashstructure/hashstructure.go +++ b/vendor/github.com/mitchellh/hashstructure/hashstructure.go @@ -26,7 +26,9 @@ type HashOptions struct { // Hash returns the hash value of an arbitrary value. // // If opts is nil, then default options will be used. See HashOptions -// for the default values. +// for the default values. The same *HashOptions value cannot be used +// concurrently. None of the values within a *HashOptions struct are +// safe to read/write while hashing is being done. // // Notes on the value: // diff --git a/vendor/github.com/mitchellh/mapstructure/decode_hooks.go b/vendor/github.com/mitchellh/mapstructure/decode_hooks.go index 115ae67c115..087a392b917 100644 --- a/vendor/github.com/mitchellh/mapstructure/decode_hooks.go +++ b/vendor/github.com/mitchellh/mapstructure/decode_hooks.go @@ -1,59 +1,11 @@ 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) { - // Build our arguments that reflect expects - argVals := make([]reflect.Value, 3) - argVals[0] = reflect.ValueOf(from) - argVals[1] = reflect.ValueOf(to) - argVals[2] = reflect.ValueOf(data) - - 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. // @@ -61,21 +13,18 @@ func DecodeHookExec( // previous transformation. func ComposeDecodeHookFunc(fs ...DecodeHookFunc) DecodeHookFunc { return func( - f reflect.Type, - t reflect.Type, + f reflect.Kind, + t reflect.Kind, data interface{}) (interface{}, error) { var err error for _, f1 := range fs { - data, err = DecodeHookExec(f1, f, t, data) + data, err = 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() - } + f = getKind(reflect.ValueOf(data)) } return data, nil @@ -102,25 +51,6 @@ func StringToSliceHookFunc(sep string) DecodeHookFunc { } } -// 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)) - } -} - func WeaklyTypedHook( f reflect.Kind, t reflect.Kind, diff --git a/vendor/github.com/mitchellh/mapstructure/error.go b/vendor/github.com/mitchellh/mapstructure/error.go index 47a99e5af3f..3460799f801 100644 --- a/vendor/github.com/mitchellh/mapstructure/error.go +++ b/vendor/github.com/mitchellh/mapstructure/error.go @@ -1,9 +1,7 @@ package mapstructure import ( - "errors" "fmt" - "sort" "strings" ) @@ -19,27 +17,11 @@ func (e *Error) Error() string { 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: diff --git a/vendor/github.com/mitchellh/mapstructure/mapstructure.go b/vendor/github.com/mitchellh/mapstructure/mapstructure.go index a554e799bb7..381ba5d4876 100644 --- a/vendor/github.com/mitchellh/mapstructure/mapstructure.go +++ b/vendor/github.com/mitchellh/mapstructure/mapstructure.go @@ -8,7 +8,6 @@ package mapstructure import ( - "encoding/json" "errors" "fmt" "reflect" @@ -20,20 +19,10 @@ import ( // 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{} - -type DecodeHookFuncType func(reflect.Type, reflect.Type, interface{}) (interface{}, error) -type DecodeHookFuncKind func(reflect.Kind, reflect.Kind, interface{}) (interface{}, error) +type DecodeHookFunc func( + from reflect.Kind, + to reflect.Kind, + data interface{}) (interface{}, error) // DecoderConfig is the configuration that is used to create a new decoder // and allows customization of various aspects of decoding. @@ -51,11 +40,6 @@ type DecoderConfig struct { // (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: // @@ -67,8 +51,6 @@ type DecoderConfig struct { // - 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 // WeaklyTypedInput bool @@ -198,9 +180,7 @@ func (d *Decoder) decode(name string, data interface{}, val reflect.Value) error 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) + data, err = d.config.DecodeHook(getKind(dataVal), getKind(val), data) if err != nil { return err } @@ -247,10 +227,6 @@ func (d *Decoder) decode(name string, data interface{}, val reflect.Value) error // 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( @@ -307,7 +283,6 @@ func (d *Decoder) decodeString(name string, data interface{}, val reflect.Value) 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: @@ -329,14 +304,6 @@ func (d *Decoder) decodeInt(name string, data interface{}, val reflect.Value) er } 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'", @@ -352,21 +319,11 @@ func (d *Decoder) decodeUint(name string, data interface{}, val reflect.Value) e 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)) + val.SetUint(uint64(dataVal.Int())) 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)) + val.SetUint(uint64(dataVal.Float())) case dataKind == reflect.Bool && d.config.WeaklyTypedInput: if dataVal.Bool() { val.SetUint(1) @@ -423,7 +380,6 @@ func (d *Decoder) decodeBool(name string, data interface{}, val reflect.Value) e 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: @@ -445,14 +401,6 @@ func (d *Decoder) decodeFloat(name string, data interface{}, val reflect.Value) } 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'", @@ -467,43 +415,22 @@ func (d *Decoder) decodeMap(name string, data interface{}, val reflect.Value) er 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) - } + // 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 - } + // Accept empty array/slice instead of an empty map in weakly typed mode + if d.config.WeaklyTypedInput && + (dataVal.Kind() == reflect.Slice || dataVal.Kind() == reflect.Array) && + dataVal.Len() == 0 { + val.Set(valMap) + return nil + } else { + return fmt.Errorf("'%s' expected a map, got '%s'", name, dataVal.Kind()) } - - return fmt.Errorf("'%s' expected a map, got '%s'", name, dataVal.Kind()) } // Accumulate errors @@ -603,14 +530,6 @@ func (d *Decoder) decodeSlice(name string, data interface{}, val reflect.Value) 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) @@ -646,37 +565,32 @@ func (d *Decoder) decodeStruct(name string, data interface{}, val reflect.Value) structs = structs[1:] structType := structVal.Type() - for i := 0; i < structType.NumField(); i++ { fieldType := structType.Field(i) - fieldKind := fieldType.Type.Kind() if fieldType.Anonymous { + fieldKind := fieldType.Type.Kind() if fieldKind != reflect.Struct { errors = appendErrors(errors, fmt.Errorf("%s: unsupported type: %s", fieldType.Name, fieldKind)) continue } - } - // 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 + // We have an embedded field. We "squash" the fields down + // if specified in the tag. + 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 { + if squash { structs = append(structs, val.FieldByName(fieldType.Name)) + continue } - continue } // Normal struct field, store it away diff --git a/vendor/github.com/pierrec/lz4/block.go b/vendor/github.com/pierrec/lz4/block.go index 6884bccdfcd..145eec27035 100644 --- a/vendor/github.com/pierrec/lz4/block.go +++ b/vendor/github.com/pierrec/lz4/block.go @@ -3,7 +3,6 @@ package lz4 import ( "encoding/binary" "errors" - "unsafe" ) // block represents a frame data block. @@ -111,11 +110,6 @@ func UncompressBlock(src, dst []byte, di int) (int, error) { } } -type hashEntry struct { - generation uint - value int -} - // CompressBlock compresses the source buffer starting at soffet into the destination one. // This is the fast version of LZ4 compression and also the default one. // @@ -123,27 +117,6 @@ type hashEntry struct { // // An error is returned if the destination buffer is too small. func CompressBlock(src, dst []byte, soffset int) (int, error) { - var hashTable [hashTableSize]hashEntry - return compressGenerationalBlock(src, dst, soffset, 0, hashTable[:]) -} - -// getUint32 is a despicably evil function (well, for Go!) that takes advantage -// of the machine's byte order to save some operations. This may look -// inefficient but it is significantly faster on littleEndian machines, -// which include x84, amd64, and some ARM processors. -func getUint32(b []byte) uint32 { - _ = b[3] - if isLittleEndian { - return *(*uint32)(unsafe.Pointer(&b)) - } - - return uint32(b[0]) | - uint32(b[1])<<8 | - uint32(b[2])<<16 | - uint32(b[3])<<24 -} - -func compressGenerationalBlock(src, dst []byte, soffset int, generation uint, hashTable []hashEntry) (int, error) { sn, dn := len(src)-mfLimit, len(dst) if sn <= 0 || dn == 0 || soffset >= sn { return 0, nil @@ -152,28 +125,26 @@ func compressGenerationalBlock(src, dst []byte, soffset int, generation uint, ha // fast scan strategy: // we only need a hash table to store the last sequences (4 bytes) + var hashTable [1 << hashLog]int var hashShift = uint((minMatch * 8) - hashLog) // Initialise the hash table with the first 64Kb of the input buffer // (used when compressing dependent blocks) for si < soffset { - h := getUint32(src[si:]) * hasher >> hashShift + h := binary.LittleEndian.Uint32(src[si:]) * hasher >> hashShift si++ - hashTable[h] = hashEntry{generation, si} + hashTable[h] = si } anchor := si fma := 1 << skipStrength for si < sn-minMatch { // hash the next 4 bytes (sequence)... - h := getUint32(src[si:]) * hasher >> hashShift - if hashTable[h].generation != generation { - hashTable[h] = hashEntry{generation, 0} - } + h := binary.LittleEndian.Uint32(src[si:]) * hasher >> hashShift // -1 to separate existing entries from new ones - ref := hashTable[h].value - 1 + ref := hashTable[h] - 1 // ...and store the position of the hash in the hash table (+1 to compensate the -1 upon saving) - hashTable[h].value = si + 1 + hashTable[h] = si + 1 // no need to check the last 3 bytes in the first literal 4 bytes as // this guarantees that the next match, if any, is compressed with // a lower size, since to have some compression we must have: diff --git a/vendor/github.com/pierrec/lz4/lz4.go b/vendor/github.com/pierrec/lz4/lz4.go index 46389243b21..ddb82f66f8d 100644 --- a/vendor/github.com/pierrec/lz4/lz4.go +++ b/vendor/github.com/pierrec/lz4/lz4.go @@ -20,7 +20,6 @@ package lz4 import ( "hash" "sync" - "unsafe" "github.com/pierrec/xxHash/xxHash32" ) @@ -65,18 +64,6 @@ func init() { } } -var isLittleEndian = getIsLittleEndian() - -func getIsLittleEndian() (ret bool) { - var i int = 0x1 - bs := (*[1]byte)(unsafe.Pointer(&i)) - if bs[0] == 0 { - return false - } - - return true -} - // Header describes the various flags that can be set on a Writer or obtained from a Reader. // The default values match those of the LZ4 frame format definition (http://fastcompression.blogspot.com/2013/04/lz4-streaming-format-final.html). // diff --git a/vendor/github.com/pierrec/lz4/lz4c/main.go b/vendor/github.com/pierrec/lz4/lz4c/main.go deleted file mode 100644 index 048ab5004f6..00000000000 --- a/vendor/github.com/pierrec/lz4/lz4c/main.go +++ /dev/null @@ -1,108 +0,0 @@ -// Command line utility for the lz4 package. -package main - -import ( - // "bytes" - - "flag" - "fmt" - "io" - "log" - "os" - "path" - "runtime" - "strings" - - "github.com/pierrec/lz4" -) - -func main() { - // Process command line arguments - var ( - blockMaxSizeDefault = 4 << 20 - flagStdout = flag.Bool("c", false, "output to stdout") - flagDecompress = flag.Bool("d", false, "decompress flag") - flagBlockMaxSize = flag.Int("B", blockMaxSizeDefault, "block max size [64Kb,256Kb,1Mb,4Mb]") - flagBlockDependency = flag.Bool("BD", false, "enable block dependency") - flagBlockChecksum = flag.Bool("BX", false, "enable block checksum") - flagStreamChecksum = flag.Bool("Sx", false, "disable stream checksum") - flagHighCompression = flag.Bool("9", false, "enabled high compression") - ) - flag.Usage = func() { - fmt.Fprintf(os.Stderr, "Usage:\n\t%s [arg] [input]...\n\tNo input means [de]compress stdin to stdout\n\n", os.Args[0]) - flag.PrintDefaults() - } - flag.Parse() - - // Use all CPUs - runtime.GOMAXPROCS(runtime.NumCPU()) - - zr := lz4.NewReader(nil) - zw := lz4.NewWriter(nil) - zh := lz4.Header{ - BlockDependency: *flagBlockDependency, - BlockChecksum: *flagBlockChecksum, - BlockMaxSize: *flagBlockMaxSize, - NoChecksum: *flagStreamChecksum, - HighCompression: *flagHighCompression, - } - - worker := func(in io.Reader, out io.Writer) { - if *flagDecompress { - zr.Reset(in) - if _, err := io.Copy(out, zr); err != nil { - log.Fatalf("Error while decompressing input: %v", err) - } - } else { - zw.Reset(out) - zw.Header = zh - if _, err := io.Copy(zw, in); err != nil { - log.Fatalf("Error while compressing input: %v", err) - } - if err := zw.Close(); err != nil { - log.Fatalf("Error while closing stream: %v", err) - } - } - } - - // No input means [de]compress stdin to stdout - if len(flag.Args()) == 0 { - worker(os.Stdin, os.Stdout) - os.Exit(0) - } - - // Compress or decompress all input files - for _, inputFileName := range flag.Args() { - outputFileName := path.Clean(inputFileName) - - if !*flagStdout { - if *flagDecompress { - outputFileName = strings.TrimSuffix(outputFileName, lz4.Extension) - if outputFileName == inputFileName { - log.Fatalf("Invalid output file name: same as input: %s", inputFileName) - } - } else { - outputFileName += lz4.Extension - } - } - - inputFile, err := os.Open(inputFileName) - if err != nil { - log.Fatalf("Error while opening input: %v", err) - } - - outputFile := os.Stdout - if !*flagStdout { - outputFile, err = os.Create(outputFileName) - if err != nil { - log.Fatalf("Error while opening output: %v", err) - } - } - worker(inputFile, outputFile) - - inputFile.Close() - if !*flagStdout { - outputFile.Close() - } - } -} diff --git a/vendor/github.com/pierrec/lz4/writer.go b/vendor/github.com/pierrec/lz4/writer.go index 11082f5a64f..b16cb2618b7 100644 --- a/vendor/github.com/pierrec/lz4/writer.go +++ b/vendor/github.com/pierrec/lz4/writer.go @@ -16,10 +16,8 @@ type Writer struct { data []byte // data to be compressed, only used when dealing with block dependency as we need 64Kb to work with window []byte // last 64KB of decompressed data (block dependency) + blockMaxSize buffer - zbCompressBuf []byte // buffer for compressing lz4 blocks - writeSizeBuf []byte // four-byte slice for writing checksums and sizes in writeblock - hashTable []hashEntry - currentGeneration uint + zbCompressBuf []byte // buffer for compressing lz4 blocks + writeSizeBuf []byte // four-byte slice for writing checksums and sizes in writeblock } // NewWriter returns a new LZ4 frame encoder. @@ -33,7 +31,6 @@ func NewWriter(dst io.Writer) *Writer { Header: Header{ BlockMaxSize: 4 << 20, }, - hashTable: make([]hashEntry, hashTableSize), writeSizeBuf: make([]byte, 4), } } @@ -245,11 +242,7 @@ func (z *Writer) compressBlock(zb block) block { if z.HighCompression { n, err = CompressBlockHC(zb.data, zbuf, zb.offset) } else { - n, err = compressGenerationalBlock(zb.data, zbuf, zb.offset, z.currentGeneration, z.hashTable) - z.currentGeneration++ - if z.currentGeneration == 0 { // wrapped around, reset table - z.hashTable = make([]hashEntry, hashTableSize) - } + n, err = CompressBlock(zb.data, zbuf, zb.offset) } // compressible and compressed size smaller than decompressed: ok! diff --git a/vendor/github.com/pierrec/xxHash/README.md b/vendor/github.com/pierrec/xxHash/README.md deleted file mode 100644 index aafd2843056..00000000000 --- a/vendor/github.com/pierrec/xxHash/README.md +++ /dev/null @@ -1,36 +0,0 @@ -[![godoc](https://godoc.org/github.com/pierrec/xxHash?status.png)](https://godoc.org/github.com/pierrec/xxHash) -[![Build Status](https://travis-ci.org/pierrec/xxHash.svg?branch=master)](https://travis-ci.org/pierrec/xxHash) - -# Pure Go implementation of xxHash (32 and 64 bits versions) - -## Synopsis - -xxHash is a very fast hashing algorithm (see the details [here](https://github.com/Cyan4973/xxHash/)). -This package implements xxHash in pure [Go](http://www.golang.com). - - -## Usage - -This package follows the hash interfaces (hash.Hash32 and hash.Hash64). - -```go - import ( - "fmt" - - "github.com/pierrec/xxHash/xxHash32" - ) - - x := xxHash32.New(0xCAFE) // hash.Hash32 - x.Write([]byte("abc")) - x.Write([]byte("def")) - fmt.Printf("%x\n", x.Sum32()) - - x.Reset() - x.Write([]byte("abc")) - fmt.Printf("%x\n", x.Sum32()) -``` - -## Command line utility - -A simple command line utility is provided to hash files content under the xxhsum directory. - diff --git a/vendor/github.com/pierrec/xxHash/xxHash64/xxHash64.go b/vendor/github.com/pierrec/xxHash/xxHash64/xxHash64.go deleted file mode 100644 index 2788e950690..00000000000 --- a/vendor/github.com/pierrec/xxHash/xxHash64/xxHash64.go +++ /dev/null @@ -1,249 +0,0 @@ -// Package xxHash64 implements the very fast xxHash hashing algorithm (64 bits version). -// (https://github.com/Cyan4973/xxHash/) -package xxHash64 - -import "hash" - -const ( - prime64_1 = 11400714785074694791 - prime64_2 = 14029467366897019727 - prime64_3 = 1609587929392839161 - prime64_4 = 9650029242287828579 - prime64_5 = 2870177450012600261 -) - -type xxHash struct { - seed uint64 - v1 uint64 - v2 uint64 - v3 uint64 - v4 uint64 - totalLen uint64 - buf [32]byte - bufused int -} - -// New returns a new Hash64 instance. -func New(seed uint64) hash.Hash64 { - xxh := &xxHash{seed: seed} - xxh.Reset() - return xxh -} - -// Sum appends the current hash to b and returns the resulting slice. -// It does not change the underlying hash state. -func (xxh xxHash) Sum(b []byte) []byte { - h64 := xxh.Sum64() - return append(b, byte(h64), byte(h64>>8), byte(h64>>16), byte(h64>>24), byte(h64>>32), byte(h64>>40), byte(h64>>48), byte(h64>>56)) -} - -// Reset resets the Hash to its initial state. -func (xxh *xxHash) Reset() { - xxh.v1 = xxh.seed + prime64_1 + prime64_2 - xxh.v2 = xxh.seed + prime64_2 - xxh.v3 = xxh.seed - xxh.v4 = xxh.seed - prime64_1 - xxh.totalLen = 0 - xxh.bufused = 0 -} - -// Size returns the number of bytes returned by Sum(). -func (xxh *xxHash) Size() int { - return 8 -} - -// BlockSize gives the minimum number of bytes accepted by Write(). -func (xxh *xxHash) BlockSize() int { - return 1 -} - -// Write adds input bytes to the Hash. -// It never returns an error. -func (xxh *xxHash) Write(input []byte) (int, error) { - n := len(input) - m := xxh.bufused - - xxh.totalLen += uint64(n) - - r := len(xxh.buf) - m - if n < r { - copy(xxh.buf[m:], input) - xxh.bufused += len(input) - return n, nil - } - - p := 0 - if m > 0 { - // some data left from previous update - copy(xxh.buf[xxh.bufused:], input[:r]) - xxh.bufused += len(input) - r - - // fast rotl(31) - p64 := xxh.v1 + (uint64(xxh.buf[p+7])<<56|uint64(xxh.buf[p+6])<<48|uint64(xxh.buf[p+5])<<40|uint64(xxh.buf[p+4])<<32|uint64(xxh.buf[p+3])<<24|uint64(xxh.buf[p+2])<<16|uint64(xxh.buf[p+1])<<8|uint64(xxh.buf[p]))*prime64_2 - xxh.v1 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - p64 = xxh.v2 + (uint64(xxh.buf[p+7])<<56|uint64(xxh.buf[p+6])<<48|uint64(xxh.buf[p+5])<<40|uint64(xxh.buf[p+4])<<32|uint64(xxh.buf[p+3])<<24|uint64(xxh.buf[p+2])<<16|uint64(xxh.buf[p+1])<<8|uint64(xxh.buf[p]))*prime64_2 - xxh.v2 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - p64 = xxh.v3 + (uint64(xxh.buf[p+7])<<56|uint64(xxh.buf[p+6])<<48|uint64(xxh.buf[p+5])<<40|uint64(xxh.buf[p+4])<<32|uint64(xxh.buf[p+3])<<24|uint64(xxh.buf[p+2])<<16|uint64(xxh.buf[p+1])<<8|uint64(xxh.buf[p]))*prime64_2 - xxh.v3 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - p64 = xxh.v4 + (uint64(xxh.buf[p+7])<<56|uint64(xxh.buf[p+6])<<48|uint64(xxh.buf[p+5])<<40|uint64(xxh.buf[p+4])<<32|uint64(xxh.buf[p+3])<<24|uint64(xxh.buf[p+2])<<16|uint64(xxh.buf[p+1])<<8|uint64(xxh.buf[p]))*prime64_2 - xxh.v4 = (p64<<31 | p64>>33) * prime64_1 - - p = r - xxh.bufused = 0 - } - - for n := n - 32; p <= n; { - p64 := xxh.v1 + (uint64(input[p+7])<<56|uint64(input[p+6])<<48|uint64(input[p+5])<<40|uint64(input[p+4])<<32|uint64(input[p+3])<<24|uint64(input[p+2])<<16|uint64(input[p+1])<<8|uint64(input[p]))*prime64_2 - xxh.v1 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - p64 = xxh.v2 + (uint64(input[p+7])<<56|uint64(input[p+6])<<48|uint64(input[p+5])<<40|uint64(input[p+4])<<32|uint64(input[p+3])<<24|uint64(input[p+2])<<16|uint64(input[p+1])<<8|uint64(input[p]))*prime64_2 - xxh.v2 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - p64 = xxh.v3 + (uint64(input[p+7])<<56|uint64(input[p+6])<<48|uint64(input[p+5])<<40|uint64(input[p+4])<<32|uint64(input[p+3])<<24|uint64(input[p+2])<<16|uint64(input[p+1])<<8|uint64(input[p]))*prime64_2 - xxh.v3 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - p64 = xxh.v4 + (uint64(input[p+7])<<56|uint64(input[p+6])<<48|uint64(input[p+5])<<40|uint64(input[p+4])<<32|uint64(input[p+3])<<24|uint64(input[p+2])<<16|uint64(input[p+1])<<8|uint64(input[p]))*prime64_2 - xxh.v4 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - } - - copy(xxh.buf[xxh.bufused:], input[p:]) - xxh.bufused += len(input) - p - - return n, nil -} - -// Sum64 returns the 64bits Hash value. -func (xxh *xxHash) Sum64() uint64 { - var h64 uint64 - if xxh.totalLen >= 32 { - h64 = ((xxh.v1 << 1) | (xxh.v1 >> 63)) + - ((xxh.v2 << 7) | (xxh.v2 >> 57)) + - ((xxh.v3 << 12) | (xxh.v3 >> 52)) + - ((xxh.v4 << 18) | (xxh.v4 >> 46)) - - xxh.v1 *= prime64_2 - h64 ^= ((xxh.v1 << 31) | (xxh.v1 >> 33)) * prime64_1 - h64 = h64*prime64_1 + prime64_4 - - xxh.v2 *= prime64_2 - h64 ^= ((xxh.v2 << 31) | (xxh.v2 >> 33)) * prime64_1 - h64 = h64*prime64_1 + prime64_4 - - xxh.v3 *= prime64_2 - h64 ^= ((xxh.v3 << 31) | (xxh.v3 >> 33)) * prime64_1 - h64 = h64*prime64_1 + prime64_4 - - xxh.v4 *= prime64_2 - h64 ^= ((xxh.v4 << 31) | (xxh.v4 >> 33)) * prime64_1 - h64 = h64*prime64_1 + prime64_4 + xxh.totalLen - } else { - h64 = xxh.seed + prime64_5 + xxh.totalLen - } - - p := 0 - n := xxh.bufused - for n := n - 8; p <= n; p += 8 { - p64 := (uint64(xxh.buf[p+7])<<56 | uint64(xxh.buf[p+6])<<48 | uint64(xxh.buf[p+5])<<40 | uint64(xxh.buf[p+4])<<32 | uint64(xxh.buf[p+3])<<24 | uint64(xxh.buf[p+2])<<16 | uint64(xxh.buf[p+1])<<8 | uint64(xxh.buf[p])) * prime64_2 - h64 ^= ((p64 << 31) | (p64 >> 33)) * prime64_1 - h64 = ((h64<<27)|(h64>>37))*prime64_1 + prime64_4 - } - if p+4 <= n { - h64 ^= (uint64(xxh.buf[p+3])<<24 | uint64(xxh.buf[p+2])<<16 | uint64(xxh.buf[p+1])<<8 | uint64(xxh.buf[p])) * prime64_1 - h64 = ((h64<<23)|(h64>>41))*prime64_2 + prime64_3 - p += 4 - } - for ; p < n; p++ { - h64 ^= uint64(xxh.buf[p]) * prime64_5 - h64 = ((h64 << 11) | (h64 >> 53)) * prime64_1 - } - - h64 ^= h64 >> 33 - h64 *= prime64_2 - h64 ^= h64 >> 29 - h64 *= prime64_3 - h64 ^= h64 >> 32 - - return h64 -} - -// Checksum returns the 64bits Hash value. -func Checksum(input []byte, seed uint64) uint64 { - n := len(input) - var h64 uint64 - - if n >= 32 { - v1 := seed + prime64_1 + prime64_2 - v2 := seed + prime64_2 - v3 := seed - v4 := seed - prime64_1 - p := 0 - for n := n - 32; p <= n; { - p64 := v1 + (uint64(input[p+7])<<56|uint64(input[p+6])<<48|uint64(input[p+5])<<40|uint64(input[p+4])<<32|uint64(input[p+3])<<24|uint64(input[p+2])<<16|uint64(input[p+1])<<8|uint64(input[p]))*prime64_2 - v1 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - p64 = v2 + (uint64(input[p+7])<<56|uint64(input[p+6])<<48|uint64(input[p+5])<<40|uint64(input[p+4])<<32|uint64(input[p+3])<<24|uint64(input[p+2])<<16|uint64(input[p+1])<<8|uint64(input[p]))*prime64_2 - v2 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - p64 = v3 + (uint64(input[p+7])<<56|uint64(input[p+6])<<48|uint64(input[p+5])<<40|uint64(input[p+4])<<32|uint64(input[p+3])<<24|uint64(input[p+2])<<16|uint64(input[p+1])<<8|uint64(input[p]))*prime64_2 - v3 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - p64 = v4 + (uint64(input[p+7])<<56|uint64(input[p+6])<<48|uint64(input[p+5])<<40|uint64(input[p+4])<<32|uint64(input[p+3])<<24|uint64(input[p+2])<<16|uint64(input[p+1])<<8|uint64(input[p]))*prime64_2 - v4 = (p64<<31 | p64>>33) * prime64_1 - p += 8 - } - - h64 = ((v1 << 1) | (v1 >> 63)) + - ((v2 << 7) | (v2 >> 57)) + - ((v3 << 12) | (v3 >> 52)) + - ((v4 << 18) | (v4 >> 46)) - - v1 *= prime64_2 - h64 ^= ((v1 << 31) | (v1 >> 33)) * prime64_1 - h64 = h64*prime64_1 + prime64_4 - - v2 *= prime64_2 - h64 ^= ((v2 << 31) | (v2 >> 33)) * prime64_1 - h64 = h64*prime64_1 + prime64_4 - - v3 *= prime64_2 - h64 ^= ((v3 << 31) | (v3 >> 33)) * prime64_1 - h64 = h64*prime64_1 + prime64_4 - - v4 *= prime64_2 - h64 ^= ((v4 << 31) | (v4 >> 33)) * prime64_1 - h64 = h64*prime64_1 + prime64_4 + uint64(n) - - input = input[p:] - n -= p - } else { - h64 = seed + prime64_5 + uint64(n) - } - - p := 0 - for n := n - 8; p <= n; p += 8 { - p64 := (uint64(input[p+7])<<56 | uint64(input[p+6])<<48 | uint64(input[p+5])<<40 | uint64(input[p+4])<<32 | uint64(input[p+3])<<24 | uint64(input[p+2])<<16 | uint64(input[p+1])<<8 | uint64(input[p])) * prime64_2 - h64 ^= ((p64 << 31) | (p64 >> 33)) * prime64_1 - h64 = ((h64<<27)|(h64>>37))*prime64_1 + prime64_4 - } - if p+4 <= n { - h64 ^= (uint64(input[p+3])<<24 | uint64(input[p+2])<<16 | uint64(input[p+1])<<8 | uint64(input[p])) * prime64_1 - h64 = ((h64<<23)|(h64>>41))*prime64_2 + prime64_3 - p += 4 - } - for ; p < n; p++ { - h64 ^= uint64(input[p]) * prime64_5 - h64 = ((h64 << 11) | (h64 >> 53)) * prime64_1 - } - - h64 ^= h64 >> 33 - h64 *= prime64_2 - h64 ^= h64 >> 29 - h64 *= prime64_3 - h64 ^= h64 >> 32 - - return h64 -} diff --git a/vendor/github.com/pierrec/xxHash/xxhsum/main.go b/vendor/github.com/pierrec/xxHash/xxhsum/main.go deleted file mode 100644 index b73158bd9cd..00000000000 --- a/vendor/github.com/pierrec/xxHash/xxhsum/main.go +++ /dev/null @@ -1,44 +0,0 @@ -// Command line interface to the xxHash32 and xxHash64 packages. -// Usage: -// xxHash [-mode 0] [-seed 123] filename1 [filename2...] -// where -// mode: hash mode (0=32bits, 1=64bits) (default=1) -// seed: seed to be used (default=0) -package main - -import ( - "flag" - "fmt" - "hash" - "io" - "os" - - "github.com/pierrec/xxHash/xxHash32" - "github.com/pierrec/xxHash/xxHash64" -) - -func main() { - seed := flag.Uint64("seed", 0, "seed value") - mode := flag.Int("mode", 1, "hash mode: 0=32bits, 1=64bits") - flag.Parse() - - var xxh hash.Hash - if *mode == 0 { - xxh = xxHash32.New(uint32(*seed)) - } else { - xxh = xxHash64.New(*seed) - } - - // Process each file in sequence - for _, filename := range flag.Args() { - inputFile, err := os.Open(filename) - if err != nil { - continue - } - if _, err := io.Copy(xxh, inputFile); err == nil { - fmt.Printf("%x %s\n", xxh.Sum(nil), filename) - } - inputFile.Close() - xxh.Reset() - } -} diff --git a/vendor/github.com/pierrre/gotestcover/LICENSE b/vendor/github.com/pierrre/gotestcover/LICENSE old mode 100755 new mode 100644 diff --git a/vendor/github.com/pierrre/gotestcover/Makefile b/vendor/github.com/pierrre/gotestcover/Makefile old mode 100755 new mode 100644 diff --git a/vendor/github.com/pierrre/gotestcover/README.md b/vendor/github.com/pierrre/gotestcover/README.md old mode 100755 new mode 100644 diff --git a/vendor/github.com/pierrre/gotestcover/gotestcover.go b/vendor/github.com/pierrre/gotestcover/gotestcover.go old mode 100755 new mode 100644 diff --git a/vendor/github.com/pkg/errors/LICENSE b/vendor/github.com/pkg/errors/LICENSE index fafcaafdc75..835ba3e755c 100644 --- a/vendor/github.com/pkg/errors/LICENSE +++ b/vendor/github.com/pkg/errors/LICENSE @@ -21,4 +21,3 @@ 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/pkg/errors/README.md b/vendor/github.com/pkg/errors/README.md index 6ea6422ec77..273db3c98ae 100644 --- a/vendor/github.com/pkg/errors/README.md +++ b/vendor/github.com/pkg/errors/README.md @@ -2,6 +2,8 @@ Package errors provides simple error handling primitives. +`go get github.com/pkg/errors` + The traditional error handling idiom in Go is roughly akin to ```go if err != nil { diff --git a/vendor/github.com/pkg/errors/errors.go b/vendor/github.com/pkg/errors/errors.go index 65bf7a0fa50..842ee80456d 100644 --- a/vendor/github.com/pkg/errors/errors.go +++ b/vendor/github.com/pkg/errors/errors.go @@ -14,13 +14,18 @@ // Adding context to an error // // The errors.Wrap function returns a new error that adds context to the -// original error. For example +// original error by recording a stack trace at the point Wrap is called, +// and the supplied message. For example // // _, err := ioutil.ReadAll(r) // if err != nil { // return errors.Wrap(err, "read failed") // } // +// If additional control is required the errors.WithStack and errors.WithMessage +// functions destructure errors.Wrap into its component operations of annotating +// an error with a stack trace and an a message, respectively. +// // Retrieving the cause of an error // // Using errors.Wrap constructs a stack of errors, adding context to the @@ -28,7 +33,7 @@ // to reverse the operation of errors.Wrap to retrieve the original error // for inspection. Any error value which implements this interface // -// type Causer interface { +// type causer interface { // Cause() error // } // @@ -43,6 +48,9 @@ // // unknown error // } // +// causer interface is not exported by this package, but is considered a part +// of stable public API. +// // Formatted printing of errors // // All error values returned from this package implement fmt.Formatter and can @@ -59,7 +67,7 @@ // New, Errorf, Wrap, and Wrapf record a stack trace at the point they are // invoked. This information can be retrieved with the following interface. // -// type StackTrace interface { +// type stackTracer interface { // StackTrace() errors.StackTrace // } // @@ -67,16 +75,19 @@ // // type StackTrace []Frame // -// The Frame type represents a call site in the stacktrace. Frame supports +// The Frame type represents a call site in the stack trace. Frame supports // the fmt.Formatter interface that can be used for printing information about -// the stacktrace of this error. For example: +// the stack trace of this error. For example: // -// if err, ok := err.(StackTrace); ok { +// if err, ok := err.(stackTracer); ok { // for _, f := range err.StackTrace() { // fmt.Printf("%+s:%d", f) // } // } // +// stackTracer interface is not exported by this package, but is considered a part +// of stable public API. +// // See the documentation for Frame.Format for more details. package errors @@ -85,102 +96,149 @@ import ( "io" ) -// _error is an error implementation returned by New and Errorf -// that implements its own fmt.Formatter. -type _error struct { +// New returns an error with the supplied message. +// New also records the stack trace at the point it was called. +func New(message string) error { + return &fundamental{ + msg: message, + stack: callers(), + } +} + +// Errorf formats according to a format specifier and returns the string +// as a value that satisfies error. +// Errorf also records the stack trace at the point it was called. +func Errorf(format string, args ...interface{}) error { + return &fundamental{ + msg: fmt.Sprintf(format, args...), + stack: callers(), + } +} + +// fundamental is an error that has a message and a stack, but no caller. +type fundamental struct { msg string *stack } -func (e _error) Error() string { return e.msg } +func (f *fundamental) Error() string { return f.msg } -func (e _error) Format(s fmt.State, verb rune) { +func (f *fundamental) Format(s fmt.State, verb rune) { switch verb { case 'v': if s.Flag('+') { - io.WriteString(s, e.msg) - fmt.Fprintf(s, "%+v", e.StackTrace()) + io.WriteString(s, f.msg) + f.stack.Format(s, verb) return } fallthrough case 's': - io.WriteString(s, e.msg) + io.WriteString(s, f.msg) + case 'q': + fmt.Fprintf(s, "%q", f.msg) } } -// New returns an error with the supplied message. -func New(message string) error { - return _error{ - message, - callers(), +// WithStack annotates err with a stack trace at the point WithStack was called. +// If err is nil, WithStack returns nil. +func WithStack(err error) error { + if err == nil { + return nil } -} - -// Errorf formats according to a format specifier and returns the string -// as a value that satisfies error. -func Errorf(format string, args ...interface{}) error { - return _error{ - fmt.Sprintf(format, args...), + return &withStack{ + err, callers(), } } -type cause struct { - cause error - msg string -} - -func (c cause) Error() string { return fmt.Sprintf("%s: %v", c.msg, c.Cause()) } -func (c cause) Cause() error { return c.cause } - -// wrapper is an error implementation returned by Wrap and Wrapf -// that implements its own fmt.Formatter. -type wrapper struct { - cause +type withStack struct { + error *stack } -func (w wrapper) Format(s fmt.State, verb rune) { +func (w *withStack) Cause() error { return w.error } + +func (w *withStack) Format(s fmt.State, verb rune) { switch verb { case 'v': if s.Flag('+') { - fmt.Fprintf(s, "%+v\n", w.Cause()) - fmt.Fprintf(s, "%+v: %s", w.StackTrace()[0], w.msg) + fmt.Fprintf(s, "%+v", w.Cause()) + w.stack.Format(s, verb) return } fallthrough case 's': io.WriteString(s, w.Error()) + case 'q': + fmt.Fprintf(s, "%q", w.Error()) } } -// Wrap returns an error annotating err with message. +// Wrap returns an error annotating err with a stack trace +// at the point Wrap is called, and the supplied message. // If err is nil, Wrap returns nil. func Wrap(err error, message string) error { if err == nil { return nil } - return wrapper{ - cause: cause{ - cause: err, - msg: message, - }, - stack: callers(), + err = &withMessage{ + cause: err, + msg: message, + } + return &withStack{ + err, + callers(), } } -// Wrapf returns an error annotating err with the format specifier. +// Wrapf returns an error annotating err with a stack trace +// at the point Wrapf is call, and the format specifier. // If err is nil, Wrapf returns nil. func Wrapf(err error, format string, args ...interface{}) error { if err == nil { return nil } - return wrapper{ - cause: cause{ - cause: err, - msg: fmt.Sprintf(format, args...), - }, - stack: callers(), + err = &withMessage{ + cause: err, + msg: fmt.Sprintf(format, args...), + } + return &withStack{ + err, + callers(), + } +} + +// WithMessage annotates err with a new message. +// If err is nil, WithMessage returns nil. +func WithMessage(err error, message string) error { + if err == nil { + return nil + } + return &withMessage{ + cause: err, + msg: message, + } +} + +type withMessage struct { + cause error + msg string +} + +func (w *withMessage) Error() string { return w.msg + ": " + w.cause.Error() } +func (w *withMessage) Cause() error { return w.cause } + +func (w *withMessage) Format(s fmt.State, verb rune) { + switch verb { + case 'v': + if s.Flag('+') { + fmt.Fprintf(s, "%+v\n", w.Cause()) + io.WriteString(s, w.msg) + return + } + fallthrough + case 's', 'q': + io.WriteString(s, w.Error()) } } @@ -188,7 +246,7 @@ func Wrapf(err error, format string, args ...interface{}) error { // An error value has a cause if it implements the following // interface: // -// type Causer interface { +// type causer interface { // Cause() error // } // diff --git a/vendor/github.com/pkg/errors/stack.go b/vendor/github.com/pkg/errors/stack.go index 243a64a2acb..6b1f2891a5a 100644 --- a/vendor/github.com/pkg/errors/stack.go +++ b/vendor/github.com/pkg/errors/stack.go @@ -100,6 +100,19 @@ func (st StackTrace) Format(s fmt.State, verb rune) { // stack represents a stack of program counters. type stack []uintptr +func (s *stack) Format(st fmt.State, verb rune) { + switch verb { + case 'v': + switch { + case st.Flag('+'): + for _, pc := range *s { + f := Frame(pc) + fmt.Fprintf(st, "\n%+v", f) + } + } + } +} + func (s *stack) StackTrace() StackTrace { f := make([]Frame, len(*s)) for i := 0; i < len(f); i++ { diff --git a/vendor/github.com/pmezard/go-difflib/README.md b/vendor/github.com/pmezard/go-difflib/README.md deleted file mode 100644 index e87f307ed44..00000000000 --- a/vendor/github.com/pmezard/go-difflib/README.md +++ /dev/null @@ -1,50 +0,0 @@ -go-difflib -========== - -[![Build Status](https://travis-ci.org/pmezard/go-difflib.png?branch=master)](https://travis-ci.org/pmezard/go-difflib) -[![GoDoc](https://godoc.org/github.com/pmezard/go-difflib/difflib?status.svg)](https://godoc.org/github.com/pmezard/go-difflib/difflib) - -Go-difflib is a partial port of python 3 difflib package. Its main goal -was to make unified and context diff available in pure Go, mostly for -testing purposes. - -The following class and functions (and related tests) have be ported: - -* `SequenceMatcher` -* `unified_diff()` -* `context_diff()` - -## Installation - -```bash -$ go get github.com/pmezard/go-difflib/difflib -``` - -### Quick Start - -Diffs are configured with Unified (or ContextDiff) structures, and can -be output to an io.Writer or returned as a string. - -```Go -diff := UnifiedDiff{ - A: difflib.SplitLines("foo\nbar\n"), - B: difflib.SplitLines("foo\nbaz\n"), - FromFile: "Original", - ToFile: "Current", - Context: 3, -} -text, _ := GetUnifiedDiffString(diff) -fmt.Printf(text) -``` - -would output: - -``` ---- Original -+++ Current -@@ -1,3 +1,3 @@ - foo --bar -+baz -``` - diff --git a/vendor/github.com/pmezard/go-difflib/difflib/difflib.go b/vendor/github.com/pmezard/go-difflib/difflib/difflib.go index 003e99fadb4..64cc40fe1da 100644 --- a/vendor/github.com/pmezard/go-difflib/difflib/difflib.go +++ b/vendor/github.com/pmezard/go-difflib/difflib/difflib.go @@ -559,14 +559,10 @@ type UnifiedDiff struct { func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error { buf := bufio.NewWriter(writer) defer buf.Flush() - wf := func(format string, args ...interface{}) error { + w := func(format string, args ...interface{}) error { _, err := buf.WriteString(fmt.Sprintf(format, args...)) return err } - ws := func(s string) error { - _, err := buf.WriteString(s) - return err - } if len(diff.Eol) == 0 { diff.Eol = "\n" @@ -585,28 +581,26 @@ func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error { if len(diff.ToDate) > 0 { toDate = "\t" + diff.ToDate } - if diff.FromFile != "" || diff.ToFile != "" { - err := wf("--- %s%s%s", diff.FromFile, fromDate, diff.Eol) - if err != nil { - return err - } - err = wf("+++ %s%s%s", diff.ToFile, toDate, diff.Eol) - if err != nil { - return err - } + err := w("--- %s%s%s", diff.FromFile, fromDate, diff.Eol) + if err != nil { + return err + } + err = w("+++ %s%s%s", diff.ToFile, toDate, diff.Eol) + if err != nil { + return err } } first, last := g[0], g[len(g)-1] range1 := formatRangeUnified(first.I1, last.I2) range2 := formatRangeUnified(first.J1, last.J2) - if err := wf("@@ -%s +%s @@%s", range1, range2, diff.Eol); err != nil { + if err := w("@@ -%s +%s @@%s", range1, range2, diff.Eol); err != nil { return err } for _, c := range g { i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 if c.Tag == 'e' { for _, line := range diff.A[i1:i2] { - if err := ws(" " + line); err != nil { + if err := w(" " + line); err != nil { return err } } @@ -614,14 +608,14 @@ func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error { } if c.Tag == 'r' || c.Tag == 'd' { for _, line := range diff.A[i1:i2] { - if err := ws("-" + line); err != nil { + if err := w("-" + line); err != nil { return err } } } if c.Tag == 'r' || c.Tag == 'i' { for _, line := range diff.B[j1:j2] { - if err := ws("+" + line); err != nil { + if err := w("+" + line); err != nil { return err } } @@ -675,18 +669,12 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { buf := bufio.NewWriter(writer) defer buf.Flush() var diffErr error - wf := func(format string, args ...interface{}) { + w := func(format string, args ...interface{}) { _, err := buf.WriteString(fmt.Sprintf(format, args...)) if diffErr == nil && err != nil { diffErr = err } } - ws := func(s string) { - _, err := buf.WriteString(s) - if diffErr == nil && err != nil { - diffErr = err - } - } if len(diff.Eol) == 0 { diff.Eol = "\n" @@ -712,17 +700,15 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { if len(diff.ToDate) > 0 { toDate = "\t" + diff.ToDate } - if diff.FromFile != "" || diff.ToFile != "" { - wf("*** %s%s%s", diff.FromFile, fromDate, diff.Eol) - wf("--- %s%s%s", diff.ToFile, toDate, diff.Eol) - } + w("*** %s%s%s", diff.FromFile, fromDate, diff.Eol) + w("--- %s%s%s", diff.ToFile, toDate, diff.Eol) } first, last := g[0], g[len(g)-1] - ws("***************" + diff.Eol) + w("***************" + diff.Eol) range1 := formatRangeContext(first.I1, last.I2) - wf("*** %s ****%s", range1, diff.Eol) + w("*** %s ****%s", range1, diff.Eol) for _, c := range g { if c.Tag == 'r' || c.Tag == 'd' { for _, cc := range g { @@ -730,7 +716,7 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { continue } for _, line := range diff.A[cc.I1:cc.I2] { - ws(prefix[cc.Tag] + line) + w(prefix[cc.Tag] + line) } } break @@ -738,7 +724,7 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { } range2 := formatRangeContext(first.J1, last.J2) - wf("--- %s ----%s", range2, diff.Eol) + w("--- %s ----%s", range2, diff.Eol) for _, c := range g { if c.Tag == 'r' || c.Tag == 'i' { for _, cc := range g { @@ -746,7 +732,7 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { continue } for _, line := range diff.B[cc.J1:cc.J2] { - ws(prefix[cc.Tag] + line) + w(prefix[cc.Tag] + line) } } break diff --git a/vendor/github.com/rcrowley/go-metrics/cmd/metrics-bench/metrics-bench.go b/vendor/github.com/rcrowley/go-metrics/cmd/metrics-bench/metrics-bench.go deleted file mode 100644 index dddaf4b1263..00000000000 --- a/vendor/github.com/rcrowley/go-metrics/cmd/metrics-bench/metrics-bench.go +++ /dev/null @@ -1,20 +0,0 @@ -package main - -import ( - "fmt" - "github.com/rcrowley/go-metrics" - "time" -) - -func main() { - r := metrics.NewRegistry() - for i := 0; i < 10000; i++ { - r.Register(fmt.Sprintf("counter-%d", i), metrics.NewCounter()) - r.Register(fmt.Sprintf("gauge-%d", i), metrics.NewGauge()) - r.Register(fmt.Sprintf("gaugefloat64-%d", i), metrics.NewGaugeFloat64()) - r.Register(fmt.Sprintf("histogram-uniform-%d", i), metrics.NewHistogram(metrics.NewUniformSample(1028))) - r.Register(fmt.Sprintf("histogram-exp-%d", i), metrics.NewHistogram(metrics.NewExpDecaySample(1028, 0.015))) - r.Register(fmt.Sprintf("meter-%d", i), metrics.NewMeter()) - } - time.Sleep(600e9) -} diff --git a/vendor/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go b/vendor/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go deleted file mode 100644 index 66f42c0468f..00000000000 --- a/vendor/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go +++ /dev/null @@ -1,154 +0,0 @@ -package main - -import ( - "errors" - "github.com/rcrowley/go-metrics" - // "github.com/rcrowley/go-metrics/stathat" - "log" - "math/rand" - "os" - // "syslog" - "time" -) - -const fanout = 10 - -func main() { - - r := metrics.NewRegistry() - - c := metrics.NewCounter() - r.Register("foo", c) - for i := 0; i < fanout; i++ { - go func() { - for { - c.Dec(19) - time.Sleep(300e6) - } - }() - go func() { - for { - c.Inc(47) - time.Sleep(400e6) - } - }() - } - - g := metrics.NewGauge() - r.Register("bar", g) - for i := 0; i < fanout; i++ { - go func() { - for { - g.Update(19) - time.Sleep(300e6) - } - }() - go func() { - for { - g.Update(47) - time.Sleep(400e6) - } - }() - } - - gf := metrics.NewGaugeFloat64() - r.Register("barfloat64", gf) - for i := 0; i < fanout; i++ { - go func() { - for { - g.Update(19.0) - time.Sleep(300e6) - } - }() - go func() { - for { - g.Update(47.0) - time.Sleep(400e6) - } - }() - } - - hc := metrics.NewHealthcheck(func(h metrics.Healthcheck) { - if 0 < rand.Intn(2) { - h.Healthy() - } else { - h.Unhealthy(errors.New("baz")) - } - }) - r.Register("baz", hc) - - s := metrics.NewExpDecaySample(1028, 0.015) - //s := metrics.NewUniformSample(1028) - h := metrics.NewHistogram(s) - r.Register("bang", h) - for i := 0; i < fanout; i++ { - go func() { - for { - h.Update(19) - time.Sleep(300e6) - } - }() - go func() { - for { - h.Update(47) - time.Sleep(400e6) - } - }() - } - - m := metrics.NewMeter() - r.Register("quux", m) - for i := 0; i < fanout; i++ { - go func() { - for { - m.Mark(19) - time.Sleep(300e6) - } - }() - go func() { - for { - m.Mark(47) - time.Sleep(400e6) - } - }() - } - - t := metrics.NewTimer() - r.Register("hooah", t) - for i := 0; i < fanout; i++ { - go func() { - for { - t.Time(func() { time.Sleep(300e6) }) - } - }() - go func() { - for { - t.Time(func() { time.Sleep(400e6) }) - } - }() - } - - metrics.RegisterDebugGCStats(r) - go metrics.CaptureDebugGCStats(r, 5e9) - - metrics.RegisterRuntimeMemStats(r) - go metrics.CaptureRuntimeMemStats(r, 5e9) - - metrics.Log(r, 60e9, log.New(os.Stderr, "metrics: ", log.Lmicroseconds)) - - /* - w, err := syslog.Dial("unixgram", "/dev/log", syslog.LOG_INFO, "metrics") - if nil != err { log.Fatalln(err) } - metrics.Syslog(r, 60e9, w) - */ - - /* - addr, _ := net.ResolveTCPAddr("tcp", "127.0.0.1:2003") - metrics.Graphite(r, 10e9, "metrics", addr) - */ - - /* - stathat.Stathat(r, 10e9, "example@example.com") - */ - -} diff --git a/vendor/github.com/rcrowley/go-metrics/cmd/never-read/never-read.go b/vendor/github.com/rcrowley/go-metrics/cmd/never-read/never-read.go deleted file mode 100644 index dc175b778e8..00000000000 --- a/vendor/github.com/rcrowley/go-metrics/cmd/never-read/never-read.go +++ /dev/null @@ -1,22 +0,0 @@ -package main - -import ( - "log" - "net" -) - -func main() { - addr, _ := net.ResolveTCPAddr("tcp", "127.0.0.1:2003") - l, err := net.ListenTCP("tcp", addr) - if nil != err { - log.Fatalln(err) - } - log.Println("listening", l.Addr()) - for { - c, err := l.AcceptTCP() - if nil != err { - log.Fatalln(err) - } - log.Println("accepted", c.RemoteAddr()) - } -} diff --git a/vendor/github.com/rcrowley/go-metrics/gauge.go b/vendor/github.com/rcrowley/go-metrics/gauge.go index d618c455335..cb57a93889f 100644 --- a/vendor/github.com/rcrowley/go-metrics/gauge.go +++ b/vendor/github.com/rcrowley/go-metrics/gauge.go @@ -44,7 +44,6 @@ func NewFunctionalGauge(f func() int64) Gauge { return &FunctionalGauge{value: f} } - // NewRegisteredFunctionalGauge constructs and registers a new StandardGauge. func NewRegisteredFunctionalGauge(name string, r Registry, f func() int64) Gauge { c := NewFunctionalGauge(f) @@ -101,6 +100,7 @@ func (g *StandardGauge) Update(v int64) { func (g *StandardGauge) Value() int64 { return atomic.LoadInt64(&g.value) } + // FunctionalGauge returns value from given function type FunctionalGauge struct { value func() int64 @@ -117,4 +117,4 @@ func (g FunctionalGauge) Snapshot() Gauge { return GaugeSnapshot(g.Value()) } // Update panics. func (FunctionalGauge) Update(int64) { panic("Update called on a FunctionalGauge") -} \ No newline at end of file +} diff --git a/vendor/github.com/rcrowley/go-metrics/librato/client.go b/vendor/github.com/rcrowley/go-metrics/librato/client.go deleted file mode 100644 index 8c0c850e386..00000000000 --- a/vendor/github.com/rcrowley/go-metrics/librato/client.go +++ /dev/null @@ -1,102 +0,0 @@ -package librato - -import ( - "bytes" - "encoding/json" - "fmt" - "io/ioutil" - "net/http" -) - -const Operations = "operations" -const OperationsShort = "ops" - -type LibratoClient struct { - Email, Token string -} - -// property strings -const ( - // display attributes - Color = "color" - DisplayMax = "display_max" - DisplayMin = "display_min" - DisplayUnitsLong = "display_units_long" - DisplayUnitsShort = "display_units_short" - DisplayStacked = "display_stacked" - DisplayTransform = "display_transform" - // special gauge display attributes - SummarizeFunction = "summarize_function" - Aggregate = "aggregate" - - // metric keys - Name = "name" - Period = "period" - Description = "description" - DisplayName = "display_name" - Attributes = "attributes" - - // measurement keys - MeasureTime = "measure_time" - Source = "source" - Value = "value" - - // special gauge keys - Count = "count" - Sum = "sum" - Max = "max" - Min = "min" - SumSquares = "sum_squares" - - // batch keys - Counters = "counters" - Gauges = "gauges" - - MetricsPostUrl = "https://metrics-api.librato.com/v1/metrics" -) - -type Measurement map[string]interface{} -type Metric map[string]interface{} - -type Batch struct { - Gauges []Measurement `json:"gauges,omitempty"` - Counters []Measurement `json:"counters,omitempty"` - MeasureTime int64 `json:"measure_time"` - Source string `json:"source"` -} - -func (self *LibratoClient) PostMetrics(batch Batch) (err error) { - var ( - js []byte - req *http.Request - resp *http.Response - ) - - if len(batch.Counters) == 0 && len(batch.Gauges) == 0 { - return nil - } - - if js, err = json.Marshal(batch); err != nil { - return - } - - if req, err = http.NewRequest("POST", MetricsPostUrl, bytes.NewBuffer(js)); err != nil { - return - } - - req.Header.Set("Content-Type", "application/json") - req.SetBasicAuth(self.Email, self.Token) - - if resp, err = http.DefaultClient.Do(req); err != nil { - return - } - - if resp.StatusCode != http.StatusOK { - var body []byte - if body, err = ioutil.ReadAll(resp.Body); err != nil { - body = []byte(fmt.Sprintf("(could not fetch response body for error: %s)", err)) - } - err = fmt.Errorf("Unable to post to Librato: %d %s %s", resp.StatusCode, resp.Status, string(body)) - } - return -} diff --git a/vendor/github.com/rcrowley/go-metrics/librato/librato.go b/vendor/github.com/rcrowley/go-metrics/librato/librato.go deleted file mode 100644 index d7c0574684c..00000000000 --- a/vendor/github.com/rcrowley/go-metrics/librato/librato.go +++ /dev/null @@ -1,235 +0,0 @@ -package librato - -import ( - "fmt" - "log" - "math" - "regexp" - "time" - - "github.com/rcrowley/go-metrics" -) - -// a regexp for extracting the unit from time.Duration.String -var unitRegexp = regexp.MustCompile("[^\\d]+$") - -// a helper that turns a time.Duration into librato display attributes for timer metrics -func translateTimerAttributes(d time.Duration) (attrs map[string]interface{}) { - attrs = make(map[string]interface{}) - attrs[DisplayTransform] = fmt.Sprintf("x/%d", int64(d)) - attrs[DisplayUnitsShort] = string(unitRegexp.Find([]byte(d.String()))) - return -} - -type Reporter struct { - Email, Token string - Namespace string - Source string - Interval time.Duration - Registry metrics.Registry - Percentiles []float64 // percentiles to report on histogram metrics - TimerAttributes map[string]interface{} // units in which timers will be displayed - intervalSec int64 -} - -func NewReporter(r metrics.Registry, d time.Duration, e string, t string, s string, p []float64, u time.Duration) *Reporter { - return &Reporter{e, t, "", s, d, r, p, translateTimerAttributes(u), int64(d / time.Second)} -} - -func Librato(r metrics.Registry, d time.Duration, e string, t string, s string, p []float64, u time.Duration) { - NewReporter(r, d, e, t, s, p, u).Run() -} - -func (self *Reporter) Run() { - log.Printf("WARNING: This client has been DEPRECATED! It has been moved to https://github.com/mihasya/go-metrics-librato and will be removed from rcrowley/go-metrics on August 5th 2015") - ticker := time.Tick(self.Interval) - metricsApi := &LibratoClient{self.Email, self.Token} - for now := range ticker { - var metrics Batch - var err error - if metrics, err = self.BuildRequest(now, self.Registry); err != nil { - log.Printf("ERROR constructing librato request body %s", err) - continue - } - if err := metricsApi.PostMetrics(metrics); err != nil { - log.Printf("ERROR sending metrics to librato %s", err) - continue - } - } -} - -// calculate sum of squares from data provided by metrics.Histogram -// see http://en.wikipedia.org/wiki/Standard_deviation#Rapid_calculation_methods -func sumSquares(s metrics.Sample) float64 { - count := float64(s.Count()) - sumSquared := math.Pow(count*s.Mean(), 2) - sumSquares := math.Pow(count*s.StdDev(), 2) + sumSquared/count - if math.IsNaN(sumSquares) { - return 0.0 - } - return sumSquares -} -func sumSquaresTimer(t metrics.Timer) float64 { - count := float64(t.Count()) - sumSquared := math.Pow(count*t.Mean(), 2) - sumSquares := math.Pow(count*t.StdDev(), 2) + sumSquared/count - if math.IsNaN(sumSquares) { - return 0.0 - } - return sumSquares -} - -func (self *Reporter) BuildRequest(now time.Time, r metrics.Registry) (snapshot Batch, err error) { - snapshot = Batch{ - // coerce timestamps to a stepping fn so that they line up in Librato graphs - MeasureTime: (now.Unix() / self.intervalSec) * self.intervalSec, - Source: self.Source, - } - snapshot.Gauges = make([]Measurement, 0) - snapshot.Counters = make([]Measurement, 0) - histogramGaugeCount := 1 + len(self.Percentiles) - r.Each(func(name string, metric interface{}) { - if self.Namespace != "" { - name = fmt.Sprintf("%s.%s", self.Namespace, name) - } - measurement := Measurement{} - measurement[Period] = self.Interval.Seconds() - switch m := metric.(type) { - case metrics.Counter: - if m.Count() > 0 { - measurement[Name] = fmt.Sprintf("%s.%s", name, "count") - measurement[Value] = float64(m.Count()) - measurement[Attributes] = map[string]interface{}{ - DisplayUnitsLong: Operations, - DisplayUnitsShort: OperationsShort, - DisplayMin: "0", - } - snapshot.Counters = append(snapshot.Counters, measurement) - } - case metrics.Gauge: - measurement[Name] = name - measurement[Value] = float64(m.Value()) - snapshot.Gauges = append(snapshot.Gauges, measurement) - case metrics.GaugeFloat64: - measurement[Name] = name - measurement[Value] = float64(m.Value()) - snapshot.Gauges = append(snapshot.Gauges, measurement) - case metrics.Histogram: - if m.Count() > 0 { - gauges := make([]Measurement, histogramGaugeCount, histogramGaugeCount) - s := m.Sample() - measurement[Name] = fmt.Sprintf("%s.%s", name, "hist") - measurement[Count] = uint64(s.Count()) - measurement[Max] = float64(s.Max()) - measurement[Min] = float64(s.Min()) - measurement[Sum] = float64(s.Sum()) - measurement[SumSquares] = sumSquares(s) - gauges[0] = measurement - for i, p := range self.Percentiles { - gauges[i+1] = Measurement{ - Name: fmt.Sprintf("%s.%.2f", measurement[Name], p), - Value: s.Percentile(p), - Period: measurement[Period], - } - } - snapshot.Gauges = append(snapshot.Gauges, gauges...) - } - case metrics.Meter: - measurement[Name] = name - measurement[Value] = float64(m.Count()) - snapshot.Counters = append(snapshot.Counters, measurement) - snapshot.Gauges = append(snapshot.Gauges, - Measurement{ - Name: fmt.Sprintf("%s.%s", name, "1min"), - Value: m.Rate1(), - Period: int64(self.Interval.Seconds()), - Attributes: map[string]interface{}{ - DisplayUnitsLong: Operations, - DisplayUnitsShort: OperationsShort, - DisplayMin: "0", - }, - }, - Measurement{ - Name: fmt.Sprintf("%s.%s", name, "5min"), - Value: m.Rate5(), - Period: int64(self.Interval.Seconds()), - Attributes: map[string]interface{}{ - DisplayUnitsLong: Operations, - DisplayUnitsShort: OperationsShort, - DisplayMin: "0", - }, - }, - Measurement{ - Name: fmt.Sprintf("%s.%s", name, "15min"), - Value: m.Rate15(), - Period: int64(self.Interval.Seconds()), - Attributes: map[string]interface{}{ - DisplayUnitsLong: Operations, - DisplayUnitsShort: OperationsShort, - DisplayMin: "0", - }, - }, - ) - case metrics.Timer: - measurement[Name] = name - measurement[Value] = float64(m.Count()) - snapshot.Counters = append(snapshot.Counters, measurement) - if m.Count() > 0 { - libratoName := fmt.Sprintf("%s.%s", name, "timer.mean") - gauges := make([]Measurement, histogramGaugeCount, histogramGaugeCount) - gauges[0] = Measurement{ - Name: libratoName, - Count: uint64(m.Count()), - Sum: m.Mean() * float64(m.Count()), - Max: float64(m.Max()), - Min: float64(m.Min()), - SumSquares: sumSquaresTimer(m), - Period: int64(self.Interval.Seconds()), - Attributes: self.TimerAttributes, - } - for i, p := range self.Percentiles { - gauges[i+1] = Measurement{ - Name: fmt.Sprintf("%s.timer.%2.0f", name, p*100), - Value: m.Percentile(p), - Period: int64(self.Interval.Seconds()), - Attributes: self.TimerAttributes, - } - } - snapshot.Gauges = append(snapshot.Gauges, gauges...) - snapshot.Gauges = append(snapshot.Gauges, - Measurement{ - Name: fmt.Sprintf("%s.%s", name, "rate.1min"), - Value: m.Rate1(), - Period: int64(self.Interval.Seconds()), - Attributes: map[string]interface{}{ - DisplayUnitsLong: Operations, - DisplayUnitsShort: OperationsShort, - DisplayMin: "0", - }, - }, - Measurement{ - Name: fmt.Sprintf("%s.%s", name, "rate.5min"), - Value: m.Rate5(), - Period: int64(self.Interval.Seconds()), - Attributes: map[string]interface{}{ - DisplayUnitsLong: Operations, - DisplayUnitsShort: OperationsShort, - DisplayMin: "0", - }, - }, - Measurement{ - Name: fmt.Sprintf("%s.%s", name, "rate.15min"), - Value: m.Rate15(), - Period: int64(self.Interval.Seconds()), - Attributes: map[string]interface{}{ - DisplayUnitsLong: Operations, - DisplayUnitsShort: OperationsShort, - DisplayMin: "0", - }, - }, - ) - } - } - }) - return -} diff --git a/vendor/github.com/rcrowley/go-metrics/registry.go b/vendor/github.com/rcrowley/go-metrics/registry.go index 9086dcbdd14..2bb7a1e7d0f 100644 --- a/vendor/github.com/rcrowley/go-metrics/registry.go +++ b/vendor/github.com/rcrowley/go-metrics/registry.go @@ -167,9 +167,9 @@ func NewPrefixedChildRegistry(parent Registry, prefix string) Registry { // Call the given function for each registered metric. func (r *PrefixedRegistry) Each(fn func(string, interface{})) { - wrappedFn := func (prefix string) func(string, interface{}) { + wrappedFn := func(prefix string) func(string, interface{}) { return func(name string, iface interface{}) { - if strings.HasPrefix(name,prefix) { + if strings.HasPrefix(name, prefix) { fn(name, iface) } else { return @@ -184,7 +184,7 @@ func (r *PrefixedRegistry) Each(fn func(string, interface{})) { func findPrefix(registry Registry, prefix string) (Registry, string) { switch r := registry.(type) { case *PrefixedRegistry: - return findPrefix(r.underlying, r.prefix + prefix) + return findPrefix(r.underlying, r.prefix+prefix) case *StandardRegistry: return r, prefix } diff --git a/vendor/github.com/rcrowley/go-metrics/sample.go b/vendor/github.com/rcrowley/go-metrics/sample.go index 5f6a37788ed..fecee5ef68b 100644 --- a/vendor/github.com/rcrowley/go-metrics/sample.go +++ b/vendor/github.com/rcrowley/go-metrics/sample.go @@ -33,7 +33,7 @@ type Sample interface { // priority reservoir. See Cormode et al's "Forward Decay: A Practical Time // Decay Model for Streaming Systems". // -// +// type ExpDecaySample struct { alpha float64 count int64 @@ -302,6 +302,13 @@ type SampleSnapshot struct { values []int64 } +func NewSampleSnapshot(count int64, values []int64) *SampleSnapshot { + return &SampleSnapshot{ + count: count, + values: values, + } +} + // Clear panics. func (*SampleSnapshot) Clear() { panic("Clear called on a SampleSnapshot") diff --git a/vendor/github.com/rcrowley/go-metrics/stathat/stathat.go b/vendor/github.com/rcrowley/go-metrics/stathat/stathat.go deleted file mode 100644 index 0afcb484821..00000000000 --- a/vendor/github.com/rcrowley/go-metrics/stathat/stathat.go +++ /dev/null @@ -1,69 +0,0 @@ -// Metrics output to StatHat. -package stathat - -import ( - "github.com/rcrowley/go-metrics" - "github.com/stathat/go" - "log" - "time" -) - -func Stathat(r metrics.Registry, d time.Duration, userkey string) { - for { - if err := sh(r, userkey); nil != err { - log.Println(err) - } - time.Sleep(d) - } -} - -func sh(r metrics.Registry, userkey string) error { - r.Each(func(name string, i interface{}) { - switch metric := i.(type) { - case metrics.Counter: - stathat.PostEZCount(name, userkey, int(metric.Count())) - case metrics.Gauge: - stathat.PostEZValue(name, userkey, float64(metric.Value())) - case metrics.GaugeFloat64: - stathat.PostEZValue(name, userkey, float64(metric.Value())) - case metrics.Histogram: - h := metric.Snapshot() - ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - stathat.PostEZCount(name+".count", userkey, int(h.Count())) - stathat.PostEZValue(name+".min", userkey, float64(h.Min())) - stathat.PostEZValue(name+".max", userkey, float64(h.Max())) - stathat.PostEZValue(name+".mean", userkey, float64(h.Mean())) - stathat.PostEZValue(name+".std-dev", userkey, float64(h.StdDev())) - stathat.PostEZValue(name+".50-percentile", userkey, float64(ps[0])) - stathat.PostEZValue(name+".75-percentile", userkey, float64(ps[1])) - stathat.PostEZValue(name+".95-percentile", userkey, float64(ps[2])) - stathat.PostEZValue(name+".99-percentile", userkey, float64(ps[3])) - stathat.PostEZValue(name+".999-percentile", userkey, float64(ps[4])) - case metrics.Meter: - m := metric.Snapshot() - stathat.PostEZCount(name+".count", userkey, int(m.Count())) - stathat.PostEZValue(name+".one-minute", userkey, float64(m.Rate1())) - stathat.PostEZValue(name+".five-minute", userkey, float64(m.Rate5())) - stathat.PostEZValue(name+".fifteen-minute", userkey, float64(m.Rate15())) - stathat.PostEZValue(name+".mean", userkey, float64(m.RateMean())) - case metrics.Timer: - t := metric.Snapshot() - ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - stathat.PostEZCount(name+".count", userkey, int(t.Count())) - stathat.PostEZValue(name+".min", userkey, float64(t.Min())) - stathat.PostEZValue(name+".max", userkey, float64(t.Max())) - stathat.PostEZValue(name+".mean", userkey, float64(t.Mean())) - stathat.PostEZValue(name+".std-dev", userkey, float64(t.StdDev())) - stathat.PostEZValue(name+".50-percentile", userkey, float64(ps[0])) - stathat.PostEZValue(name+".75-percentile", userkey, float64(ps[1])) - stathat.PostEZValue(name+".95-percentile", userkey, float64(ps[2])) - stathat.PostEZValue(name+".99-percentile", userkey, float64(ps[3])) - stathat.PostEZValue(name+".999-percentile", userkey, float64(ps[4])) - stathat.PostEZValue(name+".one-minute", userkey, float64(t.Rate1())) - stathat.PostEZValue(name+".five-minute", userkey, float64(t.Rate5())) - stathat.PostEZValue(name+".fifteen-minute", userkey, float64(t.Rate15())) - stathat.PostEZValue(name+".mean-rate", userkey, float64(t.RateMean())) - } - }) - return nil -} diff --git a/vendor/github.com/samuel/go-thrift/README.md b/vendor/github.com/samuel/go-thrift/README.md deleted file mode 100644 index 3d1c01adde3..00000000000 --- a/vendor/github.com/samuel/go-thrift/README.md +++ /dev/null @@ -1,91 +0,0 @@ -Thrift Package for Go -===================== - -[![Build Status](https://travis-ci.org/samuel/go-thrift.png)](https://travis-ci.org/samuel/go-thrift) - -API Documentation: - -License -------- - -3-clause BSD. See LICENSE file. - -Overview --------- - -Thrift is an IDL that can be used to generate RPC client and server -bindings for a variety of languages. This package includes client and server -codecs, serialization, and code generation for Go. It tries to be a more -natural mapping to the language compared to other implementations. For instance, -Go already has the idea of a thrift transport in the ReadWriteCloser interfaces. - -Types ------ - -Most types map directly to the native Go types, but there are some -quirks and limitations. - -* Go supports a more limited set of types for map keys than Thrift -* To use a set define the field as []type and provide a tag of "set": - - StringSet []string `thrift:"1,set"` - -* []byte get encoded/decoded as a string because the Thrift binary type - is the same as string on the wire. - -RPC ---- - -The standard Go net/rpc package is used to provide RPC. Although, one -incompatibility is the net/rpc's use of ServiceName.Method for naming -RPC methods. To get around this the Thrift ServerCodec prefixes method -names with "Thrift". - -### Transport - -There are no specific transport "classes" as there are in most Thrift -libraries. Instead, the standard `io.ReadWriteCloser` is used as the -interface. If the value also implements the thrift.Flusher interface -then `Flush() error` is called after `protocol.WriteMessageEnd`. - -_Framed transport_ is supported by wrapping a value implementing -`io.ReadWriteCloser` with `thrift.NewFramedReadWriteCloser(value)` - -### One-way requests - -#### Client - -One-way request support needs to be enabled on the RPC codec explicitly. -The reason they're not allowed by default is because the Go RPC package -doesn't actually support one-way requests. To get around this requires -a rather janky hack of using channels to track pending requests in the -codec and faking responses. - -#### Server - -One-way requests aren't yet implemented on the server side. - -Parser & Code Generator ------------------------ - -The "parser" subdirectory contains a Thrift IDL parser, and "generator" -contains a Go code generator. It could be extended to include other -languages. - -How to use the generator: - - $ go install github.com/samuel/go-thrift/generator - - $ generator --help - Usage of parsimony: [options] inputfile outputpath - -go.binarystring=false: Always use string for binary instead of []byte - -go.json.enumnum=false: For JSON marshal enums by number instead of name - -go.pointers=false: Make all fields pointers - - $ generator cassandra.thrift $GOPATH/src/ - -TODO ----- - -* default values -* oneway requests on the server diff --git a/vendor/github.com/samuel/go-thrift/examples/scribe/thrift.go b/vendor/github.com/samuel/go-thrift/examples/scribe/thrift.go deleted file mode 100644 index 5f5dc62243c..00000000000 --- a/vendor/github.com/samuel/go-thrift/examples/scribe/thrift.go +++ /dev/null @@ -1,88 +0,0 @@ -// This file is automatically generated. Do not modify. - -package scribe - -import ( - "fmt" - "strconv" -) - -type ResultCode int32 - -var ( - ResultCodeOk = ResultCode(0) - ResultCodeTryLater = ResultCode(1) - ResultCodeByName = map[string]ResultCode{ - "ResultCode.OK": ResultCodeOk, - "ResultCode.TRY_LATER": ResultCodeTryLater, - } - ResultCodeByValue = map[ResultCode]string{ - ResultCodeOk: "ResultCode.OK", - ResultCodeTryLater: "ResultCode.TRY_LATER", - } -) - -func (e ResultCode) String() string { - name := ResultCodeByValue[e] - if name == "" { - name = fmt.Sprintf("Unknown enum value ResultCode(%d)", e) - } - return name -} - -func (e *ResultCode) UnmarshalJSON(b []byte) error { - st := string(b) - if st[0] == '"' { - *e = ResultCode(ResultCodeByName[st[1:len(st)-1]]) - return nil - } - i, err := strconv.Atoi(st) - *e = ResultCode(i) - return err -} - -type LogEntry struct { - Category string `thrift:"1,required" json:"category"` - Message string `thrift:"2,required" json:"message"` -} - -type RPCClient interface { - Call(method string, request interface{}, response interface{}) error -} - -type Scribe interface { - Log(Messages []*LogEntry) (ResultCode, error) -} - -type ScribeServer struct { - Implementation Scribe -} - -func (s *ScribeServer) Log(req *ScribeLogRequest, res *ScribeLogResponse) error { - val, err := s.Implementation.Log(req.Messages) - switch e := err.(type) { - } - res.Value = val - return err -} - -type ScribeLogRequest struct { - Messages []*LogEntry `thrift:"1,required" json:"messages"` -} - -type ScribeLogResponse struct { - Value ResultCode `thrift:"0,required" json:"value"` -} - -type ScribeClient struct { - Client RPCClient -} - -func (s *ScribeClient) Log(Messages []*LogEntry) (ResultCode, error) { - req := &ScribeLogRequest{ - Messages: Messages, - } - res := &ScribeLogResponse{} - err := s.Client.Call("Log", req, res) - return res.Value, err -} diff --git a/vendor/github.com/samuel/go-thrift/examples/scribe_client/main.go b/vendor/github.com/samuel/go-thrift/examples/scribe_client/main.go deleted file mode 100644 index 53f971ad027..00000000000 --- a/vendor/github.com/samuel/go-thrift/examples/scribe_client/main.go +++ /dev/null @@ -1,26 +0,0 @@ -package main - -import ( - "fmt" - "net" - - "github.com/samuel/go-thrift/examples/scribe" - "github.com/samuel/go-thrift/thrift" -) - -func main() { - conn, err := net.Dial("tcp", "127.0.0.1:1463") - if err != nil { - panic(err) - } - - t := thrift.NewTransport(thrift.NewFramedReadWriteCloser(conn, 0), thrift.BinaryProtocol) - client := thrift.NewClient(t, false) - scr := scribe.ScribeClient{Client: client} - res, err := scr.Log([]*scribe.LogEntry{{"category", "message"}}) - if err != nil { - panic(err) - } - - fmt.Printf("Response: %+v\n", res) -} diff --git a/vendor/github.com/samuel/go-thrift/examples/scribe_server/main.go b/vendor/github.com/samuel/go-thrift/examples/scribe_server/main.go deleted file mode 100644 index 017a11cba8b..00000000000 --- a/vendor/github.com/samuel/go-thrift/examples/scribe_server/main.go +++ /dev/null @@ -1,41 +0,0 @@ -package main - -import ( - "fmt" - "net" - "net/rpc" - - "github.com/samuel/go-thrift/examples/scribe" - "github.com/samuel/go-thrift/thrift" -) - -// implementation - -type scribeServiceImplementation int - -func (s *scribeServiceImplementation) Log(messages []*scribe.LogEntry) (scribe.ResultCode, error) { - for _, m := range messages { - fmt.Printf("MSG: %+v\n", m) - } - return scribe.ResultCodeOk, nil -} - -func main() { - scribeService := new(scribeServiceImplementation) - rpc.RegisterName("Thrift", &scribe.ScribeServer{Implementation: scribeService}) - - ln, err := net.Listen("tcp", ":1463") - if err != nil { - panic(err) - } - for { - conn, err := ln.Accept() - if err != nil { - fmt.Printf("ERROR: %+v\n", err) - continue - } - fmt.Printf("New connection %+v\n", conn) - t := thrift.NewTransport(thrift.NewFramedReadWriteCloser(conn, 0), thrift.BinaryProtocol) - go rpc.ServeCodec(thrift.NewServerCodec(t)) - } -} diff --git a/vendor/github.com/samuel/go-thrift/generator/go.go b/vendor/github.com/samuel/go-thrift/generator/go.go deleted file mode 100644 index 5f68df81ce1..00000000000 --- a/vendor/github.com/samuel/go-thrift/generator/go.go +++ /dev/null @@ -1,687 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package main - -// TODO: -// - Default arguments. Possibly don't bother... - -import ( - "bytes" - "flag" - "fmt" - "go/format" - "io" - "os" - "path/filepath" - "runtime" - "strings" - - "github.com/samuel/go-thrift/parser" -) - -var ( - flagGoBinarystring = flag.Bool("go.binarystring", false, "Always use string for binary instead of []byte") - flagGoJsonEnumnum = flag.Bool("go.json.enumnum", false, "For JSON marshal enums by number instead of name") - flagGoPointers = flag.Bool("go.pointers", false, "Make all fields pointers") -) - -var ( - goNamespaceOrder = []string{"go", "perl", "py", "cpp", "rb", "java"} -) - -type ErrUnknownType string - -func (e ErrUnknownType) Error() string { - return fmt.Sprintf("Unknown type %s", string(e)) -} - -type ErrMissingInclude string - -func (e ErrMissingInclude) Error() string { - return fmt.Sprintf("Missing include %s", string(e)) -} - -type GoPackage struct { - Path string - Name string -} - -type GoGenerator struct { - thrift *parser.Thrift - pkg string - - ThriftFiles map[string]*parser.Thrift - Packages map[string]GoPackage -} - -var goKeywords = map[string]bool{ - "break": true, - "default": true, - "func": true, - "interface": true, - "select": true, - "case": true, - "defer": true, - "go": true, - "map": true, - "struct": true, - "chan": true, - "else": true, - "goto": true, - "package": true, - "switch": true, - "const": true, - "fallthrough": true, - "if": true, - "range": true, - "type": true, - "continue": true, - "for": true, - "import": true, - "return": true, - "var": true, -} - -var basicTypes = map[string]bool{ - "byte": true, - "bool": true, - "string": true, - "i16": true, - "i32": true, - "i64": true, - "double": true, -} - -func init() { - if *flagGoBinarystring { - basicTypes["binary"] = true - } -} - -func validGoIdent(id string) string { - if goKeywords[id] { - return "_" + id - } - return id -} - -func (g *GoGenerator) error(err error) { - panic(err) -} - -func (g *GoGenerator) write(w io.Writer, f string, a ...interface{}) error { - if _, err := io.WriteString(w, fmt.Sprintf(f, a...)); err != nil { - g.error(err) - return err - } - return nil -} - -func (g *GoGenerator) formatType(pkg string, thrift *parser.Thrift, typ *parser.Type, optional bool) string { - // Follow includes - if strings.Contains(typ.Name, ".") { - // . - parts := strings.SplitN(typ.Name, ".", 2) - // Get Thrift struct for the given include - thriftFilename := thrift.Includes[parts[0]] - if thriftFilename == "" { - g.error(ErrMissingInclude(parts[0])) - } - thrift = g.ThriftFiles[thriftFilename] - if thrift == nil { - g.error(ErrMissingInclude(thriftFilename)) - } - pkg = g.Packages[thriftFilename].Name - typ = &parser.Type{ - Name: parts[1], - KeyType: typ.KeyType, - ValueType: typ.ValueType, - } - } - - ptr := "" - if *flagGoPointers || optional { - ptr = "*" - } - switch typ.Name { - case "byte", "bool", "string": - return ptr + typ.Name - case "binary": - if *flagGoBinarystring { - return ptr + "string" - } - return "[]byte" - case "i16": - return ptr + "int16" - case "i32": - return ptr + "int32" - case "i64": - return ptr + "int64" - case "double": - return ptr + "float64" - case "set": - valueType := g.formatType(pkg, thrift, typ.ValueType, false) - if valueType == "[]byte" { - valueType = "string" - } - return "map[" + valueType + "]struct{}" - case "list": - return "[]" + g.formatType(pkg, thrift, typ.ValueType, false) - case "map": - keyType := g.formatType(pkg, thrift, typ.KeyType, false) - if keyType == "[]byte" { - // TODO: Log, warn, do something! - // println("key type of []byte not supported for maps") - keyType = "string" - } - return "map[" + keyType + "]" + g.formatType(pkg, thrift, typ.ValueType, false) - } - - if t := thrift.Typedefs[typ.Name]; t != nil { - return g.formatType(pkg, thrift, t, optional) - } - if e := thrift.Enums[typ.Name]; e != nil { - name := e.Name - if pkg != g.pkg { - name = pkg + "." + name - } - return ptr + name - } - if s := thrift.Structs[typ.Name]; s != nil { - name := s.Name - if pkg != g.pkg { - name = pkg + "." + name - } - return "*" + name - } - if e := thrift.Exceptions[typ.Name]; e != nil { - name := e.Name - if pkg != g.pkg { - name = pkg + "." + name - } - return "*" + name - } - - g.error(ErrUnknownType(typ.Name)) - return "" -} - -// Follow typedefs to the actual type -func (g *GoGenerator) resolveType(typ *parser.Type) string { - if t := g.thrift.Typedefs[typ.Name]; t != nil { - return g.resolveType(t) - } - return typ.Name -} - -func (g *GoGenerator) formatField(field *parser.Field) string { - tags := "" - jsonTags := "" - if !field.Optional { - tags = ",required" - } else { - jsonTags = ",omitempty" - } - return fmt.Sprintf( - "%s %s `thrift:\"%d%s\" json:\"%s%s\"`", - camelCase(field.Name), g.formatType(g.pkg, g.thrift, field.Type, field.Optional), field.Id, tags, field.Name, jsonTags) -} - -func (g *GoGenerator) formatArguments(arguments []*parser.Field) string { - args := make([]string, len(arguments)) - for i, arg := range arguments { - args[i] = fmt.Sprintf("%s %s", validGoIdent(lowerCamelCase(arg.Name)), g.formatType(g.pkg, g.thrift, arg.Type, arg.Optional)) - } - return strings.Join(args, ", ") -} - -func (g *GoGenerator) formatReturnType(typ *parser.Type, named bool) string { - if typ == nil || typ.Name == "void" { - if named { - return "(err error)" - } - return "error" - } - if named { - return fmt.Sprintf("(ret %s, err error)", g.formatType(g.pkg, g.thrift, typ, false)) - } - return fmt.Sprintf("(%s, error)", g.formatType(g.pkg, g.thrift, typ, false)) -} - -func (g *GoGenerator) writeConstant(out io.Writer, c *parser.Constant) error { - return g.write(out, "\nconst %s = %+v\n", camelCase(c.Name), c.Value) -} - -func (g *GoGenerator) writeEnum(out io.Writer, enum *parser.Enum) error { - enumName := camelCase(enum.Name) - - g.write(out, "\ntype %s int32\n", enumName) - - valueNames := sortedKeys(enum.Values) - g.write(out, "\nconst (\n") - for _, name := range valueNames { - val := enum.Values[name] - g.write(out, "\t%s%s %s = %d\n", enumName, camelCase(name), enumName, val.Value) - } - g.write(out, ")\n") - - // begin var - g.write(out, "\nvar (\n") - - // EnumByName - g.write(out, "\t%sByName = map[string]%s{\n", enumName, enumName) - for _, name := range valueNames { - realName := enum.Name + "." + name - fullName := enumName + camelCase(name) - g.write(out, "\t\t\"%s\": %s,\n", realName, fullName) - } - g.write(out, "\t}\n") - - // EnumByValue - g.write(out, "\t%sByValue = map[%s]string{\n", enumName, enumName) - for _, name := range valueNames { - realName := enum.Name + "." + name - fullName := enumName + camelCase(name) - g.write(out, "\t\t%s: \"%s\",\n", fullName, realName) - } - g.write(out, "\t}\n") - - // end var - g.write(out, ")\n") - - g.write(out, ` -func (e %s) String() string { - name := %sByValue[e] - if name == "" { - name = fmt.Sprintf("Unknown enum value %s(%%d)", e) - } - return name -} -`, enumName, enumName, enumName) - - if !*flagGoJsonEnumnum { - g.write(out, ` -func (e %s) MarshalJSON() ([]byte, error) { - name := %sByValue[e] - if name == "" { - name = strconv.Itoa(int(e)) - } - return []byte("\""+name+"\""), nil -} -`, enumName, enumName) - } - - g.write(out, ` -func (e *%s) UnmarshalJSON(b []byte) error { - st := string(b) - if st[0] == '"' { - *e = %s(%sByName[st[1:len(st)-1]]) - return nil - } - i, err := strconv.Atoi(st) - *e = %s(i) - return err -} -`, enumName, enumName, enumName, enumName) - - return nil -} - -func (g *GoGenerator) writeStruct(out io.Writer, st *parser.Struct) error { - structName := camelCase(st.Name) - - g.write(out, "\ntype %s struct {\n", structName) - for _, field := range st.Fields { - g.write(out, "\t%s\n", g.formatField(field)) - } - return g.write(out, "}\n") -} - -func (g *GoGenerator) writeException(out io.Writer, ex *parser.Struct) error { - if err := g.writeStruct(out, ex); err != nil { - return err - } - - exName := camelCase(ex.Name) - - g.write(out, "\nfunc (e *%s) Error() string {\n", exName) - if len(ex.Fields) == 0 { - g.write(out, "\treturn \"%s{}\"\n", exName) - } else { - fieldNames := make([]string, len(ex.Fields)) - fieldVars := make([]string, len(ex.Fields)) - for i, field := range ex.Fields { - fieldNames[i] = camelCase(field.Name) + ": %+v" - fieldVars[i] = "e." + camelCase(field.Name) - } - g.write(out, "\treturn fmt.Sprintf(\"%s{%s}\", %s)\n", - exName, strings.Join(fieldNames, ", "), strings.Join(fieldVars, ", ")) - } - return g.write(out, "}\n") -} - -func (g *GoGenerator) writeService(out io.Writer, svc *parser.Service) error { - svcName := camelCase(svc.Name) - - // Service interface - - g.write(out, "\ntype %s interface {\n", svcName) - if svc.Extends != "" { - g.write(out, "\t%s\n", camelCase(svc.Extends)) - } - methodNames := sortedKeys(svc.Methods) - for _, k := range methodNames { - method := svc.Methods[k] - g.write(out, - "\t%s(%s) %s\n", - camelCase(method.Name), g.formatArguments(method.Arguments), - g.formatReturnType(method.ReturnType, false)) - } - g.write(out, "}\n") - - // Server - - if svc.Extends == "" { - g.write(out, "\ntype %sServer struct {\n\tImplementation %s\n}\n", svcName, svcName) - } else { - g.write(out, "\ntype %sServer struct {\n\t%sServer\n\tImplementation %s\n}\n", svcName, camelCase(svc.Extends), svcName) - } - - // Server method wrappers - - for _, k := range methodNames { - method := svc.Methods[k] - mName := camelCase(method.Name) - resArg := "" - if !method.Oneway { - resArg = fmt.Sprintf(", res *%s%sResponse", svcName, mName) - } - g.write(out, "\nfunc (s *%sServer) %s(req *%s%sRequest%s) error {\n", svcName, mName, svcName, mName, resArg) - args := make([]string, 0) - for _, arg := range method.Arguments { - aName := camelCase(arg.Name) - args = append(args, "req."+aName) - } - isVoid := method.ReturnType == nil || method.ReturnType.Name == "void" - val := "" - if !isVoid { - val = "val, " - } - g.write(out, "\t%serr := s.Implementation.%s(%s)\n", val, mName, strings.Join(args, ", ")) - if len(method.Exceptions) > 0 { - g.write(out, "\tswitch e := err.(type) {\n") - for _, ex := range method.Exceptions { - g.write(out, "\tcase %s:\n\t\tres.%s = e\n\t\terr = nil\n", g.formatType(g.pkg, g.thrift, ex.Type, false), camelCase(ex.Name)) - } - g.write(out, "\t}\n") - } - if !isVoid { - if !*flagGoPointers && basicTypes[g.resolveType(method.ReturnType)] { - g.write(out, "\tres.Value = &val\n") - } else { - g.write(out, "\tres.Value = val\n") - } - } - g.write(out, "\treturn err\n}\n") - } - - for _, k := range methodNames { - // Request struct - method := svc.Methods[k] - reqStructName := svcName + camelCase(method.Name) + "Request" - if err := g.writeStruct(out, &parser.Struct{Name: reqStructName, Fields: method.Arguments}); err != nil { - return err - } - - if method.Oneway { - g.write(out, "\nfunc (r *%s) Oneway() bool {\n\treturn true\n}\n", reqStructName) - } else { - // Response struct - args := make([]*parser.Field, 0, len(method.Exceptions)) - if method.ReturnType != nil && method.ReturnType.Name != "void" { - args = append(args, &parser.Field{Id: 0, Name: "value", Optional: true /*len(method.Exceptions) != 0*/, Type: method.ReturnType, Default: nil}) - } - for _, ex := range method.Exceptions { - args = append(args, ex) - } - res := &parser.Struct{Name: svcName + camelCase(method.Name) + "Response", Fields: args} - if err := g.writeStruct(out, res); err != nil { - return err - } - } - } - - if svc.Extends == "" { - g.write(out, "\ntype %sClient struct {\n\tClient RPCClient\n}\n", svcName) - } else { - g.write(out, "\ntype %sClient struct {\n\t%sClient\n}\n", svcName, camelCase(svc.Extends)) - } - - for _, k := range methodNames { - method := svc.Methods[k] - methodName := camelCase(method.Name) - returnType := "err error" - if !method.Oneway { - returnType = g.formatReturnType(method.ReturnType, true) - } - g.write(out, "\nfunc (s *%sClient) %s(%s) %s {\n", - svcName, methodName, - g.formatArguments(method.Arguments), - returnType) - - // Request - g.write(out, "\treq := &%s%sRequest{\n", svcName, methodName) - for _, arg := range method.Arguments { - g.write(out, "\t\t%s: %s,\n", camelCase(arg.Name), validGoIdent(lowerCamelCase(arg.Name))) - } - g.write(out, "\t}\n") - - // Response - if method.Oneway { - // g.write(out, "\tvar res *%s%sResponse = nil\n", svcName, methodName) - g.write(out, "\tvar res interface{} = nil\n") - } else { - g.write(out, "\tres := &%s%sResponse{}\n", svcName, methodName) - } - - // Call - g.write(out, "\terr = s.Client.Call(\"%s\", req, res)\n", method.Name) - - // Exceptions - if len(method.Exceptions) > 0 { - g.write(out, "\tif err == nil {\n\t\tswitch {\n") - for _, ex := range method.Exceptions { - exName := camelCase(ex.Name) - g.write(out, "\t\tcase res.%s != nil:\n\t\t\terr = res.%s\n", exName, exName) - } - g.write(out, "\t\t}\n\t}\n") - } - - if method.ReturnType != nil && method.ReturnType.Name != "void" { - if !*flagGoPointers && basicTypes[g.resolveType(method.ReturnType)] { - g.write(out, "\tif err == nil && res.Value != nil {\n\t ret = *res.Value\n}\n") - } else { - g.write(out, "\tif err == nil {\n\tret = res.Value\n}\n") - } - } - g.write(out, "\treturn\n") - g.write(out, "}\n") - } - - return nil -} - -func (g *GoGenerator) generateSingle(out io.Writer, thriftPath string, thrift *parser.Thrift) { - packageName := g.Packages[thriftPath].Name - g.thrift = thrift - g.pkg = packageName - - g.write(out, "// This file is automatically generated. Do not modify.\n") - g.write(out, "\npackage %s\n", packageName) - - // Imports - imports := []string{"fmt"} - if len(thrift.Enums) > 0 { - imports = append(imports, "strconv") - } - if len(thrift.Includes) > 0 { - for _, path := range thrift.Includes { - pkg := g.Packages[path].Name - if pkg != packageName { - imports = append(imports, pkg) - } - } - } - if len(imports) > 0 { - g.write(out, "\nimport (\n") - for _, in := range imports { - g.write(out, "\t\"%s\"\n", in) - } - g.write(out, ")\n") - } - - g.write(out, "\nvar _ = fmt.Printf\n") - - // - - if len(thrift.Constants) > 0 { - g.write(out, "\nconst (\n") - for _, k := range sortedKeys(thrift.Constants) { - c := thrift.Constants[k] - g.write(out, "\t%s = %+v\n", camelCase(c.Name), c.Value) - } - g.write(out, ")\n") - } - - for _, k := range sortedKeys(thrift.Enums) { - enum := thrift.Enums[k] - if err := g.writeEnum(out, enum); err != nil { - g.error(err) - } - } - - for _, k := range sortedKeys(thrift.Structs) { - st := thrift.Structs[k] - if err := g.writeStruct(out, st); err != nil { - g.error(err) - } - } - - for _, k := range sortedKeys(thrift.Exceptions) { - ex := thrift.Exceptions[k] - if err := g.writeException(out, ex); err != nil { - g.error(err) - } - } - - for _, k := range sortedKeys(thrift.Services) { - svc := thrift.Services[k] - if err := g.writeService(out, svc); err != nil { - g.error(err) - } - } -} - -func (g *GoGenerator) Generate(outPath string) (err error) { - defer func() { - if r := recover(); r != nil { - if _, ok := r.(runtime.Error); ok { - panic(r) - } - err = r.(error) - } - }() - - // Generate package namespace mapping if necessary - if g.Packages == nil { - g.Packages = make(map[string]GoPackage) - } - for path, th := range g.ThriftFiles { - if pkg, ok := g.Packages[path]; !ok || pkg.Name == "" { - pkg := GoPackage{} - for _, k := range goNamespaceOrder { - pkg.Name = th.Namespaces[k] - if pkg.Name != "" { - parts := strings.Split(pkg.Name, ".") - if len(parts) > 1 { - pkg.Path = strings.Join(parts[:len(parts)-1], "/") - pkg.Name = parts[len(parts)-1] - } - break - } - } - if pkg.Name == "" { - pkg.Name = filepath.Base(path) - } - pkg.Name = validIdentifier(strings.ToLower(pkg.Name), "_") - g.Packages[path] = pkg - } - } - - rpcPackages := map[string]string{} - - for path, th := range g.ThriftFiles { - pkg := g.Packages[path] - filename := strings.ToLower(filepath.Base(path)) - for i := len(filename) - 1; i >= 0; i-- { - if filename[i] == '.' { - filename = filename[:i] - } - } - filename += ".go" - pkgpath := filepath.Join(outPath, pkg.Path, pkg.Name) - outfile := filepath.Join(pkgpath, filename) - - if err := os.MkdirAll(pkgpath, 0755); err != nil && !os.IsExist(err) { - g.error(err) - } - - out := &bytes.Buffer{} - g.generateSingle(out, path, th) - - if len(th.Services) > 0 { - rpcPackages[pkgpath] = pkg.Name - } - - outBytes := out.Bytes() - if true { - outBytes, err = format.Source(outBytes) - if err != nil { - g.error(err) - } - } - - fi, err := os.OpenFile(outfile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - os.Exit(2) - } - if _, err := fi.Write(outBytes); err != nil { - fi.Close() - g.error(err) - } - fi.Close() - } - - for path, name := range rpcPackages { - outfile := filepath.Join(path, "rpc_stub.go") - - fi, err := os.OpenFile(outfile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - os.Exit(2) - } - _, err = fi.WriteString(fmt.Sprintf("package %s\n\ntype RPCClient interface {\n"+ - "\tCall(method string, request interface{}, response interface{}) error\n"+ - "}\n", name)) - fi.Close() - if err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - os.Exit(2) - } - } - - return nil -} diff --git a/vendor/github.com/samuel/go-thrift/generator/main.go b/vendor/github.com/samuel/go-thrift/generator/main.go deleted file mode 100644 index 90cee96bad7..00000000000 --- a/vendor/github.com/samuel/go-thrift/generator/main.go +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package main - -import ( - "flag" - "fmt" - "os" - "reflect" - "regexp" - "sort" - "strings" - - "github.com/samuel/go-thrift/parser" - "github.com/samuel/go-thrift/thrift" -) - -func camelCase(st string) string { - if strings.ToUpper(st) == st { - st = strings.ToLower(st) - } - return thrift.CamelCase(st) -} - -func lowerCamelCase(st string) string { - if len(st) <= 1 { - return strings.ToLower(st) - } - st = thrift.CamelCase(st) - return strings.ToLower(st[:1]) + st[1:] -} - -// Converts a string to a valid Golang identifier, as defined in -// http://golang.org/ref/spec#identifier -// by converting invalid characters to the value of replace. -// If the first character is a Unicode digit, then replace is -// prepended to the string. -func validIdentifier(st string, replace string) string { - var ( - invalid_rune = regexp.MustCompile("[^\\pL\\pN_]") - invalid_start = regexp.MustCompile("^\\pN") - out string - ) - out = invalid_rune.ReplaceAllString(st, "_") - if invalid_start.MatchString(out) { - out = fmt.Sprintf("%v%v", replace, out) - } - return out -} - -// Given a map with string keys, return a sorted list of keys. -// If m is not a map or doesn't have string keys then return nil. -func sortedKeys(m interface{}) []string { - value := reflect.ValueOf(m) - if value.Kind() != reflect.Map || value.Type().Key().Kind() != reflect.String { - return nil - } - - valueKeys := value.MapKeys() - keys := make([]string, len(valueKeys)) - for i, k := range valueKeys { - keys[i] = k.String() - } - sort.Strings(keys) - return keys -} - -func main() { - flag.Parse() - - if flag.NArg() < 2 { - fmt.Fprintf(os.Stderr, "Usage of %s: [options] inputfile outputpath\n", os.Args[0]) - flag.PrintDefaults() - os.Exit(1) - } - - filename := flag.Arg(0) - outpath := flag.Arg(1) - - // out := os.Stdout - // if outfilename != "-" { - // var err error - // out, err = os.OpenFile(outfilename, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0644) - // if err != nil { - // fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - // os.Exit(2) - // } - // } - - p := &parser.Parser{} - parsedThrift, _, err := p.ParseFile(filename) - if e, ok := err.(*parser.ErrSyntaxError); ok { - fmt.Printf("%s\n", e.Left) - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - os.Exit(2) - } else if err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - os.Exit(2) - } - - // fp := strings.Split(filename, "/") - // name := strings.Split(fp[len(fp)-1], ".")[0] - - generator := &GoGenerator{ - ThriftFiles: parsedThrift, - } - err = generator.Generate(outpath) - if err != nil { - fmt.Fprintf(os.Stderr, "%s\n", err.Error()) - os.Exit(2) - } - - // if outfilename != "-" { - // out.Close() - // } -} diff --git a/vendor/github.com/samuel/go-thrift/testfiles/Hbase.thrift b/vendor/github.com/samuel/go-thrift/testfiles/Hbase.thrift deleted file mode 100644 index 2f1f4bc11a9..00000000000 --- a/vendor/github.com/samuel/go-thrift/testfiles/Hbase.thrift +++ /dev/null @@ -1,925 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ - -// ---------------------------------------------------------------- -// Hbase.thrift -// -// This is a Thrift interface definition file for the Hbase service. -// Target language libraries for C++, Java, Ruby, PHP, (and more) are -// generated by running this file through the Thrift compiler with the -// appropriate flags. The Thrift compiler binary and runtime -// libraries for various languages are available -// from the Apache Incubator (http://incubator.apache.org/thrift/) -// -// See the package.html file for information on the version of Thrift -// used to generate the *.java files checked into the Hbase project. -// ---------------------------------------------------------------- - -namespace java org.apache.hadoop.hbase.thrift.generated -namespace cpp apache.hadoop.hbase.thrift -namespace rb Apache.Hadoop.Hbase.Thrift -namespace py hbase -namespace perl Hbase -namespace php Hbase -// -// Types -// - -// NOTE: all variables with the Text type are assumed to be correctly -// formatted UTF-8 strings. This is a programming language and locale -// dependent property that the client application is repsonsible for -// maintaining. If strings with an invalid encoding are sent, an -// IOError will be thrown. - -typedef binary Text -typedef binary Bytes -typedef i32 ScannerID - -/** - * TCell - Used to transport a cell value (byte[]) and the timestamp it was - * stored with together as a result for get and getRow methods. This promotes - * the timestamp of a cell to a first-class value, making it easy to take - * note of temporal data. Cell is used all the way from HStore up to HTable. - */ -struct TCell{ - 1:Bytes value, - 2:i64 timestamp -} - -/** - * An HColumnDescriptor contains information about a column family - * such as the number of versions, compression settings, etc. It is - * used as input when creating a table or adding a column. - */ -struct ColumnDescriptor { - 1:Text name, - 2:i32 maxVersions = 3, - 3:string compression = "NONE", - 4:bool inMemory = 0, - 5:string bloomFilterType = "NONE", - 6:i32 bloomFilterVectorSize = 0, - 7:i32 bloomFilterNbHashes = 0, - 8:bool blockCacheEnabled = 0, - 9:i32 timeToLive = -1 -} - -/** - * A TRegionInfo contains information about an HTable region. - */ -struct TRegionInfo { - 1:Text startKey, - 2:Text endKey, - 3:i64 id, - 4:Text name, - 5:byte version, - 6:Text serverName, - 7:i32 port -} - -/** - * A Mutation object is used to either update or delete a column-value. - */ -struct Mutation { - 1:bool isDelete = 0, - 2:Text column, - 3:Text value, - 4:bool writeToWAL = 1 -} - - -/** - * A BatchMutation object is used to apply a number of Mutations to a single row. - */ -struct BatchMutation { - 1:Text row, - 2:list mutations -} - -/** - * For increments that are not incrementColumnValue - * equivalents. - */ -struct TIncrement { - 1:Text table, - 2:Text row, - 3:Text column, - 4:i64 ammount -} - -/** - * Holds column name and the cell. - */ -struct TColumn { - 1:Text columnName, - 2:TCell cell - } - -/** - * Holds row name and then a map of columns to cells. - */ -struct TRowResult { - 1:Text row, - 2:optional map columns, - 3:optional list sortedColumns -} - -/** - * A Scan object is used to specify scanner parameters when opening a scanner. - */ -struct TScan { - 1:optional Text startRow, - 2:optional Text stopRow, - 3:optional i64 timestamp, - 4:optional list columns, - 5:optional i32 caching, - 6:optional Text filterString, - 7:optional i32 batchSize, - 8:optional bool sortColumns -} - -// -// Exceptions -// -/** - * An IOError exception signals that an error occurred communicating - * to the Hbase master or an Hbase region server. Also used to return - * more general Hbase error conditions. - */ -exception IOError { - 1:string message -} - -/** - * An IllegalArgument exception indicates an illegal or invalid - * argument was passed into a procedure. - */ -exception IllegalArgument { - 1:string message -} - -/** - * An AlreadyExists exceptions signals that a table with the specified - * name already exists - */ -exception AlreadyExists { - 1:string message -} - -// -// Service -// - -service Hbase { - /** - * Brings a table on-line (enables it) - */ - void enableTable( - /** name of the table */ - 1:Bytes tableName - ) throws (1:IOError io) - - /** - * Disables a table (takes it off-line) If it is being served, the master - * will tell the servers to stop serving it. - */ - void disableTable( - /** name of the table */ - 1:Bytes tableName - ) throws (1:IOError io) - - /** - * @return true if table is on-line - */ - bool isTableEnabled( - /** name of the table to check */ - 1:Bytes tableName - ) throws (1:IOError io) - - void compact(1:Bytes tableNameOrRegionName) - throws (1:IOError io) - - void majorCompact(1:Bytes tableNameOrRegionName) - throws (1:IOError io) - - /** - * List all the userspace tables. - * - * @return returns a list of names - */ - list getTableNames() - throws (1:IOError io) - - /** - * List all the column families assoicated with a table. - * - * @return list of column family descriptors - */ - map getColumnDescriptors ( - /** table name */ - 1:Text tableName - ) throws (1:IOError io) - - /** - * List the regions associated with a table. - * - * @return list of region descriptors - */ - list getTableRegions( - /** table name */ - 1:Text tableName) - throws (1:IOError io) - - /** - * Create a table with the specified column families. The name - * field for each ColumnDescriptor must be set and must end in a - * colon (:). All other fields are optional and will get default - * values if not explicitly specified. - * - * @throws IllegalArgument if an input parameter is invalid - * - * @throws AlreadyExists if the table name already exists - */ - void createTable( - /** name of table to create */ - 1:Text tableName, - - /** list of column family descriptors */ - 2:list columnFamilies - ) throws (1:IOError io, 2:IllegalArgument ia, 3:AlreadyExists exist) - - /** - * Deletes a table - * - * @throws IOError if table doesn't exist on server or there was some other - * problem - */ - void deleteTable( - /** name of table to delete */ - 1:Text tableName - ) throws (1:IOError io) - - /** - * Get a single TCell for the specified table, row, and column at the - * latest timestamp. Returns an empty list if no such value exists. - * - * @return value for specified row/column - */ - list get( - /** name of table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** column name */ - 3:Text column, - - /** Get attributes */ - 4:map attributes - ) throws (1:IOError io) - - /** - * Get the specified number of versions for the specified table, - * row, and column. - * - * @return list of cells for specified row/column - */ - list getVer( - /** name of table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** column name */ - 3:Text column, - - /** number of versions to retrieve */ - 4:i32 numVersions, - - /** Get attributes */ - 5:map attributes - ) throws (1:IOError io) - - /** - * Get the specified number of versions for the specified table, - * row, and column. Only versions less than or equal to the specified - * timestamp will be returned. - * - * @return list of cells for specified row/column - */ - list getVerTs( - /** name of table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** column name */ - 3:Text column, - - /** timestamp */ - 4:i64 timestamp, - - /** number of versions to retrieve */ - 5:i32 numVersions, - - /** Get attributes */ - 6:map attributes - ) throws (1:IOError io) - - /** - * Get all the data for the specified table and row at the latest - * timestamp. Returns an empty list if the row does not exist. - * - * @return TRowResult containing the row and map of columns to TCells - */ - list getRow( - /** name of table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** Get attributes */ - 3:map attributes - ) throws (1:IOError io) - - /** - * Get the specified columns for the specified table and row at the latest - * timestamp. Returns an empty list if the row does not exist. - * - * @return TRowResult containing the row and map of columns to TCells - */ - list getRowWithColumns( - /** name of table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** List of columns to return, null for all columns */ - 3:list columns, - - /** Get attributes */ - 4:map attributes - ) throws (1:IOError io) - - /** - * Get all the data for the specified table and row at the specified - * timestamp. Returns an empty list if the row does not exist. - * - * @return TRowResult containing the row and map of columns to TCells - */ - list getRowTs( - /** name of the table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** timestamp */ - 3:i64 timestamp, - - /** Get attributes */ - 4:map attributes - ) throws (1:IOError io) - - /** - * Get the specified columns for the specified table and row at the specified - * timestamp. Returns an empty list if the row does not exist. - * - * @return TRowResult containing the row and map of columns to TCells - */ - list getRowWithColumnsTs( - /** name of table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** List of columns to return, null for all columns */ - 3:list columns, - 4:i64 timestamp, - - /** Get attributes */ - 5:map attributes - ) throws (1:IOError io) - - /** - * Get all the data for the specified table and rows at the latest - * timestamp. Returns an empty list if no rows exist. - * - * @return TRowResult containing the rows and map of columns to TCells - */ - list getRows( - /** name of table */ - 1:Text tableName, - - /** row keys */ - 2:list rows - - /** Get attributes */ - 3:map attributes - ) throws (1:IOError io) - - /** - * Get the specified columns for the specified table and rows at the latest - * timestamp. Returns an empty list if no rows exist. - * - * @return TRowResult containing the rows and map of columns to TCells - */ - list getRowsWithColumns( - /** name of table */ - 1:Text tableName, - - /** row keys */ - 2:list rows, - - /** List of columns to return, null for all columns */ - 3:list columns, - - /** Get attributes */ - 4:map attributes - ) throws (1:IOError io) - - /** - * Get all the data for the specified table and rows at the specified - * timestamp. Returns an empty list if no rows exist. - * - * @return TRowResult containing the rows and map of columns to TCells - */ - list getRowsTs( - /** name of the table */ - 1:Text tableName, - - /** row keys */ - 2:list rows - - /** timestamp */ - 3:i64 timestamp, - - /** Get attributes */ - 4:map attributes - ) throws (1:IOError io) - - /** - * Get the specified columns for the specified table and rows at the specified - * timestamp. Returns an empty list if no rows exist. - * - * @return TRowResult containing the rows and map of columns to TCells - */ - list getRowsWithColumnsTs( - /** name of table */ - 1:Text tableName, - - /** row keys */ - 2:list rows - - /** List of columns to return, null for all columns */ - 3:list columns, - 4:i64 timestamp, - - /** Get attributes */ - 5:map attributes - ) throws (1:IOError io) - - /** - * Apply a series of mutations (updates/deletes) to a row in a - * single transaction. If an exception is thrown, then the - * transaction is aborted. Default current timestamp is used, and - * all entries will have an identical timestamp. - */ - void mutateRow( - /** name of table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** list of mutation commands */ - 3:list mutations, - - /** Mutation attributes */ - 4:map attributes - ) throws (1:IOError io, 2:IllegalArgument ia) - - /** - * Apply a series of mutations (updates/deletes) to a row in a - * single transaction. If an exception is thrown, then the - * transaction is aborted. The specified timestamp is used, and - * all entries will have an identical timestamp. - */ - void mutateRowTs( - /** name of table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** list of mutation commands */ - 3:list mutations, - - /** timestamp */ - 4:i64 timestamp, - - /** Mutation attributes */ - 5:map attributes - ) throws (1:IOError io, 2:IllegalArgument ia) - - /** - * Apply a series of batches (each a series of mutations on a single row) - * in a single transaction. If an exception is thrown, then the - * transaction is aborted. Default current timestamp is used, and - * all entries will have an identical timestamp. - */ - void mutateRows( - /** name of table */ - 1:Text tableName, - - /** list of row batches */ - 2:list rowBatches, - - /** Mutation attributes */ - 3:map attributes - ) throws (1:IOError io, 2:IllegalArgument ia) - - /** - * Apply a series of batches (each a series of mutations on a single row) - * in a single transaction. If an exception is thrown, then the - * transaction is aborted. The specified timestamp is used, and - * all entries will have an identical timestamp. - */ - void mutateRowsTs( - /** name of table */ - 1:Text tableName, - - /** list of row batches */ - 2:list rowBatches, - - /** timestamp */ - 3:i64 timestamp, - - /** Mutation attributes */ - 4:map attributes - ) throws (1:IOError io, 2:IllegalArgument ia) - - /** - * Atomically increment the column value specified. Returns the next value post increment. - */ - i64 atomicIncrement( - /** name of table */ - 1:Text tableName, - - /** row to increment */ - 2:Text row, - - /** name of column */ - 3:Text column, - - /** amount to increment by */ - 4:i64 value - ) throws (1:IOError io, 2:IllegalArgument ia) - - /** - * Delete all cells that match the passed row and column. - */ - void deleteAll( - /** name of table */ - 1:Text tableName, - - /** Row to update */ - 2:Text row, - - /** name of column whose value is to be deleted */ - 3:Text column, - - /** Delete attributes */ - 4:map attributes - ) throws (1:IOError io) - - /** - * Delete all cells that match the passed row and column and whose - * timestamp is equal-to or older than the passed timestamp. - */ - void deleteAllTs( - /** name of table */ - 1:Text tableName, - - /** Row to update */ - 2:Text row, - - /** name of column whose value is to be deleted */ - 3:Text column, - - /** timestamp */ - 4:i64 timestamp, - - /** Delete attributes */ - 5:map attributes - ) throws (1:IOError io) - - /** - * Completely delete the row's cells. - */ - void deleteAllRow( - /** name of table */ - 1:Text tableName, - - /** key of the row to be completely deleted. */ - 2:Text row, - - /** Delete attributes */ - 3:map attributes - ) throws (1:IOError io) - - /** - * Increment a cell by the ammount. - * Increments can be applied async if hbase.regionserver.thrift.coalesceIncrement is set to true. - * False is the default. Turn to true if you need the extra performance and can accept some - * data loss if a thrift server dies with increments still in the queue. - */ - void increment( - /** The single increment to apply */ - 1:TIncrement increment - ) throws (1:IOError io) - - - void incrementRows( - /** The list of increments */ - 1:list increments - ) throws (1:IOError io) - - /** - * Completely delete the row's cells marked with a timestamp - * equal-to or older than the passed timestamp. - */ - void deleteAllRowTs( - /** name of table */ - 1:Text tableName, - - /** key of the row to be completely deleted. */ - 2:Text row, - - /** timestamp */ - 3:i64 timestamp, - - /** Delete attributes */ - 4:map attributes - ) throws (1:IOError io) - - /** - * Get a scanner on the current table, using the Scan instance - * for the scan parameters. - */ - ScannerID scannerOpenWithScan( - /** name of table */ - 1:Text tableName, - - /** Scan instance */ - 2:TScan scan, - - /** Scan attributes */ - 3:map attributes - ) throws (1:IOError io) - - /** - * Get a scanner on the current table starting at the specified row and - * ending at the last row in the table. Return the specified columns. - * - * @return scanner id to be used with other scanner procedures - */ - ScannerID scannerOpen( - /** name of table */ - 1:Text tableName, - - /** - * Starting row in table to scan. - * Send "" (empty string) to start at the first row. - */ - 2:Text startRow, - - /** - * columns to scan. If column name is a column family, all - * columns of the specified column family are returned. It's also possible - * to pass a regex in the column qualifier. - */ - 3:list columns, - - /** Scan attributes */ - 4:map attributes - ) throws (1:IOError io) - - /** - * Get a scanner on the current table starting and stopping at the - * specified rows. ending at the last row in the table. Return the - * specified columns. - * - * @return scanner id to be used with other scanner procedures - */ - ScannerID scannerOpenWithStop( - /** name of table */ - 1:Text tableName, - - /** - * Starting row in table to scan. - * Send "" (empty string) to start at the first row. - */ - 2:Text startRow, - - /** - * row to stop scanning on. This row is *not* included in the - * scanner's results - */ - 3:Text stopRow, - - /** - * columns to scan. If column name is a column family, all - * columns of the specified column family are returned. It's also possible - * to pass a regex in the column qualifier. - */ - 4:list columns, - - /** Scan attributes */ - 5:map attributes - ) throws (1:IOError io) - - /** - * Open a scanner for a given prefix. That is all rows will have the specified - * prefix. No other rows will be returned. - * - * @return scanner id to use with other scanner calls - */ - ScannerID scannerOpenWithPrefix( - /** name of table */ - 1:Text tableName, - - /** the prefix (and thus start row) of the keys you want */ - 2:Text startAndPrefix, - - /** the columns you want returned */ - 3:list columns, - - /** Scan attributes */ - 4:map attributes - ) throws (1:IOError io) - - /** - * Get a scanner on the current table starting at the specified row and - * ending at the last row in the table. Return the specified columns. - * Only values with the specified timestamp are returned. - * - * @return scanner id to be used with other scanner procedures - */ - ScannerID scannerOpenTs( - /** name of table */ - 1:Text tableName, - - /** - * Starting row in table to scan. - * Send "" (empty string) to start at the first row. - */ - 2:Text startRow, - - /** - * columns to scan. If column name is a column family, all - * columns of the specified column family are returned. It's also possible - * to pass a regex in the column qualifier. - */ - 3:list columns, - - /** timestamp */ - 4:i64 timestamp, - - /** Scan attributes */ - 5:map attributes - ) throws (1:IOError io) - - /** - * Get a scanner on the current table starting and stopping at the - * specified rows. ending at the last row in the table. Return the - * specified columns. Only values with the specified timestamp are - * returned. - * - * @return scanner id to be used with other scanner procedures - */ - ScannerID scannerOpenWithStopTs( - /** name of table */ - 1:Text tableName, - - /** - * Starting row in table to scan. - * Send "" (empty string) to start at the first row. - */ - 2:Text startRow, - - /** - * row to stop scanning on. This row is *not* included in the - * scanner's results - */ - 3:Text stopRow, - - /** - * columns to scan. If column name is a column family, all - * columns of the specified column family are returned. It's also possible - * to pass a regex in the column qualifier. - */ - 4:list columns, - - /** timestamp */ - 5:i64 timestamp, - - /** Scan attributes */ - 6:map attributes - ) throws (1:IOError io) - - /** - * Returns the scanner's current row value and advances to the next - * row in the table. When there are no more rows in the table, or a key - * greater-than-or-equal-to the scanner's specified stopRow is reached, - * an empty list is returned. - * - * @return a TRowResult containing the current row and a map of the columns to TCells. - * - * @throws IllegalArgument if ScannerID is invalid - * - * @throws NotFound when the scanner reaches the end - */ - list scannerGet( - /** id of a scanner returned by scannerOpen */ - 1:ScannerID id - ) throws (1:IOError io, 2:IllegalArgument ia) - - /** - * Returns, starting at the scanner's current row value nbRows worth of - * rows and advances to the next row in the table. When there are no more - * rows in the table, or a key greater-than-or-equal-to the scanner's - * specified stopRow is reached, an empty list is returned. - * - * @return a TRowResult containing the current row and a map of the columns to TCells. - * - * @throws IllegalArgument if ScannerID is invalid - * - * @throws NotFound when the scanner reaches the end - */ - list scannerGetList( - /** id of a scanner returned by scannerOpen */ - 1:ScannerID id, - - /** number of results to return */ - 2:i32 nbRows - ) throws (1:IOError io, 2:IllegalArgument ia) - - /** - * Closes the server-state associated with an open scanner. - * - * @throws IllegalArgument if ScannerID is invalid - */ - void scannerClose( - /** id of a scanner returned by scannerOpen */ - 1:ScannerID id - ) throws (1:IOError io, 2:IllegalArgument ia) - - /** - * Get the row just before the specified one. - * - * @return value for specified row/column - */ - list getRowOrBefore( - /** name of table */ - 1:Text tableName, - - /** row key */ - 2:Text row, - - /** column name */ - 3:Text family - ) throws (1:IOError io) - - /** - * Get the regininfo for the specified row. It scans - * the metatable to find region's start and end keys. - * - * @return value for specified row/column - */ - TRegionInfo getRegionInfo( - /** row key */ - 1:Text row, - - ) throws (1:IOError io) -} diff --git a/vendor/github.com/samuel/go-thrift/testfiles/cassandra.thrift b/vendor/github.com/samuel/go-thrift/testfiles/cassandra.thrift deleted file mode 100644 index 0833fdd81ed..00000000000 --- a/vendor/github.com/samuel/go-thrift/testfiles/cassandra.thrift +++ /dev/null @@ -1,886 +0,0 @@ -#!/usr/local/bin/thrift --java --php --py -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you 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. - -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# *** PLEASE REMEMBER TO EDIT THE VERSION CONSTANT WHEN MAKING CHANGES *** -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# -# Interface definition for Cassandra Service -# - -namespace java org.apache.cassandra.thrift -namespace cpp org.apache.cassandra -namespace csharp Apache.Cassandra -namespace py cassandra -namespace php cassandra -namespace perl Cassandra - -# Thrift.rb has a bug where top-level modules that include modules -# with the same name are not properly referenced, so we can't do -# Cassandra::Cassandra::Client. -namespace rb CassandraThrift - -# The API version (NOT the product version), composed as a dot delimited -# string with major, minor, and patch level components. -# -# - Major: Incremented for backward incompatible changes. An example would -# be changes to the number or disposition of method arguments. -# - Minor: Incremented for backward compatible changes. An example would -# be the addition of a new (optional) method. -# - Patch: Incremented for bug fixes. The patch level should be increased -# for every edit that doesn't result in a change to major/minor. -# -# See the Semantic Versioning Specification (SemVer) http://semver.org. -# -# Note that this backwards compatibility is from the perspective of the server, -# not the client. Cassandra should always be able to talk to older client -# software, but client software may not be able to talk to older Cassandra -# instances. -# -# An effort should be made not to break forward-client-compatibility either -# (e.g. one should avoid removing obsolete fields from the IDL), but no -# guarantees in this respect are made by the Cassandra project. -const string VERSION = "19.38.0" - - -# -# data structures -# - -/** Basic unit of data within a ColumnFamily. - * @param name, the name by which this column is set and retrieved. Maximum 64KB long. - * @param value. The data associated with the name. Maximum 2GB long, but in practice you should limit it to small numbers of MB (since Thrift must read the full value into memory to operate on it). - * @param timestamp. The timestamp is used for conflict detection/resolution when two columns with same name need to be compared. - * @param ttl. An optional, positive delay (in seconds) after which the column will be automatically deleted. - */ -struct Column { - 1: required binary name, - 2: optional binary value, - 3: optional i64 timestamp, - 4: optional i32 ttl, -} - -/** A named list of columns. - * @param name. see Column.name. - * @param columns. A collection of standard Columns. The columns within a super column are defined in an adhoc manner. - * Columns within a super column do not have to have matching structures (similarly named child columns). - */ -struct SuperColumn { - 1: required binary name, - 2: required list columns, -} - -struct CounterColumn { - 1: required binary name, - 2: required i64 value -} - -struct CounterSuperColumn { - 1: required binary name, - 2: required list columns -} - -/** - Methods for fetching rows/records from Cassandra will return either a single instance of ColumnOrSuperColumn or a list - of ColumnOrSuperColumns (get_slice()). If you're looking up a SuperColumn (or list of SuperColumns) then the resulting - instances of ColumnOrSuperColumn will have the requested SuperColumn in the attribute super_column. For queries resulting - in Columns, those values will be in the attribute column. This change was made between 0.3 and 0.4 to standardize on - single query methods that may return either a SuperColumn or Column. - - If the query was on a counter column family, you will either get a counter_column (instead of a column) or a - counter_super_column (instead of a super_column) - - @param column. The Column returned by get() or get_slice(). - @param super_column. The SuperColumn returned by get() or get_slice(). - @param counter_column. The Counterolumn returned by get() or get_slice(). - @param counter_super_column. The CounterSuperColumn returned by get() or get_slice(). - */ -struct ColumnOrSuperColumn { - 1: optional Column column, - 2: optional SuperColumn super_column, - 3: optional CounterColumn counter_column, - 4: optional CounterSuperColumn counter_super_column -} - - -# -# Exceptions -# (note that internal server errors will raise a TApplicationException, courtesy of Thrift) -# - -/** A specific column was requested that does not exist. */ -exception NotFoundException { -} - -/** Invalid request could mean keyspace or column family does not exist, required parameters are missing, or a parameter is malformed. - why contains an associated error message. -*/ -exception InvalidRequestException { - 1: required string why -} - -/** Not all the replicas required could be created and/or read. */ -exception UnavailableException { -} - -/** RPC timeout was exceeded. either a node failed mid-operation, or load was too high, or the requested op was too large. */ -exception TimedOutException { - /** - * if a write operation was acknowledged by some replicas but not by enough to - * satisfy the required ConsistencyLevel, the number of successful - * replies will be given here. In case of atomic_batch_mutate method this field - * will be set to -1 if the batch was written to the batchlog and to 0 if it wasn't. - */ - 1: optional i32 acknowledged_by - - /** - * in case of atomic_batch_mutate method this field tells if the batch - * was written to the batchlog. - */ - 2: optional bool acknowledged_by_batchlog - - /** - * for the CAS method, this field tells if we timed out during the paxos - * protocol, as opposed to during the commit of our update - */ - 3: optional bool paxos_in_progress -} - -/** invalid authentication request (invalid keyspace, user does not exist, or credentials invalid) */ -exception AuthenticationException { - 1: required string why -} - -/** invalid authorization request (user does not have access to keyspace) */ -exception AuthorizationException { - 1: required string why -} - -/** - * NOTE: This up outdated exception left for backward compatibility reasons, - * no actual schema agreement validation is done starting from Cassandra 1.2 - * - * schemas are not in agreement across all nodes - */ -exception SchemaDisagreementException { -} - - -# -# service api -# -/** - * The ConsistencyLevel is an enum that controls both read and write - * behavior based on the ReplicationFactor of the keyspace. The - * different consistency levels have different meanings, depending on - * if you're doing a write or read operation. - * - * If W + R > ReplicationFactor, where W is the number of nodes to - * block for on write, and R the number to block for on reads, you - * will have strongly consistent behavior; that is, readers will - * always see the most recent write. Of these, the most interesting is - * to do QUORUM reads and writes, which gives you consistency while - * still allowing availability in the face of node failures up to half - * of . Of course if latency is more important than - * consistency then you can use lower values for either or both. - * - * Some ConsistencyLevels (ONE, TWO, THREE) refer to a specific number - * of replicas rather than a logical concept that adjusts - * automatically with the replication factor. Of these, only ONE is - * commonly used; TWO and (even more rarely) THREE are only useful - * when you care more about guaranteeing a certain level of - * durability, than consistency. - * - * Write consistency levels make the following guarantees before reporting success to the client: - * ANY Ensure that the write has been written once somewhere, including possibly being hinted in a non-target node. - * ONE Ensure that the write has been written to at least 1 node's commit log and memory table - * TWO Ensure that the write has been written to at least 2 node's commit log and memory table - * THREE Ensure that the write has been written to at least 3 node's commit log and memory table - * QUORUM Ensure that the write has been written to / 2 + 1 nodes - * LOCAL_ONE Ensure that the write has been written to 1 node within the local datacenter (requires NetworkTopologyStrategy) - * LOCAL_QUORUM Ensure that the write has been written to / 2 + 1 nodes, within the local datacenter (requires NetworkTopologyStrategy) - * EACH_QUORUM Ensure that the write has been written to / 2 + 1 nodes in each datacenter (requires NetworkTopologyStrategy) - * ALL Ensure that the write is written to <ReplicationFactor> nodes before responding to the client. - * - * Read consistency levels make the following guarantees before returning successful results to the client: - * ANY Not supported. You probably want ONE instead. - * ONE Returns the record obtained from a single replica. - * TWO Returns the record with the most recent timestamp once two replicas have replied. - * THREE Returns the record with the most recent timestamp once three replicas have replied. - * QUORUM Returns the record with the most recent timestamp once a majority of replicas have replied. - * LOCAL_ONE Returns the record with the most recent timestamp once a single replica within the local datacenter have replied. - * LOCAL_QUORUM Returns the record with the most recent timestamp once a majority of replicas within the local datacenter have replied. - * EACH_QUORUM Returns the record with the most recent timestamp once a majority of replicas within each datacenter have replied. - * ALL Returns the record with the most recent timestamp once all replicas have replied (implies no replica may be down).. -*/ -enum ConsistencyLevel { - ONE = 1, - QUORUM = 2, - LOCAL_QUORUM = 3, - EACH_QUORUM = 4, - ALL = 5, - ANY = 6, - TWO = 7, - THREE = 8, - SERIAL = 9, - LOCAL_SERIAL = 10, - LOCAL_ONE = 11, -} - -/** - ColumnParent is used when selecting groups of columns from the same ColumnFamily. In directory structure terms, imagine - ColumnParent as ColumnPath + '/../'. - - See also ColumnPath - */ -struct ColumnParent { - 3: required string column_family, - 4: optional binary super_column, -} - -/** The ColumnPath is the path to a single column in Cassandra. It might make sense to think of ColumnPath and - * ColumnParent in terms of a directory structure. - * - * ColumnPath is used to looking up a single column. - * - * @param column_family. The name of the CF of the column being looked up. - * @param super_column. The super column name. - * @param column. The column name. - */ -struct ColumnPath { - 3: required string column_family, - 4: optional binary super_column, - 5: optional binary column, -} - -/** - A slice range is a structure that stores basic range, ordering and limit information for a query that will return - multiple columns. It could be thought of as Cassandra's version of LIMIT and ORDER BY - - @param start. The column name to start the slice with. This attribute is not required, though there is no default value, - and can be safely set to '', i.e., an empty byte array, to start with the first column name. Otherwise, it - must a valid value under the rules of the Comparator defined for the given ColumnFamily. - @param finish. The column name to stop the slice at. This attribute is not required, though there is no default value, - and can be safely set to an empty byte array to not stop until 'count' results are seen. Otherwise, it - must also be a valid value to the ColumnFamily Comparator. - @param reversed. Whether the results should be ordered in reversed order. Similar to ORDER BY blah DESC in SQL. - @param count. How many columns to return. Similar to LIMIT in SQL. May be arbitrarily large, but Thrift will - materialize the whole result into memory before returning it to the client, so be aware that you may - be better served by iterating through slices by passing the last value of one call in as the 'start' - of the next instead of increasing 'count' arbitrarily large. - */ -struct SliceRange { - 1: required binary start, - 2: required binary finish, - 3: required bool reversed=0, - 4: required i32 count=100, -} - -/** - A SlicePredicate is similar to a mathematic predicate (see http://en.wikipedia.org/wiki/Predicate_(mathematical_logic)), - which is described as "a property that the elements of a set have in common." - - SlicePredicate's in Cassandra are described with either a list of column_names or a SliceRange. If column_names is - specified, slice_range is ignored. - - @param column_name. A list of column names to retrieve. This can be used similar to Memcached's "multi-get" feature - to fetch N known column names. For instance, if you know you wish to fetch columns 'Joe', 'Jack', - and 'Jim' you can pass those column names as a list to fetch all three at once. - @param slice_range. A SliceRange describing how to range, order, and/or limit the slice. - */ -struct SlicePredicate { - 1: optional list column_names, - 2: optional SliceRange slice_range, -} - -enum IndexOperator { - EQ, - GTE, - GT, - LTE, - LT -} - -struct IndexExpression { - 1: required binary column_name, - 2: required IndexOperator op, - 3: required binary value, -} - -/** - * @deprecated use a KeyRange with row_filter in get_range_slices instead - */ -struct IndexClause { - 1: required list expressions, - 2: required binary start_key, - 3: required i32 count=100, -} - - -/** -The semantics of start keys and tokens are slightly different. -Keys are start-inclusive; tokens are start-exclusive. Token -ranges may also wrap -- that is, the end token may be less -than the start one. Thus, a range from keyX to keyX is a -one-element range, but a range from tokenY to tokenY is the -full ring. -*/ -struct KeyRange { - 1: optional binary start_key, - 2: optional binary end_key, - 3: optional string start_token, - 4: optional string end_token, - 6: optional list row_filter, - 5: required i32 count=100 -} - -/** - A KeySlice is key followed by the data it maps to. A collection of KeySlice is returned by the get_range_slice operation. - - @param key. a row key - @param columns. List of data represented by the key. Typically, the list is pared down to only the columns specified by - a SlicePredicate. - */ -struct KeySlice { - 1: required binary key, - 2: required list columns, -} - -struct KeyCount { - 1: required binary key, - 2: required i32 count -} - -/** - * Note that the timestamp is only optional in case of counter deletion. - */ -struct Deletion { - 1: optional i64 timestamp, - 2: optional binary super_column, - 3: optional SlicePredicate predicate, -} - -/** - A Mutation is either an insert (represented by filling column_or_supercolumn) or a deletion (represented by filling the deletion attribute). - @param column_or_supercolumn. An insert to a column or supercolumn (possibly counter column or supercolumn) - @param deletion. A deletion of a column or supercolumn -*/ -struct Mutation { - 1: optional ColumnOrSuperColumn column_or_supercolumn, - 2: optional Deletion deletion, -} - -struct EndpointDetails { - 1: string host, - 2: string datacenter, - 3: optional string rack -} - -struct CASResult { - 1: required bool success, - 2: optional list current_values, -} - -/** - A TokenRange describes part of the Cassandra ring, it is a mapping from a range to - endpoints responsible for that range. - @param start_token The first token in the range - @param end_token The last token in the range - @param endpoints The endpoints responsible for the range (listed by their configured listen_address) - @param rpc_endpoints The endpoints responsible for the range (listed by their configured rpc_address) -*/ -struct TokenRange { - 1: required string start_token, - 2: required string end_token, - 3: required list endpoints, - 4: optional list rpc_endpoints - 5: optional list endpoint_details, -} - -/** - Authentication requests can contain any data, dependent on the IAuthenticator used -*/ -struct AuthenticationRequest { - 1: required map credentials -} - -enum IndexType { - KEYS, - CUSTOM, - COMPOSITES -} - -/* describes a column in a column family. */ -struct ColumnDef { - 1: required binary name, - 2: required string validation_class, - 3: optional IndexType index_type, - 4: optional string index_name, - 5: optional map index_options -} - -/** - Describes a trigger. - `options` should include at least 'class' param. - Other options are not supported yet. -*/ -struct TriggerDef { - 1: required string name, - 2: required map options -} - -/* describes a column family. */ -struct CfDef { - 1: required string keyspace, - 2: required string name, - 3: optional string column_type="Standard", - 5: optional string comparator_type="BytesType", - 6: optional string subcomparator_type, - 8: optional string comment, - 12: optional double read_repair_chance, - 13: optional list column_metadata, - 14: optional i32 gc_grace_seconds, - 15: optional string default_validation_class, - 16: optional i32 id, - 17: optional i32 min_compaction_threshold, - 18: optional i32 max_compaction_threshold, - 24: optional bool replicate_on_write, - 26: optional string key_validation_class, - 28: optional binary key_alias, - 29: optional string compaction_strategy, - 30: optional map compaction_strategy_options, - 32: optional map compression_options, - 33: optional double bloom_filter_fp_chance, - 34: optional string caching="keys_only", - 37: optional double dclocal_read_repair_chance = 0.0, - 38: optional bool populate_io_cache_on_flush, - 39: optional i32 memtable_flush_period_in_ms, - 40: optional i32 default_time_to_live, - 41: optional i32 index_interval, - 42: optional string speculative_retry="NONE", - 43: optional list triggers, - - /* All of the following are now ignored and unsupplied. */ - - /** @deprecated */ - 9: optional double row_cache_size, - /** @deprecated */ - 11: optional double key_cache_size, - /** @deprecated */ - 19: optional i32 row_cache_save_period_in_seconds, - /** @deprecated */ - 20: optional i32 key_cache_save_period_in_seconds, - /** @deprecated */ - 21: optional i32 memtable_flush_after_mins, - /** @deprecated */ - 22: optional i32 memtable_throughput_in_mb, - /** @deprecated */ - 23: optional double memtable_operations_in_millions, - /** @deprecated */ - 25: optional double merge_shards_chance, - /** @deprecated */ - 27: optional string row_cache_provider, - /** @deprecated */ - 31: optional i32 row_cache_keys_to_save, -} - -/* describes a keyspace. */ -struct KsDef { - 1: required string name, - 2: required string strategy_class, - 3: optional map strategy_options, - - /** @deprecated ignored */ - 4: optional i32 replication_factor, - - 5: required list cf_defs, - 6: optional bool durable_writes=1, -} - -/** CQL query compression */ -enum Compression { - GZIP = 1, - NONE = 2 -} - -enum CqlResultType { - ROWS = 1, - VOID = 2, - INT = 3 -} - -/** Row returned from a CQL query */ -struct CqlRow { - 1: required binary key, - 2: required list columns -} - -struct CqlMetadata { - 1: required map name_types, - 2: required map value_types, - 3: required string default_name_type, - 4: required string default_value_type -} - -struct CqlResult { - 1: required CqlResultType type, - 2: optional list rows, - 3: optional i32 num, - 4: optional CqlMetadata schema -} - -struct CqlPreparedResult { - 1: required i32 itemId, - 2: required i32 count, - 3: optional list variable_types, - 4: optional list variable_names -} - -/** Represents input splits used by hadoop ColumnFamilyRecordReaders */ -struct CfSplit { - 1: required string start_token, - 2: required string end_token, - 3: required i64 row_count -} - -service Cassandra { - void login(1: required AuthenticationRequest auth_request) throws (1:AuthenticationException authnx, 2:AuthorizationException authzx), - - void set_keyspace(1: required string keyspace) throws (1:InvalidRequestException ire), - - ColumnOrSuperColumn get(1:required binary key, - 2:required ColumnPath column_path, - 3:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:NotFoundException nfe, 3:UnavailableException ue, 4:TimedOutException te), - - /** - Get the group of columns contained by column_parent (either a ColumnFamily name or a ColumnFamily/SuperColumn name - pair) specified by the given SlicePredicate. If no matching values are found, an empty list is returned. - */ - list get_slice(1:required binary key, - 2:required ColumnParent column_parent, - 3:required SlicePredicate predicate, - 4:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - returns the number of columns matching predicate for a particular key, - ColumnFamily and optionally SuperColumn. - */ - i32 get_count(1:required binary key, - 2:required ColumnParent column_parent, - 3:required SlicePredicate predicate, - 4:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - Performs a get_slice for column_parent and predicate for the given keys in parallel. - */ - map> multiget_slice(1:required list keys, - 2:required ColumnParent column_parent, - 3:required SlicePredicate predicate, - 4:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - Perform a get_count in parallel on the given list keys. The return value maps keys to the count found. - */ - map multiget_count(1:required list keys, - 2:required ColumnParent column_parent, - 3:required SlicePredicate predicate, - 4:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - returns a subset of columns for a contiguous range of keys. - */ - list get_range_slices(1:required ColumnParent column_parent, - 2:required SlicePredicate predicate, - 3:required KeyRange range, - 4:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - returns a range of columns, wrapping to the next rows if necessary to collect max_results. - */ - list get_paged_slice(1:required string column_family, - 2:required KeyRange range, - 3:required binary start_column, - 4:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - Returns the subset of columns specified in SlicePredicate for the rows matching the IndexClause - @deprecated use get_range_slices instead with range.row_filter specified - */ - list get_indexed_slices(1:required ColumnParent column_parent, - 2:required IndexClause index_clause, - 3:required SlicePredicate column_predicate, - 4:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - # modification methods - - /** - * Insert a Column at the given column_parent.column_family and optional column_parent.super_column. - */ - void insert(1:required binary key, - 2:required ColumnParent column_parent, - 3:required Column column, - 4:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - * Increment or decrement a counter. - */ - void add(1:required binary key, - 2:required ColumnParent column_parent, - 3:required CounterColumn column, - 4:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - * Atomic compare and set. - * - * If the cas is successfull, the success boolean in CASResult will be true and there will be no current_values. - * Otherwise, success will be false and current_values will contain the current values for the columns in - * expected (that, by definition of compare-and-set, will differ from the values in expected). - * - * A cas operation takes 2 consistency level. The first one, serial_consistency_level, simply indicates the - * level of serialization required. This can be either ConsistencyLevel.SERIAL or ConsistencyLevel.LOCAL_SERIAL. - * The second one, commit_consistency_level, defines the consistency level for the commit phase of the cas. This - * is a more traditional consistency level (the same CL than for traditional writes are accepted) that impact - * the visibility for reads of the operation. For instance, if commit_consistency_level is QUORUM, then it is - * guaranteed that a followup QUORUM read will see the cas write (if that one was successful obviously). If - * commit_consistency_level is ANY, you will need to use a SERIAL/LOCAL_SERIAL read to be guaranteed to see - * the write. - */ - CASResult cas(1:required binary key, - 2:required string column_family, - 3:list expected, - 4:list updates, - 5:required ConsistencyLevel serial_consistency_level=ConsistencyLevel.SERIAL, - 6:required ConsistencyLevel commit_consistency_level=ConsistencyLevel.QUORUM) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - Remove data from the row specified by key at the granularity specified by column_path, and the given timestamp. Note - that all the values in column_path besides column_path.column_family are truly optional: you can remove the entire - row by just specifying the ColumnFamily, or you can remove a SuperColumn or a single Column by specifying those levels too. - */ - void remove(1:required binary key, - 2:required ColumnPath column_path, - 3:required i64 timestamp, - 4:ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - * Remove a counter at the specified location. - * Note that counters have limited support for deletes: if you remove a counter, you must wait to issue any following update - * until the delete has reached all the nodes and all of them have been fully compacted. - */ - void remove_counter(1:required binary key, - 2:required ColumnPath path, - 3:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - Mutate many columns or super columns for many row keys. See also: Mutation. - - mutation_map maps key to column family to a list of Mutation objects to take place at that scope. - **/ - void batch_mutate(1:required map>> mutation_map, - 2:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - Atomically mutate many columns or super columns for many row keys. See also: Mutation. - - mutation_map maps key to column family to a list of Mutation objects to take place at that scope. - **/ - void atomic_batch_mutate(1:required map>> mutation_map, - 2:required ConsistencyLevel consistency_level=ConsistencyLevel.ONE) - throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te), - - /** - Truncate will mark and entire column family as deleted. - From the user's perspective a successful call to truncate will result complete data deletion from cfname. - Internally, however, disk space will not be immediatily released, as with all deletes in cassandra, this one - only marks the data as deleted. - The operation succeeds only if all hosts in the cluster at available and will throw an UnavailableException if - some hosts are down. - */ - void truncate(1:required string cfname) - throws (1: InvalidRequestException ire, 2: UnavailableException ue, 3: TimedOutException te), - - - - // Meta-APIs -- APIs to get information about the node or cluster, - // rather than user data. The nodeprobe program provides usage examples. - - /** - * for each schema version present in the cluster, returns a list of nodes at that version. - * hosts that do not respond will be under the key DatabaseDescriptor.INITIAL_VERSION. - * the cluster is all on the same version if the size of the map is 1. - */ - map> describe_schema_versions() - throws (1: InvalidRequestException ire), - - /** list the defined keyspaces in this cluster */ - list describe_keyspaces() - throws (1:InvalidRequestException ire), - - /** get the cluster name */ - string describe_cluster_name(), - - /** get the thrift api version */ - string describe_version(), - - /** get the token ring: a map of ranges to host addresses, - represented as a set of TokenRange instead of a map from range - to list of endpoints, because you can't use Thrift structs as - map keys: - https://issues.apache.org/jira/browse/THRIFT-162 - - for the same reason, we can't return a set here, even though - order is neither important nor predictable. */ - list describe_ring(1:required string keyspace) - throws (1:InvalidRequestException ire), - - /** get the mapping between token->node ip - without taking replication into consideration - https://issues.apache.org/jira/browse/CASSANDRA-4092 */ - map describe_token_map() - throws (1:InvalidRequestException ire), - - /** returns the partitioner used by this cluster */ - string describe_partitioner(), - - /** returns the snitch used by this cluster */ - string describe_snitch(), - - /** describe specified keyspace */ - KsDef describe_keyspace(1:required string keyspace) - throws (1:NotFoundException nfe, 2:InvalidRequestException ire), - - /** experimental API for hadoop/parallel query support. - may change violently and without warning. - - returns list of token strings such that first subrange is (list[0], list[1]], - next is (list[1], list[2]], etc. */ - list describe_splits(1:required string cfName, - 2:required string start_token, - 3:required string end_token, - 4:required i32 keys_per_split) - throws (1:InvalidRequestException ire), - - /** Enables tracing for the next query in this connection and returns the UUID for that trace session - The next query will be traced idependently of trace probability and the returned UUID can be used to query the trace keyspace */ - binary trace_next_query(), - - list describe_splits_ex(1:required string cfName, - 2:required string start_token, - 3:required string end_token, - 4:required i32 keys_per_split) - throws (1:InvalidRequestException ire), - - /** adds a column family. returns the new schema id. */ - string system_add_column_family(1:required CfDef cf_def) - throws (1:InvalidRequestException ire, 2:SchemaDisagreementException sde), - - /** drops a column family. returns the new schema id. */ - string system_drop_column_family(1:required string column_family) - throws (1:InvalidRequestException ire, 2:SchemaDisagreementException sde), - - /** adds a keyspace and any column families that are part of it. returns the new schema id. */ - string system_add_keyspace(1:required KsDef ks_def) - throws (1:InvalidRequestException ire, 2:SchemaDisagreementException sde), - - /** drops a keyspace and any column families that are part of it. returns the new schema id. */ - string system_drop_keyspace(1:required string keyspace) - throws (1:InvalidRequestException ire, 2:SchemaDisagreementException sde), - - /** updates properties of a keyspace. returns the new schema id. */ - string system_update_keyspace(1:required KsDef ks_def) - throws (1:InvalidRequestException ire, 2:SchemaDisagreementException sde), - - /** updates properties of a column family. returns the new schema id. */ - string system_update_column_family(1:required CfDef cf_def) - throws (1:InvalidRequestException ire, 2:SchemaDisagreementException sde), - - - /** - * @deprecated Will become a no-op in 2.2. Please use the CQL3 version instead. - */ - CqlResult execute_cql_query(1:required binary query, 2:required Compression compression) - throws (1:InvalidRequestException ire, - 2:UnavailableException ue, - 3:TimedOutException te, - 4:SchemaDisagreementException sde) - - /** - * Executes a CQL3 (Cassandra Query Language) statement and returns a - * CqlResult containing the results. - */ - CqlResult execute_cql3_query(1:required binary query, 2:required Compression compression, 3:required ConsistencyLevel consistency) - throws (1:InvalidRequestException ire, - 2:UnavailableException ue, - 3:TimedOutException te, - 4:SchemaDisagreementException sde) - - - /** - * @deprecated Will become a no-op in 2.2. Please use the CQL3 version instead. - */ - CqlPreparedResult prepare_cql_query(1:required binary query, 2:required Compression compression) - throws (1:InvalidRequestException ire) - - /** - * Prepare a CQL3 (Cassandra Query Language) statement by compiling and returning - * - the type of CQL statement - * - an id token of the compiled CQL stored on the server side. - * - a count of the discovered bound markers in the statement - */ - CqlPreparedResult prepare_cql3_query(1:required binary query, 2:required Compression compression) - throws (1:InvalidRequestException ire) - - - /** - * @deprecated Will become a no-op in 2.2. Please use the CQL3 version instead. - */ - CqlResult execute_prepared_cql_query(1:required i32 itemId, 2:required list values) - throws (1:InvalidRequestException ire, - 2:UnavailableException ue, - 3:TimedOutException te, - 4:SchemaDisagreementException sde) - - /** - * Executes a prepared CQL3 (Cassandra Query Language) statement by passing an id token, a list of variables - * to bind, and the consistency level, and returns a CqlResult containing the results. - */ - CqlResult execute_prepared_cql3_query(1:required i32 itemId, 2:required list values, 3:required ConsistencyLevel consistency) - throws (1:InvalidRequestException ire, - 2:UnavailableException ue, - 3:TimedOutException te, - 4:SchemaDisagreementException sde) - - /** - * @deprecated This is now a no-op. Please use the CQL3 specific methods instead. - */ - void set_cql_version(1: required string version) throws (1:InvalidRequestException ire) -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/client.go b/vendor/github.com/samuel/go-thrift/thrift/client.go deleted file mode 100644 index 167b30845fe..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/client.go +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "errors" - "io" - "net" - "net/rpc" -) - -// Implements rpc.ClientCodec -type clientCodec struct { - conn Transport - onewayRequests chan pendingRequest - twowayRequests chan pendingRequest - enableOneway bool -} - -type pendingRequest struct { - method string - seq uint64 -} - -type oneway interface { - Oneway() bool -} - -var ( - // ErrTooManyPendingRequests is the error when there's too many requests that have been - // sent that have not yet received responses. - ErrTooManyPendingRequests = errors.New("thrift.client: too many pending requests") - // ErrOnewayNotEnabled is the error when trying to make a one-way RPC call but the - // client was not created with one-way support enabled. - ErrOnewayNotEnabled = errors.New("thrift.client: one way support not enabled on codec") -) - -const maxPendingRequests = 1000 - -// Dial connects to a Thrift RPC server at the specified network address using the specified protocol. -func Dial(network, address string, framed bool, protocol ProtocolBuilder, supportOnewayRequests bool) (*rpc.Client, error) { - conn, err := net.Dial(network, address) - if err != nil { - return nil, err - } - var c io.ReadWriteCloser = conn - if framed { - c = NewFramedReadWriteCloser(conn, DefaultMaxFrameSize) - } - codec := &clientCodec{ - conn: NewTransport(c, protocol), - } - if supportOnewayRequests { - codec.enableOneway = true - codec.onewayRequests = make(chan pendingRequest, maxPendingRequests) - codec.twowayRequests = make(chan pendingRequest, maxPendingRequests) - } - return rpc.NewClientWithCodec(codec), nil -} - -// NewClient returns a new rpc.Client to handle requests to the set of -// services at the other end of the connection. -func NewClient(conn Transport, supportOnewayRequests bool) *rpc.Client { - return rpc.NewClientWithCodec(NewClientCodec(conn, supportOnewayRequests)) -} - -// NewClientCodec returns a new rpc.ClientCodec using Thrift RPC on conn using the specified protocol. -func NewClientCodec(conn Transport, supportOnewayRequests bool) rpc.ClientCodec { - c := &clientCodec{ - conn: conn, - } - if supportOnewayRequests { - c.enableOneway = true - c.onewayRequests = make(chan pendingRequest, maxPendingRequests) - c.twowayRequests = make(chan pendingRequest, maxPendingRequests) - } - return c -} - -func (c *clientCodec) WriteRequest(request *rpc.Request, thriftStruct interface{}) error { - if err := c.conn.WriteMessageBegin(request.ServiceMethod, MessageTypeCall, int32(request.Seq)); err != nil { - return err - } - if err := EncodeStruct(c.conn, thriftStruct); err != nil { - return err - } - if err := c.conn.WriteMessageEnd(); err != nil { - return err - } - if err := c.conn.Flush(); err != nil { - return err - } - ow := false - if o, ok := thriftStruct.(oneway); ok { - ow = o.Oneway() - } - if c.enableOneway { - var err error - if ow { - select { - case c.onewayRequests <- pendingRequest{request.ServiceMethod, request.Seq}: - default: - err = ErrTooManyPendingRequests - } - } else { - select { - case c.twowayRequests <- pendingRequest{request.ServiceMethod, request.Seq}: - default: - err = ErrTooManyPendingRequests - } - } - if err != nil { - return err - } - } else if ow { - return ErrOnewayNotEnabled - } - - return nil -} - -func (c *clientCodec) ReadResponseHeader(response *rpc.Response) error { - if c.enableOneway { - select { - case ow := <-c.onewayRequests: - response.ServiceMethod = ow.method - response.Seq = ow.seq - return nil - case _ = <-c.twowayRequests: - } - } - - name, messageType, seq, err := c.conn.ReadMessageBegin() - if err != nil { - return err - } - response.ServiceMethod = name - response.Seq = uint64(seq) - if messageType == MessageTypeException { - exception := &ApplicationException{} - if err := DecodeStruct(c.conn, exception); err != nil { - return err - } - response.Error = exception.String() - return c.conn.ReadMessageEnd() - } - return nil -} - -func (c *clientCodec) ReadResponseBody(thriftStruct interface{}) error { - if thriftStruct == nil { - // Should only get called if ReadResponseHeader set the Error value in - // which case we've already read the body (ApplicationException) - return nil - } - - if err := DecodeStruct(c.conn, thriftStruct); err != nil { - return err - } - - return c.conn.ReadMessageEnd() -} - -func (c *clientCodec) Close() error { - if cl, ok := c.conn.(io.Closer); ok { - return cl.Close() - } - return nil -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/decoder.go b/vendor/github.com/samuel/go-thrift/thrift/decoder.go deleted file mode 100644 index 1f5a742e55c..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/decoder.go +++ /dev/null @@ -1,266 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "reflect" - "runtime" -) - -// Decoder is the interface that allows types to deserialize themselves from a Thrift stream -type Decoder interface { - DecodeThrift(ProtocolReader) error -} - -type decoder struct { - r ProtocolReader -} - -// DecodeStruct tries to deserialize a struct from a Thrift stream -func DecodeStruct(r ProtocolReader, v interface{}) (err error) { - if de, ok := v.(Decoder); ok { - return de.DecodeThrift(r) - } - - defer func() { - if r := recover(); r != nil { - if _, ok := r.(runtime.Error); ok { - panic(r) - } - err = r.(error) - } - }() - d := &decoder{r} - vo := reflect.ValueOf(v) - for vo.Kind() != reflect.Ptr { - d.error(&UnsupportedValueError{Value: vo, Str: "pointer to struct expected"}) - } - if vo.Elem().Kind() != reflect.Struct { - d.error(&UnsupportedValueError{Value: vo, Str: "expected a struct"}) - } - d.readValue(TypeStruct, vo.Elem()) - return nil -} - -func (d *decoder) error(err interface{}) { - panic(err) -} - -func (d *decoder) readValue(thriftType byte, rf reflect.Value) { - v := rf - kind := rf.Kind() - if kind == reflect.Ptr { - if rf.IsNil() { - rf.Set(reflect.New(rf.Type().Elem())) - } - v = rf.Elem() - kind = v.Kind() - } - - if de, ok := rf.Interface().(Decoder); ok { - if err := de.DecodeThrift(d.r); err != nil { - d.error(err) - } - return - } - - var err error - switch thriftType { - case TypeBool: - if val, err := d.r.ReadBool(); err != nil { - d.error(err) - } else { - v.SetBool(val) - } - case TypeByte: - if val, err := d.r.ReadByte(); err != nil { - d.error(err) - } else { - if kind == reflect.Uint8 { - v.SetUint(uint64(val)) - } else { - v.SetInt(int64(val)) - } - } - case TypeI16: - if val, err := d.r.ReadI16(); err != nil { - d.error(err) - } else { - v.SetInt(int64(val)) - } - case TypeI32: - if val, err := d.r.ReadI32(); err != nil { - d.error(err) - } else { - if kind == reflect.Uint32 { - v.SetUint(uint64(val)) - } else { - v.SetInt(int64(val)) - } - } - case TypeI64: - if val, err := d.r.ReadI64(); err != nil { - d.error(err) - } else { - if kind == reflect.Uint64 { - v.SetUint(uint64(val)) - } else { - v.SetInt(val) - } - } - case TypeDouble: - if val, err := d.r.ReadDouble(); err != nil { - d.error(err) - } else { - v.SetFloat(val) - } - case TypeString: - if kind == reflect.Slice { - elemType := v.Type().Elem() - elemTypeName := elemType.Name() - if elemType.Kind() == reflect.Uint8 && (elemTypeName == "byte" || elemTypeName == "uint8") { - if val, err := d.r.ReadBytes(); err != nil { - d.error(err) - } else { - v.SetBytes(val) - } - } else { - err = &UnsupportedValueError{Value: v, Str: "decoder expected a byte array"} - } - } else { - if val, err := d.r.ReadString(); err != nil { - d.error(err) - } else { - v.SetString(val) - } - } - case TypeStruct: - if err := d.r.ReadStructBegin(); err != nil { - d.error(err) - } - - meta := encodeFields(v.Type()) - req := meta.required - for { - ftype, id, err := d.r.ReadFieldBegin() - if err != nil { - d.error(err) - } - if ftype == TypeStop { - break - } - - ef, ok := meta.fields[int(id)] - if !ok { - SkipValue(d.r, ftype) - } else { - req &= ^(uint64(1) << uint64(id)) - fieldValue := v.Field(ef.i) - if ftype != ef.fieldType { - d.error(&UnsupportedValueError{Value: fieldValue, Str: "type mismatch"}) - } - d.readValue(ftype, fieldValue) - } - - if err = d.r.ReadFieldEnd(); err != nil { - d.error(err) - } - } - - if err := d.r.ReadStructEnd(); err != nil { - d.error(err) - } - - if req != 0 { - for i := 0; req != 0; i, req = i+1, req>>1 { - if req&1 != 0 { - d.error(&MissingRequiredField{ - StructName: v.Type().Name(), - FieldName: meta.fields[i].name, - }) - } - } - } - case TypeMap: - keyType := v.Type().Key() - valueType := v.Type().Elem() - ktype, vtype, n, err := d.r.ReadMapBegin() - if err != nil { - d.error(err) - } - v.Set(reflect.MakeMap(v.Type())) - for i := 0; i < n; i++ { - key := reflect.New(keyType).Elem() - val := reflect.New(valueType).Elem() - d.readValue(ktype, key) - d.readValue(vtype, val) - v.SetMapIndex(key, val) - } - if err := d.r.ReadMapEnd(); err != nil { - d.error(err) - } - case TypeList: - elemType := v.Type().Elem() - et, n, err := d.r.ReadListBegin() - if err != nil { - d.error(err) - } - for i := 0; i < n; i++ { - val := reflect.New(elemType) - d.readValue(et, val.Elem()) - v.Set(reflect.Append(v, val.Elem())) - } - if err := d.r.ReadListEnd(); err != nil { - d.error(err) - } - case TypeSet: - if v.Type().Kind() == reflect.Slice { - elemType := v.Type().Elem() - et, n, err := d.r.ReadSetBegin() - if err != nil { - d.error(err) - } - for i := 0; i < n; i++ { - val := reflect.New(elemType) - d.readValue(et, val.Elem()) - v.Set(reflect.Append(v, val.Elem())) - } - if err := d.r.ReadSetEnd(); err != nil { - d.error(err) - } - } else if v.Type().Kind() == reflect.Map { - elemType := v.Type().Key() - valueType := v.Type().Elem() - et, n, err := d.r.ReadSetBegin() - if err != nil { - d.error(err) - } - v.Set(reflect.MakeMap(v.Type())) - for i := 0; i < n; i++ { - key := reflect.New(elemType).Elem() - d.readValue(et, key) - switch valueType.Kind() { - case reflect.Bool: - v.SetMapIndex(key, reflect.ValueOf(true)) - default: - v.SetMapIndex(key, reflect.Zero(valueType)) - } - } - if err := d.r.ReadSetEnd(); err != nil { - d.error(err) - } - } else { - d.error(&UnsupportedTypeError{v.Type()}) - } - default: - d.error(&UnsupportedTypeError{v.Type()}) - } - - if err != nil { - d.error(err) - } - - return -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/encoder.go b/vendor/github.com/samuel/go-thrift/thrift/encoder.go deleted file mode 100644 index 41115a52d11..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/encoder.go +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "reflect" - "runtime" -) - -// Encoder is the interface that allows types to serialize themselves to a Thrift stream -type Encoder interface { - EncodeThrift(ProtocolWriter) error -} - -type encoder struct { - w ProtocolWriter -} - -// EncodeStruct tries to serialize a struct to a Thrift stream -func EncodeStruct(w ProtocolWriter, v interface{}) (err error) { - if en, ok := v.(Encoder); ok { - return en.EncodeThrift(w) - } - - defer func() { - if r := recover(); r != nil { - if _, ok := r.(runtime.Error); ok { - panic(r) - } - err = r.(error) - } - }() - e := &encoder{w} - vo := reflect.ValueOf(v) - e.writeStruct(vo) - return nil -} - -func (e *encoder) error(err interface{}) { - panic(err) -} - -func (e *encoder) writeStruct(v reflect.Value) { - for v.Kind() == reflect.Ptr || v.Kind() == reflect.Interface { - v = v.Elem() - } - if v.Kind() != reflect.Struct { - e.error(&UnsupportedValueError{Value: v, Str: "expected a struct"}) - } - if err := e.w.WriteStructBegin(v.Type().Name()); err != nil { - e.error(err) - } - for _, ef := range encodeFields(v.Type()).fields { - structField := v.Type().Field(ef.i) - fieldValue := v.Field(ef.i) - - if !ef.required && !ef.keepEmpty && isEmptyValue(fieldValue) { - continue - } - - if fieldValue.Kind() == reflect.Ptr { - if ef.required && fieldValue.IsNil() { - e.error(&MissingRequiredField{v.Type().Name(), structField.Name}) - } - } - - ftype := ef.fieldType - - if err := e.w.WriteFieldBegin(structField.Name, ftype, int16(ef.id)); err != nil { - e.error(err) - } - e.writeValue(fieldValue, ftype) - if err := e.w.WriteFieldEnd(); err != nil { - e.error(err) - } - } - e.w.WriteFieldStop() - if err := e.w.WriteStructEnd(); err != nil { - e.error(err) - } -} - -func (e *encoder) writeValue(v reflect.Value, thriftType byte) { - if en, ok := v.Interface().(Encoder); ok { - if err := en.EncodeThrift(e.w); err != nil { - e.error(err) - } - return - } - - kind := v.Kind() - if kind == reflect.Ptr || kind == reflect.Interface { - v = v.Elem() - kind = v.Kind() - } - - var err error - switch thriftType { - case TypeBool: - err = e.w.WriteBool(v.Bool()) - case TypeByte: - if kind == reflect.Uint8 { - err = e.w.WriteByte(byte(v.Uint())) - } else { - err = e.w.WriteByte(byte(v.Int())) - } - case TypeI16: - err = e.w.WriteI16(int16(v.Int())) - case TypeI32: - if kind == reflect.Uint32 { - err = e.w.WriteI32(int32(v.Uint())) - } else { - err = e.w.WriteI32(int32(v.Int())) - } - case TypeI64: - if kind == reflect.Uint64 { - err = e.w.WriteI64(int64(v.Uint())) - } else { - err = e.w.WriteI64(v.Int()) - } - case TypeDouble: - err = e.w.WriteDouble(v.Float()) - case TypeString: - if kind == reflect.Slice { - elemType := v.Type().Elem() - if elemType.Kind() == reflect.Uint8 { - err = e.w.WriteBytes(v.Bytes()) - } else { - err = &UnsupportedValueError{Value: v, Str: "encoder expected a byte array"} - } - } else { - err = e.w.WriteString(v.String()) - } - case TypeStruct: - e.writeStruct(v) - case TypeMap: - keyType := v.Type().Key() - valueType := v.Type().Elem() - keyThriftType := fieldType(keyType) - valueThriftType := fieldType(valueType) - if er := e.w.WriteMapBegin(keyThriftType, valueThriftType, v.Len()); er != nil { - e.error(er) - } - for _, k := range v.MapKeys() { - e.writeValue(k, keyThriftType) - e.writeValue(v.MapIndex(k), valueThriftType) - } - err = e.w.WriteMapEnd() - case TypeList: - elemType := v.Type().Elem() - if elemType.Kind() == reflect.Uint8 { - err = e.w.WriteBytes(v.Bytes()) - } else { - elemThriftType := fieldType(elemType) - if er := e.w.WriteListBegin(elemThriftType, v.Len()); er != nil { - e.error(er) - } - n := v.Len() - for i := 0; i < n; i++ { - e.writeValue(v.Index(i), elemThriftType) - } - err = e.w.WriteListEnd() - } - case TypeSet: - if v.Type().Kind() == reflect.Slice { - elemType := v.Type().Elem() - elemThriftType := fieldType(elemType) - if er := e.w.WriteSetBegin(elemThriftType, v.Len()); er != nil { - e.error(er) - } - n := v.Len() - for i := 0; i < n; i++ { - e.writeValue(v.Index(i), elemThriftType) - } - err = e.w.WriteSetEnd() - } else if v.Type().Kind() == reflect.Map { - elemType := v.Type().Key() - valueType := v.Type().Elem() - elemThriftType := fieldType(elemType) - if valueType.Kind() == reflect.Bool { - n := 0 - for _, k := range v.MapKeys() { - if v.MapIndex(k).Bool() { - n++ - } - } - if er := e.w.WriteSetBegin(elemThriftType, n); er != nil { - e.error(er) - } - for _, k := range v.MapKeys() { - if v.MapIndex(k).Bool() { - e.writeValue(k, elemThriftType) - } - } - } else { - if er := e.w.WriteSetBegin(elemThriftType, v.Len()); er != nil { - e.error(er) - } - for _, k := range v.MapKeys() { - e.writeValue(k, elemThriftType) - } - } - err = e.w.WriteSetEnd() - } else { - e.error(&UnsupportedTypeError{v.Type()}) - } - default: - e.error(&UnsupportedTypeError{v.Type()}) - } - - if err != nil { - e.error(err) - } -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/framed.go b/vendor/github.com/samuel/go-thrift/thrift/framed.go deleted file mode 100644 index c19d999c7b5..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/framed.go +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "bytes" - "encoding/binary" - "fmt" - "io" -) - -const ( - // DefaultMaxFrameSize is the default max size for frames when using the FramedReadWriteCloser - DefaultMaxFrameSize = 1024 * 1024 -) - -type ErrFrameTooBig struct { - Size, MaxSize int64 -} - -func (e ErrFrameTooBig) Error() string { - return fmt.Sprintf("thrift: frame size while reading over allowed size (%d > %d)", e.Size, e.MaxSize) -} - -type Flusher interface { - Flush() error -} - -type FramedReadWriteCloser struct { - wrapped io.ReadWriteCloser - limitedReader *io.LimitedReader - maxFrameSize int64 - rtmp []byte - wtmp []byte - rbuf *bytes.Buffer - wbuf *bytes.Buffer -} - -func NewFramedReadWriteCloser(wrapped io.ReadWriteCloser, maxFrameSize int) *FramedReadWriteCloser { - if maxFrameSize == 0 { - maxFrameSize = DefaultMaxFrameSize - } - return &FramedReadWriteCloser{ - wrapped: wrapped, - limitedReader: &io.LimitedReader{R: wrapped, N: 0}, - maxFrameSize: int64(maxFrameSize), - rtmp: make([]byte, 4), - wtmp: make([]byte, 4), - rbuf: &bytes.Buffer{}, - wbuf: &bytes.Buffer{}, - } -} - -func (f *FramedReadWriteCloser) Read(p []byte) (int, error) { - if err := f.fillBuffer(); err != nil { - return 0, err - } - return f.rbuf.Read(p) -} - -func (f *FramedReadWriteCloser) ReadByte() (byte, error) { - if err := f.fillBuffer(); err != nil { - return 0, err - } - return f.rbuf.ReadByte() -} - -func (f *FramedReadWriteCloser) fillBuffer() error { - if f.rbuf.Len() > 0 { - return nil - } - - f.rbuf.Reset() - if _, err := io.ReadFull(f.wrapped, f.rtmp); err != nil { - return err - } - frameSize := int64(binary.BigEndian.Uint32(f.rtmp)) - if frameSize > f.maxFrameSize { - return ErrFrameTooBig{frameSize, f.maxFrameSize} - } - f.limitedReader.N = frameSize - written, err := io.Copy(f.rbuf, f.limitedReader) - if err != nil { - return err - } - if written < frameSize { - return io.EOF - } - return nil -} - -func (f *FramedReadWriteCloser) Write(p []byte) (int, error) { - n, err := f.wbuf.Write(p) - if err != nil { - return n, err - } - if ln := int64(f.wbuf.Len()); ln > f.maxFrameSize { - return n, &ErrFrameTooBig{ln, f.maxFrameSize} - } - return n, nil -} - -func (f *FramedReadWriteCloser) Close() error { - return f.wrapped.Close() -} - -func (f *FramedReadWriteCloser) Flush() error { - frameSize := uint32(f.wbuf.Len()) - if frameSize > 0 { - binary.BigEndian.PutUint32(f.wtmp, frameSize) - if _, err := f.wrapped.Write(f.wtmp); err != nil { - return err - } - _, err := io.Copy(f.wrapped, f.wbuf) - f.wbuf.Reset() - return err - } - return nil -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/helpers.go b/vendor/github.com/samuel/go-thrift/thrift/helpers.go deleted file mode 100644 index 763817931dc..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/helpers.go +++ /dev/null @@ -1,41 +0,0 @@ -package thrift - -// Bool is a helper routine that allocates a new bool value to store v and returns a pointer to it. -func Bool(v bool) *bool { - return &v -} - -// Float32 is a helper routine that allocates a new float32 value to store v and returns a pointer to it. -func Float32(v float32) *float32 { - return &v -} - -// Float64 is a helper routine that allocates a new float64 value to store v and returns a pointer to it. -func Float64(v float64) *float64 { - return &v -} - -// Byte is a helper routine that allocates a new byte value to store v and returns a pointer to it. -func Byte(v byte) *byte { - return &v -} - -// Int16 is a helper routine that allocates a new int16 value to store v and returns a pointer to it. -func Int16(v int16) *int16 { - return &v -} - -// Int32 is a helper routine that allocates a new int32 value to store v and returns a pointer to it. -func Int32(v int32) *int32 { - return &v -} - -// Int64 is a helper routine that allocates a new int64 value to store v and returns a pointer to it. -func Int64(v int64) *int64 { - return &v -} - -// String is a helper routine that allocates a new string value to store v and returns a pointer to it. -func String(v string) *string { - return &v -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/protocol.go b/vendor/github.com/samuel/go-thrift/thrift/protocol.go deleted file mode 100644 index 03776ff70cd..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/protocol.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "fmt" - "io" -) - -type ProtocolError struct { - Protocol string - Message string -} - -func (e ProtocolError) Error() string { - return fmt.Sprintf("thrift: [%s] %s", e.Protocol, e.Message) -} - -type ProtocolBuilder interface { - NewProtocolReader(io.Reader) ProtocolReader - NewProtocolWriter(io.Writer) ProtocolWriter -} - -type protocolBuilder struct { - reader func(io.Reader) ProtocolReader - writer func(io.Writer) ProtocolWriter -} - -func NewProtocolBuilder(r func(io.Reader) ProtocolReader, w func(io.Writer) ProtocolWriter) ProtocolBuilder { - return &protocolBuilder{ - reader: r, - writer: w, - } -} - -func (p *protocolBuilder) NewProtocolReader(r io.Reader) ProtocolReader { - return p.reader(r) -} - -func (p *protocolBuilder) NewProtocolWriter(w io.Writer) ProtocolWriter { - return p.writer(w) -} - -type ProtocolReadWriter interface { - ProtocolReader - ProtocolWriter -} - -type ProtocolWriter interface { - WriteMessageBegin(name string, messageType byte, seqid int32) error - WriteMessageEnd() error - WriteStructBegin(name string) error - WriteStructEnd() error - WriteFieldBegin(name string, fieldType byte, id int16) error - WriteFieldEnd() error - WriteFieldStop() error - WriteMapBegin(keyType byte, valueType byte, size int) error - WriteMapEnd() error - WriteListBegin(elementType byte, size int) error - WriteListEnd() error - WriteSetBegin(elementType byte, size int) error - WriteSetEnd() error - WriteBool(value bool) error - WriteByte(value byte) error - WriteI16(value int16) error - WriteI32(value int32) error - WriteI64(value int64) error - WriteDouble(value float64) error - WriteString(value string) error - WriteBytes(value []byte) error -} - -type ProtocolReader interface { - ReadMessageBegin() (name string, messageType byte, seqid int32, err error) - ReadMessageEnd() error - ReadStructBegin() error - ReadStructEnd() error - ReadFieldBegin() (fieldType byte, id int16, err error) - ReadFieldEnd() error - ReadMapBegin() (keyType byte, valueType byte, size int, err error) - ReadMapEnd() error - ReadListBegin() (elementType byte, size int, err error) - ReadListEnd() error - ReadSetBegin() (elementType byte, size int, err error) - ReadSetEnd() error - ReadBool() (bool, error) - ReadByte() (byte, error) - ReadI16() (int16, error) - ReadI32() (int32, error) - ReadI64() (int64, error) - ReadDouble() (float64, error) - ReadString() (string, error) - ReadBytes() ([]byte, error) -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/protocol_binary.go b/vendor/github.com/samuel/go-thrift/thrift/protocol_binary.go deleted file mode 100644 index 144b267d1ac..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/protocol_binary.go +++ /dev/null @@ -1,397 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "encoding/binary" - "io" - "math" -) - -const ( - versionMask uint32 = 0xffff0000 - version1 uint32 = 0x80010000 - typeMask uint32 = 0x000000ff -) - -const ( - maxMessageNameSize = 128 -) - -type binaryProtocolWriter struct { - w io.Writer - strict bool - buf []byte -} - -type binaryProtocolReader struct { - r io.Reader - strict bool - buf []byte -} - -var BinaryProtocol = NewProtocolBuilder( - func(r io.Reader) ProtocolReader { return NewBinaryProtocolReader(r, false) }, - func(w io.Writer) ProtocolWriter { return NewBinaryProtocolWriter(w, true) }, -) - -func NewBinaryProtocolWriter(w io.Writer, strict bool) ProtocolWriter { - p := &binaryProtocolWriter{ - w: w, - strict: strict, - buf: make([]byte, 32), - } - return p -} - -func NewBinaryProtocolReader(r io.Reader, strict bool) ProtocolReader { - p := &binaryProtocolReader{ - r: r, - strict: strict, - buf: make([]byte, 32), - } - return p -} - -func (p *binaryProtocolWriter) WriteMessageBegin(name string, messageType byte, seqid int32) error { - if p.strict { - if err := p.WriteI32(int32(version1 | uint32(messageType))); err != nil { - return err - } - if err := p.WriteString(name); err != nil { - return err - } - } else { - if err := p.WriteString(name); err != nil { - return err - } - if err := p.WriteByte(messageType); err != nil { - return err - } - } - return p.WriteI32(seqid) -} - -func (p *binaryProtocolWriter) WriteMessageEnd() error { - return nil -} - -func (p *binaryProtocolWriter) WriteStructBegin(name string) error { - return nil -} - -func (p *binaryProtocolWriter) WriteStructEnd() error { - return nil -} - -func (p *binaryProtocolWriter) WriteFieldBegin(name string, fieldType byte, id int16) error { - if err := p.WriteByte(fieldType); err != nil { - return err - } - return p.WriteI16(id) -} - -func (p *binaryProtocolWriter) WriteFieldEnd() error { - return nil -} - -func (p *binaryProtocolWriter) WriteFieldStop() error { - return p.WriteByte(TypeStop) -} - -func (p *binaryProtocolWriter) WriteMapBegin(keyType byte, valueType byte, size int) error { - if err := p.WriteByte(keyType); err != nil { - return err - } - if err := p.WriteByte(valueType); err != nil { - return err - } - return p.WriteI32(int32(size)) -} - -func (p *binaryProtocolWriter) WriteMapEnd() error { - return nil -} - -func (p *binaryProtocolWriter) WriteListBegin(elementType byte, size int) error { - if err := p.WriteByte(elementType); err != nil { - return err - } - return p.WriteI32(int32(size)) -} - -func (p *binaryProtocolWriter) WriteListEnd() error { - return nil -} - -func (p *binaryProtocolWriter) WriteSetBegin(elementType byte, size int) error { - if err := p.WriteByte(elementType); err != nil { - return err - } - return p.WriteI32(int32(size)) -} - -func (p *binaryProtocolWriter) WriteSetEnd() error { - return nil -} - -func (p *binaryProtocolWriter) WriteBool(value bool) error { - if value { - return p.WriteByte(1) - } - return p.WriteByte(0) -} - -func (p *binaryProtocolWriter) WriteByte(value byte) error { - b := p.buf - if b == nil { - b = []byte{value} - } else { - b[0] = value - } - _, err := p.w.Write(b[:1]) - return err -} - -func (p *binaryProtocolWriter) WriteI16(value int16) error { - b := p.buf - if b == nil { - b = []byte{0, 0} - } - binary.BigEndian.PutUint16(b, uint16(value)) - _, err := p.w.Write(b[:2]) - return err -} - -func (p *binaryProtocolWriter) WriteI32(value int32) error { - b := p.buf - if b == nil { - b = []byte{0, 0, 0, 0} - } - binary.BigEndian.PutUint32(b, uint32(value)) - _, err := p.w.Write(b[:4]) - return err -} - -func (p *binaryProtocolWriter) WriteI64(value int64) error { - b := p.buf - if b == nil { - b = []byte{0, 0, 0, 0, 0, 0, 0, 0} - } - binary.BigEndian.PutUint64(b, uint64(value)) - _, err := p.w.Write(b[:8]) - return err -} - -func (p *binaryProtocolWriter) WriteDouble(value float64) error { - b := p.buf - if b == nil { - b = []byte{0, 0, 0, 0, 0, 0, 0, 0} - } - binary.BigEndian.PutUint64(b, math.Float64bits(value)) - _, err := p.w.Write(b[:8]) - return err -} - -func (p *binaryProtocolWriter) WriteString(value string) error { - if len(value) <= len(p.buf) { - if err := p.WriteI32(int32(len(value))); err != nil { - return err - } - n := copy(p.buf, value) - _, err := p.w.Write(p.buf[:n]) - return err - } - return p.WriteBytes([]byte(value)) -} - -func (p *binaryProtocolWriter) WriteBytes(value []byte) error { - if err := p.WriteI32(int32(len(value))); err != nil { - return err - } - _, err := p.w.Write(value) - return err -} - -func (p *binaryProtocolReader) ReadMessageBegin() (name string, messageType byte, seqid int32, err error) { - size, e := p.ReadI32() - if e != nil { - err = e - return - } - if size < 0 { - version := uint32(size) & versionMask - if version != version1 { - err = ProtocolError{"BinaryProtocol", "bad version in ReadMessageBegin"} - return - } - messageType = byte(uint32(size) & typeMask) - if name, err = p.ReadString(); err != nil { - return - } - } else { - if p.strict { - err = ProtocolError{"BinaryProtocol", "no protocol version header"} - return - } - if size > maxMessageNameSize { - err = ProtocolError{"BinaryProtocol", "message name exceeds max size"} - return - } - nameBytes := make([]byte, size) - if _, err = p.r.Read(nameBytes); err != nil { - return - } - name = string(nameBytes) - if messageType, err = p.ReadByte(); err != nil { - return - } - } - seqid, err = p.ReadI32() - return -} - -func (p *binaryProtocolReader) ReadMessageEnd() error { - return nil -} - -func (p *binaryProtocolReader) ReadStructBegin() error { - return nil -} - -func (p *binaryProtocolReader) ReadStructEnd() error { - return nil -} - -func (p *binaryProtocolReader) ReadFieldBegin() (fieldType byte, id int16, err error) { - if fieldType, err = p.ReadByte(); err != nil || fieldType == TypeStop { - return - } - id, err = p.ReadI16() - return -} - -func (p *binaryProtocolReader) ReadFieldEnd() error { - return nil -} - -func (p *binaryProtocolReader) ReadMapBegin() (keyType byte, valueType byte, size int, err error) { - if keyType, err = p.ReadByte(); err != nil { - return - } - if valueType, err = p.ReadByte(); err != nil { - return - } - var sz int32 - sz, err = p.ReadI32() - size = int(sz) - return -} - -func (p *binaryProtocolReader) ReadMapEnd() error { - return nil -} - -func (p *binaryProtocolReader) ReadListBegin() (elementType byte, size int, err error) { - if elementType, err = p.ReadByte(); err != nil { - return - } - var sz int32 - sz, err = p.ReadI32() - size = int(sz) - return -} - -func (p *binaryProtocolReader) ReadListEnd() error { - return nil -} - -func (p *binaryProtocolReader) ReadSetBegin() (elementType byte, size int, err error) { - if elementType, err = p.ReadByte(); err != nil { - return - } - var sz int32 - sz, err = p.ReadI32() - size = int(sz) - return -} - -func (p *binaryProtocolReader) ReadSetEnd() error { - return nil -} - -func (p *binaryProtocolReader) ReadBool() (bool, error) { - if b, e := p.ReadByte(); e != nil { - return false, e - } else if b != 0 { - return true, nil - } - return false, nil -} - -func (p *binaryProtocolReader) ReadByte() (value byte, err error) { - _, err = io.ReadFull(p.r, p.buf[:1]) - value = p.buf[0] - return -} - -func (p *binaryProtocolReader) ReadI16() (value int16, err error) { - _, err = io.ReadFull(p.r, p.buf[:2]) - value = int16(binary.BigEndian.Uint16(p.buf)) - return -} - -func (p *binaryProtocolReader) ReadI32() (value int32, err error) { - _, err = io.ReadFull(p.r, p.buf[:4]) - value = int32(binary.BigEndian.Uint32(p.buf)) - return -} - -func (p *binaryProtocolReader) ReadI64() (value int64, err error) { - _, err = io.ReadFull(p.r, p.buf[:8]) - value = int64(binary.BigEndian.Uint64(p.buf)) - return -} - -func (p *binaryProtocolReader) ReadDouble() (value float64, err error) { - _, err = io.ReadFull(p.r, p.buf[:8]) - value = math.Float64frombits(binary.BigEndian.Uint64(p.buf)) - return -} - -func (p *binaryProtocolReader) ReadString() (string, error) { - ln, err := p.ReadI32() - if err != nil || ln == 0 { - return "", err - } - if ln < 0 { - return "", ProtocolError{"BinaryProtocol", "negative length while reading string"} - } - b := p.buf - if int(ln) > len(b) { - b = make([]byte, ln) - } else { - b = b[:ln] - } - if _, err := io.ReadFull(p.r, b); err != nil { - return "", err - } - return string(b), nil -} - -func (p *binaryProtocolReader) ReadBytes() ([]byte, error) { - ln, err := p.ReadI32() - if err != nil || ln == 0 { - return nil, err - } - if ln < 0 { - return nil, ProtocolError{"BinaryProtocol", "negative length while reading bytes"} - } - b := make([]byte, ln) - if _, err := io.ReadFull(p.r, b); err != nil { - return nil, err - } - return b, nil -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/protocol_compact.go b/vendor/github.com/samuel/go-thrift/thrift/protocol_compact.go deleted file mode 100644 index 863743e91ec..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/protocol_compact.go +++ /dev/null @@ -1,598 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "encoding/binary" - "io" - "math" -) - -const ( - compactProtocolID = 0x82 - compactVersion = 1 - compactVersionMask = 0x1f - compactTypeMask = 0xe0 - compactTypeShiftAmount = 5 -) - -const ( - ctStop = iota - ctTrue - ctFalse - ctByte - ctI16 - ctI32 - ctI64 - ctDouble - ctBinary - ctList - ctSet - ctMap - ctStruct -) - -var thriftTypeToCompactType []byte -var compactTypeToThriftType []byte - -func init() { - thriftTypeToCompactType = make([]byte, 16) - thriftTypeToCompactType[TypeStop] = ctStop - thriftTypeToCompactType[TypeBool] = ctTrue - thriftTypeToCompactType[TypeByte] = ctByte - thriftTypeToCompactType[TypeI16] = ctI16 - thriftTypeToCompactType[TypeI32] = ctI32 - thriftTypeToCompactType[TypeI64] = ctI64 - thriftTypeToCompactType[TypeDouble] = ctDouble - thriftTypeToCompactType[TypeString] = ctBinary - thriftTypeToCompactType[TypeStruct] = ctStruct - thriftTypeToCompactType[TypeList] = ctList - thriftTypeToCompactType[TypeSet] = ctSet - thriftTypeToCompactType[TypeMap] = ctMap - compactTypeToThriftType = make([]byte, 16) - compactTypeToThriftType[ctStop] = TypeStop - compactTypeToThriftType[ctTrue] = TypeBool - compactTypeToThriftType[ctFalse] = TypeBool - compactTypeToThriftType[ctByte] = TypeByte - compactTypeToThriftType[ctI16] = TypeI16 - compactTypeToThriftType[ctI32] = TypeI32 - compactTypeToThriftType[ctI64] = TypeI64 - compactTypeToThriftType[ctDouble] = TypeDouble - compactTypeToThriftType[ctBinary] = TypeString - compactTypeToThriftType[ctStruct] = TypeStruct - compactTypeToThriftType[ctList] = TypeList - compactTypeToThriftType[ctSet] = TypeSet - compactTypeToThriftType[ctMap] = TypeMap -} - -type compactProtocolWriter struct { - w io.Writer - lastFieldID int16 - boolFid int16 - boolValue bool - structs []int16 - container []int - buf []byte -} - -type compactProtocolReader struct { - r io.Reader - lastFieldID int16 - boolFid int16 - boolValue bool - structs []int16 - container []int - buf []byte -} - -var CompactProtocol = NewProtocolBuilder(NewCompactProtocolReader, NewCompactProtocolWriter) - -func NewCompactProtocolWriter(w io.Writer) ProtocolWriter { - return &compactProtocolWriter{ - w: w, - lastFieldID: 0, - boolFid: -1, - boolValue: false, - structs: make([]int16, 0, 8), - container: make([]int, 0, 8), - buf: make([]byte, 64), - } -} - -func NewCompactProtocolReader(r io.Reader) ProtocolReader { - return &compactProtocolReader{ - r: r, - lastFieldID: 0, - boolFid: -1, - boolValue: false, - structs: make([]int16, 0, 8), - container: make([]int, 0, 8), - buf: make([]byte, 64), - } -} - -func (p *compactProtocolWriter) writeVarint(value int64) (err error) { - n := binary.PutVarint(p.buf, value) - _, err = p.w.Write(p.buf[:n]) - return -} - -func (p *compactProtocolWriter) writeUvarint(value uint64) (err error) { - n := binary.PutUvarint(p.buf, value) - _, err = p.w.Write(p.buf[:n]) - return -} - -// Write a message header to the wire. Compact Protocol messages contain the -// protocol version so we can migrate forwards in the future if need be. -func (p *compactProtocolWriter) WriteMessageBegin(name string, messageType byte, seqid int32) (err error) { - if err = p.writeByteDirect(compactProtocolID); err != nil { - return - } - if err = p.writeByteDirect(compactVersion | (messageType << compactTypeShiftAmount)); err != nil { - return - } - if err = p.writeUvarint(uint64(seqid)); err != nil { - return - } - err = p.WriteString(name) - return -} - -// Write a struct begin. This doesn't actually put anything on the wire. We -// use it as an opportunity to put special placeholder markers on the field -// stack so we can get the field id deltas correct. -func (p *compactProtocolWriter) WriteStructBegin(name string) error { - p.structs = append(p.structs, p.lastFieldID) - p.lastFieldID = 0 - return nil -} - -// Write a struct end. This doesn't actually put anything on the wire. We use -// this as an opportunity to pop the last field from the current struct off -// of the field stack. -func (p *compactProtocolWriter) WriteStructEnd() error { - if len(p.structs) == 0 { - return ProtocolError{"CompactProtocol", "Struct end without matching begin"} - } - fid := p.structs[len(p.structs)-1] - p.structs = p.structs[:len(p.structs)-1] - p.lastFieldID = fid - return nil -} - -// Write a field header containing the field id and field type. If the -// difference between the current field id and the last one is small (< 15), -// then the field id will be encoded in the 4 MSB as a delta. Otherwise, the -// field id will follow the type header as a zigzag varint. -func (p *compactProtocolWriter) WriteFieldBegin(name string, fieldType byte, id int16) error { - if fieldType == TypeBool { - // we want to possibly include the value, so we'll wait. - p.boolFid = id - return nil - } - return p.writeFieldBeginInternal(name, fieldType, id, 0xff) -} - -// The workhorse of writeFieldBegin. It has the option of doing a -// 'type override' of the type header. This is used specifically in the -// boolean field case. -func (p *compactProtocolWriter) writeFieldBeginInternal(name string, fieldType byte, id int16, typeOverride byte) error { - // if there's a type override, use that. - typeToWrite := typeOverride - if typeToWrite == 0xff { - typeToWrite = thriftTypeToCompactType[fieldType] - } - - // check if we can use delta encoding for the field id - if id > p.lastFieldID && id-p.lastFieldID <= 15 { - // write them together - if err := p.writeByteDirect(byte((id-p.lastFieldID)<<4 | int16(typeToWrite))); err != nil { - return err - } - } else { - // write them separate - if err := p.writeByteDirect(byte(typeToWrite)); err != nil { - return err - } - if err := p.WriteI16(id); err != nil { - return err - } - } - - p.lastFieldID = id - return nil -} - -// Write the STOP symbol so we know there are no more fields in this struct. -func (p *compactProtocolWriter) WriteFieldStop() error { - return p.writeByteDirect(TypeStop) -} - -// Write a map header. If the map is empty, omit the key and value type -// headers, as we don't need any additional information to skip it. -func (p *compactProtocolWriter) WriteMapBegin(keyType byte, valueType byte, size int) error { - if size == 0 { - return p.writeByteDirect(0) - } - if err := p.writeUvarint(uint64(size)); err != nil { - return err - } - return p.writeByteDirect(byte(thriftTypeToCompactType[keyType]<<4 | thriftTypeToCompactType[valueType])) -} - -// Write a list header. -func (p *compactProtocolWriter) WriteListBegin(elementType byte, size int) error { - return p.writeCollectionBegin(elementType, size) -} - -// Write a set header. -func (p *compactProtocolWriter) WriteSetBegin(elementType byte, size int) error { - return p.writeCollectionBegin(elementType, size) -} - -// Write a boolean value. Potentially, this could be a boolean field, in -// which case the field header info isn't written yet. If so, decide what the -// right type header is for the value and then write the field header. -// Otherwise, write a single byte. -func (p *compactProtocolWriter) WriteBool(value bool) error { - fieldType := byte(ctFalse) - if value { - fieldType = ctTrue - } - if p.boolFid >= 0 { - // we haven't written the field header yet - return p.writeFieldBeginInternal("bool", TypeBool, p.boolFid, fieldType) - } - return p.writeByteDirect(fieldType) -} - -func (p *compactProtocolWriter) WriteByte(value byte) error { - return p.writeByteDirect(value) -} - -func (p *compactProtocolWriter) WriteI16(value int16) error { - return p.writeVarint(int64(value)) -} - -func (p *compactProtocolWriter) WriteI32(value int32) error { - return p.writeVarint(int64(value)) -} - -func (p *compactProtocolWriter) WriteI64(value int64) error { - return p.writeVarint(value) -} - -func (p *compactProtocolWriter) WriteDouble(value float64) (err error) { - b := p.buf - binary.BigEndian.PutUint64(b, math.Float64bits(value)) - _, err = p.w.Write(b[:8]) - return -} - -// Write a string to the wire with a varint size preceeding. -func (p *compactProtocolWriter) WriteString(value string) error { - return p.WriteBytes([]byte(value)) -} - -// Write a byte array, using a varint for the size. -func (p *compactProtocolWriter) WriteBytes(value []byte) error { - if err := p.writeUvarint(uint64(len(value))); err != nil { - return err - } - _, err := p.w.Write(value) - return err -} - -func (p *compactProtocolWriter) WriteMessageEnd() error { - return nil -} - -func (p *compactProtocolWriter) WriteMapEnd() error { - return nil -} - -func (p *compactProtocolWriter) WriteListEnd() error { - return nil -} - -func (p *compactProtocolWriter) WriteSetEnd() error { - return nil -} - -func (p *compactProtocolWriter) WriteFieldEnd() error { - return nil -} - -// Abstract method for writing the start of lists and sets. List and sets on -// the wire differ only by the type indicator. -func (p *compactProtocolWriter) writeCollectionBegin(elemType byte, size int) error { - if size <= 14 { - return p.writeByteDirect(byte(size)<<4 | thriftTypeToCompactType[elemType]) - } - if err := p.writeByteDirect(0xf0 | thriftTypeToCompactType[elemType]); err != nil { - return err - } - return p.writeUvarint(uint64(size)) -} - -// Writes a byte without any possiblity of all that field header nonsense. -// Used internally by other writing methods that know they need to write a byte. -func (p *compactProtocolWriter) writeByteDirect(value byte) error { - p.buf[0] = value - _, err := p.w.Write(p.buf[:1]) - return err -} - -func (p *compactProtocolReader) readVarint() (int64, error) { - if br, ok := p.r.(io.ByteReader); ok { - return binary.ReadVarint(br) - } - // TODO: Make this more efficient - n := 0 - b := p.buf - for { - if _, err := p.r.Read(b[n : n+1]); err != nil { - return 0, err - } - n++ - // n == 0: buf too small - // n < 0: value larger than 64-bits - if val, n := binary.Varint(b[:n]); n > 0 { - return val, nil - } else if n < 0 { - return val, ProtocolError{"CompactProtocol", "varint overflow on read"} - } - } -} - -func (p *compactProtocolReader) readUvarint() (uint64, error) { - if br, ok := p.r.(io.ByteReader); ok { - return binary.ReadUvarint(br) - } - // TODO: Make this more efficient - n := 0 - b := p.buf - for { - if _, err := p.r.Read(b[n : n+1]); err != nil { - return 0, err - } - n++ - // n == 0: buf too small - // n < 0: value larger than 64-bits - if val, n := binary.Uvarint(b[:n]); n > 0 { - return val, nil - } else if n < 0 { - return val, ProtocolError{"CompactProtocol", "varint overflow on read"} - } - } -} - -func (p *compactProtocolReader) ReadMessageBegin() (string, byte, int32, error) { - protocolID, err := p.ReadByte() - if err != nil { - return "", 0, -1, err - } - if protocolID != compactProtocolID { - return "", 0, -1, ProtocolError{"CompactProtocol", "invalid compact protocol ID"} - } - versionAndType, err := p.ReadByte() - if err != nil { - return "", 0, -1, err - } - version := versionAndType & compactVersionMask - if version != compactVersion { - return "", 0, -1, ProtocolError{"CompactProtocol", "invalid compact protocol version"} - } - msgType := (versionAndType >> compactTypeShiftAmount) & 0x03 - seqID, err := p.readUvarint() - if err != nil { - return "", 0, -1, err - } - msgName, err := p.ReadString() - if err != nil { - return "", 0, -1, err - } - return msgName, msgType, int32(seqID), nil -} - -// Read a struct begin. There's nothing on the wire for this, but it is our -// opportunity to push a new struct begin marker onto the field stack. -func (p *compactProtocolReader) ReadStructBegin() error { - p.structs = append(p.structs, p.lastFieldID) - p.lastFieldID = 0 - return nil -} - -// Doesn't actually consume any wire data, just removes the last field for -// this struct from the field stack. -func (p *compactProtocolReader) ReadStructEnd() error { - // consume the last field we read off the wire - p.lastFieldID = p.structs[len(p.structs)-1] - p.structs = p.structs[:len(p.structs)-1] - return nil -} - -// Read a field header off the wire. -func (p *compactProtocolReader) ReadFieldBegin() (byte, int16, error) { - compactType, err := p.ReadByte() - if err != nil { - return 0, -1, err - } - - // if it's a stop, then we can return immediately, as the struct is over - if (compactType & 0x0f) == ctStop { - return TypeStop, -1, nil - } - - // mask off the 4 MSB of the type header. it could contain a field id delta. - var fieldID int16 - modifier := int16((compactType & 0xf0) >> 4) - if modifier == 0 { - // not a delta. look ahead for the zigzag varint field id. - fieldID, err = p.ReadI16() - if err != nil { - return 0, fieldID, err - } - } else { - // has a delta. add the delta to the last read field id - fieldID = p.lastFieldID + modifier - } - - fieldType := compactTypeToThriftType[compactType&0x0f] - - // if this happens to be a boolean field, the value is encoded in the type - if fieldType == TypeBool { - // save the boolean value in a special instance variable. - p.boolValue = (compactType & 0x0f) == ctTrue - p.boolFid = fieldID - } - - // push the new field onto the field stack so we can keep the deltas going. - p.lastFieldID = fieldID - return fieldType, fieldID, nil -} - -// Read a map header off the wire. If the size is zero, skip reading the key -// and value type. This means that 0-length maps will yield TMaps without the -// "correct" types. -func (p *compactProtocolReader) ReadMapBegin() (byte, byte, int, error) { - size, err := p.readUvarint() - if err != nil { - return 0, 0, -1, err - } - keyAndValueType := byte(0) - if size > 0 { - keyAndValueType, err = p.ReadByte() - if err != nil { - return 0, 0, -1, err - } - } - return compactTypeToThriftType[keyAndValueType>>4], compactTypeToThriftType[keyAndValueType&0x0f], int(size), nil -} - -// Read a list header off the wire. If the list size is 0-14, the size will -// be packed into the element type header. If it's a longer list, the 4 MSB -// of the element type header will be 0xF, and a varint will follow with the -// true size. -func (p *compactProtocolReader) ReadListBegin() (byte, int, error) { - sizeAndType, err := p.ReadByte() - if err != nil { - return 0, -1, err - } - size := int((sizeAndType >> 4) & 0x0f) - if size == 15 { - s, err := p.readUvarint() - if err != nil { - return 0, -1, err - } - size = int(s) - } - return compactTypeToThriftType[sizeAndType&0x0f], size, nil -} - -// Read a set header off the wire. If the set size is 0-14, the size will -// be packed into the element type header. If it's a longer set, the 4 MSB -// of the element type header will be 0xF, and a varint will follow with the -// true size. -func (p *compactProtocolReader) ReadSetBegin() (byte, int, error) { - return p.ReadListBegin() -} - -// Read a boolean off the wire. If this is a boolean field, the value should -// already have been read during readFieldBegin, so we'll just consume the -// pre-stored value. Otherwise, read a byte. -func (p *compactProtocolReader) ReadBool() (bool, error) { - if p.boolFid < 0 { - v, err := p.ReadByte() - return v == ctTrue, err - } - - res := p.boolValue - p.boolFid = -1 - return res, nil -} - -// Read a single byte off the wire. Nothing interesting here. -func (p *compactProtocolReader) ReadByte() (byte, error) { - b := p.buf - _, err := io.ReadFull(p.r, b[:1]) - return b[0], err -} - -func (p *compactProtocolReader) ReadI16() (int16, error) { - v, err := p.readVarint() - return int16(v), err -} - -func (p *compactProtocolReader) ReadI32() (int32, error) { - v, err := p.readVarint() - return int32(v), err -} - -func (p *compactProtocolReader) ReadI64() (int64, error) { - v, err := p.readVarint() - return v, err -} - -func (p *compactProtocolReader) ReadDouble() (float64, error) { - b := p.buf - _, err := io.ReadFull(p.r, b[:8]) - value := math.Float64frombits(binary.BigEndian.Uint64(b)) - return value, err -} - -func (p *compactProtocolReader) ReadString() (string, error) { - ln, err := p.readUvarint() - if err != nil || ln == 0 { - return "", err - } else if ln < 0 { - return "", ProtocolError{"CompactProtocol", "negative length in CompactProtocol.ReadString"} - } - b := p.buf - if int(ln) > len(b) { - b = make([]byte, ln) - } else { - b = b[:ln] - } - if _, err := io.ReadFull(p.r, b); err != nil { - return "", err - } - return string(b), nil -} - -func (p *compactProtocolReader) ReadBytes() ([]byte, error) { - ln, err := p.readUvarint() - if err != nil || ln == 0 { - return nil, err - } else if ln < 0 { - return nil, ProtocolError{"CompactProtocol", "negative length in CompactProtocol.ReadBytes"} - } - b := make([]byte, ln) - if _, err := io.ReadFull(p.r, b); err != nil { - return nil, err - } - return b, nil -} - -func (p *compactProtocolReader) ReadMessageEnd() error { - return nil -} - -func (p *compactProtocolReader) ReadFieldEnd() error { - return nil -} - -func (p *compactProtocolReader) ReadMapEnd() error { - return nil -} - -func (p *compactProtocolReader) ReadListEnd() error { - return nil -} - -func (p *compactProtocolReader) ReadSetEnd() error { - return nil -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/protocol_text.go b/vendor/github.com/samuel/go-thrift/thrift/protocol_text.go deleted file mode 100644 index 3c18f559d48..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/protocol_text.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "errors" - "fmt" - "io" -) - -var ( - ErrUnimplemented = errors.New("thrift: unimplemented") -) - -type textProtocolWriter struct { - w io.Writer - indentation string -} - -func NewTextProtocolWriter(w io.Writer) ProtocolWriter { - return &textProtocolWriter{w: w} -} - -func (p *textProtocolWriter) indent() { - p.indentation += "\t" -} - -func (p *textProtocolWriter) unindent() { - p.indentation = p.indentation[:len(p.indentation)-1] -} - -func (p *textProtocolWriter) WriteMessageBegin(name string, messageType byte, seqid int32) error { - fmt.Fprintf(p.w, "%sMessageBegin(%s, %d, %.8x)\n", p.indentation, name, messageType, seqid) - p.indent() - return nil -} - -func (p *textProtocolWriter) WriteMessageEnd() error { - p.unindent() - fmt.Fprintf(p.w, "%sMessageEnd()\n", p.indentation) - return nil -} - -func (p *textProtocolWriter) WriteStructBegin(name string) error { - fmt.Fprintf(p.w, "%sStructBegin(%s)\n", p.indentation, name) - p.indent() - return nil -} - -func (p *textProtocolWriter) WriteStructEnd() error { - p.unindent() - fmt.Fprintf(p.w, "%sStructEnd()\n", p.indentation) - return nil -} - -func (p *textProtocolWriter) WriteFieldBegin(name string, fieldType byte, id int16) error { - fmt.Fprintf(p.w, "%sFieldBegin(%s, %d, %d)\n", p.indentation, name, fieldType, id) - p.indent() - return nil -} - -func (p *textProtocolWriter) WriteFieldEnd() error { - p.unindent() - fmt.Fprintf(p.w, "%sFieldEnd()\n", p.indentation) - return nil -} - -func (p *textProtocolWriter) WriteFieldStop() error { - fmt.Fprintf(p.w, "%sFieldStop()\n", p.indentation) - return nil -} - -func (p *textProtocolWriter) WriteMapBegin(keyType byte, valueType byte, size int) error { - fmt.Fprintf(p.w, "%sMapBegin(%d, %d, %d)\n", p.indentation, keyType, valueType, size) - p.indent() - return nil -} - -func (p *textProtocolWriter) WriteMapEnd() error { - p.unindent() - fmt.Fprintf(p.w, "%sMapEnd()\n", p.indentation) - return nil -} - -func (p *textProtocolWriter) WriteListBegin(elementType byte, size int) error { - fmt.Fprintf(p.w, "%sListBegin(%d, %d)\n", p.indentation, elementType, size) - p.indent() - return nil -} - -func (p *textProtocolWriter) WriteListEnd() error { - p.unindent() - fmt.Fprintf(p.w, "%sListEnd()\n", p.indentation) - return nil -} - -func (p *textProtocolWriter) WriteSetBegin(elementType byte, size int) error { - fmt.Fprintf(p.w, "%sSetBegin(%d, %d)\n", p.indentation, elementType, size) - p.indent() - return nil -} - -func (p *textProtocolWriter) WriteSetEnd() error { - p.unindent() - fmt.Fprintf(p.w, "%sSetEnd()\n", p.indentation) - return nil -} - -func (p *textProtocolWriter) WriteBool(value bool) error { - fmt.Fprintf(p.w, "%sBool(%+v)\n", p.indentation, value) - return nil -} - -func (p *textProtocolWriter) WriteByte(value byte) error { - fmt.Fprintf(p.w, "%sByte(%d)\n", p.indentation, value) - return nil -} - -func (p *textProtocolWriter) WriteI16(value int16) error { - fmt.Fprintf(p.w, "%sI16(%d)\n", p.indentation, value) - return nil -} - -func (p *textProtocolWriter) WriteI32(value int32) error { - fmt.Fprintf(p.w, "%sI32(%d)\n", p.indentation, value) - return nil -} - -func (p *textProtocolWriter) WriteI64(value int64) error { - fmt.Fprintf(p.w, "%sI64(%d)\n", p.indentation, value) - return nil -} - -func (p *textProtocolWriter) WriteDouble(value float64) error { - fmt.Fprintf(p.w, "%sDouble(%f)\n", p.indentation, value) - return nil -} - -func (p *textProtocolWriter) WriteString(value string) error { - fmt.Fprintf(p.w, "%sString(%s)\n", p.indentation, value) - return nil -} - -func (p *textProtocolWriter) WriteBytes(value []byte) error { - fmt.Fprintf(p.w, "%sBytes(%+v)\n", p.indentation, value) - return nil -} - -func (p *textProtocolWriter) ReadMessageBegin() (name string, messageType byte, seqid int32, err error) { - return "", 0, 0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadMessageEnd() error { - return ErrUnimplemented -} - -func (p *textProtocolWriter) ReadStructBegin() error { - return ErrUnimplemented -} - -func (p *textProtocolWriter) ReadStructEnd() error { - return ErrUnimplemented -} - -func (p *textProtocolWriter) ReadFieldBegin() (fieldType byte, id int16, err error) { - return 0, 0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadFieldEnd() error { - return ErrUnimplemented -} - -func (p *textProtocolWriter) ReadMapBegin() (keyType byte, valueType byte, size int, err error) { - return 0, 0, 0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadMapEnd() error { - return ErrUnimplemented -} - -func (p *textProtocolWriter) ReadListBegin() (elementType byte, size int, err error) { - return 0, 0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadListEnd() error { - return ErrUnimplemented -} - -func (p *textProtocolWriter) ReadSetBegin() (elementType byte, size int, err error) { - return 0, 0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadSetEnd() error { - return ErrUnimplemented -} - -func (p *textProtocolWriter) ReadBool() (bool, error) { - return false, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadByte() (byte, error) { - return 0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadI16() (int16, error) { - return 0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadI32() (int32, error) { - return 0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadI64() (int64, error) { - return 0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadDouble() (float64, error) { - return 0.0, ErrUnimplemented -} - -func (p *textProtocolWriter) ReadString() (string, error) { - return "", ErrUnimplemented -} - -func (p *textProtocolWriter) ReadBytes() ([]byte, error) { - return nil, ErrUnimplemented -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/server.go b/vendor/github.com/samuel/go-thrift/thrift/server.go deleted file mode 100644 index c4993c301f3..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/server.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "errors" - "io" - "net/rpc" - "strings" - "sync" -) - -type serverCodec struct { - conn Transport - nameCache map[string]string // incoming name -> registered name - methodName map[uint64]string // sequence ID -> method name - mu sync.Mutex -} - -// ServeConn runs the Thrift RPC server on a single connection. ServeConn blocks, -// serving the connection until the client hangs up. The caller typically invokes -// ServeConn in a go statement. -func ServeConn(conn Transport) { - rpc.ServeCodec(NewServerCodec(conn)) -} - -// NewServerCodec returns a new rpc.ServerCodec using Thrift RPC on conn using the specified protocol. -func NewServerCodec(conn Transport) rpc.ServerCodec { - return &serverCodec{ - conn: conn, - nameCache: make(map[string]string, 8), - methodName: make(map[uint64]string, 8), - } -} - -func (c *serverCodec) ReadRequestHeader(request *rpc.Request) error { - name, messageType, seq, err := c.conn.ReadMessageBegin() - if err != nil { - return err - } - if messageType != MessageTypeCall { // Currently don't support one way - return errors.New("thrift: expected Call message type") - } - - // TODO: should use a limited size cache for the nameCache to avoid a possible - // memory overflow from nefarious or broken clients - newName := c.nameCache[name] - if newName == "" { - newName = CamelCase(name) - if !strings.ContainsRune(newName, '.') { - newName = "Thrift." + newName - } - c.nameCache[name] = newName - } - - c.mu.Lock() - c.methodName[uint64(seq)] = name - c.mu.Unlock() - - request.ServiceMethod = newName - request.Seq = uint64(seq) - - return nil -} - -func (c *serverCodec) ReadRequestBody(thriftStruct interface{}) error { - if thriftStruct == nil { - if err := SkipValue(c.conn, TypeStruct); err != nil { - return err - } - } else { - if err := DecodeStruct(c.conn, thriftStruct); err != nil { - return err - } - } - return c.conn.ReadMessageEnd() -} - -func (c *serverCodec) WriteResponse(response *rpc.Response, thriftStruct interface{}) error { - c.mu.Lock() - methodName := c.methodName[response.Seq] - delete(c.methodName, response.Seq) - c.mu.Unlock() - response.ServiceMethod = methodName - - mtype := byte(MessageTypeReply) - if response.Error != "" { - mtype = MessageTypeException - etype := int32(ExceptionInternalError) - if strings.HasPrefix(response.Error, "rpc: can't find") { - etype = ExceptionUnknownMethod - } - thriftStruct = &ApplicationException{response.Error, etype} - } - if err := c.conn.WriteMessageBegin(response.ServiceMethod, mtype, int32(response.Seq)); err != nil { - return err - } - if err := EncodeStruct(c.conn, thriftStruct); err != nil { - return err - } - if err := c.conn.WriteMessageEnd(); err != nil { - return err - } - return c.conn.Flush() -} - -func (c *serverCodec) Close() error { - if cl, ok := c.conn.(io.Closer); ok { - return cl.Close() - } - return nil -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/thrift.go b/vendor/github.com/samuel/go-thrift/thrift/thrift.go deleted file mode 100644 index 6d688a36663..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/thrift.go +++ /dev/null @@ -1,414 +0,0 @@ -package thrift - -import ( - "errors" - "fmt" - "reflect" - "sync" -) - -// Type identifiers for serialized Thrift -const ( - TypeStop = 0 - TypeVoid = 1 - TypeBool = 2 - TypeByte = 3 - TypeI08 = 3 - TypeDouble = 4 - TypeI16 = 6 - TypeI32 = 8 - TypeI64 = 10 - TypeString = 11 - TypeUtf7 = 11 - TypeStruct = 12 - TypeMap = 13 - TypeSet = 14 - TypeList = 15 - TypeUtf8 = 16 - TypeUtf16 = 17 -) - -// Message types for RPC -const ( - MessageTypeCall = 1 - MessageTypeReply = 2 - MessageTypeException = 3 - MessageTypeOneway = 4 -) - -// Exception types for RPC responses -const ( - ExceptionUnknown = 0 - ExceptionUnknownMethod = 1 - ExceptionInvalidMessageType = 2 - ExceptionWrongMethodName = 3 - ExceptionBadSequenceID = 4 - ExceptionMissingResult = 5 - ExceptionInternalError = 6 - ExceptionProtocolError = 7 -) - -type MissingRequiredField struct { - StructName string - FieldName string -} - -func (e *MissingRequiredField) Error() string { - return "thrift: missing required field: " + e.StructName + "." + e.FieldName -} - -type UnsupportedTypeError struct { - Type reflect.Type -} - -func (e *UnsupportedTypeError) Error() string { - return "thrift: unsupported type: " + e.Type.String() -} - -type UnsupportedValueError struct { - Value reflect.Value - Str string -} - -func (e *UnsupportedValueError) Error() string { - return fmt.Sprintf("thrift: unsupported value (%+v): %s", e.Value, e.Str) -} - -// ApplicationException is an application level thrift exception -type ApplicationException struct { - Message string `thrift:"1"` - Type int32 `thrift:"2"` -} - -func (e *ApplicationException) String() string { - typeStr := "Unknown Exception" - switch e.Type { - case ExceptionUnknownMethod: - typeStr = "Unknown Method" - case ExceptionInvalidMessageType: - typeStr = "Invalid Message Type" - case ExceptionWrongMethodName: - typeStr = "Wrong Method Name" - case ExceptionBadSequenceID: - typeStr = "Bad Sequence ID" - case ExceptionMissingResult: - typeStr = "Missing Result" - case ExceptionInternalError: - typeStr = "Internal Error" - case ExceptionProtocolError: - typeStr = "Protocol Error" - } - return fmt.Sprintf("%s: %s", typeStr, e.Message) -} - -func fieldType(t reflect.Type) byte { - switch t.Kind() { - case reflect.Bool: - return TypeBool - case reflect.Int8, reflect.Uint8: - return TypeByte - case reflect.Int16: - return TypeI16 - case reflect.Int32, reflect.Uint32, reflect.Int: - return TypeI32 - case reflect.Int64, reflect.Uint64: - return TypeI64 - case reflect.Float64: - return TypeDouble - case reflect.Map: - valueType := t.Elem() - if valueType.Kind() == reflect.Struct && valueType.Name() == "" && valueType.NumField() == 0 { - return TypeSet - } - return TypeMap - case reflect.Slice: - elemType := t.Elem() - if elemType.Kind() == reflect.Uint8 { - return TypeString - } - return TypeList - case reflect.Struct: - return TypeStruct - case reflect.String: - return TypeString - case reflect.Interface, reflect.Ptr: - return fieldType(t.Elem()) - } - panic(&UnsupportedTypeError{t}) -} - -func isEmptyValue(v reflect.Value) bool { - switch v.Kind() { - case reflect.Array, reflect.Map, reflect.Slice: - return v.IsNil() - case reflect.String: - return v.Len() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - } - return false -} - -// encodeField contains information about how to encode a field of a -// struct. -type encodeField struct { - i int // field index in struct - id int - required bool - keepEmpty bool - fieldType byte - name string -} - -type structMeta struct { - required uint64 // bitmap of required fields - fields map[int]encodeField -} - -var ( - typeCacheLock sync.RWMutex - encodeFieldsCache = make(map[reflect.Type]structMeta) -) - -// encodeFields returns a slice of encodeField for a given -// struct type. -func encodeFields(t reflect.Type) structMeta { - typeCacheLock.RLock() - m, ok := encodeFieldsCache[t] - typeCacheLock.RUnlock() - if ok { - return m - } - - typeCacheLock.Lock() - defer typeCacheLock.Unlock() - m, ok = encodeFieldsCache[t] - if ok { - return m - } - - fs := make(map[int]encodeField) - m = structMeta{fields: fs} - v := reflect.Zero(t) - n := v.NumField() - for i := 0; i < n; i++ { - f := t.Field(i) - if f.PkgPath != "" { - continue - } - if f.Anonymous { - // We want to do a better job with these later, - // so for now pretend they don't exist. - continue - } - tv := f.Tag.Get("thrift") - if tv != "" { - var ef encodeField - ef.i = i - ef.id = 0 - - if tv == "-" { - continue - } - id, opts := parseTag(tv) - if id >= 64 { - // TODO: figure out a better way to deal with this - panic("thrift: field id must be < 64") - } - ef.id = id - ef.name = f.Name - ef.required = opts.Contains("required") - if ef.required { - m.required |= 1 << byte(id) - } - ef.keepEmpty = opts.Contains("keepempty") - if opts.Contains("set") { - ef.fieldType = TypeSet - } else { - ef.fieldType = fieldType(f.Type) - } - - fs[ef.id] = ef - } - } - encodeFieldsCache[t] = m - return m -} - -func SkipValue(r ProtocolReader, thriftType byte) error { - var err error - switch thriftType { - case TypeBool: - _, err = r.ReadBool() - case TypeByte: - _, err = r.ReadByte() - case TypeI16: - _, err = r.ReadI16() - case TypeI32: - _, err = r.ReadI32() - case TypeI64: - _, err = r.ReadI64() - case TypeDouble: - _, err = r.ReadDouble() - case TypeString: - _, err = r.ReadBytes() - case TypeStruct: - if err := r.ReadStructBegin(); err != nil { - return err - } - for { - ftype, _, err := r.ReadFieldBegin() - if err != nil { - return err - } - if ftype == TypeStop { - break - } - if err = SkipValue(r, ftype); err != nil { - return err - } - if err = r.ReadFieldEnd(); err != nil { - return err - } - } - return r.ReadStructEnd() - case TypeMap: - keyType, valueType, n, err := r.ReadMapBegin() - if err != nil { - return err - } - - for i := 0; i < n; i++ { - if err = SkipValue(r, keyType); err != nil { - return err - } - if err = SkipValue(r, valueType); err != nil { - return err - } - } - - return r.ReadMapEnd() - case TypeList: - valueType, n, err := r.ReadListBegin() - if err != nil { - return err - } - for i := 0; i < n; i++ { - if err = SkipValue(r, valueType); err != nil { - return err - } - } - return r.ReadListEnd() - case TypeSet: - valueType, n, err := r.ReadSetBegin() - if err != nil { - return err - } - for i := 0; i < n; i++ { - if err = SkipValue(r, valueType); err != nil { - return err - } - } - return r.ReadSetEnd() - } - return err -} - -func ReadValue(r ProtocolReader, thriftType byte) (interface{}, error) { - switch thriftType { - case TypeBool: - return r.ReadBool() - case TypeByte: - return r.ReadByte() - case TypeI16: - return r.ReadI16() - case TypeI32: - return r.ReadI32() - case TypeI64: - return r.ReadI64() - case TypeDouble: - return r.ReadDouble() - case TypeString: - return r.ReadString() - case TypeStruct: - if err := r.ReadStructBegin(); err != nil { - return nil, err - } - st := make(map[int]interface{}) - for { - ftype, id, err := r.ReadFieldBegin() - if err != nil { - return st, err - } - if ftype == TypeStop { - break - } - v, err := ReadValue(r, ftype) - if err != nil { - return st, err - } - st[int(id)] = v - if err = r.ReadFieldEnd(); err != nil { - return st, err - } - } - return st, r.ReadStructEnd() - case TypeMap: - keyType, valueType, n, err := r.ReadMapBegin() - if err != nil { - return nil, err - } - - mp := make(map[interface{}]interface{}) - for i := 0; i < n; i++ { - k, err := ReadValue(r, keyType) - if err != nil { - return mp, err - } - v, err := ReadValue(r, valueType) - if err != nil { - return mp, err - } - mp[k] = v - } - - return mp, r.ReadMapEnd() - case TypeList: - valueType, n, err := r.ReadListBegin() - if err != nil { - return nil, err - } - lst := make([]interface{}, 0) - for i := 0; i < n; i++ { - v, err := ReadValue(r, valueType) - if err != nil { - return lst, err - } - lst = append(lst, v) - } - return lst, r.ReadListEnd() - case TypeSet: - valueType, n, err := r.ReadSetBegin() - if err != nil { - return nil, err - } - set := make([]interface{}, 0) - for i := 0; i < n; i++ { - v, err := ReadValue(r, valueType) - if err != nil { - return set, err - } - set = append(set, v) - } - return set, r.ReadSetEnd() - } - return nil, errors.New("thrift: unknown type") -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/transport.go b/vendor/github.com/samuel/go-thrift/thrift/transport.go deleted file mode 100644 index d55c4a205bb..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/transport.go +++ /dev/null @@ -1,46 +0,0 @@ -package thrift - -import ( - "bufio" - "io" -) - -type Transport interface { - ProtocolReader - ProtocolWriter - io.Closer - Flusher -} - -type transport struct { - ProtocolReader - ProtocolWriter - io.Closer - f Flusher -} - -func NewTransport(rwc io.ReadWriteCloser, p ProtocolBuilder) Transport { - t := &transport{ - Closer: rwc, - } - if _, ok := rwc.(*FramedReadWriteCloser); ok { - t.ProtocolReader = p.NewProtocolReader(rwc) - t.ProtocolWriter = p.NewProtocolWriter(rwc) - if f, ok := rwc.(Flusher); ok { - t.f = f - } - } else { - w := bufio.NewWriter(rwc) - t.ProtocolWriter = p.NewProtocolWriter(w) - t.ProtocolReader = p.NewProtocolReader(bufio.NewReader(rwc)) - t.f = w - } - return t -} - -func (t *transport) Flush() error { - if t.f != nil { - return t.f.Flush() - } - return nil -} diff --git a/vendor/github.com/samuel/go-thrift/thrift/util.go b/vendor/github.com/samuel/go-thrift/thrift/util.go deleted file mode 100644 index 8cdd840385d..00000000000 --- a/vendor/github.com/samuel/go-thrift/thrift/util.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2012 Samuel Stauffer. All rights reserved. -// Use of this source code is governed by a 3-clause BSD -// license that can be found in the LICENSE file. - -package thrift - -import ( - "strings" - "unicode" -) - -// CamelCase returns the string converted to camel case (e.g. some_name to SomeName) -func CamelCase(s string) string { - prev := '_' - return strings.Map( - func(r rune) rune { - if r == '_' { - prev = r - return -1 - } - if prev == '_' { - prev = r - return unicode.ToUpper(r) - } - prev = r - return r - }, s) -} diff --git a/vendor/github.com/satori/go.uuid/uuid.go b/vendor/github.com/satori/go.uuid/uuid.go index 9c7fbaa54e6..295f3fc2c57 100644 --- a/vendor/github.com/satori/go.uuid/uuid.go +++ b/vendor/github.com/satori/go.uuid/uuid.go @@ -251,18 +251,12 @@ func (u *UUID) UnmarshalText(text []byte) (err error) { b := u[:] for i, byteGroup := range byteGroups { - if i > 0 && t[0] == '-' { - t = t[1:] - } else if i > 0 && t[0] != '-' { - err = fmt.Errorf("uuid: invalid string format") - return - } - - if i == 2 { - if !bytes.Contains([]byte("012345"), []byte{t[0]}) { - err = fmt.Errorf("uuid: invalid version number: %s", t[0]) + if i > 0 { + if t[0] != '-' { + err = fmt.Errorf("uuid: invalid string format") return } + t = t[1:] } if len(t) < byteGroup { @@ -272,12 +266,11 @@ func (u *UUID) UnmarshalText(text []byte) (err error) { if i == 4 && len(t) > byteGroup && ((braced && t[byteGroup] != '}') || len(t[byteGroup:]) > 1 || !braced) { - err = fmt.Errorf("uuid: UUID string too long: %s", t) + err = fmt.Errorf("uuid: UUID string too long: %s", text) return } _, err = hex.Decode(b[:byteGroup/2], t[:byteGroup]) - if err != nil { return } diff --git a/vendor/github.com/shirou/gopsutil/LICENSE b/vendor/github.com/shirou/gopsutil/LICENSE index 602b2c098e7..da71a5e729f 100644 --- a/vendor/github.com/shirou/gopsutil/LICENSE +++ b/vendor/github.com/shirou/gopsutil/LICENSE @@ -25,3 +25,37 @@ 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. + + +------- +internal/common/binary.go in the gopsutil is copied and modifid from golang/encoding/binary.go. + + + +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. \ No newline at end of file diff --git a/vendor/github.com/shirou/gopsutil/Makefile b/vendor/github.com/shirou/gopsutil/Makefile deleted file mode 100644 index b5dcc948187..00000000000 --- a/vendor/github.com/shirou/gopsutil/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -.PHONY: help check -.DEFAULT_GOAL := help - -SUBPKGS=cpu disk docker host internal load mem net process - -help: ## Show help - @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' - -check: ## Check - errcheck -ignore="Close|Run|Write" ./... - golint ./... | egrep -v 'underscores|HttpOnly|should have comment|comment on exported|CamelCase|VM|UID' - -build_test: ## test only buildable - GOOS=linux go test ./... | grep -v "exec format error" - GOOS=freebsd go test ./... | grep -v "exec format error" - CGO_ENABLED=0 GOOS=darwin go test ./... | grep -v "exec format error" - CGO_ENABLED=1 GOOS=darwin go test ./... | grep -v "exec format error" - GOOS=windows go test ./...| grep -v "exec format error" diff --git a/vendor/github.com/shirou/gopsutil/README.rst b/vendor/github.com/shirou/gopsutil/README.rst deleted file mode 100644 index b96fd5f4fa1..00000000000 --- a/vendor/github.com/shirou/gopsutil/README.rst +++ /dev/null @@ -1,293 +0,0 @@ -gopsutil: psutil for golang -============================== - -.. image:: https://circleci.com/gh/shirou/gopsutil.svg?&style=shield - :target: https://circleci.com/gh/shirou/gopsutil - -.. image:: https://coveralls.io/repos/shirou/gopsutil/badge.svg?branch=master - :target: https://coveralls.io/r/shirou/gopsutil?branch=master - -.. image:: https://godoc.org/github.com/shirou/gopsutil?status.svg - :target: http://godoc.org/github.com/shirou/gopsutil - -This is a port of psutil (http://pythonhosted.org/psutil/). The challenge is porting all -psutil functions on some architectures... - - -.. highlights:: Breaking Changes! - - Breaking changes is introduced at v2. See `issue 174 `_ . - - -Migrating to v2 -------------------------- - -On gopsutil itself, `v2migration.sh `_ is used for migration. It can not be commly used, but it may help to your migration. - - -Available Architectures ------------------------------------- - -- FreeBSD i386/amd64 -- Linux i386/amd64/arm(raspberry pi) -- Windows/amd64 -- Darwin/amd64 - -All works are implemented without cgo by porting c struct to golang struct. - - -Usage ---------- - -Note: gopsutil v2 breaks compatibility. If you want to stay with compatibility, please use v1 branch and vendoring. - -.. code:: go - - package main - - import ( - "fmt" - - "github.com/shirou/gopsutil/mem" - ) - - func main() { - v, _ := mem.VirtualMemory() - - // almost every return value is a struct - fmt.Printf("Total: %v, Free:%v, UsedPercent:%f%%\n", v.Total, v.Free, v.UsedPercent) - - // convert to JSON. String() is also implemented - fmt.Println(v) - } - -The output is below. - -:: - - Total: 3179569152, Free:284233728, UsedPercent:84.508194% - {"total":3179569152,"available":492572672,"used":2895335424,"usedPercent":84.50819439828305, (snip...)} - -You can set an alternative location to /proc by setting the HOST_PROC environment variable. -You can set an alternative location to /sys by setting the HOST_SYS environment variable. -You can set an alternative location to /etc by setting the HOST_ETC environment variable. - -Documentation ------------------------- - -see http://godoc.org/github.com/shirou/gopsutil - - -More Info --------------------- - -Several methods have been added which are not present in psutil, but will provide useful information. - -- host/HostInfo() (linux) - - - Hostname - - Uptime - - Procs - - OS (ex: "linux") - - Platform (ex: "ubuntu", "arch") - - PlatformFamily (ex: "debian") - - PlatformVersion (ex: "Ubuntu 13.10") - - VirtualizationSystem (ex: "LXC") - - VirtualizationRole (ex: "guest"/"host") - -- cpu/CPUInfo() (linux, freebsd) - - - CPU (ex: 0, 1, ...) - - VendorID (ex: "GenuineIntel") - - Family - - Model - - Stepping - - PhysicalID - - CoreID - - Cores (ex: 2) - - ModelName (ex: "Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz") - - Mhz - - CacheSize - - Flags (ex: "fpu vme de pse tsc msr pae mce cx8 ...") - -- load/LoadAvg() (linux, freebsd) - - - Load1 - - Load5 - - Load15 - -- docker/GetDockerIDList() (linux only) - - - container id list ([]string) - -- docker/CgroupCPU() (linux only) - - - user - - system - -- docker/CgroupMem() (linux only) - - - various status - -- net_protocols (linux only) - - - system wide stats on network protocols (i.e IP, TCP, UDP, etc.) - - sourced from /proc/net/snmp - -- iptables nf_conntrack (linux only) - - - system wide stats on netfilter conntrack module - - sourced from /proc/sys/net/netfilter/nf_conntrack_count - -Some codes are ported from Ohai. many thanks. - - -Current Status ------------------- - -- x: work -- b: almost work but something broken - -================= ====== ======= ====== ======= -name Linux FreeBSD MacOSX Windows -cpu_times x x x x -cpu_count x x x x -cpu_percent x x x x -cpu_times_percent x x x x -virtual_memory x x x x -swap_memory x x x -disk_partitions x x x x -disk_io_counters x x -disk_usage x x x x -net_io_counters x x b x -boot_time x x x x -users x x x x -pids x x x x -pid_exists x x x x -net_connections x x -net_protocols x -net_if_addrs -net_if_stats -netfilter_conntrack x -================= ====== ======= ====== ======= - -Process class -^^^^^^^^^^^^^^^ - -================ ===== ======= ====== ======= -name Linux FreeBSD MacOSX Windows -pid x x x x -ppid x x x x -name x x x x -cmdline x x x -create_time x -status x x x -cwd x -exe x x x -uids x x x -gids x x x -terminal x x x -io_counters x x -nice x x x x -num_fds x -num_ctx_switches x -num_threads x x x x -cpu_times x -memory_info x x x -memory_info_ex x -memory_maps x -open_files x -send_signal x x x -suspend x x x -resume x x x -terminate x x x -kill x x x -username x -ionice -rlimit -num_handlres -threads -cpu_percent x x -cpu_affinity -memory_percent -parent x x -children x x x -connections x x -is_running -================ ===== ======= ====== ======= - -Original Metrics -^^^^^^^^^^^^^^^^^^^ -================== ===== ======= ====== ======= -item Linux FreeBSD MacOSX Windows -**HostInfo** -hostname x x x x - uptime x x x - proces x x - os x x x x - platform x x x - platformfamiliy x x x - virtualization x -**CPU** - VendorID x x x x - Family x x x x - Model x x x x - Stepping x x x x - PhysicalID x - CoreID x - Cores x x - ModelName x x x x -**LoadAvg** - Load1 x x x - Load5 x x x - Load15 x x x -**GetDockerID** - container id x no no no -**CgroupsCPU** - user x no no no - system x no no no -**CgroupsMem** - various x no no no -================== ===== ======= ====== ======= - -- future work - - - process_iter - - wait_procs - - Process class - - - as_dict - - wait - - -License ------------- - -New BSD License (same as psutil) - - -Related Works ------------------------ - -I have been influenced by the following great works: - -- psutil: http://pythonhosted.org/psutil/ -- dstat: https://github.com/dagwieers/dstat -- gosigar: https://github.com/cloudfoundry/gosigar/ -- goprocinfo: https://github.com/c9s/goprocinfo -- go-ps: https://github.com/mitchellh/go-ps -- ohai: https://github.com/opscode/ohai/ -- bosun: https://github.com/bosun-monitor/bosun/tree/master/cmd/scollector/collectors -- mackerel: https://github.com/mackerelio/mackerel-agent/tree/master/metrics - -How to Contribute ---------------------------- - -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 - -My English is terrible, so documentation or correcting comments are also -welcome. diff --git a/vendor/github.com/shirou/gopsutil/coverall.sh b/vendor/github.com/shirou/gopsutil/coverall.sh deleted file mode 100644 index 35aa298ba41..00000000000 --- a/vendor/github.com/shirou/gopsutil/coverall.sh +++ /dev/null @@ -1,26 +0,0 @@ -#/bin/sh - -# see http://www.songmu.jp/riji/entry/2015-01-15-goveralls-multi-package.html - -set -e -# cleanup -cleanup() { - if [ $tmpprof != "" ] && [ -f $tmpprof ]; then - rm -f $tmpprof - fi - exit -} -trap cleanup INT QUIT TERM EXIT - -# メインã®å‡¦ç† -prof=${1:-".profile.cov"} -echo "mode: count" > $prof -gopath1=$(echo $GOPATH | cut -d: -f1) -for pkg in $(go list ./...); do - tmpprof=$gopath1/src/$pkg/profile.tmp - go test -covermode=count -coverprofile=$tmpprof $pkg - if [ -f $tmpprof ]; then - cat $tmpprof | tail -n +2 >> $prof - rm $tmpprof - fi -done diff --git a/vendor/github.com/shirou/gopsutil/cpu/cpu.go b/vendor/github.com/shirou/gopsutil/cpu/cpu.go deleted file mode 100644 index 71535094d48..00000000000 --- a/vendor/github.com/shirou/gopsutil/cpu/cpu.go +++ /dev/null @@ -1,76 +0,0 @@ -package cpu - -import ( - "encoding/json" - "runtime" - "strconv" - "strings" -) - -type TimesStat struct { - CPU string `json:"cpu"` - User float64 `json:"user"` - System float64 `json:"system"` - Idle float64 `json:"idle"` - Nice float64 `json:"nice"` - Iowait float64 `json:"iowait"` - Irq float64 `json:"irq"` - Softirq float64 `json:"softirq"` - Steal float64 `json:"steal"` - Guest float64 `json:"guest"` - GuestNice float64 `json:"guestNice"` - Stolen float64 `json:"stolen"` -} - -type InfoStat struct { - CPU int32 `json:"cpu"` - VendorID string `json:"vendorId"` - Family string `json:"family"` - Model string `json:"model"` - Stepping int32 `json:"stepping"` - PhysicalID string `json:"physicalId"` - CoreID string `json:"coreId"` - Cores int32 `json:"cores"` - ModelName string `json:"modelName"` - Mhz float64 `json:"mhz"` - CacheSize int32 `json:"cacheSize"` - Flags []string `json:"flags"` -} - -var lastCPUTimes []TimesStat -var lastPerCPUTimes []TimesStat - -func Counts(logical bool) (int, error) { - return runtime.NumCPU(), nil -} - -func (c TimesStat) String() string { - v := []string{ - `"cpu":"` + c.CPU + `"`, - `"user":` + strconv.FormatFloat(c.User, 'f', 1, 64), - `"system":` + strconv.FormatFloat(c.System, 'f', 1, 64), - `"idle":` + strconv.FormatFloat(c.Idle, 'f', 1, 64), - `"nice":` + strconv.FormatFloat(c.Nice, 'f', 1, 64), - `"iowait":` + strconv.FormatFloat(c.Iowait, 'f', 1, 64), - `"irq":` + strconv.FormatFloat(c.Irq, 'f', 1, 64), - `"softirq":` + strconv.FormatFloat(c.Softirq, 'f', 1, 64), - `"steal":` + strconv.FormatFloat(c.Steal, 'f', 1, 64), - `"guest":` + strconv.FormatFloat(c.Guest, 'f', 1, 64), - `"guestNice":` + strconv.FormatFloat(c.GuestNice, 'f', 1, 64), - `"stolen":` + strconv.FormatFloat(c.Stolen, 'f', 1, 64), - } - - return `{` + strings.Join(v, ",") + `}` -} - -// Total returns the total number of seconds in a CPUTimesStat -func (c TimesStat) Total() float64 { - total := c.User + c.System + c.Nice + c.Iowait + c.Irq + c.Softirq + c.Steal + - c.Guest + c.GuestNice + c.Idle + c.Stolen - return total -} - -func (c InfoStat) String() string { - s, _ := json.Marshal(c) - return string(s) -} diff --git a/vendor/github.com/shirou/gopsutil/cpu/cpu_darwin.go b/vendor/github.com/shirou/gopsutil/cpu/cpu_darwin.go deleted file mode 100644 index fbb74a821f1..00000000000 --- a/vendor/github.com/shirou/gopsutil/cpu/cpu_darwin.go +++ /dev/null @@ -1,106 +0,0 @@ -// +build darwin - -package cpu - -import ( - "os/exec" - "strconv" - "strings" -) - -// sys/resource.h -const ( - CPUser = 0 - CPNice = 1 - CPSys = 2 - CPIntr = 3 - CPIdle = 4 - CPUStates = 5 -) - -// default value. from time.h -var ClocksPerSec = float64(128) - -func Times(percpu bool) ([]TimesStat, error) { - if percpu { - return perCPUTimes() - } - - return allCPUTimes() -} - -// Returns only one CPUInfoStat on FreeBSD -func Info() ([]InfoStat, error) { - var ret []InfoStat - sysctl, err := exec.LookPath("/usr/sbin/sysctl") - if err != nil { - return ret, err - } - out, err := exec.Command(sysctl, "machdep.cpu").Output() - if err != nil { - return ret, err - } - - c := InfoStat{} - for _, line := range strings.Split(string(out), "\n") { - values := strings.Fields(line) - if len(values) < 1 { - continue - } - - t, err := strconv.ParseInt(values[1], 10, 64) - // err is not checked here because some value is string. - if strings.HasPrefix(line, "machdep.cpu.brand_string") { - c.ModelName = strings.Join(values[1:], " ") - } else if strings.HasPrefix(line, "machdep.cpu.family") { - c.Family = values[1] - } else if strings.HasPrefix(line, "machdep.cpu.model") { - c.Model = values[1] - } else if strings.HasPrefix(line, "machdep.cpu.stepping") { - if err != nil { - return ret, err - } - c.Stepping = int32(t) - } else if strings.HasPrefix(line, "machdep.cpu.features") { - for _, v := range values[1:] { - c.Flags = append(c.Flags, strings.ToLower(v)) - } - } else if strings.HasPrefix(line, "machdep.cpu.leaf7_features") { - for _, v := range values[1:] { - c.Flags = append(c.Flags, strings.ToLower(v)) - } - } else if strings.HasPrefix(line, "machdep.cpu.extfeatures") { - for _, v := range values[1:] { - c.Flags = append(c.Flags, strings.ToLower(v)) - } - } else if strings.HasPrefix(line, "machdep.cpu.core_count") { - if err != nil { - return ret, err - } - c.Cores = int32(t) - } else if strings.HasPrefix(line, "machdep.cpu.cache.size") { - if err != nil { - return ret, err - } - c.CacheSize = int32(t) - } else if strings.HasPrefix(line, "machdep.cpu.vendor") { - c.VendorID = values[1] - } - } - - // Use the rated frequency of the CPU. This is a static value and does not - // account for low power or Turbo Boost modes. - out, err = exec.Command(sysctl, "hw.cpufrequency").Output() - if err != nil { - return ret, err - } - - values := strings.Fields(string(out)) - mhz, err := strconv.ParseFloat(values[1], 64) - if err != nil { - return ret, err - } - c.Mhz = mhz / 1000000.0 - - return append(ret, c), nil -} diff --git a/vendor/github.com/shirou/gopsutil/cpu/cpu_darwin_cgo.go b/vendor/github.com/shirou/gopsutil/cpu/cpu_darwin_cgo.go deleted file mode 100644 index ee59fefc06a..00000000000 --- a/vendor/github.com/shirou/gopsutil/cpu/cpu_darwin_cgo.go +++ /dev/null @@ -1,107 +0,0 @@ -// +build darwin -// +build cgo - -package cpu - -/* -#include -#include -#include -#include -#include -#include -#include -#include -#include -*/ -import "C" - -import ( - "bytes" - "encoding/binary" - "fmt" - "unsafe" -) - -// these CPU times for darwin is borrowed from influxdb/telegraf. - -func perCPUTimes() ([]TimesStat, error) { - var ( - count C.mach_msg_type_number_t - cpuload *C.processor_cpu_load_info_data_t - ncpu C.natural_t - ) - - status := C.host_processor_info(C.host_t(C.mach_host_self()), - C.PROCESSOR_CPU_LOAD_INFO, - &ncpu, - (*C.processor_info_array_t)(unsafe.Pointer(&cpuload)), - &count) - - if status != C.KERN_SUCCESS { - return nil, fmt.Errorf("host_processor_info error=%d", status) - } - - // jump through some cgo casting hoops and ensure we properly free - // the memory that cpuload points to - target := C.vm_map_t(C.mach_task_self_) - address := C.vm_address_t(uintptr(unsafe.Pointer(cpuload))) - defer C.vm_deallocate(target, address, C.vm_size_t(ncpu)) - - // the body of struct processor_cpu_load_info - // aka processor_cpu_load_info_data_t - var cpu_ticks [C.CPU_STATE_MAX]uint32 - - // copy the cpuload array to a []byte buffer - // where we can binary.Read the data - size := int(ncpu) * binary.Size(cpu_ticks) - buf := C.GoBytes(unsafe.Pointer(cpuload), C.int(size)) - - bbuf := bytes.NewBuffer(buf) - - var ret []TimesStat - - for i := 0; i < int(ncpu); i++ { - err := binary.Read(bbuf, binary.LittleEndian, &cpu_ticks) - if err != nil { - return nil, err - } - - c := TimesStat{ - CPU: fmt.Sprintf("cpu%d", i), - User: float64(cpu_ticks[C.CPU_STATE_USER]) / ClocksPerSec, - System: float64(cpu_ticks[C.CPU_STATE_SYSTEM]) / ClocksPerSec, - Nice: float64(cpu_ticks[C.CPU_STATE_NICE]) / ClocksPerSec, - Idle: float64(cpu_ticks[C.CPU_STATE_IDLE]) / ClocksPerSec, - } - - ret = append(ret, c) - } - - return ret, nil -} - -func allCPUTimes() ([]TimesStat, error) { - var count C.mach_msg_type_number_t = C.HOST_CPU_LOAD_INFO_COUNT - var cpuload C.host_cpu_load_info_data_t - - status := C.host_statistics(C.host_t(C.mach_host_self()), - C.HOST_CPU_LOAD_INFO, - C.host_info_t(unsafe.Pointer(&cpuload)), - &count) - - if status != C.KERN_SUCCESS { - return nil, fmt.Errorf("host_statistics error=%d", status) - } - - c := TimesStat{ - CPU: "cpu-total", - User: float64(cpuload.cpu_ticks[C.CPU_STATE_USER]) / ClocksPerSec, - System: float64(cpuload.cpu_ticks[C.CPU_STATE_SYSTEM]) / ClocksPerSec, - Nice: float64(cpuload.cpu_ticks[C.CPU_STATE_NICE]) / ClocksPerSec, - Idle: float64(cpuload.cpu_ticks[C.CPU_STATE_IDLE]) / ClocksPerSec, - } - - return []TimesStat{c}, nil - -} diff --git a/vendor/github.com/shirou/gopsutil/cpu/cpu_darwin_nocgo.go b/vendor/github.com/shirou/gopsutil/cpu/cpu_darwin_nocgo.go deleted file mode 100644 index 242b4a8e799..00000000000 --- a/vendor/github.com/shirou/gopsutil/cpu/cpu_darwin_nocgo.go +++ /dev/null @@ -1,14 +0,0 @@ -// +build darwin -// +build !cgo - -package cpu - -import "github.com/shirou/gopsutil/internal/common" - -func perCPUTimes() ([]TimesStat, error) { - return []TimesStat{}, common.ErrNotImplementedError -} - -func allCPUTimes() ([]TimesStat, error) { - return []TimesStat{}, common.ErrNotImplementedError -} diff --git a/vendor/github.com/shirou/gopsutil/cpu/cpu_freebsd.go b/vendor/github.com/shirou/gopsutil/cpu/cpu_freebsd.go deleted file mode 100644 index ce1adf3c16d..00000000000 --- a/vendor/github.com/shirou/gopsutil/cpu/cpu_freebsd.go +++ /dev/null @@ -1,147 +0,0 @@ -// +build freebsd - -package cpu - -import ( - "fmt" - "os/exec" - "regexp" - "strconv" - "strings" - - "github.com/shirou/gopsutil/internal/common" -) - -// sys/resource.h -const ( - CPUser = 0 - CPNice = 1 - CPSys = 2 - CPIntr = 3 - CPIdle = 4 - CPUStates = 5 -) - -var ClocksPerSec = float64(128) - -func init() { - getconf, err := exec.LookPath("/usr/bin/getconf") - if err != nil { - return - } - out, err := exec.Command(getconf, "CLK_TCK").Output() - // ignore errors - if err == nil { - i, err := strconv.ParseFloat(strings.TrimSpace(string(out)), 64) - if err == nil { - ClocksPerSec = float64(i) - } - } -} - -func Times(percpu bool) ([]TimesStat, error) { - var ret []TimesStat - - var sysctlCall string - var ncpu int - if percpu { - sysctlCall = "kern.cp_times" - ncpu, _ = Counts(true) - } else { - sysctlCall = "kern.cp_time" - ncpu = 1 - } - - cpuTimes, err := common.DoSysctrl(sysctlCall) - if err != nil { - return ret, err - } - - for i := 0; i < ncpu; i++ { - offset := CPUStates * i - user, err := strconv.ParseFloat(cpuTimes[CPUser+offset], 64) - if err != nil { - return ret, err - } - nice, err := strconv.ParseFloat(cpuTimes[CPNice+offset], 64) - if err != nil { - return ret, err - } - sys, err := strconv.ParseFloat(cpuTimes[CPSys+offset], 64) - if err != nil { - return ret, err - } - idle, err := strconv.ParseFloat(cpuTimes[CPIdle+offset], 64) - if err != nil { - return ret, err - } - intr, err := strconv.ParseFloat(cpuTimes[CPIntr+offset], 64) - if err != nil { - return ret, err - } - - c := TimesStat{ - User: float64(user / ClocksPerSec), - Nice: float64(nice / ClocksPerSec), - System: float64(sys / ClocksPerSec), - Idle: float64(idle / ClocksPerSec), - Irq: float64(intr / ClocksPerSec), - } - if !percpu { - c.CPU = "cpu-total" - } else { - c.CPU = fmt.Sprintf("cpu%d", i) - } - - ret = append(ret, c) - } - - return ret, nil -} - -// Returns only one CPUInfoStat on FreeBSD -func Info() ([]InfoStat, error) { - filename := "/var/run/dmesg.boot" - lines, _ := common.ReadLines(filename) - - var ret []InfoStat - - c := InfoStat{} - for _, line := range lines { - if matches := regexp.MustCompile(`CPU:\s+(.+) \(([\d.]+).+\)`).FindStringSubmatch(line); matches != nil { - c.ModelName = matches[1] - t, err := strconv.ParseFloat(matches[2], 64) - if err != nil { - return ret, nil - } - c.Mhz = t - } else if matches := regexp.MustCompile(`Origin = "(.+)" Id = (.+) Family = (.+) Model = (.+) Stepping = (.+)`).FindStringSubmatch(line); matches != nil { - c.VendorID = matches[1] - c.Family = matches[3] - c.Model = matches[4] - t, err := strconv.ParseInt(matches[5], 10, 32) - if err != nil { - return ret, nil - } - c.Stepping = int32(t) - } else if matches := regexp.MustCompile(`Features=.+<(.+)>`).FindStringSubmatch(line); matches != nil { - for _, v := range strings.Split(matches[1], ",") { - c.Flags = append(c.Flags, strings.ToLower(v)) - } - } else if matches := regexp.MustCompile(`Features2=[a-f\dx]+<(.+)>`).FindStringSubmatch(line); matches != nil { - for _, v := range strings.Split(matches[1], ",") { - c.Flags = append(c.Flags, strings.ToLower(v)) - } - } else if matches := regexp.MustCompile(`Logical CPUs per core: (\d+)`).FindStringSubmatch(line); matches != nil { - // FIXME: no this line? - t, err := strconv.ParseInt(matches[1], 10, 32) - if err != nil { - return ret, nil - } - c.Cores = int32(t) - } - - } - - return append(ret, c), nil -} diff --git a/vendor/github.com/shirou/gopsutil/cpu/cpu_linux.go b/vendor/github.com/shirou/gopsutil/cpu/cpu_linux.go deleted file mode 100644 index f7cf4c3649a..00000000000 --- a/vendor/github.com/shirou/gopsutil/cpu/cpu_linux.go +++ /dev/null @@ -1,244 +0,0 @@ -// +build linux - -package cpu - -import ( - "errors" - "fmt" - "os/exec" - "strconv" - "strings" - - "github.com/shirou/gopsutil/internal/common" -) - -var cpu_tick = float64(100) - -func init() { - getconf, err := exec.LookPath("/usr/bin/getconf") - if err != nil { - return - } - out, err := exec.Command(getconf, "CLK_TCK").Output() - // ignore errors - if err == nil { - i, err := strconv.ParseFloat(strings.TrimSpace(string(out)), 64) - if err == nil { - cpu_tick = float64(i) - } - } -} - -func Times(percpu bool) ([]TimesStat, error) { - filename := common.HostProc("stat") - var lines = []string{} - if percpu { - var startIdx uint = 1 - for { - linen, _ := common.ReadLinesOffsetN(filename, startIdx, 1) - line := linen[0] - if !strings.HasPrefix(line, "cpu") { - break - } - lines = append(lines, line) - startIdx++ - } - } else { - lines, _ = common.ReadLinesOffsetN(filename, 0, 1) - } - - ret := make([]TimesStat, 0, len(lines)) - - for _, line := range lines { - ct, err := parseStatLine(line) - if err != nil { - continue - } - ret = append(ret, *ct) - - } - return ret, nil -} - -func sysCPUPath(cpu int32, relPath string) string { - return common.HostSys(fmt.Sprintf("devices/system/cpu/cpu%d", cpu), relPath) -} - -func finishCPUInfo(c *InfoStat) error { - if c.Mhz == 0 { - lines, err := common.ReadLines(sysCPUPath(c.CPU, "cpufreq/cpuinfo_max_freq")) - if err == nil { - value, err := strconv.ParseFloat(lines[0], 64) - if err != nil { - return err - } - c.Mhz = value - } - } - if len(c.CoreID) == 0 { - lines, err := common.ReadLines(sysCPUPath(c.CPU, "topology/coreId")) - if err == nil { - c.CoreID = lines[0] - } - } - return nil -} - -// CPUInfo on linux will return 1 item per physical thread. -// -// CPUs have three levels of counting: sockets, cores, threads. -// Cores with HyperThreading count as having 2 threads per core. -// Sockets often come with many physical CPU cores. -// For example a single socket board with two cores each with HT will -// return 4 CPUInfoStat structs on Linux and the "Cores" field set to 1. -func Info() ([]InfoStat, error) { - filename := common.HostProc("cpuinfo") - lines, _ := common.ReadLines(filename) - - var ret []InfoStat - - c := InfoStat{CPU: -1, Cores: 1} - for _, line := range lines { - fields := strings.Split(line, ":") - if len(fields) < 2 { - continue - } - key := strings.TrimSpace(fields[0]) - value := strings.TrimSpace(fields[1]) - - switch key { - case "processor": - if c.CPU >= 0 { - err := finishCPUInfo(&c) - if err != nil { - return ret, err - } - ret = append(ret, c) - } - c = InfoStat{Cores: 1} - t, err := strconv.ParseInt(value, 10, 64) - if err != nil { - return ret, err - } - c.CPU = int32(t) - case "vendorId": - c.VendorID = value - case "cpu family": - c.Family = value - case "model": - c.Model = value - case "model name": - c.ModelName = value - case "stepping": - t, err := strconv.ParseInt(value, 10, 64) - if err != nil { - return ret, err - } - c.Stepping = int32(t) - case "cpu MHz": - t, err := strconv.ParseFloat(value, 64) - if err != nil { - return ret, err - } - c.Mhz = t - case "cache size": - t, err := strconv.ParseInt(strings.Replace(value, " KB", "", 1), 10, 64) - if err != nil { - return ret, err - } - c.CacheSize = int32(t) - case "physical id": - c.PhysicalID = value - case "core id": - c.CoreID = value - case "flags", "Features": - c.Flags = strings.FieldsFunc(value, func(r rune) bool { - return r == ',' || r == ' ' - }) - } - } - if c.CPU >= 0 { - err := finishCPUInfo(&c) - if err != nil { - return ret, err - } - ret = append(ret, c) - } - return ret, nil -} - -func parseStatLine(line string) (*TimesStat, error) { - fields := strings.Fields(line) - - if strings.HasPrefix(fields[0], "cpu") == false { - // return CPUTimesStat{}, e - return nil, errors.New("not contain cpu") - } - - cpu := fields[0] - if cpu == "cpu" { - cpu = "cpu-total" - } - user, err := strconv.ParseFloat(fields[1], 64) - if err != nil { - return nil, err - } - nice, err := strconv.ParseFloat(fields[2], 64) - if err != nil { - return nil, err - } - system, err := strconv.ParseFloat(fields[3], 64) - if err != nil { - return nil, err - } - idle, err := strconv.ParseFloat(fields[4], 64) - if err != nil { - return nil, err - } - iowait, err := strconv.ParseFloat(fields[5], 64) - if err != nil { - return nil, err - } - irq, err := strconv.ParseFloat(fields[6], 64) - if err != nil { - return nil, err - } - softirq, err := strconv.ParseFloat(fields[7], 64) - if err != nil { - return nil, err - } - - ct := &TimesStat{ - CPU: cpu, - User: float64(user) / cpu_tick, - Nice: float64(nice) / cpu_tick, - System: float64(system) / cpu_tick, - Idle: float64(idle) / cpu_tick, - Iowait: float64(iowait) / cpu_tick, - Irq: float64(irq) / cpu_tick, - Softirq: float64(softirq) / cpu_tick, - } - if len(fields) > 8 { // Linux >= 2.6.11 - steal, err := strconv.ParseFloat(fields[8], 64) - if err != nil { - return nil, err - } - ct.Steal = float64(steal) / cpu_tick - } - if len(fields) > 9 { // Linux >= 2.6.24 - guest, err := strconv.ParseFloat(fields[9], 64) - if err != nil { - return nil, err - } - ct.Guest = float64(guest) / cpu_tick - } - if len(fields) > 10 { // Linux >= 3.2.0 - guestNice, err := strconv.ParseFloat(fields[10], 64) - if err != nil { - return nil, err - } - ct.GuestNice = float64(guestNice) / cpu_tick - } - - return ct, nil -} diff --git a/vendor/github.com/shirou/gopsutil/cpu/cpu_unix.go b/vendor/github.com/shirou/gopsutil/cpu/cpu_unix.go deleted file mode 100644 index 9f1ea4d772a..00000000000 --- a/vendor/github.com/shirou/gopsutil/cpu/cpu_unix.go +++ /dev/null @@ -1,59 +0,0 @@ -// +build linux freebsd darwin - -package cpu - -import ( - "fmt" - "time" -) - -func Percent(interval time.Duration, percpu bool) ([]float64, error) { - getAllBusy := func(t TimesStat) (float64, float64) { - busy := t.User + t.System + t.Nice + t.Iowait + t.Irq + - t.Softirq + t.Steal + t.Guest + t.GuestNice + t.Stolen - return busy + t.Idle, busy - } - - calculate := func(t1, t2 TimesStat) float64 { - t1All, t1Busy := getAllBusy(t1) - t2All, t2Busy := getAllBusy(t2) - - if t2Busy <= t1Busy { - return 0 - } - if t2All <= t1All { - return 1 - } - return (t2Busy - t1Busy) / (t2All - t1All) * 100 - } - - // Get CPU usage at the start of the interval. - cpuTimes1, err := Times(percpu) - if err != nil { - return nil, err - } - - if interval > 0 { - time.Sleep(interval) - } - - // And at the end of the interval. - cpuTimes2, err := Times(percpu) - if err != nil { - return nil, err - } - - // Make sure the CPU measurements have the same length. - if len(cpuTimes1) != len(cpuTimes2) { - return nil, fmt.Errorf( - "received two CPU counts: %d != %d", - len(cpuTimes1), len(cpuTimes2), - ) - } - - ret := make([]float64, len(cpuTimes1)) - for i, t := range cpuTimes2 { - ret[i] = calculate(cpuTimes1[i], t) - } - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/cpu/cpu_windows.go b/vendor/github.com/shirou/gopsutil/cpu/cpu_windows.go deleted file mode 100644 index fbd25e6057d..00000000000 --- a/vendor/github.com/shirou/gopsutil/cpu/cpu_windows.go +++ /dev/null @@ -1,105 +0,0 @@ -// +build windows - -package cpu - -import ( - "fmt" - "syscall" - "time" - "unsafe" - - "github.com/StackExchange/wmi" - - "github.com/shirou/gopsutil/internal/common" -) - -type Win32_Processor struct { - LoadPercentage *uint16 - Family uint16 - Manufacturer string - Name string - NumberOfLogicalProcessors uint32 - ProcessorID *string - Stepping *string - MaxClockSpeed uint32 -} - -// TODO: Get percpu -func Times(percpu bool) ([]TimesStat, error) { - var ret []TimesStat - - var lpIdleTime common.FILETIME - var lpKernelTime common.FILETIME - var lpUserTime common.FILETIME - r, _, _ := common.ProcGetSystemTimes.Call( - uintptr(unsafe.Pointer(&lpIdleTime)), - uintptr(unsafe.Pointer(&lpKernelTime)), - uintptr(unsafe.Pointer(&lpUserTime))) - if r == 0 { - return ret, syscall.GetLastError() - } - - LOT := float64(0.0000001) - HIT := (LOT * 4294967296.0) - idle := ((HIT * float64(lpIdleTime.DwHighDateTime)) + (LOT * float64(lpIdleTime.DwLowDateTime))) - user := ((HIT * float64(lpUserTime.DwHighDateTime)) + (LOT * float64(lpUserTime.DwLowDateTime))) - kernel := ((HIT * float64(lpKernelTime.DwHighDateTime)) + (LOT * float64(lpKernelTime.DwLowDateTime))) - system := (kernel - idle) - - ret = append(ret, TimesStat{ - Idle: float64(idle), - User: float64(user), - System: float64(system), - }) - return ret, nil -} - -func Info() ([]InfoStat, error) { - var ret []InfoStat - var dst []Win32_Processor - q := wmi.CreateQuery(&dst, "") - err := wmi.Query(q, &dst) - if err != nil { - return ret, err - } - - var procID string - for i, l := range dst { - procID = "" - if l.ProcessorID != nil { - procID = *l.ProcessorID - } - - cpu := InfoStat{ - CPU: int32(i), - Family: fmt.Sprintf("%d", l.Family), - VendorID: l.Manufacturer, - ModelName: l.Name, - Cores: int32(l.NumberOfLogicalProcessors), - PhysicalID: procID, - Mhz: float64(l.MaxClockSpeed), - Flags: []string{}, - } - ret = append(ret, cpu) - } - - return ret, nil -} - -func Percent(interval time.Duration, percpu bool) ([]float64, error) { - var ret []float64 - var dst []Win32_Processor - q := wmi.CreateQuery(&dst, "") - err := wmi.Query(q, &dst) - if err != nil { - return ret, err - } - for _, l := range dst { - // use range but windows can only get one percent. - if l.LoadPercentage == nil { - continue - } - ret = append(ret, float64(*l.LoadPercentage)) - } - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/disk/disk.go b/vendor/github.com/shirou/gopsutil/disk/disk.go index b187a1db054..a2c47204d75 100644 --- a/vendor/github.com/shirou/gopsutil/disk/disk.go +++ b/vendor/github.com/shirou/gopsutil/disk/disk.go @@ -2,8 +2,16 @@ package disk import ( "encoding/json" + + "github.com/shirou/gopsutil/internal/common" ) +var invoke common.Invoker + +func init() { + invoke = common.Invoke{} +} + type UsageStat struct { Path string `json:"path"` Fstype string `json:"fstype"` @@ -25,15 +33,19 @@ type PartitionStat struct { } type IOCountersStat struct { - ReadCount uint64 `json:"readCount"` - WriteCount uint64 `json:"writeCount"` - ReadBytes uint64 `json:"readBytes"` - WriteBytes uint64 `json:"writeBytes"` - ReadTime uint64 `json:"readTime"` - WriteTime uint64 `json:"writeTime"` - Name string `json:"name"` - IoTime uint64 `json:"ioTime"` - SerialNumber string `json:"serialNumber"` + ReadCount uint64 `json:"readCount"` + MergedReadCount uint64 `json:"mergedReadCount"` + WriteCount uint64 `json:"writeCount"` + MergedWriteCount uint64 `json:"mergedWriteCount"` + ReadBytes uint64 `json:"readBytes"` + WriteBytes uint64 `json:"writeBytes"` + ReadTime uint64 `json:"readTime"` + WriteTime uint64 `json:"writeTime"` + IopsInProgress uint64 `json:"iopsInProgress"` + IoTime uint64 `json:"ioTime"` + WeightedIO uint64 `json:"weightedIO"` + Name string `json:"name"` + SerialNumber string `json:"serialNumber"` } func (d UsageStat) String() string { diff --git a/vendor/github.com/shirou/gopsutil/disk/disk_darwin.go b/vendor/github.com/shirou/gopsutil/disk/disk_darwin.go index 83a733b6c4a..1ccb3303194 100644 --- a/vendor/github.com/shirou/gopsutil/disk/disk_darwin.go +++ b/vendor/github.com/shirou/gopsutil/disk/disk_darwin.go @@ -3,6 +3,7 @@ package disk import ( + "path" "syscall" "unsafe" @@ -74,6 +75,12 @@ func Partitions(all bool) ([]PartitionStat, error) { Fstype: common.IntToString(stat.Fstypename[:]), Opts: opts, } + if all == false { + if !path.IsAbs(d.Device) || !common.PathExists(d.Device) { + continue + } + } + ret = append(ret, d) } diff --git a/vendor/github.com/shirou/gopsutil/disk/disk_darwin_arm64.go b/vendor/github.com/shirou/gopsutil/disk/disk_darwin_arm64.go new file mode 100644 index 00000000000..52bcf4c8a9b --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/disk/disk_darwin_arm64.go @@ -0,0 +1,58 @@ +// +build darwin +// +build arm64 + +package disk + +const ( + MntWait = 1 + MfsNameLen = 15 /* length of fs type name, not inc. nul */ + MNameLen = 90 /* length of buffer for returned name */ + + MFSTYPENAMELEN = 16 /* length of fs type name including null */ + MAXPATHLEN = 1024 + MNAMELEN = MAXPATHLEN + + SYS_GETFSSTAT64 = 347 +) + +type Fsid struct{ val [2]int32 } /* file system id type */ +type uid_t int32 + +// sys/mount.h +const ( + MntReadOnly = 0x00000001 /* read only filesystem */ + MntSynchronous = 0x00000002 /* filesystem written synchronously */ + MntNoExec = 0x00000004 /* can't exec from filesystem */ + MntNoSuid = 0x00000008 /* don't honor setuid bits on fs */ + MntUnion = 0x00000020 /* union with underlying filesystem */ + MntAsync = 0x00000040 /* filesystem written asynchronously */ + MntSuidDir = 0x00100000 /* special handling of SUID on dirs */ + MntSoftDep = 0x00200000 /* soft updates being done */ + MntNoSymFollow = 0x00400000 /* do not follow symlinks */ + MntGEOMJournal = 0x02000000 /* GEOM journal support enabled */ + MntMultilabel = 0x04000000 /* MAC support for individual objects */ + MntACLs = 0x08000000 /* ACL support enabled */ + MntNoATime = 0x10000000 /* disable update of file access time */ + MntClusterRead = 0x40000000 /* disable cluster read */ + MntClusterWrite = 0x80000000 /* disable cluster write */ + MntNFS4ACLs = 0x00000010 +) + +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 +} diff --git a/vendor/github.com/shirou/gopsutil/disk/disk_fallback.go b/vendor/github.com/shirou/gopsutil/disk/disk_fallback.go new file mode 100644 index 00000000000..6fb01a986c0 --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/disk/disk_fallback.go @@ -0,0 +1,17 @@ +// +build !darwin,!linux,!freebsd,!openbsd,!windows + +package disk + +import "github.com/shirou/gopsutil/internal/common" + +func IOCounters() (map[string]IOCountersStat, error) { + return nil, common.ErrNotImplementedError +} + +func Partitions(all bool) ([]PartitionStat, error) { + return []PartitionStat{}, common.ErrNotImplementedError +} + +func Usage(path string) (*UsageStat, error) { + return nil, common.ErrNotImplementedError +} diff --git a/vendor/github.com/shirou/gopsutil/disk/disk_freebsd.go b/vendor/github.com/shirou/gopsutil/disk/disk_freebsd.go index 4ec2d6eaf73..6e76f31f274 100644 --- a/vendor/github.com/shirou/gopsutil/disk/disk_freebsd.go +++ b/vendor/github.com/shirou/gopsutil/disk/disk_freebsd.go @@ -5,6 +5,7 @@ package disk import ( "bytes" "encoding/binary" + "path" "strconv" "syscall" "unsafe" @@ -81,6 +82,12 @@ func Partitions(all bool) ([]PartitionStat, error) { Fstype: common.IntToString(stat.Fstypename[:]), Opts: opts, } + if all == false { + if !path.IsAbs(d.Device) || !common.PathExists(d.Device) { + continue + } + } + ret = append(ret, d) } @@ -117,8 +124,9 @@ func IOCounters() (map[string]IOCountersStat, error) { WriteCount: d.Operations[DEVSTAT_WRITE], ReadBytes: d.Bytes[DEVSTAT_READ], WriteBytes: d.Bytes[DEVSTAT_WRITE], - ReadTime: d.Duration[DEVSTAT_READ].Compute(), - WriteTime: d.Duration[DEVSTAT_WRITE].Compute(), + ReadTime: uint64(d.Duration[DEVSTAT_READ].Compute() * 1000), + WriteTime: uint64(d.Duration[DEVSTAT_WRITE].Compute() * 1000), + IoTime: uint64(d.Busy_time.Compute() * 1000), Name: name, } ret[name] = ds @@ -127,9 +135,9 @@ func IOCounters() (map[string]IOCountersStat, error) { return ret, nil } -func (b Bintime) Compute() uint64 { +func (b Bintime) Compute() float64 { BINTIME_SCALE := 5.42101086242752217003726400434970855712890625e-20 - return uint64(b.Sec) + b.Frac*uint64(BINTIME_SCALE) + return float64(b.Sec) + float64(b.Frac)*BINTIME_SCALE } // BT2LD(time) ((long double)(time).sec + (time).frac * BINTIME_SCALE) diff --git a/vendor/github.com/shirou/gopsutil/disk/disk_freebsd_386.go b/vendor/github.com/shirou/gopsutil/disk/disk_freebsd_386.go index 6d4b5971fd7..0b3f536c848 100644 --- a/vendor/github.com/shirou/gopsutil/disk/disk_freebsd_386.go +++ b/vendor/github.com/shirou/gopsutil/disk/disk_freebsd_386.go @@ -39,6 +39,10 @@ const ( MNT_SUSPEND = 4 ) +const ( + sizeOfDevstat = 0xf0 +) + type ( _C_short int16 _C_int int32 @@ -95,7 +99,7 @@ type Devstat struct { Flags uint32 Device_type uint32 Priority uint32 - ID *byte + Id *byte Sequence1 uint32 } type Bintime struct { diff --git a/vendor/github.com/shirou/gopsutil/disk/disk_linux.go b/vendor/github.com/shirou/gopsutil/disk/disk_linux.go index 91e25a108af..51f17cd415b 100644 --- a/vendor/github.com/shirou/gopsutil/disk/disk_linux.go +++ b/vendor/github.com/shirou/gopsutil/disk/disk_linux.go @@ -211,7 +211,10 @@ var fsTypeMap = map[int64]string{ ZFS_SUPER_MAGIC: "zfs", /* 0x2FC12FC1 local */ } -// Get disk partitions. +// Partitions returns disk partitions. If all is false, returns +// physical devices only (e.g. hard disks, cd-rom drives, USB keys) +// and ignore all others (e.g. memory partitions such as /dev/shm) +// // should use setmntent(3) but this implement use /etc/mtab file func Partitions(all bool) ([]PartitionStat, error) { filename := common.HostEtc("mtab") @@ -220,6 +223,11 @@ func Partitions(all bool) ([]PartitionStat, error) { return nil, err } + fs, err := getFileSystems() + if err != nil { + return nil, err + } + ret := make([]PartitionStat, 0, len(lines)) for _, line := range lines { @@ -230,12 +238,40 @@ func Partitions(all bool) ([]PartitionStat, error) { Fstype: fields[2], Opts: fields[3], } + if all == false { + if d.Device == "none" || !common.StringsHas(fs, d.Fstype) { + continue + } + } ret = append(ret, d) } return ret, nil } +// getFileSystems returns supported filesystems from /proc/filesystems +func getFileSystems() ([]string, error) { + filename := common.HostProc("filesystems") + lines, err := common.ReadLines(filename) + if err != nil { + return nil, err + } + var ret []string + for _, line := range lines { + if !strings.HasPrefix(line, "nodev") { + ret = append(ret, strings.TrimSpace(line)) + continue + } + t := strings.Split(line, "\t") + if len(t) != 2 || t[1] != "zfs" { + continue + } + ret = append(ret, strings.TrimSpace(t[1])) + } + + return ret, nil +} + func IOCounters() (map[string]IOCountersStat, error) { filename := common.HostProc("diskstats") lines, err := common.ReadLines(filename) @@ -247,11 +283,19 @@ func IOCounters() (map[string]IOCountersStat, error) { for _, line := range lines { fields := strings.Fields(line) + if len(fields) < 14 { + // malformed line in /proc/diskstats, avoid panic by ignoring. + continue + } name := fields[2] reads, err := strconv.ParseUint((fields[3]), 10, 64) if err != nil { return ret, err } + mergedReads, err := strconv.ParseUint((fields[4]), 10, 64) + if err != nil { + return ret, err + } rbytes, err := strconv.ParseUint((fields[5]), 10, 64) if err != nil { return ret, err @@ -264,6 +308,10 @@ func IOCounters() (map[string]IOCountersStat, error) { if err != nil { return ret, err } + mergedWrites, err := strconv.ParseUint((fields[8]), 10, 64) + if err != nil { + return ret, err + } wbytes, err := strconv.ParseUint((fields[9]), 10, 64) if err != nil { return ret, err @@ -272,18 +320,30 @@ func IOCounters() (map[string]IOCountersStat, error) { if err != nil { return ret, err } + iopsInProgress, err := strconv.ParseUint((fields[11]), 10, 64) + if err != nil { + return ret, err + } iotime, err := strconv.ParseUint((fields[12]), 10, 64) if err != nil { return ret, err } + weightedIO, err := strconv.ParseUint((fields[13]), 10, 64) + if err != nil { + return ret, err + } d := IOCountersStat{ - ReadBytes: rbytes * SectorSize, - WriteBytes: wbytes * SectorSize, - ReadCount: reads, - WriteCount: writes, - ReadTime: rtime, - WriteTime: wtime, - IoTime: iotime, + ReadBytes: rbytes * SectorSize, + WriteBytes: wbytes * SectorSize, + ReadCount: reads, + WriteCount: writes, + MergedReadCount: mergedReads, + MergedWriteCount: mergedWrites, + ReadTime: rtime, + WriteTime: wtime, + IopsInProgress: iopsInProgress, + IoTime: iotime, + WeightedIO: weightedIO, } if d == empty { continue @@ -296,6 +356,8 @@ func IOCounters() (map[string]IOCountersStat, error) { return ret, nil } +// GetDiskSerialNumber returns Serial Number of given device or empty string +// on error. Name of device is expected, eg. /dev/sda func GetDiskSerialNumber(name string) string { n := fmt.Sprintf("--name=%s", name) udevadm, err := exec.LookPath("/sbin/udevadm") @@ -303,7 +365,7 @@ func GetDiskSerialNumber(name string) string { return "" } - out, err := exec.Command(udevadm, "info", "--query=property", n).Output() + out, err := invoke.Command(udevadm, "info", "--query=property", n) // does not return error, just an empty string if err != nil { diff --git a/vendor/github.com/shirou/gopsutil/disk/disk_openbsd.go b/vendor/github.com/shirou/gopsutil/disk/disk_openbsd.go new file mode 100644 index 00000000000..2129b2b6adf --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/disk/disk_openbsd.go @@ -0,0 +1,158 @@ +// +build openbsd + +package disk + +import ( + "bytes" + "encoding/binary" + "path" + "syscall" + "unsafe" + + "github.com/shirou/gopsutil/internal/common" +) + +func Partitions(all bool) ([]PartitionStat, error) { + var ret []PartitionStat + + // get length + count, err := syscall.Getfsstat(nil, MNT_WAIT) + if err != nil { + return ret, err + } + + fs := make([]Statfs, count) + _, err = Getfsstat(fs, MNT_WAIT) + + for _, stat := range fs { + opts := "rw" + if stat.F_flags&MNT_RDONLY != 0 { + opts = "ro" + } + if stat.F_flags&MNT_SYNCHRONOUS != 0 { + opts += ",sync" + } + if stat.F_flags&MNT_NOEXEC != 0 { + opts += ",noexec" + } + if stat.F_flags&MNT_NOSUID != 0 { + opts += ",nosuid" + } + if stat.F_flags&MNT_NODEV != 0 { + opts += ",nodev" + } + if stat.F_flags&MNT_ASYNC != 0 { + opts += ",async" + } + + d := PartitionStat{ + Device: common.IntToString(stat.F_mntfromname[:]), + Mountpoint: common.IntToString(stat.F_mntonname[:]), + Fstype: common.IntToString(stat.F_fstypename[:]), + Opts: opts, + } + if all == false { + if !path.IsAbs(d.Device) || !common.PathExists(d.Device) { + continue + } + } + + ret = append(ret, d) + } + + return ret, nil +} + +func IOCounters() (map[string]IOCountersStat, error) { + ret := make(map[string]IOCountersStat) + + r, err := syscall.Sysctl("hw.diskstats") + if err != nil { + return nil, err + } + buf := []byte(r) + length := len(buf) + + count := int(uint64(length) / uint64(sizeOfDiskstats)) + + // parse buf to Diskstats + for i := 0; i < count; i++ { + b := buf[i*sizeOfDiskstats : i*sizeOfDiskstats+sizeOfDiskstats] + d, err := parseDiskstats(b) + if err != nil { + continue + } + name := common.IntToString(d.Name[:]) + + ds := IOCountersStat{ + ReadCount: d.Rxfer, + WriteCount: d.Wxfer, + ReadBytes: d.Rbytes, + WriteBytes: d.Wbytes, + Name: name, + } + ret[name] = ds + } + + return ret, nil +} + +// BT2LD(time) ((long double)(time).sec + (time).frac * BINTIME_SCALE) + +// Getfsstat is borrowed from pkg/syscall/syscall_freebsd.go +// change Statfs_t to Statfs in order to get more information +func Getfsstat(buf []Statfs, 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{}) * uintptr(len(buf)) + } + r0, _, e1 := syscall.Syscall(syscall.SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +func parseDiskstats(buf []byte) (Diskstats, error) { + var ds Diskstats + br := bytes.NewReader(buf) + // err := binary.Read(br, binary.LittleEndian, &ds) + err := common.Read(br, binary.LittleEndian, &ds) + if err != nil { + return ds, err + } + + return ds, nil +} + +func Usage(path string) (*UsageStat, error) { + stat := syscall.Statfs_t{} + err := syscall.Statfs(path, &stat) + if err != nil { + return nil, err + } + bsize := stat.F_bsize + + ret := &UsageStat{ + Path: path, + Fstype: getFsType(stat), + Total: (uint64(stat.F_blocks) * uint64(bsize)), + Free: (uint64(stat.F_bavail) * uint64(bsize)), + InodesTotal: (uint64(stat.F_files)), + InodesFree: (uint64(stat.F_ffree)), + } + + ret.InodesUsed = (ret.InodesTotal - ret.InodesFree) + ret.InodesUsedPercent = (float64(ret.InodesUsed) / float64(ret.InodesTotal)) * 100.0 + ret.Used = (uint64(stat.F_blocks) - uint64(stat.F_bfree)) * uint64(bsize) + ret.UsedPercent = (float64(ret.Used) / float64(ret.Total)) * 100.0 + + return ret, nil +} + +func getFsType(stat syscall.Statfs_t) string { + return common.IntToString(stat.F_fstypename[:]) +} diff --git a/vendor/github.com/shirou/gopsutil/disk/disk_openbsd_amd64.go b/vendor/github.com/shirou/gopsutil/disk/disk_openbsd_amd64.go new file mode 100644 index 00000000000..07a845fbcbc --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/disk/disk_openbsd_amd64.go @@ -0,0 +1,91 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_openbsd.go + +package disk + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + sizeofLongDouble = 0x8 + + DEVSTAT_NO_DATA = 0x00 + DEVSTAT_READ = 0x01 + DEVSTAT_WRITE = 0x02 + DEVSTAT_FREE = 0x03 + + MNT_RDONLY = 0x00000001 + MNT_SYNCHRONOUS = 0x00000002 + MNT_NOEXEC = 0x00000004 + MNT_NOSUID = 0x00000008 + MNT_NODEV = 0x00000010 + MNT_ASYNC = 0x00000040 + + MNT_WAIT = 1 + MNT_NOWAIT = 2 + MNT_LAZY = 3 +) + +const ( + sizeOfDiskstats = 0x70 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 + _C_long_double int64 +) + +type Statfs 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 Diskstats struct { + Name [16]int8 + Busy int32 + Pad_cgo_0 [4]byte + Rxfer uint64 + Wxfer uint64 + Seek uint64 + Rbytes uint64 + Wbytes uint64 + Attachtime Timeval + Timestamp Timeval + Time Timeval +} +type Fsid struct { + Val [2]int32 +} +type Timeval struct { + Sec int64 + Usec int64 +} + +type Diskstat struct{} +type Bintime struct{} diff --git a/vendor/github.com/shirou/gopsutil/disk/disk_unix.go b/vendor/github.com/shirou/gopsutil/disk/disk_unix.go index 2858008e71d..f0616c30aaa 100644 --- a/vendor/github.com/shirou/gopsutil/disk/disk_unix.go +++ b/vendor/github.com/shirou/gopsutil/disk/disk_unix.go @@ -21,10 +21,25 @@ func Usage(path string) (*UsageStat, error) { InodesFree: (uint64(stat.Ffree)), } + // if could not get InodesTotal, return empty + if ret.InodesTotal < ret.InodesFree { + return ret, nil + } + ret.InodesUsed = (ret.InodesTotal - ret.InodesFree) - ret.InodesUsedPercent = (float64(ret.InodesUsed) / float64(ret.InodesTotal)) * 100.0 ret.Used = (uint64(stat.Blocks) - uint64(stat.Bfree)) * uint64(bsize) - ret.UsedPercent = (float64(ret.Used) / float64(ret.Total)) * 100.0 + + if ret.InodesTotal == 0 { + ret.InodesUsedPercent = 0 + } else { + ret.InodesUsedPercent = (float64(ret.InodesUsed) / float64(ret.InodesTotal)) * 100.0 + } + + if ret.Total == 0 { + ret.UsedPercent = 0 + } else { + ret.UsedPercent = (float64(ret.Used) / float64(ret.Total)) * 100.0 + } return ret, nil } diff --git a/vendor/github.com/shirou/gopsutil/disk/types_openbsd.go b/vendor/github.com/shirou/gopsutil/disk/types_openbsd.go new file mode 100644 index 00000000000..1e3ddef5cfb --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/disk/types_openbsd.go @@ -0,0 +1,70 @@ +// +build ignore +// Hand writing: _Ctype_struct___0 + +/* +Input to cgo -godefs. +*/ + +package disk + +/* +#include +#include +#include + +enum { + sizeofPtr = sizeof(void*), +}; + +*/ +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 + sizeofLongDouble = C.sizeof_longlong + + DEVSTAT_NO_DATA = 0x00 + DEVSTAT_READ = 0x01 + DEVSTAT_WRITE = 0x02 + DEVSTAT_FREE = 0x03 + + // from sys/mount.h + MNT_RDONLY = 0x00000001 /* read only filesystem */ + MNT_SYNCHRONOUS = 0x00000002 /* filesystem written synchronously */ + MNT_NOEXEC = 0x00000004 /* can't exec from filesystem */ + MNT_NOSUID = 0x00000008 /* don't honor setuid bits on fs */ + MNT_NODEV = 0x00000010 /* don't interpret special files */ + MNT_ASYNC = 0x00000040 /* filesystem written asynchronously */ + + MNT_WAIT = 1 /* synchronously wait for I/O to complete */ + MNT_NOWAIT = 2 /* start all I/O, but do not wait for it */ + MNT_LAZY = 3 /* push data not written by filesystem syncer */ +) + +const ( + sizeOfDiskstats = C.sizeof_struct_diskstats +) + +// Basic types + +type ( + _C_short C.short + _C_int C.int + _C_long C.long + _C_long_long C.longlong + _C_long_double C.longlong +) + +type Statfs C.struct_statfs +type Diskstats C.struct_diskstats +type Fsid C.fsid_t +type Timeval C.struct_timeval + +type Diskstat C.struct_diskstat +type Bintime C.struct_bintime diff --git a/vendor/github.com/shirou/gopsutil/doc.go b/vendor/github.com/shirou/gopsutil/doc.go deleted file mode 100644 index 6a65fe268a9..00000000000 --- a/vendor/github.com/shirou/gopsutil/doc.go +++ /dev/null @@ -1 +0,0 @@ -package gopsutil diff --git a/vendor/github.com/shirou/gopsutil/docker/docker.go b/vendor/github.com/shirou/gopsutil/docker/docker.go deleted file mode 100644 index e002f7b2846..00000000000 --- a/vendor/github.com/shirou/gopsutil/docker/docker.go +++ /dev/null @@ -1,41 +0,0 @@ -package docker - -import "errors" - -var ErrDockerNotAvailable = errors.New("docker not available") -var ErrCgroupNotAvailable = errors.New("cgroup not available") - -type CgroupMemStat struct { - ContainerID string `json:"containerID"` - Cache uint64 `json:"cache"` - RSS uint64 `json:"rss"` - RSSHuge uint64 `json:"rssHuge"` - MappedFile uint64 `json:"mappedFile"` - Pgpgin uint64 `json:"pgpgin"` - Pgpgout uint64 `json:"pgpgout"` - Pgfault uint64 `json:"pgfault"` - Pgmajfault uint64 `json:"pgmajfault"` - InactiveAnon uint64 `json:"inactiveAnon"` - ActiveAnon uint64 `json:"activeAnon"` - InactiveFile uint64 `json:"inactiveFile"` - ActiveFile uint64 `json:"activeFile"` - Unevictable uint64 `json:"unevictable"` - HierarchicalMemoryLimit uint64 `json:"hierarchicalMemoryLimit"` - TotalCache uint64 `json:"totalCache"` - TotalRSS uint64 `json:"totalRss"` - TotalRSSHuge uint64 `json:"totalRssHuge"` - TotalMappedFile uint64 `json:"totalMappedFile"` - TotalPgpgIn uint64 `json:"totalPgpgin"` - TotalPgpgOut uint64 `json:"totalPgpgout"` - TotalPgFault uint64 `json:"totalPgfault"` - TotalPgMajFault uint64 `json:"totalPgmajfault"` - TotalInactiveAnon uint64 `json:"totalInactiveAnon"` - TotalActiveAnon uint64 `json:"totalActiveAnon"` - TotalInactiveFile uint64 `json:"totalInactiveFile"` - TotalActiveFile uint64 `json:"totalActiveFile"` - TotalUnevictable uint64 `json:"totalUnevictable"` - MemUsageInBytes uint64 `json:"memUsageInBytes"` - MemMaxUsageInBytes uint64 `json:"memMaxUsageInBytes"` - MemLimitInBytes uint64 `json:"memoryLimitInBbytes"` - MemFailCnt uint64 `json:"memoryFailcnt"` -} diff --git a/vendor/github.com/shirou/gopsutil/docker/docker_linux.go b/vendor/github.com/shirou/gopsutil/docker/docker_linux.go deleted file mode 100644 index ee74525dbbd..00000000000 --- a/vendor/github.com/shirou/gopsutil/docker/docker_linux.go +++ /dev/null @@ -1,212 +0,0 @@ -// +build linux - -package docker - -import ( - "encoding/json" - "fmt" - "os" - "os/exec" - "path" - "strconv" - "strings" - - cpu "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/internal/common" -) - -// GetDockerIDList returnes a list of DockerID. -// This requires certain permission. -func GetDockerIDList() ([]string, error) { - path, err := exec.LookPath("docker") - if err != nil { - return nil, ErrDockerNotAvailable - } - - out, err := exec.Command(path, "ps", "-q", "--no-trunc").Output() - if err != nil { - return []string{}, err - } - lines := strings.Split(string(out), "\n") - ret := make([]string, 0, len(lines)) - - for _, l := range lines { - if l == "" { - continue - } - ret = append(ret, l) - } - - return ret, nil -} - -// CgroupCPU returnes specified cgroup id CPU status. -// containerID is same as docker id if you use docker. -// If you use container via systemd.slice, you could use -// containerID = docker-.scope and base=/sys/fs/cgroup/cpuacct/system.slice/ -func CgroupCPU(containerID string, base string) (*cpu.TimesStat, error) { - statfile := getCgroupFilePath(containerID, base, "cpuacct", "cpuacct.stat") - lines, err := common.ReadLines(statfile) - if err != nil { - return nil, err - } - // empty containerID means all cgroup - if len(containerID) == 0 { - containerID = "all" - } - ret := &cpu.TimesStat{CPU: containerID} - for _, line := range lines { - fields := strings.Split(line, " ") - if fields[0] == "user" { - user, err := strconv.ParseFloat(fields[1], 64) - if err == nil { - ret.User = float64(user) - } - } - if fields[0] == "system" { - system, err := strconv.ParseFloat(fields[1], 64) - if err == nil { - ret.System = float64(system) - } - } - } - - return ret, nil -} - -func CgroupCPUDocker(containerid string) (*cpu.TimesStat, error) { - return CgroupCPU(containerid, common.HostSys("fs/cgroup/cpuacct/docker")) -} - -func CgroupMem(containerID string, base string) (*CgroupMemStat, error) { - statfile := getCgroupFilePath(containerID, base, "memory", "memory.stat") - - // empty containerID means all cgroup - if len(containerID) == 0 { - containerID = "all" - } - lines, err := common.ReadLines(statfile) - if err != nil { - return nil, err - } - ret := &CgroupMemStat{ContainerID: containerID} - for _, line := range lines { - fields := strings.Split(line, " ") - v, err := strconv.ParseUint(fields[1], 10, 64) - if err != nil { - continue - } - switch fields[0] { - case "cache": - ret.Cache = v - case "rss": - ret.RSS = v - case "rssHuge": - ret.RSSHuge = v - case "mappedFile": - ret.MappedFile = v - case "pgpgin": - ret.Pgpgin = v - case "pgpgout": - ret.Pgpgout = v - case "pgfault": - ret.Pgfault = v - case "pgmajfault": - ret.Pgmajfault = v - case "inactiveAnon": - ret.InactiveAnon = v - case "activeAnon": - ret.ActiveAnon = v - case "inactiveFile": - ret.InactiveFile = v - case "activeFile": - ret.ActiveFile = v - case "unevictable": - ret.Unevictable = v - case "hierarchicalMemoryLimit": - ret.HierarchicalMemoryLimit = v - case "totalCache": - ret.TotalCache = v - case "totalRss": - ret.TotalRSS = v - case "totalRssHuge": - ret.TotalRSSHuge = v - case "totalMappedFile": - ret.TotalMappedFile = v - case "totalPgpgin": - ret.TotalPgpgIn = v - case "totalPgpgout": - ret.TotalPgpgOut = v - case "totalPgfault": - ret.TotalPgFault = v - case "totalPgmajfault": - ret.TotalPgMajFault = v - case "totalInactiveAnon": - ret.TotalInactiveAnon = v - case "totalActiveAnon": - ret.TotalActiveAnon = v - case "totalInactiveFile": - ret.TotalInactiveFile = v - case "totalActiveFile": - ret.TotalActiveFile = v - case "totalUnevictable": - ret.TotalUnevictable = v - } - } - - r, err := getCgroupMemFile(containerID, base, "memory.usage_in_bytes") - if err == nil { - ret.MemUsageInBytes = r - } - r, err = getCgroupMemFile(containerID, base, "memory.max_usage_in_bytes") - if err == nil { - ret.MemMaxUsageInBytes = r - } - r, err = getCgroupMemFile(containerID, base, "memoryLimitInBbytes") - if err == nil { - ret.MemLimitInBytes = r - } - r, err = getCgroupMemFile(containerID, base, "memoryFailcnt") - if err == nil { - ret.MemFailCnt = r - } - - return ret, nil -} - -func CgroupMemDocker(containerID string) (*CgroupMemStat, error) { - return CgroupMem(containerID, common.HostSys("fs/cgroup/memory/docker")) -} - -func (m CgroupMemStat) String() string { - s, _ := json.Marshal(m) - return string(s) -} - -// getCgroupFilePath constructs file path to get targetted stats file. -func getCgroupFilePath(containerID, base, target, file string) string { - if len(base) == 0 { - base = common.HostSys(fmt.Sprintf("fs/cgroup/%s/docker", target)) - } - statfile := path.Join(base, containerID, file) - - if _, err := os.Stat(statfile); os.IsNotExist(err) { - statfile = path.Join( - common.HostSys(fmt.Sprintf("fs/cgroup/%s/system.slice", target)), "docker-"+containerID+".scope", file) - } - - return statfile -} - -// getCgroupMemFile reads a cgroup file and return the contents as uint64. -func getCgroupMemFile(containerID, base, file string) (uint64, error) { - statfile := getCgroupFilePath(containerID, base, "memory", file) - lines, err := common.ReadLines(statfile) - if err != nil { - return 0, err - } - if len(lines) != 1 { - return 0, fmt.Errorf("wrong format file: %s", statfile) - } - return strconv.ParseUint(lines[0], 10, 64) -} diff --git a/vendor/github.com/shirou/gopsutil/docker/docker_notlinux.go b/vendor/github.com/shirou/gopsutil/docker/docker_notlinux.go deleted file mode 100644 index 03a56e6335a..00000000000 --- a/vendor/github.com/shirou/gopsutil/docker/docker_notlinux.go +++ /dev/null @@ -1,41 +0,0 @@ -// +build !linux - -package docker - -import ( - "encoding/json" - - "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/internal/common" -) - -// GetDockerIDList returnes a list of DockerID. -// This requires certain permission. -func GetDockerIDList() ([]string, error) { - return nil, ErrDockerNotAvailable -} - -// CgroupCPU returnes specified cgroup id CPU status. -// containerid is same as docker id if you use docker. -// If you use container via systemd.slice, you could use -// containerid = docker-.scope and base=/sys/fs/cgroup/cpuacct/system.slice/ -func CgroupCPU(containerid string, base string) (*cpu.TimesStat, error) { - return nil, ErrCgroupNotAvailable -} - -func CgroupCPUDocker(containerid string) (*cpu.TimesStat, error) { - return CgroupCPU(containerid, common.HostSys("fs/cgroup/cpuacct/docker")) -} - -func CgroupMem(containerid string, base string) (*CgroupMemStat, error) { - return nil, ErrCgroupNotAvailable -} - -func CgroupMemDocker(containerid string) (*CgroupMemStat, error) { - return CgroupMem(containerid, common.HostSys("fs/cgroup/memory/docker")) -} - -func (m CgroupMemStat) String() string { - s, _ := json.Marshal(m) - return string(s) -} diff --git a/vendor/github.com/shirou/gopsutil/host/host.go b/vendor/github.com/shirou/gopsutil/host/host.go deleted file mode 100644 index d87ada2b916..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host.go +++ /dev/null @@ -1,38 +0,0 @@ -package host - -import ( - "encoding/json" -) - -// A HostInfoStat describes the host status. -// This is not in the psutil but it useful. -type InfoStat struct { - Hostname string `json:"hostname"` - Uptime uint64 `json:"uptime"` - BootTime uint64 `json:"bootTime"` - Procs uint64 `json:"procs"` // number of processes - OS string `json:"os"` // ex: freebsd, linux - Platform string `json:"platform"` // ex: ubuntu, linuxmint - PlatformFamily string `json:"platformFamily"` // ex: debian, rhel - PlatformVersion string `json:"platformVersion"` - VirtualizationSystem string `json:"virtualizationSystem"` - VirtualizationRole string `json:"virtualizationRole"` // guest or host - -} - -type UserStat struct { - User string `json:"user"` - Terminal string `json:"terminal"` - Host string `json:"host"` - Started int `json:"started"` -} - -func (h InfoStat) String() string { - s, _ := json.Marshal(h) - return string(s) -} - -func (u UserStat) String() string { - s, _ := json.Marshal(u) - return string(s) -} diff --git a/vendor/github.com/shirou/gopsutil/host/host_darwin.go b/vendor/github.com/shirou/gopsutil/host/host_darwin.go deleted file mode 100644 index f4a8c36a26f..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host_darwin.go +++ /dev/null @@ -1,152 +0,0 @@ -// +build darwin - -package host - -import ( - "bytes" - "encoding/binary" - "io/ioutil" - "os" - "os/exec" - "runtime" - "strconv" - "strings" - "time" - "unsafe" - - "github.com/shirou/gopsutil/internal/common" -) - -// from utmpx.h -const USER_PROCESS = 7 - -func Info() (*InfoStat, error) { - ret := &InfoStat{ - OS: runtime.GOOS, - PlatformFamily: "darwin", - } - - hostname, err := os.Hostname() - if err == nil { - ret.Hostname = hostname - } - - platform, family, version, err := PlatformInformation() - if err == nil { - ret.Platform = platform - ret.PlatformFamily = family - ret.PlatformVersion = version - } - system, role, err := Virtualization() - if err == nil { - ret.VirtualizationSystem = system - ret.VirtualizationRole = role - } - - boot, err := BootTime() - if err == nil { - ret.BootTime = boot - ret.Uptime = uptime(boot) - } - - return ret, nil -} - -func BootTime() (uint64, error) { - values, err := common.DoSysctrl("kern.boottime") - if err != nil { - return 0, err - } - // ex: { sec = 1392261637, usec = 627534 } Thu Feb 13 12:20:37 2014 - v := strings.Replace(values[2], ",", "", 1) - boottime, err := strconv.ParseInt(v, 10, 64) - if err != nil { - return 0, err - } - - return uint64(boottime), nil -} - -func uptime(boot uint64) uint64 { - return uint64(time.Now().Unix()) - boot -} - -func Uptime() (uint64, error) { - boot, err := BootTime() - if err != nil { - return 0, err - } - return uptime(boot), nil -} - -func Users() ([]UserStat, error) { - utmpfile := "/var/run/utmpx" - var ret []UserStat - - file, err := os.Open(utmpfile) - if err != nil { - return ret, err - } - - buf, err := ioutil.ReadAll(file) - if err != nil { - return ret, err - } - - u := Utmpx{} - entrySize := int(unsafe.Sizeof(u)) - count := len(buf) / entrySize - - for i := 0; i < count; i++ { - b := buf[i*entrySize : i*entrySize+entrySize] - - var u Utmpx - br := bytes.NewReader(b) - err := binary.Read(br, binary.LittleEndian, &u) - if err != nil { - continue - } - if u.Type != USER_PROCESS { - continue - } - user := UserStat{ - User: common.IntToString(u.User[:]), - Terminal: common.IntToString(u.Line[:]), - Host: common.IntToString(u.Host[:]), - Started: int(u.Tv.Sec), - } - ret = append(ret, user) - } - - return ret, nil - -} - -func PlatformInformation() (string, string, string, error) { - platform := "" - family := "" - version := "" - - uname, err := exec.LookPath("uname") - if err != nil { - return "", "", "", err - } - out, err := exec.Command(uname, "-s").Output() - if err == nil { - platform = strings.ToLower(strings.TrimSpace(string(out))) - } - - out, err = exec.Command(uname, "-r").Output() - if err == nil { - version = strings.ToLower(strings.TrimSpace(string(out))) - } - - return platform, family, version, nil -} - -func Virtualization() (string, string, error) { - system := "" - role := "" - - return system, role, nil -} diff --git a/vendor/github.com/shirou/gopsutil/host/host_darwin_amd64.go b/vendor/github.com/shirou/gopsutil/host/host_darwin_amd64.go deleted file mode 100644 index c3596f9f5e9..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host_darwin_amd64.go +++ /dev/null @@ -1,19 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_darwin.go - -package host - -type Utmpx struct { - User [256]int8 - ID [4]int8 - Line [32]int8 - Pid int32 - Type int16 - Pad_cgo_0 [6]byte - Tv Timeval - Host [256]int8 - Pad [16]uint32 -} -type Timeval struct { - Sec int32 -} diff --git a/vendor/github.com/shirou/gopsutil/host/host_freebsd.go b/vendor/github.com/shirou/gopsutil/host/host_freebsd.go deleted file mode 100644 index 06142e1c803..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host_freebsd.go +++ /dev/null @@ -1,196 +0,0 @@ -// +build freebsd - -package host - -import ( - "bytes" - "encoding/binary" - "io/ioutil" - "os" - "os/exec" - "runtime" - "strconv" - "strings" - "time" - "unsafe" - - "github.com/shirou/gopsutil/internal/common" -) - -const ( - UTNameSize = 16 /* see MAXLOGNAME in */ - UTLineSize = 8 - UTHostSize = 16 -) - -func Info() (*InfoStat, error) { - ret := &InfoStat{ - OS: runtime.GOOS, - PlatformFamily: "freebsd", - } - - hostname, err := os.Hostname() - if err == nil { - ret.Hostname = hostname - } - - platform, family, version, err := PlatformInformation() - if err == nil { - ret.Platform = platform - ret.PlatformFamily = family - ret.PlatformVersion = version - } - system, role, err := Virtualization() - if err == nil { - ret.VirtualizationSystem = system - ret.VirtualizationRole = role - } - - boot, err := BootTime() - if err == nil { - ret.BootTime = boot - ret.Uptime = uptime(boot) - } - - return ret, nil -} - -func BootTime() (uint64, error) { - values, err := common.DoSysctrl("kern.boottime") - if err != nil { - return 0, err - } - // ex: { sec = 1392261637, usec = 627534 } Thu Feb 13 12:20:37 2014 - v := strings.Replace(values[2], ",", "", 1) - - boottime, err := strconv.ParseUint(v, 10, 64) - if err != nil { - return 0, err - } - - return boottime, nil -} - -func uptime(boot uint64) uint64 { - return uint64(time.Now().Unix()) - boot -} - -func Uptime() (uint64, error) { - boot, err := BootTime() - if err != nil { - return 0, err - } - return uptime(boot), nil -} - -func Users() ([]UserStat, error) { - utmpfile := "/var/run/utx.active" - if !common.PathExists(utmpfile) { - utmpfile = "/var/run/utmp" // before 9.0 - return getUsersFromUtmp(utmpfile) - } - - var ret []UserStat - file, err := os.Open(utmpfile) - if err != nil { - return ret, err - } - - buf, err := ioutil.ReadAll(file) - if err != nil { - return ret, err - } - - u := Utmpx{} - entrySize := int(unsafe.Sizeof(u)) - 3 - entrySize = 197 // TODO: why should 197 - count := len(buf) / entrySize - - for i := 0; i < count; i++ { - b := buf[i*entrySize : i*entrySize+entrySize] - var u Utmpx - br := bytes.NewReader(b) - err := binary.Read(br, binary.LittleEndian, &u) - if err != nil || u.Type != 4 { - continue - } - sec := (binary.LittleEndian.Uint32(u.Tv.Sec[:])) / 2 // TODO: - user := UserStat{ - User: common.IntToString(u.User[:]), - Terminal: common.IntToString(u.Line[:]), - Host: common.IntToString(u.Host[:]), - Started: int(sec), - } - - ret = append(ret, user) - } - - return ret, nil - -} - -func PlatformInformation() (string, string, string, error) { - platform := "" - family := "" - version := "" - uname, err := exec.LookPath("uname") - if err != nil { - return "", "", "", err - } - - out, err := exec.Command(uname, "-s").Output() - if err == nil { - platform = strings.ToLower(strings.TrimSpace(string(out))) - } - - out, err = exec.Command(uname, "-r").Output() - if err == nil { - version = strings.ToLower(strings.TrimSpace(string(out))) - } - - return platform, family, version, nil -} - -func Virtualization() (string, string, error) { - system := "" - role := "" - - return system, role, nil -} - -// before 9.0 -func getUsersFromUtmp(utmpfile string) ([]UserStat, error) { - var ret []UserStat - file, err := os.Open(utmpfile) - if err != nil { - return ret, err - } - buf, err := ioutil.ReadAll(file) - if err != nil { - return ret, err - } - - u := Utmp{} - entrySize := int(unsafe.Sizeof(u)) - count := len(buf) / entrySize - - for i := 0; i < count; i++ { - b := buf[i*entrySize : i*entrySize+entrySize] - var u Utmp - br := bytes.NewReader(b) - err := binary.Read(br, binary.LittleEndian, &u) - if err != nil || u.Time == 0 { - continue - } - user := UserStat{ - User: common.IntToString(u.Name[:]), - Terminal: common.IntToString(u.Line[:]), - Host: common.IntToString(u.Host[:]), - Started: int(u.Time), - } - - ret = append(ret, user) - } - - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/host/host_freebsd_amd64.go b/vendor/github.com/shirou/gopsutil/host/host_freebsd_amd64.go deleted file mode 100644 index 9a4c0a47acc..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host_freebsd_amd64.go +++ /dev/null @@ -1,41 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_freebsd.go - -package host - -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 Utmp struct { - Line [8]int8 - Name [16]int8 - Host [16]int8 - Time int32 -} -type Utmpx struct { - Type int16 - Tv Timeval - ID [8]int8 - Pid int32 - User [32]int8 - Line [16]int8 - Host [125]int8 - // Host [128]int8 - // X__ut_spare [64]int8 -} -type Timeval struct { - Sec [4]byte - Usec [3]byte -} diff --git a/vendor/github.com/shirou/gopsutil/host/host_linux.go b/vendor/github.com/shirou/gopsutil/host/host_linux.go deleted file mode 100644 index f56906c28f4..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host_linux.go +++ /dev/null @@ -1,431 +0,0 @@ -// +build linux - -package host - -import ( - "bytes" - "encoding/binary" - "fmt" - "io/ioutil" - "os" - "os/exec" - "regexp" - "runtime" - "strconv" - "strings" - "time" - "unsafe" - - "github.com/shirou/gopsutil/internal/common" -) - -type LSB struct { - ID string - Release string - Codename string - Description string -} - -// from utmp.h -const USER_PROCESS = 7 - -func Info() (*InfoStat, error) { - ret := &InfoStat{ - OS: runtime.GOOS, - } - - hostname, err := os.Hostname() - if err == nil { - ret.Hostname = hostname - } - - platform, family, version, err := PlatformInformation() - if err == nil { - ret.Platform = platform - ret.PlatformFamily = family - ret.PlatformVersion = version - } - system, role, err := Virtualization() - if err == nil { - ret.VirtualizationSystem = system - ret.VirtualizationRole = role - } - boot, err := BootTime() - if err == nil { - ret.BootTime = boot - ret.Uptime = uptime(boot) - } - - return ret, nil -} - -// BootTime returns the system boot time expressed in seconds since the epoch. -func BootTime() (uint64, error) { - filename := common.HostProc("stat") - lines, err := common.ReadLines(filename) - if err != nil { - return 0, err - } - for _, line := range lines { - if strings.HasPrefix(line, "btime") { - f := strings.Fields(line) - if len(f) != 2 { - return 0, fmt.Errorf("wrong btime format") - } - b, err := strconv.ParseInt(f[1], 10, 64) - if err != nil { - return 0, err - } - return uint64(b), nil - } - } - - return 0, fmt.Errorf("could not find btime") -} - -func uptime(boot uint64) uint64 { - return uint64(time.Now().Unix()) - boot -} - -func Uptime() (uint64, error) { - boot, err := BootTime() - if err != nil { - return 0, err - } - return uptime(boot), nil -} - -func Users() ([]UserStat, error) { - utmpfile := "/var/run/utmp" - - file, err := os.Open(utmpfile) - if err != nil { - return nil, err - } - - buf, err := ioutil.ReadAll(file) - if err != nil { - return nil, err - } - - u := utmp{} - entrySize := int(unsafe.Sizeof(u)) - count := len(buf) / entrySize - - ret := make([]UserStat, 0, count) - - for i := 0; i < count; i++ { - b := buf[i*entrySize : i*entrySize+entrySize] - - var u utmp - br := bytes.NewReader(b) - err := binary.Read(br, binary.LittleEndian, &u) - if err != nil { - continue - } - if u.Type != USER_PROCESS { - continue - } - user := UserStat{ - User: common.IntToString(u.User[:]), - Terminal: common.IntToString(u.Line[:]), - Host: common.IntToString(u.Host[:]), - Started: int(u.Tv.TvSec), - } - ret = append(ret, user) - } - - return ret, nil - -} - -func getLSB() (*LSB, error) { - ret := &LSB{} - if common.PathExists(common.HostEtc("lsb-release")) { - contents, err := common.ReadLines(common.HostEtc("lsb-release")) - if err != nil { - return ret, err // return empty - } - for _, line := range contents { - field := strings.Split(line, "=") - if len(field) < 2 { - continue - } - switch field[0] { - case "DISTRIB_ID": - ret.ID = field[1] - case "DISTRIB_RELEASE": - ret.Release = field[1] - case "DISTRIB_CODENAME": - ret.Codename = field[1] - case "DISTRIB_DESCRIPTION": - ret.Description = field[1] - } - } - } else if common.PathExists("/usr/bin/lsb_release") { - lsb_release, err := exec.LookPath("/usr/bin/lsb_release") - if err != nil { - return ret, err - } - out, err := exec.Command(lsb_release).Output() - if err != nil { - return ret, err - } - for _, line := range strings.Split(string(out), "\n") { - field := strings.Split(line, ":") - if len(field) < 2 { - continue - } - switch field[0] { - case "Distributor ID": - ret.ID = field[1] - case "Release": - ret.Release = field[1] - case "Codename": - ret.Codename = field[1] - case "Description": - ret.Description = field[1] - } - } - - } - - return ret, nil -} - -func PlatformInformation() (platform string, family string, version string, err error) { - - lsb, err := getLSB() - if err != nil { - lsb = &LSB{} - } - - if common.PathExists(common.HostEtc("oracle-release")) { - platform = "oracle" - contents, err := common.ReadLines(common.HostEtc("oracle-release")) - if err == nil { - version = getRedhatishVersion(contents) - } - - } else if common.PathExists(common.HostEtc("enterprise-release")) { - platform = "oracle" - contents, err := common.ReadLines(common.HostEtc("enterprise-release")) - if err == nil { - version = getRedhatishVersion(contents) - } - } else if common.PathExists(common.HostEtc("debian_version")) { - if lsb.ID == "Ubuntu" { - platform = "ubuntu" - version = lsb.Release - } else if lsb.ID == "LinuxMint" { - platform = "linuxmint" - version = lsb.Release - } else { - if common.PathExists("/usr/bin/raspi-config") { - platform = "raspbian" - } else { - platform = "debian" - } - contents, err := common.ReadLines(common.HostEtc("debian_version")) - if err == nil { - version = contents[0] - } - } - } else if common.PathExists(common.HostEtc("redhat-release")) { - contents, err := common.ReadLines(common.HostEtc("redhat-release")) - if err == nil { - version = getRedhatishVersion(contents) - platform = getRedhatishPlatform(contents) - } - } else if common.PathExists(common.HostEtc("system-release")) { - contents, err := common.ReadLines(common.HostEtc("system-release")) - if err == nil { - version = getRedhatishVersion(contents) - platform = getRedhatishPlatform(contents) - } - } else if common.PathExists(common.HostEtc("gentoo-release")) { - platform = "gentoo" - contents, err := common.ReadLines(common.HostEtc("gentoo-release")) - if err == nil { - version = getRedhatishVersion(contents) - } - } else if common.PathExists(common.HostEtc("SuSE-release")) { - contents, err := common.ReadLines(common.HostEtc("SuSE-release")) - if err == nil { - version = getSuseVersion(contents) - platform = getSusePlatform(contents) - } - // TODO: slackware detecion - } else if common.PathExists(common.HostEtc("arch-release")) { - platform = "arch" - version = lsb.Release - } else if lsb.ID == "RedHat" { - platform = "redhat" - version = lsb.Release - } else if lsb.ID == "Amazon" { - platform = "amazon" - version = lsb.Release - } else if lsb.ID == "ScientificSL" { - platform = "scientific" - version = lsb.Release - } else if lsb.ID == "XenServer" { - platform = "xenserver" - version = lsb.Release - } else if lsb.ID != "" { - platform = strings.ToLower(lsb.ID) - version = lsb.Release - } - - switch platform { - case "debian", "ubuntu", "linuxmint", "raspbian": - family = "debian" - case "fedora": - family = "fedora" - case "oracle", "centos", "redhat", "scientific", "enterpriseenterprise", "amazon", "xenserver", "cloudlinux", "ibm_powerkvm": - family = "rhel" - case "suse", "opensuse": - family = "suse" - case "gentoo": - family = "gentoo" - case "slackware": - family = "slackware" - case "arch": - family = "arch" - case "exherbo": - family = "exherbo" - } - - return platform, family, version, nil - -} - -func getRedhatishVersion(contents []string) string { - c := strings.ToLower(strings.Join(contents, "")) - - if strings.Contains(c, "rawhide") { - return "rawhide" - } - if matches := regexp.MustCompile(`release (\d[\d.]*)`).FindStringSubmatch(c); matches != nil { - return matches[1] - } - return "" -} - -func getRedhatishPlatform(contents []string) string { - c := strings.ToLower(strings.Join(contents, "")) - - if strings.Contains(c, "red hat") { - return "redhat" - } - f := strings.Split(c, " ") - - return f[0] -} - -func getSuseVersion(contents []string) string { - version := "" - for _, line := range contents { - if matches := regexp.MustCompile(`VERSION = ([\d.]+)`).FindStringSubmatch(line); matches != nil { - version = matches[1] - } else if matches := regexp.MustCompile(`PATCHLEVEL = ([\d]+)`).FindStringSubmatch(line); matches != nil { - version = version + "." + matches[1] - } - } - return version -} - -func getSusePlatform(contents []string) string { - c := strings.ToLower(strings.Join(contents, "")) - if strings.Contains(c, "opensuse") { - return "opensuse" - } - return "suse" -} - -func Virtualization() (string, string, error) { - var system string - var role string - - filename := common.HostProc("xen") - if common.PathExists(filename) { - system = "xen" - role = "guest" // assume guest - - if common.PathExists(filename + "/capabilities") { - contents, err := common.ReadLines(filename + "/capabilities") - if err == nil { - if common.StringsHas(contents, "control_d") { - role = "host" - } - } - } - } - - filename = common.HostProc("modules") - if common.PathExists(filename) { - contents, err := common.ReadLines(filename) - if err == nil { - if common.StringsContains(contents, "kvm") { - system = "kvm" - role = "host" - } else if common.StringsContains(contents, "vboxdrv") { - system = "vbox" - role = "host" - } else if common.StringsContains(contents, "vboxguest") { - system = "vbox" - role = "guest" - } - } - } - - filename = common.HostProc("cpuinfo") - if common.PathExists(filename) { - contents, err := common.ReadLines(filename) - if err == nil { - if common.StringsHas(contents, "QEMU Virtual CPU") || - common.StringsHas(contents, "Common KVM processor") || - common.StringsHas(contents, "Common 32-bit KVM processor") { - system = "kvm" - role = "guest" - } - } - } - - filename = common.HostProc() - if common.PathExists(filename + "/bc/0") { - system = "openvz" - role = "host" - } else if common.PathExists(filename + "/vz") { - system = "openvz" - role = "guest" - } - - // not use dmidecode because it requires root - if common.PathExists(filename + "/self/status") { - contents, err := common.ReadLines(filename + "/self/status") - if err == nil { - - if common.StringsHas(contents, "s_context:") || - common.StringsHas(contents, "VxID:") { - system = "linux-vserver" - } - // TODO: guest or host - } - } - - if common.PathExists(filename + "/self/cgroup") { - contents, err := common.ReadLines(filename + "/self/cgroup") - if err == nil { - if common.StringsHas(contents, "lxc") || - common.StringsHas(contents, "docker") { - system = "lxc" - role = "guest" - } else if common.PathExists("/usr/bin/lxc-version") { // TODO: which - system = "lxc" - role = "host" - } - } - } - - return system, role, nil -} diff --git a/vendor/github.com/shirou/gopsutil/host/host_linux_386.go b/vendor/github.com/shirou/gopsutil/host/host_linux_386.go deleted file mode 100644 index cab9feed417..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host_linux_386.go +++ /dev/null @@ -1,44 +0,0 @@ -// ATTENTION - FILE MANUAL FIXED AFTER CGO. -// Fixed line: Tv _Ctype_struct_timeval -> Tv UtTv -// Created by cgo -godefs, MANUAL FIXED -// cgo -godefs types_linux.go - -package host - -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 utmp struct { - Type int16 - Pad_cgo_0 [2]byte - Pid int32 - Line [32]int8 - ID [4]int8 - User [32]int8 - Host [256]int8 - Exit exit_status - Session int32 - Tv UtTv - Addr_v6 [4]int32 - X__unused [20]int8 -} -type exit_status struct { - Termination int16 - Exit int16 -} -type UtTv struct { - TvSec int32 - TvUsec int32 -} diff --git a/vendor/github.com/shirou/gopsutil/host/host_linux_amd64.go b/vendor/github.com/shirou/gopsutil/host/host_linux_amd64.go deleted file mode 100644 index 180394bbf4c..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host_linux_amd64.go +++ /dev/null @@ -1,42 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go - -package host - -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 utmp struct { - Type int16 - Pad_cgo_0 [2]byte - Pid int32 - Line [32]int8 - ID [4]int8 - User [32]int8 - Host [256]int8 - Exit exit_status - Session int32 - Tv UtTv - Addr_v6 [4]int32 - X__glibc_reserved [20]int8 -} -type exit_status struct { - Termination int16 - Exit int16 -} -type UtTv struct { - TvSec int32 - TvUsec int32 -} diff --git a/vendor/github.com/shirou/gopsutil/host/host_linux_arm.go b/vendor/github.com/shirou/gopsutil/host/host_linux_arm.go deleted file mode 100644 index 5f7e168b61b..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host_linux_arm.go +++ /dev/null @@ -1,42 +0,0 @@ -// +build linux -// +build arm - -package host - -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 utmp struct { - Type int16 - Pad_cgo_0 [2]byte - Pid int32 - Line [32]int8 - ID [4]int8 - User [32]int8 - Host [256]int8 - Exit exit_status - Session int32 - Tv UtTv - Addr_v6 [4]int32 - X__glibc_reserved [20]int8 -} -type exit_status struct { - Termination int16 - Exit int16 -} -type UtTv struct { - TvSec int32 - TvUsec int32 -} diff --git a/vendor/github.com/shirou/gopsutil/host/host_windows.go b/vendor/github.com/shirou/gopsutil/host/host_windows.go deleted file mode 100644 index 29f900c6e27..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/host_windows.go +++ /dev/null @@ -1,135 +0,0 @@ -// +build windows - -package host - -import ( - "fmt" - "os" - "runtime" - "strings" - "time" - - "github.com/StackExchange/wmi" - - "github.com/shirou/gopsutil/internal/common" - process "github.com/shirou/gopsutil/process" -) - -var ( - procGetSystemTimeAsFileTime = common.Modkernel32.NewProc("GetSystemTimeAsFileTime") - osInfo *Win32_OperatingSystem -) - -type Win32_OperatingSystem struct { - Version string - Caption string - ProductType uint32 - BuildNumber string - LastBootUpTime time.Time -} - -func Info() (*InfoStat, error) { - ret := &InfoStat{ - OS: runtime.GOOS, - } - - hostname, err := os.Hostname() - if err == nil { - ret.Hostname = hostname - } - - platform, family, version, err := PlatformInformation() - if err == nil { - ret.Platform = platform - ret.PlatformFamily = family - ret.PlatformVersion = version - } else { - return ret, err - } - - boot, err := BootTime() - if err == nil { - ret.BootTime = boot - ret.Uptime = uptime(boot) - } - - procs, err := process.Pids() - if err != nil { - return ret, err - } - - ret.Procs = uint64(len(procs)) - - return ret, nil -} - -func GetOSInfo() (Win32_OperatingSystem, error) { - var dst []Win32_OperatingSystem - q := wmi.CreateQuery(&dst, "") - err := wmi.Query(q, &dst) - if err != nil { - return Win32_OperatingSystem{}, err - } - - osInfo = &dst[0] - - return dst[0], nil -} - -func BootTime() (uint64, error) { - if osInfo == nil { - _, err := GetOSInfo() - if err != nil { - return 0, err - } - } - now := time.Now() - t := osInfo.LastBootUpTime.Local() - return uint64(now.Sub(t).Seconds()), nil -} - -func uptime(boot uint64) uint64 { - return uint64(time.Now().Unix()) - boot -} - -func Uptime() (uint64, error) { - boot, err := BootTime() - if err != nil { - return 0, err - } - return uptime(boot), nil -} - -func PlatformInformation() (platform string, family string, version string, err error) { - if osInfo == nil { - _, err = GetOSInfo() - if err != nil { - return - } - } - - // Platform - platform = strings.Trim(osInfo.Caption, " ") - - // PlatformFamily - switch osInfo.ProductType { - case 1: - family = "Standalone Workstation" - case 2: - family = "Server (Domain Controller)" - case 3: - family = "Server" - } - - // Platform Version - version = fmt.Sprintf("%s Build %s", osInfo.Version, osInfo.BuildNumber) - - return -} - -func Users() ([]UserStat, error) { - - var ret []UserStat - - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/host/types_darwin.go b/vendor/github.com/shirou/gopsutil/host/types_darwin.go deleted file mode 100644 index b8582278859..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/types_darwin.go +++ /dev/null @@ -1,17 +0,0 @@ -// +build ignore -// plus hand editing about timeval - -/* -Input to cgo -godefs. -*/ - -package host - -/* -#include -#include -*/ -import "C" - -type Utmpx C.struct_utmpx -type Timeval C.struct_timeval diff --git a/vendor/github.com/shirou/gopsutil/host/types_freebsd.go b/vendor/github.com/shirou/gopsutil/host/types_freebsd.go deleted file mode 100644 index 113b22eeaf3..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/types_freebsd.go +++ /dev/null @@ -1,43 +0,0 @@ -// +build ignore - -/* -Input to cgo -godefs. -*/ - -package host - -/* -#define KERNEL -#include -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -*/ -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 -) - -type Utmp C.struct_utmp -type Utmpx C.struct_utmpx -type Timeval C.struct_timeval diff --git a/vendor/github.com/shirou/gopsutil/host/types_linux.go b/vendor/github.com/shirou/gopsutil/host/types_linux.go deleted file mode 100644 index 928545515c3..00000000000 --- a/vendor/github.com/shirou/gopsutil/host/types_linux.go +++ /dev/null @@ -1,45 +0,0 @@ -// +build ignore - -/* -Input to cgo -godefs. -*/ - -package host - -/* -#define KERNEL -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - -*/ -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 -) - -type utmp C.struct_utmp -type exit_status C.struct_exit_status -type UtTv struct { - TvSec int32 - TvUsec int32 -} diff --git a/vendor/github.com/shirou/gopsutil/internal/common/common.go b/vendor/github.com/shirou/gopsutil/internal/common/common.go index d9dce5cac36..cb6d3f3a75f 100644 --- a/vendor/github.com/shirou/gopsutil/internal/common/common.go +++ b/vendor/github.com/shirou/gopsutil/internal/common/common.go @@ -8,8 +8,11 @@ package common // - windows (amd64) import ( "bufio" + "bytes" "errors" + "fmt" "io/ioutil" + "log" "net/url" "os" "os/exec" @@ -19,6 +22,12 @@ import ( "runtime" "strconv" "strings" + "time" +) + +var ( + Timeout = 3 * time.Second + ErrTimeout = errors.New("Command timed out.") ) type Invoker interface { @@ -28,13 +37,13 @@ type Invoker interface { type Invoke struct{} func (i Invoke) Command(name string, arg ...string) ([]byte, error) { - return exec.Command(name, arg...).Output() + cmd := exec.Command(name, arg...) + return CombinedOutputTimeout(cmd, Timeout) } type FakeInvoke struct { - CommandExpectedDir string // CommandExpectedDir specifies dir which includes expected outputs. - Suffix string // Suffix species expected file name suffix such as "fail" - Error error // If Error specfied, return the error. + Suffix string // Suffix species expected file name suffix such as "fail" + Error error // If Error specfied, return the error. } // Command in FakeInvoke returns from expected file if exists. @@ -45,22 +54,18 @@ func (i FakeInvoke) Command(name string, arg ...string) ([]byte, error) { arch := runtime.GOOS - fname := strings.Join(append([]string{name}, arg...), "") + commandName := filepath.Base(name) + + fname := strings.Join(append([]string{commandName}, arg...), "") fname = url.QueryEscape(fname) - var dir string - if i.CommandExpectedDir == "" { - dir = "expected" - } else { - dir = i.CommandExpectedDir - } - fpath := path.Join(dir, arch, fname) + fpath := path.Join("testdata", arch, fname) if i.Suffix != "" { fpath += "_" + i.Suffix } if PathExists(fpath) { return ioutil.ReadFile(fpath) } - return exec.Command(name, arg...).Output() + return []byte{}, fmt.Errorf("could not find testdata: %s", fpath) } var ErrNotImplementedError = errors.New("not implemented yet") @@ -117,6 +122,23 @@ func IntToString(orig []int8) string { return string(ret[0:size]) } +func UintToString(orig []uint8) string { + ret := make([]byte, len(orig)) + size := -1 + for i, o := range orig { + if o == 0 { + size = i + break + } + ret[i] = byte(o) + } + if size == -1 { + size = len(orig) + } + + return string(ret[0:size]) +} + func ByteToString(orig []byte) string { n := -1 l := -1 @@ -277,3 +299,84 @@ func HostSys(combineWith ...string) string { func HostEtc(combineWith ...string) string { return GetEnv("HOST_ETC", "/etc", combineWith...) } + +// CombinedOutputTimeout runs the given command with the given timeout and +// returns the combined output of stdout and stderr. +// If the command times out, it attempts to kill the process. +// copied from https://github.com/influxdata/telegraf +func CombinedOutputTimeout(c *exec.Cmd, timeout time.Duration) ([]byte, error) { + var b bytes.Buffer + c.Stdout = &b + c.Stderr = &b + if err := c.Start(); err != nil { + return nil, err + } + err := WaitTimeout(c, timeout) + return b.Bytes(), err +} + +// WaitTimeout waits for the given command to finish with a timeout. +// It assumes the command has already been started. +// If the command times out, it attempts to kill the process. +// copied from https://github.com/influxdata/telegraf +func WaitTimeout(c *exec.Cmd, timeout time.Duration) error { + timer := time.NewTimer(timeout) + done := make(chan error) + go func() { done <- c.Wait() }() + select { + case err := <-done: + timer.Stop() + return err + case <-timer.C: + if err := c.Process.Kill(); err != nil { + log.Printf("FATAL error killing process: %s", err) + return err + } + // wait for the command to return after killing it + <-done + return ErrTimeout + } +} + +// https://gist.github.com/kylelemons/1525278 +func Pipeline(cmds ...*exec.Cmd) ([]byte, []byte, error) { + // Require at least one command + if len(cmds) < 1 { + return nil, nil, nil + } + + // Collect the output from the command(s) + var output bytes.Buffer + var stderr bytes.Buffer + + last := len(cmds) - 1 + for i, cmd := range cmds[:last] { + var err error + // Connect each command's stdin to the previous command's stdout + if cmds[i+1].Stdin, err = cmd.StdoutPipe(); err != nil { + return nil, nil, err + } + // Connect each command's stderr to a buffer + cmd.Stderr = &stderr + } + + // Connect the output and error for the last command + cmds[last].Stdout, cmds[last].Stderr = &output, &stderr + + // Start each command + for _, cmd := range cmds { + if err := cmd.Start(); err != nil { + return output.Bytes(), stderr.Bytes(), err + } + } + + // Wait for each command to complete + for _, cmd := range cmds { + if err := cmd.Wait(); err != nil { + return output.Bytes(), stderr.Bytes(), err + } + } + + // Return the pipeline output and the collected standard error + return output.Bytes(), stderr.Bytes(), nil +} diff --git a/vendor/github.com/shirou/gopsutil/internal/common/common_freebsd.go b/vendor/github.com/shirou/gopsutil/internal/common/common_freebsd.go index dfdcebd8d7d..bda4ecfa526 100644 --- a/vendor/github.com/shirou/gopsutil/internal/common/common_freebsd.go +++ b/vendor/github.com/shirou/gopsutil/internal/common/common_freebsd.go @@ -1,4 +1,4 @@ -// +build freebsd +// +build freebsd openbsd package common diff --git a/vendor/github.com/shirou/gopsutil/internal/common/common_linux.go b/vendor/github.com/shirou/gopsutil/internal/common/common_linux.go index 0a122e9d6ae..3d0fc50d668 100644 --- a/vendor/github.com/shirou/gopsutil/internal/common/common_linux.go +++ b/vendor/github.com/shirou/gopsutil/internal/common/common_linux.go @@ -1,3 +1,43 @@ // +build linux package common + +import ( + "os" + "os/exec" + "strings" +) + +func DoSysctrl(mib string) ([]string, error) { + err := os.Setenv("LC_ALL", "C") + if err != nil { + return []string{}, err + } + sysctl, err := exec.LookPath("/sbin/sysctl") + if err != nil { + return []string{}, err + } + out, err := exec.Command(sysctl, "-n", mib).Output() + if err != nil { + return []string{}, err + } + v := strings.Replace(string(out), "{ ", "", 1) + v = strings.Replace(string(v), " }", "", 1) + values := strings.Fields(string(v)) + + return values, nil +} + +func NumProcs() (uint64, error) { + f, err := os.Open(HostProc()) + if err != nil { + return 0, err + } + defer f.Close() + + list, err := f.Readdir(-1) + if err != nil { + return 0, err + } + return uint64(len(list)), err +} diff --git a/vendor/github.com/shirou/gopsutil/internal/common/common_openbsd.go b/vendor/github.com/shirou/gopsutil/internal/common/common_openbsd.go new file mode 100644 index 00000000000..959d9e56df9 --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/internal/common/common_openbsd.go @@ -0,0 +1,70 @@ +// +build openbsd + +package common + +import ( + "os" + "os/exec" + "strings" + "syscall" + "unsafe" +) + +func DoSysctrl(mib string) ([]string, error) { + err := os.Setenv("LC_ALL", "C") + if err != nil { + return []string{}, err + } + sysctl, err := exec.LookPath("/sbin/sysctl") + if err != nil { + return []string{}, err + } + out, err := exec.Command(sysctl, "-n", mib).Output() + if err != nil { + return []string{}, err + } + v := strings.Replace(string(out), "{ ", "", 1) + v = strings.Replace(string(v), " }", "", 1) + values := strings.Fields(string(v)) + + return values, nil +} + +func CallSyscall(mib []int32) ([]byte, uint64, error) { + mibptr := unsafe.Pointer(&mib[0]) + miblen := uint64(len(mib)) + + // get required buffer size + length := uint64(0) + _, _, err := syscall.Syscall6( + syscall.SYS___SYSCTL, + uintptr(mibptr), + uintptr(miblen), + 0, + uintptr(unsafe.Pointer(&length)), + 0, + 0) + if err != 0 { + var b []byte + return b, length, err + } + if length == 0 { + var b []byte + return b, length, err + } + // get proc info itself + buf := make([]byte, length) + _, _, err = syscall.Syscall6( + syscall.SYS___SYSCTL, + uintptr(mibptr), + uintptr(miblen), + uintptr(unsafe.Pointer(&buf[0])), + uintptr(unsafe.Pointer(&length)), + 0, + 0) + if err != 0 { + return buf, length, err + } + + return buf, length, nil +} diff --git a/vendor/github.com/shirou/gopsutil/internal/common/common_unix.go b/vendor/github.com/shirou/gopsutil/internal/common/common_unix.go index 6622eecc2e3..cc934dd6e92 100644 --- a/vendor/github.com/shirou/gopsutil/internal/common/common_unix.go +++ b/vendor/github.com/shirou/gopsutil/internal/common/common_unix.go @@ -1,4 +1,4 @@ -// +build linux freebsd darwin +// +build linux freebsd darwin openbsd package common diff --git a/vendor/github.com/shirou/gopsutil/load/load.go b/vendor/github.com/shirou/gopsutil/load/load.go deleted file mode 100644 index dfe32a1e814..00000000000 --- a/vendor/github.com/shirou/gopsutil/load/load.go +++ /dev/null @@ -1,35 +0,0 @@ -package load - -import ( - "encoding/json" - - "github.com/shirou/gopsutil/internal/common" -) - -var invoke common.Invoker - -func init() { - invoke = common.Invoke{} -} - -type AvgStat struct { - Load1 float64 `json:"load1"` - Load5 float64 `json:"load5"` - Load15 float64 `json:"load15"` -} - -func (l AvgStat) String() string { - s, _ := json.Marshal(l) - return string(s) -} - -type MiscStat struct { - ProcsRunning int `json:"procsRunning"` - ProcsBlocked int `json:"procsBlocked"` - Ctxt int `json:"ctxt"` -} - -func (m MiscStat) String() string { - s, _ := json.Marshal(m) - return string(s) -} diff --git a/vendor/github.com/shirou/gopsutil/load/load_darwin.go b/vendor/github.com/shirou/gopsutil/load/load_darwin.go deleted file mode 100644 index 34e0653aedd..00000000000 --- a/vendor/github.com/shirou/gopsutil/load/load_darwin.go +++ /dev/null @@ -1,67 +0,0 @@ -// +build darwin - -package load - -import ( - "os/exec" - "strconv" - "strings" - - "github.com/shirou/gopsutil/internal/common" -) - -func Avg() (*AvgStat, error) { - values, err := common.DoSysctrl("vm.loadavg") - if err != nil { - return nil, err - } - - load1, err := strconv.ParseFloat(values[0], 64) - if err != nil { - return nil, err - } - load5, err := strconv.ParseFloat(values[1], 64) - if err != nil { - return nil, err - } - load15, err := strconv.ParseFloat(values[2], 64) - if err != nil { - return nil, err - } - - ret := &AvgStat{ - Load1: float64(load1), - Load5: float64(load5), - Load15: float64(load15), - } - - return ret, nil -} - -// Misc returnes miscellaneous host-wide statistics. -// darwin use ps command to get process running/blocked count. -// Almost same as FreeBSD implementation, but state is different. -// U means 'Uninterruptible Sleep'. -func Misc() (*MiscStat, error) { - bin, err := exec.LookPath("ps") - if err != nil { - return nil, err - } - out, err := invoke.Command(bin, "axo", "state") - if err != nil { - return nil, err - } - lines := strings.Split(string(out), "\n") - - ret := MiscStat{} - for _, l := range lines { - if strings.Contains(l, "R") { - ret.ProcsRunning++ - } else if strings.Contains(l, "U") { - // uninterruptible sleep == blocked - ret.ProcsBlocked++ - } - } - - return &ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/load/load_freebsd.go b/vendor/github.com/shirou/gopsutil/load/load_freebsd.go deleted file mode 100644 index 6d3a0bafab1..00000000000 --- a/vendor/github.com/shirou/gopsutil/load/load_freebsd.go +++ /dev/null @@ -1,65 +0,0 @@ -// +build freebsd - -package load - -import ( - "os/exec" - "strconv" - "strings" - - "github.com/shirou/gopsutil/internal/common" -) - -func Avg() (*AvgStat, error) { - values, err := common.DoSysctrl("vm.loadavg") - if err != nil { - return nil, err - } - - load1, err := strconv.ParseFloat(values[0], 64) - if err != nil { - return nil, err - } - load5, err := strconv.ParseFloat(values[1], 64) - if err != nil { - return nil, err - } - load15, err := strconv.ParseFloat(values[2], 64) - if err != nil { - return nil, err - } - - ret := &AvgStat{ - Load1: float64(load1), - Load5: float64(load5), - Load15: float64(load15), - } - - return ret, nil -} - -// Misc returnes miscellaneous host-wide statistics. -// darwin use ps command to get process running/blocked count. -// Almost same as Darwin implementation, but state is different. -func Misc() (*MiscStat, error) { - bin, err := exec.LookPath("ps") - if err != nil { - return nil, err - } - out, err := invoke.Command(bin, "axo", "state") - if err != nil { - return nil, err - } - lines := strings.Split(string(out), "\n") - - ret := MiscStat{} - for _, l := range lines { - if strings.Contains(l, "R") { - ret.ProcsRunning++ - } else if strings.Contains(l, "D") { - ret.ProcsBlocked++ - } - } - - return &ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/load/load_linux.go b/vendor/github.com/shirou/gopsutil/load/load_linux.go deleted file mode 100644 index c455397bf8e..00000000000 --- a/vendor/github.com/shirou/gopsutil/load/load_linux.go +++ /dev/null @@ -1,78 +0,0 @@ -// +build linux - -package load - -import ( - "io/ioutil" - "strconv" - "strings" - - "github.com/shirou/gopsutil/internal/common" -) - -func Avg() (*AvgStat, error) { - filename := common.HostProc("loadavg") - line, err := ioutil.ReadFile(filename) - if err != nil { - return nil, err - } - - values := strings.Fields(string(line)) - - load1, err := strconv.ParseFloat(values[0], 64) - if err != nil { - return nil, err - } - load5, err := strconv.ParseFloat(values[1], 64) - if err != nil { - return nil, err - } - load15, err := strconv.ParseFloat(values[2], 64) - if err != nil { - return nil, err - } - - ret := &AvgStat{ - Load1: load1, - Load5: load5, - Load15: load15, - } - - return ret, nil -} - -// Misc returnes miscellaneous host-wide statistics. -// Note: the name should be changed near future. -func Misc() (*MiscStat, error) { - filename := common.HostProc("stat") - out, err := ioutil.ReadFile(filename) - if err != nil { - return nil, err - } - - ret := &MiscStat{} - lines := strings.Split(string(out), "\n") - for _, line := range lines { - fields := strings.Fields(line) - if len(fields) != 2 { - continue - } - v, err := strconv.ParseInt(fields[1], 10, 64) - if err != nil { - continue - } - switch fields[0] { - case "procs_running": - ret.ProcsRunning = int(v) - case "procs_blocked": - ret.ProcsBlocked = int(v) - case "ctxt": - ret.Ctxt = int(v) - default: - continue - } - - } - - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/load/load_windows.go b/vendor/github.com/shirou/gopsutil/load/load_windows.go deleted file mode 100644 index c45c15442c1..00000000000 --- a/vendor/github.com/shirou/gopsutil/load/load_windows.go +++ /dev/null @@ -1,19 +0,0 @@ -// +build windows - -package load - -import ( - "github.com/shirou/gopsutil/internal/common" -) - -func Avg() (*AvgStat, error) { - ret := AvgStat{} - - return &ret, common.ErrNotImplementedError -} - -func Misc() (*MiscStat, error) { - ret := MiscStat{} - - return &ret, common.ErrNotImplementedError -} diff --git a/vendor/github.com/shirou/gopsutil/mem/mem.go b/vendor/github.com/shirou/gopsutil/mem/mem.go deleted file mode 100644 index 5f122d11b15..00000000000 --- a/vendor/github.com/shirou/gopsutil/mem/mem.go +++ /dev/null @@ -1,64 +0,0 @@ -package mem - -import ( - "encoding/json" -) - -// Memory usage statistics. Total, Available and Used contain numbers of bytes -// for human consumption. -// -// The other fields in this struct contain kernel specific values. -type VirtualMemoryStat struct { - // Total amount of RAM on this system - Total uint64 `json:"total"` - - // RAM available for programs to allocate - // - // This value is computed from the kernel specific values. - Available uint64 `json:"available"` - - // RAM used by programs - // - // This value is computed from the kernel specific values. - Used uint64 `json:"used"` - - // Percentage of RAM used by programs - // - // This value is computed from the kernel specific values. - UsedPercent float64 `json:"usedPercent"` - - // This is the kernel's notion of free memory; RAM chips whose bits nobody - // cares about the value of right now. For a human consumable number, - // Available is what you really want. - Free uint64 `json:"free"` - - // OS X / BSD specific numbers: - // http://www.macyourself.com/2010/02/17/what-is-free-wired-active-and-inactive-system-memory-ram/ - Active uint64 `json:"active"` - Inactive uint64 `json:"inactive"` - Wired uint64 `json:"wired"` - - // Linux specific numbers - // https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-meminfo.html - Buffers uint64 `json:"buffers"` - Cached uint64 `json:"cached"` -} - -type SwapMemoryStat struct { - Total uint64 `json:"total"` - Used uint64 `json:"used"` - Free uint64 `json:"free"` - UsedPercent float64 `json:"usedPercent"` - Sin uint64 `json:"sin"` - Sout uint64 `json:"sout"` -} - -func (m VirtualMemoryStat) String() string { - s, _ := json.Marshal(m) - return string(s) -} - -func (m SwapMemoryStat) String() string { - s, _ := json.Marshal(m) - return string(s) -} diff --git a/vendor/github.com/shirou/gopsutil/mem/mem_darwin.go b/vendor/github.com/shirou/gopsutil/mem/mem_darwin.go deleted file mode 100644 index 922b05cb4f6..00000000000 --- a/vendor/github.com/shirou/gopsutil/mem/mem_darwin.go +++ /dev/null @@ -1,69 +0,0 @@ -// +build darwin - -package mem - -import ( - "encoding/binary" - "strconv" - "strings" - "syscall" - - "github.com/shirou/gopsutil/internal/common" -) - -func getHwMemsize() (uint64, error) { - totalString, err := syscall.Sysctl("hw.memsize") - if err != nil { - return 0, err - } - - // syscall.sysctl() helpfully assumes the result is a null-terminated string and - // removes the last byte of the result if it's 0 :/ - totalString += "\x00" - - total := uint64(binary.LittleEndian.Uint64([]byte(totalString))) - - return total, nil -} - -// SwapMemory returns swapinfo. -func SwapMemory() (*SwapMemoryStat, error) { - var ret *SwapMemoryStat - - swapUsage, err := common.DoSysctrl("vm.swapusage") - if err != nil { - return ret, err - } - - total := strings.Replace(swapUsage[2], "M", "", 1) - used := strings.Replace(swapUsage[5], "M", "", 1) - free := strings.Replace(swapUsage[8], "M", "", 1) - - total_v, err := strconv.ParseFloat(total, 64) - if err != nil { - return nil, err - } - used_v, err := strconv.ParseFloat(used, 64) - if err != nil { - return nil, err - } - free_v, err := strconv.ParseFloat(free, 64) - if err != nil { - return nil, err - } - - u := float64(0) - if total_v != 0 { - u = ((total_v - free_v) / total_v) * 100.0 - } - - // vm.swapusage shows "M", multiply 1000 - ret = &SwapMemoryStat{ - Total: uint64(total_v * 1000), - Used: uint64(used_v * 1000), - Free: uint64(free_v * 1000), - UsedPercent: u, - } - - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/mem/mem_darwin_cgo.go b/vendor/github.com/shirou/gopsutil/mem/mem_darwin_cgo.go deleted file mode 100644 index 461631976e8..00000000000 --- a/vendor/github.com/shirou/gopsutil/mem/mem_darwin_cgo.go +++ /dev/null @@ -1,53 +0,0 @@ -// +build darwin -// +build cgo - -package mem - -/* -#include -*/ -import "C" - -import ( - "fmt" - "syscall" - "unsafe" -) - -// VirtualMemory returns VirtualmemoryStat. -func VirtualMemory() (*VirtualMemoryStat, error) { - count := C.mach_msg_type_number_t(C.HOST_VM_INFO_COUNT) - var vmstat C.vm_statistics_data_t - - status := C.host_statistics(C.host_t(C.mach_host_self()), - C.HOST_VM_INFO, - C.host_info_t(unsafe.Pointer(&vmstat)), - &count) - - if status != C.KERN_SUCCESS { - return nil, fmt.Errorf("host_statistics error=%d", status) - } - - pageSize := uint64(syscall.Getpagesize()) - total, err := getHwMemsize() - if err != nil { - return nil, err - } - totalCount := C.natural_t(total / pageSize) - - availableCount := vmstat.inactive_count + vmstat.free_count - usedPercent := 100 * float64(totalCount-availableCount) / float64(totalCount) - - usedCount := totalCount - availableCount - - return &VirtualMemoryStat{ - Total: total, - Available: pageSize * uint64(availableCount), - Used: pageSize * uint64(usedCount), - UsedPercent: usedPercent, - Free: pageSize * uint64(vmstat.free_count), - Active: pageSize * uint64(vmstat.active_count), - Inactive: pageSize * uint64(vmstat.inactive_count), - Wired: pageSize * uint64(vmstat.wire_count), - }, nil -} diff --git a/vendor/github.com/shirou/gopsutil/mem/mem_darwin_nocgo.go b/vendor/github.com/shirou/gopsutil/mem/mem_darwin_nocgo.go deleted file mode 100644 index 7094802d9a1..00000000000 --- a/vendor/github.com/shirou/gopsutil/mem/mem_darwin_nocgo.go +++ /dev/null @@ -1,88 +0,0 @@ -// +build darwin -// +build !cgo - -package mem - -import ( - "os/exec" - "strconv" - "strings" - "syscall" -) - -// Runs vm_stat and returns Free and inactive pages -func getVMStat(vms *VirtualMemoryStat) error { - vm_stat, err := exec.LookPath("vm_stat") - if err != nil { - return err - } - out, err := exec.Command(vm_stat).Output() - if err != nil { - return err - } - return parseVMStat(string(out), vms) -} - -func parseVMStat(out string, vms *VirtualMemoryStat) error { - var err error - - lines := strings.Split(out, "\n") - pagesize := uint64(syscall.Getpagesize()) - for _, line := range lines { - fields := strings.Split(line, ":") - if len(fields) < 2 { - continue - } - key := strings.TrimSpace(fields[0]) - value := strings.Trim(fields[1], " .") - switch key { - case "Pages free": - free, e := strconv.ParseUint(value, 10, 64) - if e != nil { - err = e - } - vms.Free = free * pagesize - case "Pages inactive": - inactive, e := strconv.ParseUint(value, 10, 64) - if e != nil { - err = e - } - vms.Inactive = inactive * pagesize - case "Pages active": - active, e := strconv.ParseUint(value, 10, 64) - if e != nil { - err = e - } - vms.Active = active * pagesize - case "Pages wired down": - wired, e := strconv.ParseUint(value, 10, 64) - if e != nil { - err = e - } - vms.Wired = wired * pagesize - } - } - return err -} - -// VirtualMemory returns VirtualmemoryStat. -func VirtualMemory() (*VirtualMemoryStat, error) { - ret := &VirtualMemoryStat{} - - total, err := getHwMemsize() - if err != nil { - return nil, err - } - err = getVMStat(ret) - if err != nil { - return nil, err - } - - ret.Available = ret.Free + ret.Inactive - ret.Total = total - - ret.Used = ret.Total - ret.Available - ret.UsedPercent = 100 * float64(ret.Used) / float64(ret.Total) - - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/mem/mem_freebsd.go b/vendor/github.com/shirou/gopsutil/mem/mem_freebsd.go deleted file mode 100644 index 71940576748..00000000000 --- a/vendor/github.com/shirou/gopsutil/mem/mem_freebsd.go +++ /dev/null @@ -1,134 +0,0 @@ -// +build freebsd - -package mem - -import ( - "errors" - "os/exec" - "strconv" - "strings" - - "github.com/shirou/gopsutil/internal/common" -) - -func VirtualMemory() (*VirtualMemoryStat, error) { - pageSize, err := common.DoSysctrl("vm.stats.vm.v_page_size") - if err != nil { - return nil, err - } - p, err := strconv.ParseUint(pageSize[0], 10, 64) - if err != nil { - return nil, err - } - - pageCount, err := common.DoSysctrl("vm.stats.vm.v_page_count") - if err != nil { - return nil, err - } - free, err := common.DoSysctrl("vm.stats.vm.v_free_count") - if err != nil { - return nil, err - } - active, err := common.DoSysctrl("vm.stats.vm.v_active_count") - if err != nil { - return nil, err - } - inactive, err := common.DoSysctrl("vm.stats.vm.v_inactive_count") - if err != nil { - return nil, err - } - cache, err := common.DoSysctrl("vm.stats.vm.v_cache_count") - if err != nil { - return nil, err - } - buffer, err := common.DoSysctrl("vfs.bufspace") - if err != nil { - return nil, err - } - wired, err := common.DoSysctrl("vm.stats.vm.v_wire_count") - if err != nil { - return nil, err - } - - parsed := make([]uint64, 0, 7) - vv := []string{ - pageCount[0], - free[0], - active[0], - inactive[0], - cache[0], - buffer[0], - wired[0], - } - for _, target := range vv { - t, err := strconv.ParseUint(target, 10, 64) - if err != nil { - return nil, err - } - parsed = append(parsed, t) - } - - ret := &VirtualMemoryStat{ - Total: parsed[0] * p, - Free: parsed[1] * p, - Active: parsed[2] * p, - Inactive: parsed[3] * p, - Cached: parsed[4] * p, - Buffers: parsed[5], - Wired: parsed[6] * p, - } - - ret.Available = ret.Inactive + ret.Cached + ret.Free - ret.Used = ret.Total - ret.Available - ret.UsedPercent = float64(ret.Used) / float64(ret.Total) * 100.0 - - return ret, nil -} - -// Return swapinfo -// FreeBSD can have multiple swap devices. but use only first device -func SwapMemory() (*SwapMemoryStat, error) { - swapinfo, err := exec.LookPath("swapinfo") - if err != nil { - return nil, err - } - - out, err := exec.Command(swapinfo).Output() - if err != nil { - return nil, err - } - for _, line := range strings.Split(string(out), "\n") { - values := strings.Fields(line) - // skip title line - if len(values) == 0 || values[0] == "Device" { - continue - } - - u := strings.Replace(values[4], "%", "", 1) - total_v, err := strconv.ParseUint(values[1], 10, 64) - if err != nil { - return nil, err - } - used_v, err := strconv.ParseUint(values[2], 10, 64) - if err != nil { - return nil, err - } - free_v, err := strconv.ParseUint(values[3], 10, 64) - if err != nil { - return nil, err - } - up_v, err := strconv.ParseFloat(u, 64) - if err != nil { - return nil, err - } - - return &SwapMemoryStat{ - Total: total_v, - Used: used_v, - Free: free_v, - UsedPercent: up_v, - }, nil - } - - return nil, errors.New("no swap devices found") -} diff --git a/vendor/github.com/shirou/gopsutil/mem/mem_linux.go b/vendor/github.com/shirou/gopsutil/mem/mem_linux.go deleted file mode 100644 index 899da83dffb..00000000000 --- a/vendor/github.com/shirou/gopsutil/mem/mem_linux.go +++ /dev/null @@ -1,100 +0,0 @@ -// +build linux - -package mem - -import ( - "strconv" - "strings" - "syscall" - - "github.com/shirou/gopsutil/internal/common" -) - -func VirtualMemory() (*VirtualMemoryStat, error) { - filename := common.HostProc("meminfo") - lines, _ := common.ReadLines(filename) - // flag if MemAvailable is in /proc/meminfo (kernel 3.14+) - memavail := false - - ret := &VirtualMemoryStat{} - for _, line := range lines { - fields := strings.Split(line, ":") - if len(fields) != 2 { - continue - } - key := strings.TrimSpace(fields[0]) - value := strings.TrimSpace(fields[1]) - value = strings.Replace(value, " kB", "", -1) - - t, err := strconv.ParseUint(value, 10, 64) - if err != nil { - return ret, err - } - switch key { - case "MemTotal": - ret.Total = t * 1024 - case "MemFree": - ret.Free = t * 1024 - case "MemAvailable": - memavail = true - ret.Available = t * 1024 - case "Buffers": - ret.Buffers = t * 1024 - case "Cached": - ret.Cached = t * 1024 - case "Active": - ret.Active = t * 1024 - case "Inactive": - ret.Inactive = t * 1024 - } - } - if !memavail { - ret.Available = ret.Free + ret.Buffers + ret.Cached - } - ret.Used = ret.Total - ret.Available - ret.UsedPercent = float64(ret.Total-ret.Available) / float64(ret.Total) * 100.0 - - return ret, nil -} - -func SwapMemory() (*SwapMemoryStat, error) { - sysinfo := &syscall.Sysinfo_t{} - - if err := syscall.Sysinfo(sysinfo); err != nil { - return nil, err - } - ret := &SwapMemoryStat{ - Total: uint64(sysinfo.Totalswap), - Free: uint64(sysinfo.Freeswap), - } - ret.Used = ret.Total - ret.Free - //check Infinity - if ret.Total != 0 { - ret.UsedPercent = float64(ret.Total-ret.Free) / float64(ret.Total) * 100.0 - } else { - ret.UsedPercent = 0 - } - filename := common.HostProc("vmstat") - lines, _ := common.ReadLines(filename) - for _, l := range lines { - fields := strings.Fields(l) - if len(fields) < 2 { - continue - } - switch fields[0] { - case "pswpin": - value, err := strconv.ParseUint(fields[1], 10, 64) - if err != nil { - continue - } - ret.Sin = value * 4 * 1024 - case "pswpout": - value, err := strconv.ParseUint(fields[1], 10, 64) - if err != nil { - continue - } - ret.Sout = value * 4 * 1024 - } - } - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/mem/mem_windows.go b/vendor/github.com/shirou/gopsutil/mem/mem_windows.go deleted file mode 100644 index 045af49e39d..00000000000 --- a/vendor/github.com/shirou/gopsutil/mem/mem_windows.go +++ /dev/null @@ -1,50 +0,0 @@ -// +build windows - -package mem - -import ( - "syscall" - "unsafe" - - "github.com/shirou/gopsutil/internal/common" -) - -var ( - procGlobalMemoryStatusEx = common.Modkernel32.NewProc("GlobalMemoryStatusEx") -) - -type memoryStatusEx struct { - cbSize uint32 - dwMemoryLoad uint32 - ullTotalPhys uint64 // in bytes - ullAvailPhys uint64 - ullTotalPageFile uint64 - ullAvailPageFile uint64 - ullTotalVirtual uint64 - ullAvailVirtual uint64 - ullAvailExtendedVirtual uint64 -} - -func VirtualMemory() (*VirtualMemoryStat, error) { - var memInfo memoryStatusEx - memInfo.cbSize = uint32(unsafe.Sizeof(memInfo)) - mem, _, _ := procGlobalMemoryStatusEx.Call(uintptr(unsafe.Pointer(&memInfo))) - if mem == 0 { - return nil, syscall.GetLastError() - } - - ret := &VirtualMemoryStat{ - Total: memInfo.ullTotalPhys, - Available: memInfo.ullAvailPhys, - UsedPercent: float64(memInfo.dwMemoryLoad), - } - - ret.Used = ret.Total - ret.Available - return ret, nil -} - -func SwapMemory() (*SwapMemoryStat, error) { - ret := &SwapMemoryStat{} - - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/mktypes.sh b/vendor/github.com/shirou/gopsutil/mktypes.sh deleted file mode 100644 index 7bf2e241217..00000000000 --- a/vendor/github.com/shirou/gopsutil/mktypes.sh +++ /dev/null @@ -1,37 +0,0 @@ - -DIRS="cpu disk docker host load mem net process" - -GOOS=`uname | tr '[:upper:]' '[:lower:]'` -ARCH=`uname -m` - -case $ARCH in - amd64) - GOARCH="amd64" - ;; - x86_64) - GOARCH="amd64" - ;; - i386) - GOARCH="386" - ;; - i686) - GOARCH="386" - ;; - arm) - GOARCH="arm" - ;; - *) - echo "unknown arch: $ARCH" - exit 1 -esac - -for DIR in $DIRS -do - if [ -e ${DIR}/types_${GOOS}.go ]; then - echo "// +build $GOOS" > ${DIR}/${DIR}_${GOOS}_${GOARCH}.go - echo "// +build $GOARCH" >> ${DIR}/${DIR}_${GOOS}_${GOARCH}.go - go tool cgo -godefs ${DIR}/types_${GOOS}.go >> ${DIR}/${DIR}_${GOOS}_${GOARCH}.go - fi -done - - diff --git a/vendor/github.com/shirou/gopsutil/net/net.go b/vendor/github.com/shirou/gopsutil/net/net.go index 5cdd72ac0fc..48660ec747e 100644 --- a/vendor/github.com/shirou/gopsutil/net/net.go +++ b/vendor/github.com/shirou/gopsutil/net/net.go @@ -27,6 +27,9 @@ type IOCountersStat struct { Errout uint64 `json:"errout"` // total number of errors while sending Dropin uint64 `json:"dropin"` // total number of incoming packets which were dropped Dropout uint64 `json:"dropout"` // total number of outgoing packets which were dropped (always 0 on OSX and BSD) + Fifoin uint64 `json:"fifoin"` // total number of FIFO buffers errors while receiving + Fifoout uint64 `json:"fifoout"` // total number of FIFO buffers errors while sending + } // Addr is implemented compatibility to psutil @@ -36,13 +39,14 @@ type Addr struct { } type ConnectionStat struct { - Fd uint32 `json:"fd"` - Family uint32 `json:"family"` - Type uint32 `json:"type"` - Laddr Addr `json:"localaddr"` - Raddr Addr `json:"remoteaddr"` - Status string `json:"status"` - Pid int32 `json:"pid"` + Fd uint32 `json:"fd"` + Family uint32 `json:"family"` + Type uint32 `json:"type"` + Laddr Addr `json:"localaddr"` + Raddr Addr `json:"remoteaddr"` + Status string `json:"status"` + Uids []int32 `json:"uids"` + Pid int32 `json:"pid"` } // System wide stats about different network protocols diff --git a/vendor/github.com/shirou/gopsutil/net/net_darwin.go b/vendor/github.com/shirou/gopsutil/net/net_darwin.go index 4fa358a38c9..f1065c6d01f 100644 --- a/vendor/github.com/shirou/gopsutil/net/net_darwin.go +++ b/vendor/github.com/shirou/gopsutil/net/net_darwin.go @@ -4,95 +4,248 @@ package net import ( "errors" + "fmt" "os/exec" + "regexp" "strconv" "strings" +) - "github.com/shirou/gopsutil/internal/common" +var ( + errNetstatHeader = errors.New("Can't parse header of netstat output") + netstatLinkRegexp = regexp.MustCompile(`^$`) ) -// example of netstat -idbn output on yosemite +const endOfLine = "\n" + +func parseNetstatLine(line string) (stat *IOCountersStat, linkId *uint, err error) { + var ( + numericValue uint64 + columns = strings.Fields(line) + ) + + if columns[0] == "Name" { + err = errNetstatHeader + return + } + + // try to extract the numeric value from + if subMatch := netstatLinkRegexp.FindStringSubmatch(columns[2]); len(subMatch) == 2 { + numericValue, err = strconv.ParseUint(subMatch[1], 10, 64) + if err != nil { + return + } + linkIdUint := uint(numericValue) + linkId = &linkIdUint + } + + base := 1 + numberColumns := len(columns) + // sometimes Address is ommitted + if numberColumns < 12 { + base = 0 + } + if numberColumns < 11 || numberColumns > 13 { + err = fmt.Errorf("Line %q do have an invalid number of columns %d", line, numberColumns) + return + } + + parsed := make([]uint64, 0, 7) + vv := []string{ + columns[base+3], // Ipkts == PacketsRecv + columns[base+4], // Ierrs == Errin + columns[base+5], // Ibytes == BytesRecv + columns[base+6], // Opkts == PacketsSent + columns[base+7], // Oerrs == Errout + columns[base+8], // Obytes == BytesSent + } + if len(columns) == 12 { + vv = append(vv, columns[base+10]) + } + + for _, target := range vv { + if target == "-" { + parsed = append(parsed, 0) + continue + } + + if numericValue, err = strconv.ParseUint(target, 10, 64); err != nil { + return + } + parsed = append(parsed, numericValue) + } + + stat = &IOCountersStat{ + Name: strings.Trim(columns[0], "*"), // remove the * that sometimes is on right on interface + PacketsRecv: parsed[0], + Errin: parsed[1], + BytesRecv: parsed[2], + PacketsSent: parsed[3], + Errout: parsed[4], + BytesSent: parsed[5], + } + if len(parsed) == 7 { + stat.Dropout = parsed[6] + } + return +} + +type netstatInterface struct { + linkId *uint + stat *IOCountersStat +} + +func parseNetstatOutput(output string) ([]netstatInterface, error) { + var ( + err error + lines = strings.Split(strings.Trim(output, endOfLine), endOfLine) + ) + + // number of interfaces is number of lines less one for the header + numberInterfaces := len(lines) - 1 + + interfaces := make([]netstatInterface, numberInterfaces) + // no output beside header + if numberInterfaces == 0 { + return interfaces, nil + } + + for index := 0; index < numberInterfaces; index++ { + nsIface := netstatInterface{} + if nsIface.stat, nsIface.linkId, err = parseNetstatLine(lines[index+1]); err != nil { + return nil, err + } + interfaces[index] = nsIface + } + return interfaces, nil +} + +// map that hold the name of a network interface and the number of usage +type mapInterfaceNameUsage map[string]uint + +func newMapInterfaceNameUsage(ifaces []netstatInterface) mapInterfaceNameUsage { + output := make(mapInterfaceNameUsage) + for index := range ifaces { + if ifaces[index].linkId != nil { + ifaceName := ifaces[index].stat.Name + usage, ok := output[ifaceName] + if ok { + output[ifaceName] = usage + 1 + } else { + output[ifaceName] = 1 + } + } + } + return output +} + +func (min mapInterfaceNameUsage) isTruncated() bool { + for _, usage := range min { + if usage > 1 { + return true + } + } + return false +} + +func (min mapInterfaceNameUsage) notTruncated() []string { + output := make([]string, 0) + for ifaceName, usage := range min { + if usage == 1 { + output = append(output, ifaceName) + } + } + return output +} + +// example of `netstat -ibdnW` output on yosemite // Name Mtu Network Address Ipkts Ierrs Ibytes Opkts Oerrs Obytes Coll Drop // lo0 16384 869107 0 169411755 869107 0 169411755 0 0 // lo0 16384 ::1/128 ::1 869107 - 169411755 869107 - 169411755 - - // lo0 16384 127 127.0.0.1 869107 - 169411755 869107 - 169411755 - - func IOCounters(pernic bool) ([]IOCountersStat, error) { + var ( + ret []IOCountersStat + retIndex int + ) + netstat, err := exec.LookPath("/usr/sbin/netstat") if err != nil { return nil, err } - out, err := exec.Command(netstat, "-ibdnW").Output() + + // try to get all interface metrics, and hope there won't be any truncated + out, err := invoke.Command(netstat, "-ibdnW") if err != nil { return nil, err } - lines := strings.Split(string(out), "\n") - ret := make([]IOCountersStat, 0, len(lines)-1) - exists := make([]string, 0, len(ret)) + nsInterfaces, err := parseNetstatOutput(string(out)) + if err != nil { + return nil, err + } - for _, line := range lines { - values := strings.Fields(line) - if len(values) < 1 || values[0] == "Name" { - // skip first line - continue - } - if common.StringsHas(exists, values[0]) { - // skip if already get - continue - } - exists = append(exists, values[0]) + ifaceUsage := newMapInterfaceNameUsage(nsInterfaces) + notTruncated := ifaceUsage.notTruncated() + ret = make([]IOCountersStat, len(notTruncated)) - base := 1 - // sometimes Address is ommitted - if len(values) < 11 { - base = 0 + if !ifaceUsage.isTruncated() { + // no truncated interface name, return stats of all interface with + for index := range nsInterfaces { + if nsInterfaces[index].linkId != nil { + ret[retIndex] = *nsInterfaces[index].stat + retIndex++ + } } - - parsed := make([]uint64, 0, 7) - vv := []string{ - values[base+3], // Ipkts == PacketsRecv - values[base+4], // Ierrs == Errin - values[base+5], // Ibytes == BytesRecv - values[base+6], // Opkts == PacketsSent - values[base+7], // Oerrs == Errout - values[base+8], // Obytes == BytesSent + } else { + // duplicated interface, list all interfaces + ifconfig, err := exec.LookPath("/sbin/ifconfig") + if err != nil { + return nil, err } - if len(values) == 12 { - vv = append(vv, values[base+10]) + if out, err = invoke.Command(ifconfig, "-l"); err != nil { + return nil, err } + interfaceNames := strings.Fields(strings.TrimRight(string(out), endOfLine)) - for _, target := range vv { - if target == "-" { - parsed = append(parsed, 0) - continue + // for each of the interface name, run netstat if we don't have any stats yet + for _, interfaceName := range interfaceNames { + truncated := true + for index := range nsInterfaces { + if nsInterfaces[index].linkId != nil && nsInterfaces[index].stat.Name == interfaceName { + // handle the non truncated name to avoid execute netstat for them again + ret[retIndex] = *nsInterfaces[index].stat + retIndex++ + truncated = false + break + } } - - t, err := strconv.ParseUint(target, 10, 64) - if err != nil { - return nil, err + if truncated { + // run netstat with -I$ifacename + if out, err = invoke.Command(netstat, "-ibdnWI"+interfaceName); err != nil { + return nil, err + } + parsedIfaces, err := parseNetstatOutput(string(out)) + if err != nil { + return nil, err + } + if len(parsedIfaces) == 0 { + // interface had been removed since `ifconfig -l` had been executed + continue + } + for index := range parsedIfaces { + if parsedIfaces[index].linkId != nil { + ret = append(ret, *parsedIfaces[index].stat) + break + } + } } - parsed = append(parsed, t) } - - n := IOCountersStat{ - Name: values[0], - PacketsRecv: parsed[0], - Errin: parsed[1], - BytesRecv: parsed[2], - PacketsSent: parsed[3], - Errout: parsed[4], - BytesSent: parsed[5], - } - if len(parsed) == 7 { - n.Dropout = parsed[6] - } - ret = append(ret, n) } if pernic == false { return getIOCountersAll(ret) } - return ret, nil } diff --git a/vendor/github.com/shirou/gopsutil/net/net_fallback.go b/vendor/github.com/shirou/gopsutil/net/net_fallback.go new file mode 100644 index 00000000000..653bd47e5e3 --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/net/net_fallback.go @@ -0,0 +1,25 @@ +// +build !darwin,!linux,!freebsd,!openbsd,!windows + +package net + +import "github.com/shirou/gopsutil/internal/common" + +func IOCounters(pernic bool) ([]IOCountersStat, error) { + return []IOCountersStat{}, common.ErrNotImplementedError +} + +func FilterCounters() ([]FilterStat, error) { + return []FilterStat{}, common.ErrNotImplementedError +} + +func ProtoCounters(protocols []string) ([]ProtoCountersStat, error) { + return []ProtoCountersStat{}, common.ErrNotImplementedError +} + +func Connections(kind string) ([]ConnectionStat, error) { + return []ConnectionStat{}, common.ErrNotImplementedError +} + +func ConnectionsMax(kind string, max int) ([]ConnectionStat, error) { + return []ConnectionStat{}, common.ErrNotImplementedError +} diff --git a/vendor/github.com/shirou/gopsutil/net/net_freebsd.go b/vendor/github.com/shirou/gopsutil/net/net_freebsd.go index 3a67b4af4a5..2b546550e57 100644 --- a/vendor/github.com/shirou/gopsutil/net/net_freebsd.go +++ b/vendor/github.com/shirou/gopsutil/net/net_freebsd.go @@ -16,7 +16,7 @@ func IOCounters(pernic bool) ([]IOCountersStat, error) { if err != nil { return nil, err } - out, err := exec.Command(netstat, "-ibdnW").Output() + out, err := invoke.Command(netstat, "-ibdnW") if err != nil { return nil, err } diff --git a/vendor/github.com/shirou/gopsutil/net/net_linux.go b/vendor/github.com/shirou/gopsutil/net/net_linux.go index e0247714fea..58c07290ca6 100644 --- a/vendor/github.com/shirou/gopsutil/net/net_linux.go +++ b/vendor/github.com/shirou/gopsutil/net/net_linux.go @@ -37,7 +37,7 @@ func IOCountersByFile(pernic bool, filename string) ([]IOCountersStat, error) { ret := make([]IOCountersStat, 0, statlen) for _, line := range lines[2:] { - parts := strings.SplitN(line, ":", 2) + parts := strings.SplitN(line, ": ", 2) if len(parts) != 2 { continue } @@ -63,6 +63,10 @@ func IOCountersByFile(pernic bool, filename string) ([]IOCountersStat, error) { if err != nil { return ret, err } + fifoIn, err := strconv.ParseUint(fields[4], 10, 64) + if err != nil { + return ret, err + } bytesSent, err := strconv.ParseUint(fields[8], 10, 64) if err != nil { return ret, err @@ -75,7 +79,11 @@ func IOCountersByFile(pernic bool, filename string) ([]IOCountersStat, error) { if err != nil { return ret, err } - dropOut, err := strconv.ParseUint(fields[13], 10, 64) + dropOut, err := strconv.ParseUint(fields[11], 10, 64) + if err != nil { + return ret, err + } + fifoOut, err := strconv.ParseUint(fields[12], 10, 64) if err != nil { return ret, err } @@ -86,10 +94,12 @@ func IOCountersByFile(pernic bool, filename string) ([]IOCountersStat, error) { PacketsRecv: packetsRecv, Errin: errIn, Dropin: dropIn, + Fifoin: fifoIn, BytesSent: bytesSent, PacketsSent: packetsSent, Errout: errOut, Dropout: dropOut, + Fifoout: fifoOut, } ret = append(ret, nic) } @@ -175,8 +185,8 @@ func ProtoCounters(protocols []string) ([]ProtoCountersStat, error) { // the currently in use conntrack count and the max. // If the file does not exist or is invalid it will return nil. func FilterCounters() ([]FilterStat, error) { - countfile := common.HostProc("sys/net/netfilter/nf_conntrackCount") - maxfile := common.HostProc("sys/net/netfilter/nf_conntrackMax") + countfile := common.HostProc("sys/net/netfilter/nf_conntrack_count") + maxfile := common.HostProc("sys/net/netfilter/nf_conntrack_max") count, err := common.ReadInts(countfile) @@ -281,6 +291,12 @@ func Connections(kind string) ([]ConnectionStat, error) { return ConnectionsPid(kind, 0) } +// Return a list of network connections opened returning at most `max` +// connections for each running process. +func ConnectionsMax(kind string, max int) ([]ConnectionStat, error) { + return ConnectionsPidMax(kind, 0, max) +} + // Return a list of network connections opened by a process. func ConnectionsPid(kind string, pid int32) ([]ConnectionStat, error) { tmap, ok := netConnectionKindMap[kind] @@ -291,9 +307,33 @@ func ConnectionsPid(kind string, pid int32) ([]ConnectionStat, error) { var err error var inodes map[string][]inodeMap if pid == 0 { - inodes, err = getProcInodesAll(root) + inodes, err = getProcInodesAll(root, 0) + } else { + inodes, err = getProcInodes(root, pid, 0) + if len(inodes) == 0 { + // no connection for the pid + return []ConnectionStat{}, nil + } + } + if err != nil { + return nil, fmt.Errorf("cound not get pid(s), %d", pid) + } + return statsFromInodes(root, pid, tmap, inodes) +} + +// Return up to `max` network connections opened by a process. +func ConnectionsPidMax(kind string, pid int32, max int) ([]ConnectionStat, error) { + tmap, ok := netConnectionKindMap[kind] + if !ok { + return nil, fmt.Errorf("invalid kind, %s", kind) + } + root := common.HostProc() + var err error + var inodes map[string][]inodeMap + if pid == 0 { + inodes, err = getProcInodesAll(root, max) } else { - inodes, err = getProcInodes(root, pid) + inodes, err = getProcInodes(root, pid, max) if len(inodes) == 0 { // no connection for the pid return []ConnectionStat{}, nil @@ -302,10 +342,14 @@ func ConnectionsPid(kind string, pid int32) ([]ConnectionStat, error) { if err != nil { return nil, fmt.Errorf("cound not get pid(s), %d", pid) } + return statsFromInodes(root, pid, tmap, inodes) +} - dupCheckMap := make(map[string]bool) +func statsFromInodes(root string, pid int32, tmap []netConnectionKindType, inodes map[string][]inodeMap) ([]ConnectionStat, error) { + dupCheckMap := make(map[connTmp]struct{}) var ret []ConnectionStat + var err error for _, t := range tmap { var path string var ls []connTmp @@ -322,6 +366,10 @@ func ConnectionsPid(kind string, pid int32) ([]ConnectionStat, error) { return nil, err } for _, c := range ls { + if _, ok := dupCheckMap[c]; ok { + continue + } + conn := ConnectionStat{ Fd: c.fd, Family: c.family, @@ -336,13 +384,13 @@ func ConnectionsPid(kind string, pid int32) ([]ConnectionStat, error) { } else { conn.Pid = c.pid } - // check duplicate using JSON format - json := conn.String() - _, exists := dupCheckMap[json] - if !exists { - ret = append(ret, conn) - dupCheckMap[json] = true - } + + // fetch process owner Real, effective, saved set, and filesystem UIDs + proc := process{Pid: conn.Pid} + conn.Uids, _ = proc.getUids() + + ret = append(ret, conn) + dupCheckMap[c] = struct{}{} } } @@ -351,11 +399,16 @@ func ConnectionsPid(kind string, pid int32) ([]ConnectionStat, error) { } // getProcInodes returnes fd of the pid. -func getProcInodes(root string, pid int32) (map[string][]inodeMap, error) { +func getProcInodes(root string, pid int32, max int) (map[string][]inodeMap, error) { ret := make(map[string][]inodeMap) dir := fmt.Sprintf("%s/%d/fd", root, pid) - files, err := ioutil.ReadDir(dir) + f, err := os.Open(dir) + if err != nil { + return ret, nil + } + defer f.Close() + files, err := f.Readdir(max) if err != nil { return ret, nil } @@ -419,7 +472,55 @@ func Pids() ([]int32, error) { return ret, nil } -func getProcInodesAll(root string) (map[string][]inodeMap, error) { +// Note: the following is based off process_linux structs and methods +// we need these to fetch the owner of a process ID +// FIXME: Import process occures import cycle. +// see remarks on pids() +type process struct { + Pid int32 `json:"pid"` + uids []int32 +} + +// Uids returns user ids of the process as a slice of the int +func (p *process) getUids() ([]int32, error) { + err := p.fillFromStatus() + if err != nil { + return []int32{}, err + } + return p.uids, nil +} + +// Get status from /proc/(pid)/status +func (p *process) fillFromStatus() error { + pid := p.Pid + statPath := common.HostProc(strconv.Itoa(int(pid)), "status") + contents, err := ioutil.ReadFile(statPath) + if err != nil { + return err + } + lines := strings.Split(string(contents), "\n") + for _, line := range lines { + tabParts := strings.SplitN(line, "\t", 2) + if len(tabParts) < 2 { + continue + } + value := tabParts[1] + switch strings.TrimRight(tabParts[0], ":") { + case "Uid": + p.uids = make([]int32, 0, 4) + for _, i := range strings.Split(value, "\t") { + v, err := strconv.ParseInt(i, 10, 32) + if err != nil { + return err + } + p.uids = append(p.uids, int32(v)) + } + } + } + return nil +} + +func getProcInodesAll(root string, max int) (map[string][]inodeMap, error) { pids, err := Pids() if err != nil { return nil, err @@ -427,7 +528,7 @@ func getProcInodesAll(root string) (map[string][]inodeMap, error) { ret := make(map[string][]inodeMap) for _, pid := range pids { - t, err := getProcInodes(root, pid) + t, err := getProcInodes(root, pid, max) if err != nil { return ret, err } diff --git a/vendor/github.com/shirou/gopsutil/net/net_openbsd.go b/vendor/github.com/shirou/gopsutil/net/net_openbsd.go new file mode 100644 index 00000000000..85cc70c4977 --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/net/net_openbsd.go @@ -0,0 +1,153 @@ +// +build openbsd + +package net + +import ( + "errors" + "os/exec" + "strconv" + "strings" + + "github.com/shirou/gopsutil/internal/common" +) + +func ParseNetstat(output string, mode string, + iocs map[string]IOCountersStat) error { + lines := strings.Split(output, "\n") + + exists := make([]string, 0, len(lines)-1) + + columns := 6 + if mode == "ind" { + columns = 10 + } + for _, line := range lines { + values := strings.Fields(line) + if len(values) < 1 || values[0] == "Name" { + continue + } + if common.StringsHas(exists, values[0]) { + // skip if already get + continue + } + + if len(values) < columns { + continue + } + base := 1 + // sometimes Address is ommitted + if len(values) < columns { + base = 0 + } + + parsed := make([]uint64, 0, 8) + var vv []string + if mode == "inb" { + vv = []string{ + values[base+3], // BytesRecv + values[base+4], // BytesSent + } + } else { + vv = []string{ + values[base+3], // Ipkts + values[base+4], // Ierrs + values[base+5], // Opkts + values[base+6], // Oerrs + values[base+8], // Drops + } + } + for _, target := range vv { + if target == "-" { + parsed = append(parsed, 0) + continue + } + + t, err := strconv.ParseUint(target, 10, 64) + if err != nil { + return err + } + parsed = append(parsed, t) + } + exists = append(exists, values[0]) + + n, present := iocs[values[0]] + if !present { + n = IOCountersStat{Name: values[0]} + } + if mode == "inb" { + n.BytesRecv = parsed[0] + n.BytesSent = parsed[1] + } else { + n.PacketsRecv = parsed[0] + n.Errin = parsed[1] + n.PacketsSent = parsed[2] + n.Errout = parsed[3] + n.Dropin = parsed[4] + n.Dropout = parsed[4] + } + + iocs[n.Name] = n + } + return nil +} + +func IOCounters(pernic bool) ([]IOCountersStat, error) { + netstat, err := exec.LookPath("/usr/bin/netstat") + if err != nil { + return nil, err + } + out, err := invoke.Command(netstat, "-inb") + if err != nil { + return nil, err + } + out2, err := invoke.Command(netstat, "-ind") + if err != nil { + return nil, err + } + iocs := make(map[string]IOCountersStat) + + lines := strings.Split(string(out), "\n") + ret := make([]IOCountersStat, 0, len(lines)-1) + + err = ParseNetstat(string(out), "inb", iocs) + if err != nil { + return nil, err + } + err = ParseNetstat(string(out2), "ind", iocs) + if err != nil { + return nil, err + } + + for _, ioc := range iocs { + ret = append(ret, ioc) + } + + if pernic == false { + return getIOCountersAll(ret) + } + + return ret, nil +} + +// NetIOCountersByFile is an method which is added just a compatibility for linux. +func IOCountersByFile(pernic bool, filename string) ([]IOCountersStat, error) { + return IOCounters(pernic) +} + +func FilterCounters() ([]FilterStat, error) { + return nil, errors.New("NetFilterCounters not implemented for openbsd") +} + +// NetProtoCounters returns network statistics for the entire system +// If protocols is empty then all protocols are returned, otherwise +// just the protocols in the list are returned. +// Not Implemented for OpenBSD +func ProtoCounters(protocols []string) ([]ProtoCountersStat, error) { + return nil, errors.New("NetProtoCounters not implemented for openbsd") +} + +// Return a list of network connections opened. +// Not Implemented for OpenBSD +func Connections(kind string) ([]ConnectionStat, error) { + return nil, errors.New("Connections not implemented for openbsd") +} diff --git a/vendor/github.com/shirou/gopsutil/net/net_unix.go b/vendor/github.com/shirou/gopsutil/net/net_unix.go index 45de6b17deb..1224128ab66 100644 --- a/vendor/github.com/shirou/gopsutil/net/net_unix.go +++ b/vendor/github.com/shirou/gopsutil/net/net_unix.go @@ -13,6 +13,12 @@ func Connections(kind string) ([]ConnectionStat, error) { return ConnectionsPid(kind, 0) } +// Return a list of network connections opened returning at most `max` +// connections for each running process. +func ConnectionsMax(kind string, max int) ([]ConnectionStat, error) { + return []ConnectionStat{}, common.ErrNotImplementedError +} + // Return a list of network connections opened by a process. func ConnectionsPid(kind string, pid int32) ([]ConnectionStat, error) { var ret []ConnectionStat @@ -66,3 +72,8 @@ func ConnectionsPid(kind string, pid int32) ([]ConnectionStat, error) { return ret, nil } + +// Return up to `max` network connections opened by a process. +func ConnectionsPidMax(kind string, pid int32, max int) ([]ConnectionStat, error) { + return []ConnectionStat{}, common.ErrNotImplementedError +} diff --git a/vendor/github.com/shirou/gopsutil/net/net_windows.go b/vendor/github.com/shirou/gopsutil/net/net_windows.go index f125260c4d5..996e83226ac 100644 --- a/vendor/github.com/shirou/gopsutil/net/net_windows.go +++ b/vendor/github.com/shirou/gopsutil/net/net_windows.go @@ -7,7 +7,6 @@ import ( "net" "os" "syscall" - "unsafe" "github.com/shirou/gopsutil/internal/common" ) @@ -35,37 +34,28 @@ func IOCounters(pernic bool) ([]IOCountersStat, error) { if err != nil { return nil, err } - - ai, err := getAdapterList() - if err != nil { - return nil, err - } var ret []IOCountersStat for _, ifi := range ifs { - name := ifi.Name - for ; ai != nil; ai = ai.Next { - name = common.BytePtrToString(&ai.Description[0]) - c := IOCountersStat{ - Name: name, - } - - row := syscall.MibIfRow{Index: ai.Index} - e := syscall.GetIfEntry(&row) - if e != nil { - return nil, os.NewSyscallError("GetIfEntry", e) - } - c.BytesSent = uint64(row.OutOctets) - c.BytesRecv = uint64(row.InOctets) - c.PacketsSent = uint64(row.OutUcastPkts) - c.PacketsRecv = uint64(row.InUcastPkts) - c.Errin = uint64(row.InErrors) - c.Errout = uint64(row.OutErrors) - c.Dropin = uint64(row.InDiscards) - c.Dropout = uint64(row.OutDiscards) - - ret = append(ret, c) + c := IOCountersStat{ + Name: ifi.Name, } + + row := syscall.MibIfRow{Index: uint32(ifi.Index)} + e := syscall.GetIfEntry(&row) + if e != nil { + return nil, os.NewSyscallError("GetIfEntry", e) + } + c.BytesSent = uint64(row.OutOctets) + c.BytesRecv = uint64(row.InOctets) + c.PacketsSent = uint64(row.OutUcastPkts) + c.PacketsRecv = uint64(row.InUcastPkts) + c.Errin = uint64(row.InErrors) + c.Errout = uint64(row.OutErrors) + c.Dropin = uint64(row.InDiscards) + c.Dropout = uint64(row.OutDiscards) + + ret = append(ret, c) } if pernic == false { @@ -86,21 +76,10 @@ func Connections(kind string) ([]ConnectionStat, error) { return ret, common.ErrNotImplementedError } -// borrowed from src/pkg/net/interface_windows.go -func getAdapterList() (*syscall.IpAdapterInfo, error) { - b := make([]byte, 1000) - l := uint32(len(b)) - a := (*syscall.IpAdapterInfo)(unsafe.Pointer(&b[0])) - err := syscall.GetAdaptersInfo(a, &l) - if err == syscall.ERROR_BUFFER_OVERFLOW { - b = make([]byte, l) - a = (*syscall.IpAdapterInfo)(unsafe.Pointer(&b[0])) - err = syscall.GetAdaptersInfo(a, &l) - } - if err != nil { - return nil, os.NewSyscallError("GetAdaptersInfo", err) - } - return a, nil +// Return a list of network connections opened returning at most `max` +// connections for each running process. +func ConnectionsMax(kind string, max int) ([]ConnectionStat, error) { + return []ConnectionStat{}, common.ErrNotImplementedError } func FilterCounters() ([]FilterStat, error) { diff --git a/vendor/github.com/shirou/gopsutil/process/expected/darwin/%2Fbin%2Fps-ax-opid_fail b/vendor/github.com/shirou/gopsutil/process/expected/darwin/%2Fbin%2Fps-ax-opid_fail deleted file mode 100644 index fce59efc0e0..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/expected/darwin/%2Fbin%2Fps-ax-opid_fail +++ /dev/null @@ -1,10 +0,0 @@ - PID - 245 - 247 - 248 - 249 - 254 - 262 - 264 - 265 - 267 diff --git a/vendor/github.com/shirou/gopsutil/process/process.go b/vendor/github.com/shirou/gopsutil/process/process.go deleted file mode 100644 index 2b9d6854ee6..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process.go +++ /dev/null @@ -1,166 +0,0 @@ -package process - -import ( - "encoding/json" - "runtime" - "time" - - "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/internal/common" - "github.com/shirou/gopsutil/mem" -) - -var invoke common.Invoker - -func init() { - invoke = common.Invoke{} -} - -type Process struct { - Pid int32 `json:"pid"` - name string - status string - numCtxSwitches *NumCtxSwitchesStat - uids []int32 - gids []int32 - numThreads int32 - memInfo *MemoryInfoStat - - lastCPUTimes *cpu.TimesStat - lastCPUTime time.Time -} - -type OpenFilesStat struct { - Path string `json:"path"` - Fd uint64 `json:"fd"` -} - -type MemoryInfoStat struct { - RSS uint64 `json:"rss"` // bytes - VMS uint64 `json:"vms"` // bytes - Swap uint64 `json:"swap"` // bytes -} - -type RlimitStat struct { - Resource int32 `json:"resource"` - Soft int32 `json:"soft"` - Hard int32 `json:"hard"` -} - -type IOCountersStat struct { - ReadCount uint64 `json:"readCount"` - WriteCount uint64 `json:"writeCount"` - ReadBytes uint64 `json:"readBytes"` - WriteBytes uint64 `json:"writeBytes"` -} - -type NumCtxSwitchesStat struct { - Voluntary int64 `json:"voluntary"` - Involuntary int64 `json:"involuntary"` -} - -func (p Process) String() string { - s, _ := json.Marshal(p) - return string(s) -} - -func (o OpenFilesStat) String() string { - s, _ := json.Marshal(o) - return string(s) -} - -func (m MemoryInfoStat) String() string { - s, _ := json.Marshal(m) - return string(s) -} - -func (r RlimitStat) String() string { - s, _ := json.Marshal(r) - return string(s) -} - -func (i IOCountersStat) String() string { - s, _ := json.Marshal(i) - return string(s) -} - -func (p NumCtxSwitchesStat) String() string { - s, _ := json.Marshal(p) - return string(s) -} - -func PidExists(pid int32) (bool, error) { - pids, err := Pids() - if err != nil { - return false, err - } - - for _, i := range pids { - if i == pid { - return true, err - } - } - - return false, err -} - -// If interval is 0, return difference from last call(non-blocking). -// If interval > 0, wait interval sec and return diffrence between start and end. -func (p *Process) Percent(interval time.Duration) (float64, error) { - cpuTimes, err := p.Times() - if err != nil { - return 0, err - } - now := time.Now() - - if interval > 0 { - p.lastCPUTimes = cpuTimes - p.lastCPUTime = now - time.Sleep(interval) - cpuTimes, err = p.Times() - now = time.Now() - if err != nil { - return 0, err - } - } else { - if p.lastCPUTimes == nil { - // invoked first time - p.lastCPUTimes = cpuTimes - p.lastCPUTime = now - return 0, nil - } - } - - numcpu := runtime.NumCPU() - delta := (now.Sub(p.lastCPUTime).Seconds()) * float64(numcpu) - ret := calculatePercent(p.lastCPUTimes, cpuTimes, delta, numcpu) - p.lastCPUTimes = cpuTimes - p.lastCPUTime = now - return ret, nil -} - -func calculatePercent(t1, t2 *cpu.TimesStat, delta float64, numcpu int) float64 { - if delta == 0 { - return 0 - } - delta_proc := t2.Total() - t1.Total() - overall_percent := ((delta_proc / delta) * 100) * float64(numcpu) - return overall_percent -} - -// MemoryPercent returns how many percent of the total RAM this process uses -func (p *Process) MemoryPercent() (float32, error) { - machineMemory, err := mem.VirtualMemory() - if err != nil { - return 0, err - } - total := machineMemory.Total - - processMemory, err := p.MemoryInfo() - if err != nil { - return 0, err - } - used := processMemory.RSS - - return (100 * float32(used) / float32(total)), nil -} diff --git a/vendor/github.com/shirou/gopsutil/process/process_darwin.go b/vendor/github.com/shirou/gopsutil/process/process_darwin.go deleted file mode 100644 index cea0803e6dc..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_darwin.go +++ /dev/null @@ -1,451 +0,0 @@ -// +build darwin - -package process - -import ( - "bytes" - "encoding/binary" - "fmt" - "os/exec" - "strconv" - "strings" - "syscall" - "unsafe" - - "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/internal/common" - "github.com/shirou/gopsutil/net" -) - -// copied from sys/sysctl.h -const ( - CTLKern = 1 // "high kernel": proc, limits - KernProc = 14 // struct: process entries - KernProcPID = 1 // by process id - KernProcProc = 8 // only return procs - KernProcAll = 0 // everything - KernProcPathname = 12 // path to executable -) - -const ( - ClockTicks = 100 // C.sysconf(C._SC_CLK_TCK) -) - -type _Ctype_struct___0 struct { - Pad uint64 -} - -// MemoryInfoExStat is different between OSes -type MemoryInfoExStat struct { -} - -type MemoryMapsStat struct { -} - -func Pids() ([]int32, error) { - var ret []int32 - - pids, err := callPs("pid", 0, false) - if err != nil { - return ret, err - } - - for _, pid := range pids { - v, err := strconv.Atoi(pid[0]) - if err != nil { - return ret, err - } - ret = append(ret, int32(v)) - } - - return ret, nil -} - -func (p *Process) Ppid() (int32, error) { - r, err := callPs("ppid", p.Pid, false) - v, err := strconv.Atoi(r[0][0]) - if err != nil { - return 0, err - } - - return int32(v), err -} -func (p *Process) Name() (string, error) { - k, err := p.getKProc() - if err != nil { - return "", err - } - - return common.IntToString(k.Proc.P_comm[:]), nil -} -func (p *Process) Exe() (string, error) { - return "", common.ErrNotImplementedError -} - -// Cmdline returns the command line arguments of the process as a string with -// each argument separated by 0x20 ascii character. -func (p *Process) Cmdline() (string, error) { - r, err := callPs("command", p.Pid, false) - if err != nil { - return "", err - } - return strings.Join(r[0], " "), err -} - -// CmdlineSlice returns the command line arguments of the process as a slice with each -// element being an argument. Because of current deficiencies in the way that the command -// line arguments are found, single arguments that have spaces in the will actually be -// reported as two separate items. In order to do something better CGO would be needed -// to use the native darwin functions. -func (p *Process) CmdlineSlice() ([]string, error) { - r, err := callPs("command", p.Pid, false) - if err != nil { - return nil, err - } - return r[0], err -} -func (p *Process) CreateTime() (int64, error) { - return 0, common.ErrNotImplementedError -} -func (p *Process) Cwd() (string, error) { - return "", common.ErrNotImplementedError -} -func (p *Process) Parent() (*Process, error) { - rr, err := common.CallLsof(invoke, p.Pid, "-FR") - if err != nil { - return nil, err - } - for _, r := range rr { - if strings.HasPrefix(r, "p") { // skip if process - continue - } - l := string(r) - v, err := strconv.Atoi(strings.Replace(l, "R", "", 1)) - if err != nil { - return nil, err - } - return NewProcess(int32(v)) - } - return nil, fmt.Errorf("could not find parent line") -} -func (p *Process) Status() (string, error) { - r, err := callPs("state", p.Pid, false) - if err != nil { - return "", err - } - - return r[0][0], err -} -func (p *Process) Uids() ([]int32, error) { - k, err := p.getKProc() - if err != nil { - return nil, err - } - - // See: http://unix.superglobalmegacorp.com/Net2/newsrc/sys/ucred.h.html - userEffectiveUID := int32(k.Eproc.Ucred.UID) - - return []int32{userEffectiveUID}, nil -} -func (p *Process) Gids() ([]int32, error) { - k, err := p.getKProc() - if err != nil { - return nil, err - } - - gids := make([]int32, 0, 3) - gids = append(gids, int32(k.Eproc.Pcred.P_rgid), int32(k.Eproc.Ucred.Ngroups), int32(k.Eproc.Pcred.P_svgid)) - - return gids, nil -} -func (p *Process) Terminal() (string, error) { - return "", common.ErrNotImplementedError - /* - k, err := p.getKProc() - if err != nil { - return "", err - } - - ttyNr := uint64(k.Eproc.Tdev) - termmap, err := getTerminalMap() - if err != nil { - return "", err - } - - return termmap[ttyNr], nil - */ -} -func (p *Process) Nice() (int32, error) { - k, err := p.getKProc() - if err != nil { - return 0, err - } - return int32(k.Proc.P_nice), nil -} -func (p *Process) IOnice() (int32, error) { - return 0, common.ErrNotImplementedError -} -func (p *Process) Rlimit() ([]RlimitStat, error) { - var rlimit []RlimitStat - return rlimit, common.ErrNotImplementedError -} -func (p *Process) IOCounters() (*IOCountersStat, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) NumCtxSwitches() (*NumCtxSwitchesStat, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) NumFDs() (int32, error) { - return 0, common.ErrNotImplementedError -} -func (p *Process) NumThreads() (int32, error) { - r, err := callPs("utime,stime", p.Pid, true) - if err != nil { - return 0, err - } - return int32(len(r)), nil -} -func (p *Process) Threads() (map[string]string, error) { - ret := make(map[string]string, 0) - return ret, common.ErrNotImplementedError -} - -func convertCPUTimes(s string) (ret float64, err error) { - var t int - var _tmp string - if strings.Contains(s, ":") { - _t := strings.Split(s, ":") - hour, err := strconv.Atoi(_t[0]) - if err != nil { - return ret, err - } - t += hour * 60 * 100 - _tmp = _t[1] - } else { - _tmp = s - } - - _t := strings.Split(_tmp, ".") - if err != nil { - return ret, err - } - h, err := strconv.Atoi(_t[0]) - t += h * 100 - h, err = strconv.Atoi(_t[1]) - t += h - return float64(t) / ClockTicks, nil -} -func (p *Process) Times() (*cpu.TimesStat, error) { - r, err := callPs("utime,stime", p.Pid, false) - - if err != nil { - return nil, err - } - - utime, err := convertCPUTimes(r[0][0]) - if err != nil { - return nil, err - } - stime, err := convertCPUTimes(r[0][1]) - if err != nil { - return nil, err - } - - ret := &cpu.TimesStat{ - CPU: "cpu", - User: utime, - System: stime, - } - return ret, nil -} -func (p *Process) CPUAffinity() ([]int32, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) MemoryInfo() (*MemoryInfoStat, error) { - r, err := callPs("rss,vsize,pagein", p.Pid, false) - if err != nil { - return nil, err - } - rss, err := strconv.Atoi(r[0][0]) - if err != nil { - return nil, err - } - vms, err := strconv.Atoi(r[0][1]) - if err != nil { - return nil, err - } - pagein, err := strconv.Atoi(r[0][2]) - if err != nil { - return nil, err - } - - ret := &MemoryInfoStat{ - RSS: uint64(rss) * 1024, - VMS: uint64(vms) * 1024, - Swap: uint64(pagein), - } - - return ret, nil -} -func (p *Process) MemoryInfoEx() (*MemoryInfoExStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) Children() ([]*Process, error) { - pids, err := common.CallPgrep(invoke, p.Pid) - if err != nil { - return nil, err - } - ret := make([]*Process, 0, len(pids)) - for _, pid := range pids { - np, err := NewProcess(pid) - if err != nil { - return nil, err - } - ret = append(ret, np) - } - return ret, nil -} - -func (p *Process) OpenFiles() ([]OpenFilesStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) Connections() ([]net.ConnectionStat, error) { - return net.ConnectionsPid("all", p.Pid) -} - -func (p *Process) NetIOCounters(pernic bool) ([]net.IOCountersStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) IsRunning() (bool, error) { - return true, common.ErrNotImplementedError -} -func (p *Process) MemoryMaps(grouped bool) (*[]MemoryMapsStat, error) { - var ret []MemoryMapsStat - return &ret, common.ErrNotImplementedError -} - -func processes() ([]Process, error) { - results := make([]Process, 0, 50) - - mib := []int32{CTLKern, KernProc, KernProcAll, 0} - buf, length, err := common.CallSyscall(mib) - if err != nil { - return results, err - } - - // get kinfo_proc size - k := KinfoProc{} - procinfoLen := int(unsafe.Sizeof(k)) - count := int(length / uint64(procinfoLen)) - /* - fmt.Println(length, procinfoLen, count) - b := buf[0*procinfoLen : 0*procinfoLen+procinfoLen] - fmt.Println(b) - kk, err := parseKinfoProc(b) - fmt.Printf("%#v", kk) - */ - - // parse buf to procs - for i := 0; i < count; i++ { - b := buf[i*procinfoLen : i*procinfoLen+procinfoLen] - k, err := parseKinfoProc(b) - if err != nil { - continue - } - p, err := NewProcess(int32(k.Proc.P_pid)) - if err != nil { - continue - } - results = append(results, *p) - } - - return results, nil -} - -func parseKinfoProc(buf []byte) (KinfoProc, error) { - var k KinfoProc - br := bytes.NewReader(buf) - - err := common.Read(br, binary.LittleEndian, &k) - if err != nil { - return k, err - } - - return k, nil -} - -// Returns a proc as defined here: -// http://unix.superglobalmegacorp.com/Net2/newsrc/sys/kinfo_proc.h.html -func (p *Process) getKProc() (*KinfoProc, error) { - mib := []int32{CTLKern, KernProc, KernProcPID, p.Pid} - procK := KinfoProc{} - length := uint64(unsafe.Sizeof(procK)) - buf := make([]byte, length) - _, _, syserr := syscall.Syscall6( - syscall.SYS___SYSCTL, - uintptr(unsafe.Pointer(&mib[0])), - uintptr(len(mib)), - uintptr(unsafe.Pointer(&buf[0])), - uintptr(unsafe.Pointer(&length)), - 0, - 0) - if syserr != 0 { - return nil, syserr - } - k, err := parseKinfoProc(buf) - if err != nil { - return nil, err - } - - return &k, nil -} - -func NewProcess(pid int32) (*Process, error) { - p := &Process{Pid: pid} - - return p, nil -} - -// call ps command. -// Return value deletes Header line(you must not input wrong arg). -// And splited by Space. Caller have responsibility to manage. -// If passed arg pid is 0, get information from all process. -func callPs(arg string, pid int32, threadOption bool) ([][]string, error) { - bin, err := exec.LookPath("ps") - if err != nil { - return [][]string{}, err - } - - var cmd []string - if pid == 0 { // will get from all processes. - cmd = []string{"-ax", "-o", arg} - } else if threadOption { - cmd = []string{"-x", "-o", arg, "-M", "-p", strconv.Itoa(int(pid))} - } else { - cmd = []string{"-x", "-o", arg, "-p", strconv.Itoa(int(pid))} - } - out, err := invoke.Command(bin, cmd...) - if err != nil { - return [][]string{}, err - } - lines := strings.Split(string(out), "\n") - - var ret [][]string - for _, l := range lines[1:] { - var lr []string - for _, r := range strings.Split(l, " ") { - if r == "" { - continue - } - lr = append(lr, strings.TrimSpace(r)) - } - if len(lr) != 0 { - ret = append(ret, lr) - } - } - - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/process/process_darwin_amd64.go b/vendor/github.com/shirou/gopsutil/process/process_darwin_amd64.go deleted file mode 100644 index f8e922385b9..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_darwin_amd64.go +++ /dev/null @@ -1,234 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_darwin.go - -package process - -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 UGid_t uint32 - -type KinfoProc struct { - Proc ExternProc - Eproc Eproc -} - -type Eproc struct { - Paddr *uint64 - Sess *Session - Pcred Upcred - Ucred Uucred - Pad_cgo_0 [4]byte - Vm Vmspace - Ppid int32 - Pgid int32 - Jobc int16 - Pad_cgo_1 [2]byte - Tdev int32 - Tpgid int32 - Pad_cgo_2 [4]byte - Tsess *Session - Wmesg [8]int8 - Xsize int32 - Xrssize int16 - Xccount int16 - Xswrss int16 - Pad_cgo_3 [2]byte - Flag int32 - Login [12]int8 - Spare [4]int32 - Pad_cgo_4 [4]byte -} - -type Proc struct{} - -type Session struct{} - -type ucred struct { - Link _Ctype_struct___0 - Ref uint64 - Posix Posix_cred - Label *Label - Audit Au_session -} - -type Uucred struct { - Ref int32 - UID uint32 - Ngroups int16 - Pad_cgo_0 [2]byte - Groups [16]uint32 -} - -type Upcred struct { - Pc_lock [72]int8 - Pc_ucred *ucred - P_ruid uint32 - P_svuid uint32 - P_rgid uint32 - P_svgid uint32 - P_refcnt int32 - Pad_cgo_0 [4]byte -} - -type Vmspace struct { - Dummy int32 - Pad_cgo_0 [4]byte - Dummy2 *int8 - Dummy3 [5]int32 - Pad_cgo_1 [4]byte - Dummy4 [3]*int8 -} - -type Sigacts struct{} - -type ExternProc struct { - P_un [16]byte - P_vmspace uint64 - P_sigacts uint64 - Pad_cgo_0 [3]byte - P_flag int32 - P_stat int8 - P_pid int32 - P_oppid int32 - P_dupfd int32 - Pad_cgo_1 [4]byte - User_stack uint64 - Exit_thread uint64 - P_debugger int32 - Sigwait int32 - P_estcpu uint32 - P_cpticks int32 - P_pctcpu uint32 - Pad_cgo_2 [4]byte - P_wchan uint64 - P_wmesg uint64 - P_swtime uint32 - P_slptime uint32 - P_realtimer Itimerval - P_rtime Timeval - P_uticks uint64 - P_sticks uint64 - P_iticks uint64 - P_traceflag int32 - Pad_cgo_3 [4]byte - P_tracep uint64 - P_siglist int32 - Pad_cgo_4 [4]byte - P_textvp uint64 - P_holdcnt int32 - P_sigmask uint32 - P_sigignore uint32 - P_sigcatch uint32 - P_priority uint8 - P_usrpri uint8 - P_nice int8 - P_comm [17]int8 - Pad_cgo_5 [4]byte - P_pgrp uint64 - P_addr uint64 - P_xstat uint16 - P_acflag uint16 - Pad_cgo_6 [4]byte - P_ru uint64 -} - -type Itimerval struct { - Interval Timeval - Value Timeval -} - -type Vnode struct{} - -type Pgrp struct{} - -type UserStruct struct{} - -type Au_session struct { - Aia_p *AuditinfoAddr - Mask AuMask -} - -type Posix_cred struct { - UID uint32 - Ruid uint32 - Svuid uint32 - Ngroups int16 - Pad_cgo_0 [2]byte - Groups [16]uint32 - Rgid uint32 - Svgid uint32 - Gmuid uint32 - Flags int32 -} - -type Label struct{} - -type AuditinfoAddr struct { - Auid uint32 - Mask AuMask - Termid AuTidAddr - Asid int32 - Flags uint64 -} -type AuMask struct { - Success uint32 - Failure uint32 -} -type AuTidAddr struct { - Port int32 - Type uint32 - Addr [4]uint32 -} - -type UcredQueue struct { - Next *ucred - Prev **ucred -} diff --git a/vendor/github.com/shirou/gopsutil/process/process_freebsd.go b/vendor/github.com/shirou/gopsutil/process/process_freebsd.go deleted file mode 100644 index 5362128e6e5..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_freebsd.go +++ /dev/null @@ -1,336 +0,0 @@ -// +build freebsd - -package process - -import ( - "bytes" - "encoding/binary" - "strings" - "syscall" - - cpu "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/internal/common" - net "github.com/shirou/gopsutil/net" -) - -// MemoryInfoExStat is different between OSes -type MemoryInfoExStat struct { -} - -type MemoryMapsStat struct { -} - -func Pids() ([]int32, error) { - var ret []int32 - procs, err := processes() - if err != nil { - return ret, nil - } - - for _, p := range procs { - ret = append(ret, p.Pid) - } - - return ret, nil -} - -func (p *Process) Ppid() (int32, error) { - k, err := p.getKProc() - if err != nil { - return 0, err - } - - return k.Ppid, nil -} -func (p *Process) Name() (string, error) { - k, err := p.getKProc() - if err != nil { - return "", err - } - - return common.IntToString(k.Comm[:]), nil -} -func (p *Process) Exe() (string, error) { - return "", common.ErrNotImplementedError -} - -func (p *Process) Cmdline() (string, error) { - mib := []int32{CTLKern, KernProc, KernProcArgs, p.Pid} - buf, _, err := common.CallSyscall(mib) - if err != nil { - return "", err - } - ret := strings.FieldsFunc(string(buf), func(r rune) bool { - if r == '\u0000' { - return true - } - return false - }) - - return strings.Join(ret, " "), nil -} - -func (p *Process) CmdlineSlice() ([]string, error) { - mib := []int32{CTLKern, KernProc, KernProcArgs, p.Pid} - buf, _, err := common.CallSyscall(mib) - if err != nil { - return nil, err - } - if len(buf) == 0 { - return nil, nil - } - if buf[len(buf)-1] == 0 { - buf = buf[:len(buf)-1] - } - parts := bytes.Split(buf, []byte{0}) - var strParts []string - for _, p := range parts { - strParts = append(strParts, string(p)) - } - - return strParts, nil -} -func (p *Process) CreateTime() (int64, error) { - return 0, common.ErrNotImplementedError -} -func (p *Process) Cwd() (string, error) { - return "", common.ErrNotImplementedError -} -func (p *Process) Parent() (*Process, error) { - return p, common.ErrNotImplementedError -} -func (p *Process) Status() (string, error) { - k, err := p.getKProc() - if err != nil { - return "", err - } - var s string - switch k.Stat { - case SIDL: - s = "I" - case SRUN: - s = "R" - case SSLEEP: - s = "S" - case SSTOP: - s = "T" - case SZOMB: - s = "Z" - case SWAIT: - s = "W" - case SLOCK: - s = "L" - } - - return s, nil -} -func (p *Process) Uids() ([]int32, error) { - k, err := p.getKProc() - if err != nil { - return nil, err - } - - uids := make([]int32, 0, 3) - - uids = append(uids, int32(k.Ruid), int32(k.Uid), int32(k.Svuid)) - - return uids, nil -} -func (p *Process) Gids() ([]int32, error) { - k, err := p.getKProc() - if err != nil { - return nil, err - } - - gids := make([]int32, 0, 3) - gids = append(gids, int32(k.Rgid), int32(k.Ngroups), int32(k.Svgid)) - - return gids, nil -} -func (p *Process) Terminal() (string, error) { - k, err := p.getKProc() - if err != nil { - return "", err - } - - ttyNr := uint64(k.Tdev) - - termmap, err := getTerminalMap() - if err != nil { - return "", err - } - - return termmap[ttyNr], nil -} -func (p *Process) Nice() (int32, error) { - k, err := p.getKProc() - if err != nil { - return 0, err - } - return int32(k.Nice), nil -} -func (p *Process) IOnice() (int32, error) { - return 0, common.ErrNotImplementedError -} -func (p *Process) Rlimit() ([]RlimitStat, error) { - var rlimit []RlimitStat - return rlimit, common.ErrNotImplementedError -} -func (p *Process) IOCounters() (*IOCountersStat, error) { - k, err := p.getKProc() - if err != nil { - return nil, err - } - return &IOCountersStat{ - ReadCount: uint64(k.Rusage.Inblock), - WriteCount: uint64(k.Rusage.Oublock), - }, nil -} -func (p *Process) NumCtxSwitches() (*NumCtxSwitchesStat, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) NumFDs() (int32, error) { - return 0, common.ErrNotImplementedError -} -func (p *Process) NumThreads() (int32, error) { - k, err := p.getKProc() - if err != nil { - return 0, err - } - - return k.Numthreads, nil -} -func (p *Process) Threads() (map[string]string, error) { - ret := make(map[string]string, 0) - return ret, common.ErrNotImplementedError -} -func (p *Process) Times() (*cpu.TimesStat, error) { - k, err := p.getKProc() - if err != nil { - return nil, err - } - return &cpu.TimesStat{ - CPU: "cpu", - User: float64(k.Rusage.Utime.Sec) + float64(k.Rusage.Utime.Usec)/1000000, - System: float64(k.Rusage.Stime.Sec) + float64(k.Rusage.Stime.Usec)/1000000, - }, nil -} -func (p *Process) CPUAffinity() ([]int32, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) MemoryInfo() (*MemoryInfoStat, error) { - k, err := p.getKProc() - if err != nil { - return nil, err - } - v, err := syscall.Sysctl("vm.stats.vm.v_page_size") - if err != nil { - return nil, err - } - pageSize := common.LittleEndian.Uint16([]byte(v)) - - return &MemoryInfoStat{ - RSS: uint64(k.Rssize) * uint64(pageSize), - VMS: uint64(k.Size), - }, nil -} -func (p *Process) MemoryInfoEx() (*MemoryInfoExStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) Children() ([]*Process, error) { - pids, err := common.CallPgrep(invoke, p.Pid) - if err != nil { - return nil, err - } - ret := make([]*Process, 0, len(pids)) - for _, pid := range pids { - np, err := NewProcess(pid) - if err != nil { - return nil, err - } - ret = append(ret, np) - } - return ret, nil -} - -func (p *Process) OpenFiles() ([]OpenFilesStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) Connections() ([]net.ConnectionStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) NetIOCounters(pernic bool) ([]net.IOCountersStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) IsRunning() (bool, error) { - return true, common.ErrNotImplementedError -} -func (p *Process) MemoryMaps(grouped bool) (*[]MemoryMapsStat, error) { - var ret []MemoryMapsStat - return &ret, common.ErrNotImplementedError -} - -func processes() ([]Process, error) { - results := make([]Process, 0, 50) - - mib := []int32{CTLKern, KernProc, KernProcProc, 0} - buf, length, err := common.CallSyscall(mib) - if err != nil { - return results, err - } - - // get kinfo_proc size - count := int(length / uint64(sizeOfKinfoProc)) - - // parse buf to procs - for i := 0; i < count; i++ { - b := buf[i*sizeOfKinfoProc : (i+1)*sizeOfKinfoProc] - k, err := parseKinfoProc(b) - if err != nil { - continue - } - p, err := NewProcess(int32(k.Pid)) - if err != nil { - continue - } - - results = append(results, *p) - } - - return results, nil -} - -func parseKinfoProc(buf []byte) (KinfoProc, error) { - var k KinfoProc - br := bytes.NewReader(buf) - err := common.Read(br, binary.LittleEndian, &k) - return k, err -} - -func (p *Process) getKProc() (*KinfoProc, error) { - mib := []int32{CTLKern, KernProc, KernProcPID, p.Pid} - - buf, length, err := common.CallSyscall(mib) - if err != nil { - return nil, err - } - if length != sizeOfKinfoProc { - return nil, err - } - - k, err := parseKinfoProc(buf) - if err != nil { - return nil, err - } - return &k, nil -} - -func NewProcess(pid int32) (*Process, error) { - p := &Process{Pid: pid} - - return p, nil -} diff --git a/vendor/github.com/shirou/gopsutil/process/process_freebsd_386.go b/vendor/github.com/shirou/gopsutil/process/process_freebsd_386.go deleted file mode 100644 index 201f714601c..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_freebsd_386.go +++ /dev/null @@ -1,141 +0,0 @@ -// +build freebsd -// +build 386 - -package process - -// copied from sys/sysctl.h -const ( - CTLKern = 1 // "high kernel": proc, limits - KernProc = 14 // struct: process entries - KernProcPID = 1 // by process id - KernProcProc = 8 // only return procs - KernProcPathname = 12 // path to executable - KernProcArgs = 7 // get/set arguments/proctitle -) - -const ( - SIDL = 1 - SRUN = 2 - SSLEEP = 3 - SSTOP = 4 - SZOMB = 5 - SWAIT = 6 - SLOCK = 7 -) - -const ( - sizeOfKinfoVmentry = 0x244 // TODO: really? - sizeOfKinfoProc = 0x220 -) - -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 -} - -// copied from sys/user.h -type KinfoProc struct { - Structsize int32 - Layout int32 - Args int32 - Paddr int32 - Addr int32 - Tracep int32 - Textvp int32 - Fd int32 - Vmspace int32 - Wchan int32 - Pid int32 - Ppid int32 - Pgid int32 - Tpgid int32 - Sid int32 - Tsid int32 - Jobc [2]byte - SpareShort1 [2]byte - Tdev int32 - Siglist [16]byte - Sigmask [16]byte - Sigignore [16]byte - Sigcatch [16]byte - Uid int32 - Ruid int32 - Svuid int32 - Rgid int32 - Svgid int32 - Ngroups int16 - SpareShort2 [2]byte - Groups [64]byte - Size int32 - Rssize int32 - Swrss int32 - Tsize int32 - Dsize int32 - Ssize int32 - Xstat [2]byte - Acflag [2]byte - Pctcpu int32 - Estcpu int32 - Slptime int32 - Swtime int32 - Cow int32 - Runtime int64 - Start [8]byte - Childtime [8]byte - Flag int32 - Kflag int32 - Traceflag int32 - Stat int8 - Nice [1]byte - Lock [1]byte - Rqindex [1]byte - Oncpu [1]byte - Lastcpu [1]byte - Ocomm [17]byte - Wmesg [9]byte - Login [18]byte - Lockname [9]byte - Comm [20]int8 - Emul [17]byte - Sparestrings [68]byte - Spareints [36]byte - CrFlags int32 - Jid int32 - Numthreads int32 - Tid int32 - Pri int32 - Rusage Rusage - RusageCh [72]byte - Pcb int32 - Kstack int32 - Udata int32 - Tdaddr int32 - Spareptrs [24]byte - Spareint64s [48]byte - Sflag int32 - Tdflags int32 -} diff --git a/vendor/github.com/shirou/gopsutil/process/process_freebsd_amd64.go b/vendor/github.com/shirou/gopsutil/process/process_freebsd_amd64.go deleted file mode 100644 index 79e2ba8816e..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_freebsd_amd64.go +++ /dev/null @@ -1,192 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_freebsd.go - -package process - -const ( - CTLKern = 1 - KernProc = 14 - KernProcPID = 1 - KernProcProc = 8 - KernProcPathname = 12 - KernProcArgs = 7 -) - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 -) - -const ( - sizeOfKinfoVmentry = 0x488 - sizeOfKinfoProc = 0x440 -) - -const ( - SIDL = 1 - SRUN = 2 - SSLEEP = 3 - SSTOP = 4 - SZOMB = 5 - SWAIT = 6 - SLOCK = 7 -) - -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 KinfoProc struct { - Structsize int32 - Layout int32 - Args int64 /* pargs */ - Paddr int64 /* proc */ - Addr int64 /* user */ - Tracep int64 /* vnode */ - Textvp int64 /* vnode */ - Fd int64 /* filedesc */ - Vmspace int64 /* vmspace */ - Wchan int64 - Pid int32 - Ppid int32 - Pgid int32 - Tpgid int32 - Sid int32 - Tsid int32 - Jobc int16 - Spare_short1 int16 - Tdev uint32 - Siglist [16]byte /* sigset */ - Sigmask [16]byte /* sigset */ - Sigignore [16]byte /* sigset */ - Sigcatch [16]byte /* sigset */ - Uid uint32 - Ruid uint32 - Svuid uint32 - Rgid uint32 - Svgid uint32 - Ngroups int16 - Spare_short2 int16 - Groups [16]uint32 - Size uint64 - Rssize int64 - Swrss int64 - Tsize int64 - Dsize int64 - Ssize int64 - Xstat uint16 - Acflag uint16 - Pctcpu uint32 - Estcpu uint32 - Slptime uint32 - Swtime uint32 - Cow uint32 - Runtime uint64 - Start Timeval - Childtime Timeval - Flag int64 - Kiflag int64 - Traceflag int32 - Stat int8 - Nice int8 - Lock int8 - Rqindex int8 - Oncpu uint8 - Lastcpu uint8 - Tdname [17]int8 - Wmesg [9]int8 - Login [18]int8 - Lockname [9]int8 - Comm [20]int8 - Emul [17]int8 - Loginclass [18]int8 - Sparestrings [50]int8 - Spareints [7]int32 - Flag2 int32 - Fibnum int32 - Cr_flags uint32 - Jid int32 - Numthreads int32 - Tid int32 - Pri Priority - Rusage Rusage - Rusage_ch Rusage - Pcb int64 /* pcb */ - Kstack int64 - Udata int64 - Tdaddr int64 /* thread */ - Spareptrs [6]int64 - Sparelongs [12]int64 - Sflag int64 - Tdflags int64 -} - -type Priority struct { - Class uint8 - Level uint8 - Native uint8 - User uint8 -} - -type KinfoVmentry struct { - Structsize int32 - Type int32 - Start uint64 - End uint64 - Offset uint64 - Vn_fileid uint64 - Vn_fsid uint32 - Flags int32 - Resident int32 - Private_resident int32 - Protection int32 - Ref_count int32 - Shadow_count int32 - Vn_type int32 - Vn_size uint64 - Vn_rdev uint32 - Vn_mode uint16 - Status uint16 - X_kve_ispare [12]int32 - Path [1024]int8 -} diff --git a/vendor/github.com/shirou/gopsutil/process/process_linux.go b/vendor/github.com/shirou/gopsutil/process/process_linux.go deleted file mode 100644 index e79ba36edd5..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_linux.go +++ /dev/null @@ -1,733 +0,0 @@ -// +build linux - -package process - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - "strconv" - "strings" - "syscall" - - "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/host" - "github.com/shirou/gopsutil/internal/common" - "github.com/shirou/gopsutil/net" -) - -var ErrorNoChildren = errors.New("process does not have children") - -const ( - PrioProcess = 0 // linux/resource.h -) - -// MemoryInfoExStat is different between OSes -type MemoryInfoExStat struct { - RSS uint64 `json:"rss"` // bytes - VMS uint64 `json:"vms"` // bytes - Shared uint64 `json:"shared"` // bytes - Text uint64 `json:"text"` // bytes - Lib uint64 `json:"lib"` // bytes - Data uint64 `json:"data"` // bytes - Dirty uint64 `json:"dirty"` // bytes -} - -func (m MemoryInfoExStat) String() string { - s, _ := json.Marshal(m) - return string(s) -} - -type MemoryMapsStat struct { - Path string `json:"path"` - Rss uint64 `json:"rss"` - Size uint64 `json:"size"` - Pss uint64 `json:"pss"` - SharedClean uint64 `json:"sharedClean"` - SharedDirty uint64 `json:"sharedDirty"` - PrivateClean uint64 `json:"privateClean"` - PrivateDirty uint64 `json:"privateDirty"` - Referenced uint64 `json:"referenced"` - Anonymous uint64 `json:"anonymous"` - Swap uint64 `json:"swap"` -} - -func (m MemoryMapsStat) String() string { - s, _ := json.Marshal(m) - return string(s) -} - -// NewProcess creates a new Process instance, it only stores the pid and -// checks that the process exists. Other method on Process can be used -// to get more information about the process. An error will be returned -// if the process does not exist. -func NewProcess(pid int32) (*Process, error) { - p := &Process{ - Pid: int32(pid), - } - file, err := os.Open(common.HostProc(strconv.Itoa(int(p.Pid)))) - defer file.Close() - return p, err -} - -func (p *Process) Ppid() (int32, error) { - _, ppid, _, _, _, err := p.fillFromStat() - if err != nil { - return -1, err - } - return ppid, nil -} -func (p *Process) Name() (string, error) { - if p.name == "" { - if err := p.fillFromStatus(); err != nil { - return "", err - } - } - return p.name, nil -} -func (p *Process) Exe() (string, error) { - return p.fillFromExe() -} - -// Cmdline returns the command line arguments of the process as a string with -// each argument separated by 0x20 ascii character. -func (p *Process) Cmdline() (string, error) { - return p.fillFromCmdline() -} - -// CmdlineSlice returns the command line arguments of the process as a slice with each -// element being an argument. -func (p *Process) CmdlineSlice() ([]string, error) { - return p.fillSliceFromCmdline() -} - -func (p *Process) CreateTime() (int64, error) { - _, _, _, createTime, _, err := p.fillFromStat() - if err != nil { - return 0, err - } - return createTime, nil -} - -func (p *Process) Cwd() (string, error) { - return p.fillFromCwd() -} -func (p *Process) Parent() (*Process, error) { - r, err := callLsof("R", p.Pid) - if err != nil { - return nil, err - } - if len(r) != 1 { // TODO: pid 1 - return nil, fmt.Errorf("wrong number of parents") - } - v, err := strconv.Atoi(r[0]) - if err != nil { - return nil, err - } - return NewProcess(int32(v)) -} -func (p *Process) Status() (string, error) { - err := p.fillFromStatus() - if err != nil { - return "", err - } - return p.status, nil -} -func (p *Process) Uids() ([]int32, error) { - err := p.fillFromStatus() - if err != nil { - return []int32{}, err - } - return p.uids, nil -} -func (p *Process) Gids() ([]int32, error) { - err := p.fillFromStatus() - if err != nil { - return []int32{}, err - } - return p.gids, nil -} -func (p *Process) Terminal() (string, error) { - terminal, _, _, _, _, err := p.fillFromStat() - if err != nil { - return "", err - } - return terminal, nil -} -func (p *Process) Nice() (int32, error) { - _, _, _, _, nice, err := p.fillFromStat() - if err != nil { - return 0, err - } - return nice, nil -} -func (p *Process) IOnice() (int32, error) { - return 0, common.ErrNotImplementedError -} -func (p *Process) Rlimit() ([]RlimitStat, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) IOCounters() (*IOCountersStat, error) { - return p.fillFromIO() -} -func (p *Process) NumCtxSwitches() (*NumCtxSwitchesStat, error) { - err := p.fillFromStatus() - if err != nil { - return nil, err - } - return p.numCtxSwitches, nil -} -func (p *Process) NumFDs() (int32, error) { - numFds, _, err := p.fillFromfd() - return numFds, err -} -func (p *Process) NumThreads() (int32, error) { - err := p.fillFromStatus() - if err != nil { - return 0, err - } - return p.numThreads, nil -} -func (p *Process) Threads() (map[string]string, error) { - ret := make(map[string]string, 0) - return ret, nil -} -func (p *Process) Times() (*cpu.TimesStat, error) { - _, _, cpuTimes, _, _, err := p.fillFromStat() - if err != nil { - return nil, err - } - return cpuTimes, nil -} -func (p *Process) CPUAffinity() ([]int32, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) MemoryInfo() (*MemoryInfoStat, error) { - meminfo, _, err := p.fillFromStatm() - if err != nil { - return nil, err - } - return meminfo, nil -} -func (p *Process) MemoryInfoEx() (*MemoryInfoExStat, error) { - _, memInfoEx, err := p.fillFromStatm() - if err != nil { - return nil, err - } - return memInfoEx, nil -} - -func (p *Process) Children() ([]*Process, error) { - pids, err := common.CallPgrep(invoke, p.Pid) - if err != nil { - if pids == nil || len(pids) == 0 { - return nil, ErrorNoChildren - } - return nil, err - } - ret := make([]*Process, 0, len(pids)) - for _, pid := range pids { - np, err := NewProcess(pid) - if err != nil { - return nil, err - } - ret = append(ret, np) - } - return ret, nil -} - -func (p *Process) OpenFiles() ([]OpenFilesStat, error) { - _, ofs, err := p.fillFromfd() - if err != nil { - return nil, err - } - ret := make([]OpenFilesStat, len(ofs)) - for i, o := range ofs { - ret[i] = *o - } - - return ret, nil -} - -func (p *Process) Connections() ([]net.ConnectionStat, error) { - return net.ConnectionsPid("all", p.Pid) -} - -func (p *Process) NetIOCounters(pernic bool) ([]net.IOCountersStat, error) { - filename := common.HostProc(strconv.Itoa(int(p.Pid)), "net/dev") - return net.IOCountersByFile(pernic, filename) -} - -func (p *Process) IsRunning() (bool, error) { - return true, common.ErrNotImplementedError -} - -// MemoryMaps get memory maps from /proc/(pid)/smaps -func (p *Process) MemoryMaps(grouped bool) (*[]MemoryMapsStat, error) { - pid := p.Pid - var ret []MemoryMapsStat - smapsPath := common.HostProc(strconv.Itoa(int(pid)), "smaps") - contents, err := ioutil.ReadFile(smapsPath) - if err != nil { - return nil, err - } - lines := strings.Split(string(contents), "\n") - - // function of parsing a block - getBlock := func(first_line []string, block []string) (MemoryMapsStat, error) { - m := MemoryMapsStat{} - m.Path = first_line[len(first_line)-1] - - for _, line := range block { - if strings.Contains(line, "VmFlags") { - continue - } - field := strings.Split(line, ":") - if len(field) < 2 { - continue - } - v := strings.Trim(field[1], " kB") // remove last "kB" - t, err := strconv.ParseUint(v, 10, 64) - if err != nil { - return m, err - } - - switch field[0] { - case "Size": - m.Size = t - case "Rss": - m.Rss = t - case "Pss": - m.Pss = t - case "Shared_Clean": - m.SharedClean = t - case "Shared_Dirty": - m.SharedDirty = t - case "Private_Clean": - m.PrivateClean = t - case "Private_Dirty": - m.PrivateDirty = t - case "Referenced": - m.Referenced = t - case "Anonymous": - m.Anonymous = t - case "Swap": - m.Swap = t - } - } - return m, nil - } - - blocks := make([]string, 16) - for _, line := range lines { - field := strings.Split(line, " ") - if strings.HasSuffix(field[0], ":") == false { - // new block section - if len(blocks) > 0 { - g, err := getBlock(field, blocks) - if err != nil { - return &ret, err - } - ret = append(ret, g) - } - // starts new block - blocks = make([]string, 16) - } else { - blocks = append(blocks, line) - } - } - - return &ret, nil -} - -/** -** Internal functions -**/ - -// Get num_fds from /proc/(pid)/fd -func (p *Process) fillFromfd() (int32, []*OpenFilesStat, error) { - pid := p.Pid - statPath := common.HostProc(strconv.Itoa(int(pid)), "fd") - d, err := os.Open(statPath) - if err != nil { - return 0, nil, err - } - defer d.Close() - fnames, err := d.Readdirnames(-1) - numFDs := int32(len(fnames)) - - var openfiles []*OpenFilesStat - for _, fd := range fnames { - fpath := filepath.Join(statPath, fd) - filepath, err := os.Readlink(fpath) - if err != nil { - continue - } - t, err := strconv.ParseUint(fd, 10, 64) - if err != nil { - return numFDs, openfiles, err - } - o := &OpenFilesStat{ - Path: filepath, - Fd: t, - } - openfiles = append(openfiles, o) - } - - return numFDs, openfiles, nil -} - -// Get cwd from /proc/(pid)/cwd -func (p *Process) fillFromCwd() (string, error) { - pid := p.Pid - cwdPath := common.HostProc(strconv.Itoa(int(pid)), "cwd") - cwd, err := os.Readlink(cwdPath) - if err != nil { - return "", err - } - return string(cwd), nil -} - -// Get exe from /proc/(pid)/exe -func (p *Process) fillFromExe() (string, error) { - pid := p.Pid - exePath := common.HostProc(strconv.Itoa(int(pid)), "exe") - exe, err := os.Readlink(exePath) - if err != nil { - return "", err - } - return string(exe), nil -} - -// Get cmdline from /proc/(pid)/cmdline -func (p *Process) fillFromCmdline() (string, error) { - pid := p.Pid - cmdPath := common.HostProc(strconv.Itoa(int(pid)), "cmdline") - cmdline, err := ioutil.ReadFile(cmdPath) - if err != nil { - return "", err - } - ret := strings.FieldsFunc(string(cmdline), func(r rune) bool { - if r == '\u0000' { - return true - } - return false - }) - - return strings.Join(ret, " "), nil -} - -func (p *Process) fillSliceFromCmdline() ([]string, error) { - pid := p.Pid - cmdPath := common.HostProc(strconv.Itoa(int(pid)), "cmdline") - cmdline, err := ioutil.ReadFile(cmdPath) - if err != nil { - return nil, err - } - if len(cmdline) == 0 { - return nil, nil - } - if cmdline[len(cmdline)-1] == 0 { - cmdline = cmdline[:len(cmdline)-1] - } - parts := bytes.Split(cmdline, []byte{0}) - var strParts []string - for _, p := range parts { - strParts = append(strParts, string(p)) - } - - return strParts, nil -} - -// Get IO status from /proc/(pid)/io -func (p *Process) fillFromIO() (*IOCountersStat, error) { - pid := p.Pid - ioPath := common.HostProc(strconv.Itoa(int(pid)), "io") - ioline, err := ioutil.ReadFile(ioPath) - if err != nil { - return nil, err - } - lines := strings.Split(string(ioline), "\n") - ret := &IOCountersStat{} - - for _, line := range lines { - field := strings.Fields(line) - if len(field) < 2 { - continue - } - t, err := strconv.ParseUint(field[1], 10, 64) - if err != nil { - return nil, err - } - param := field[0] - if strings.HasSuffix(param, ":") { - param = param[:len(param)-1] - } - switch param { - case "syscr": - ret.ReadCount = t - case "syscw": - ret.WriteCount = t - case "readBytes": - ret.ReadBytes = t - case "writeBytes": - ret.WriteBytes = t - } - } - - return ret, nil -} - -// Get memory info from /proc/(pid)/statm -func (p *Process) fillFromStatm() (*MemoryInfoStat, *MemoryInfoExStat, error) { - pid := p.Pid - memPath := common.HostProc(strconv.Itoa(int(pid)), "statm") - contents, err := ioutil.ReadFile(memPath) - if err != nil { - return nil, nil, err - } - fields := strings.Split(string(contents), " ") - - vms, err := strconv.ParseUint(fields[0], 10, 64) - if err != nil { - return nil, nil, err - } - rss, err := strconv.ParseUint(fields[1], 10, 64) - if err != nil { - return nil, nil, err - } - memInfo := &MemoryInfoStat{ - RSS: rss * PageSize, - VMS: vms * PageSize, - } - - shared, err := strconv.ParseUint(fields[2], 10, 64) - if err != nil { - return nil, nil, err - } - text, err := strconv.ParseUint(fields[3], 10, 64) - if err != nil { - return nil, nil, err - } - lib, err := strconv.ParseUint(fields[4], 10, 64) - if err != nil { - return nil, nil, err - } - dirty, err := strconv.ParseUint(fields[5], 10, 64) - if err != nil { - return nil, nil, err - } - - memInfoEx := &MemoryInfoExStat{ - RSS: rss * PageSize, - VMS: vms * PageSize, - Shared: shared * PageSize, - Text: text * PageSize, - Lib: lib * PageSize, - Dirty: dirty * PageSize, - } - - return memInfo, memInfoEx, nil -} - -// Get various status from /proc/(pid)/status -func (p *Process) fillFromStatus() error { - pid := p.Pid - statPath := common.HostProc(strconv.Itoa(int(pid)), "status") - contents, err := ioutil.ReadFile(statPath) - if err != nil { - return err - } - lines := strings.Split(string(contents), "\n") - p.numCtxSwitches = &NumCtxSwitchesStat{} - p.memInfo = &MemoryInfoStat{} - for _, line := range lines { - tabParts := strings.SplitN(line, "\t", 2) - if len(tabParts) < 2 { - continue - } - value := tabParts[1] - switch strings.TrimRight(tabParts[0], ":") { - case "Name": - p.name = strings.Trim(value, " \t") - case "State": - p.status = value[0:1] - case "Uid": - p.uids = make([]int32, 0, 4) - for _, i := range strings.Split(value, "\t") { - v, err := strconv.ParseInt(i, 10, 32) - if err != nil { - return err - } - p.uids = append(p.uids, int32(v)) - } - case "Gid": - p.gids = make([]int32, 0, 4) - for _, i := range strings.Split(value, "\t") { - v, err := strconv.ParseInt(i, 10, 32) - if err != nil { - return err - } - p.gids = append(p.gids, int32(v)) - } - case "Threads": - v, err := strconv.ParseInt(value, 10, 32) - if err != nil { - return err - } - p.numThreads = int32(v) - case "voluntary_ctxt_switches": - v, err := strconv.ParseInt(value, 10, 64) - if err != nil { - return err - } - p.numCtxSwitches.Voluntary = v - case "nonvoluntary_ctxt_switches": - v, err := strconv.ParseInt(value, 10, 64) - if err != nil { - return err - } - p.numCtxSwitches.Involuntary = v - case "VmRSS": - value := strings.Trim(value, " kB") // remove last "kB" - v, err := strconv.ParseUint(value, 10, 64) - if err != nil { - return err - } - p.memInfo.RSS = v * 1024 - case "VmSize": - value := strings.Trim(value, " kB") // remove last "kB" - v, err := strconv.ParseUint(value, 10, 64) - if err != nil { - return err - } - p.memInfo.VMS = v * 1024 - case "VmSwap": - value := strings.Trim(value, " kB") // remove last "kB" - v, err := strconv.ParseUint(value, 10, 64) - if err != nil { - return err - } - p.memInfo.Swap = v * 1024 - } - - } - return nil -} - -func (p *Process) fillFromStat() (string, int32, *cpu.TimesStat, int64, int32, error) { - pid := p.Pid - statPath := common.HostProc(strconv.Itoa(int(pid)), "stat") - contents, err := ioutil.ReadFile(statPath) - if err != nil { - return "", 0, nil, 0, 0, err - } - fields := strings.Fields(string(contents)) - - i := 1 - for !strings.HasSuffix(fields[i], ")") { - i++ - } - - termmap, err := getTerminalMap() - terminal := "" - if err == nil { - t, err := strconv.ParseUint(fields[i+5], 10, 64) - if err != nil { - return "", 0, nil, 0, 0, err - } - terminal = termmap[t] - } - - ppid, err := strconv.ParseInt(fields[i+2], 10, 32) - if err != nil { - return "", 0, nil, 0, 0, err - } - utime, err := strconv.ParseFloat(fields[i+12], 64) - if err != nil { - return "", 0, nil, 0, 0, err - } - - stime, err := strconv.ParseFloat(fields[i+13], 64) - if err != nil { - return "", 0, nil, 0, 0, err - } - - cpuTimes := &cpu.TimesStat{ - CPU: "cpu", - User: float64(utime / ClockTicks), - System: float64(stime / ClockTicks), - } - - bootTime, _ := host.BootTime() - t, err := strconv.ParseUint(fields[i+20], 10, 64) - if err != nil { - return "", 0, nil, 0, 0, err - } - ctime := (t / uint64(ClockTicks)) + uint64(bootTime) - createTime := int64(ctime * 1000) - - // p.Nice = mustParseInt32(fields[18]) - // use syscall instead of parse Stat file - snice, _ := syscall.Getpriority(PrioProcess, int(pid)) - nice := int32(snice) // FIXME: is this true? - - return terminal, int32(ppid), cpuTimes, createTime, nice, nil -} - -func Pids() ([]int32, error) { - var ret []int32 - - d, err := os.Open(common.HostProc()) - if err != nil { - return nil, err - } - defer d.Close() - - fnames, err := d.Readdirnames(-1) - if err != nil { - return nil, err - } - for _, fname := range fnames { - pid, err := strconv.ParseInt(fname, 10, 32) - if err != nil { - // if not numeric name, just skip - continue - } - ret = append(ret, int32(pid)) - } - - return ret, nil -} - -func callLsof(arg string, pid int32) ([]string, error) { - var cmd []string - if pid == 0 { // will get from all processes. - cmd = []string{"-F" + arg} - } else { - cmd = []string{"-a", "-F" + arg, "-p", strconv.Itoa(int(pid))} - } - lsof, err := exec.LookPath("lsof") - if err != nil { - return []string{}, err - } - out, err := invoke.Command(lsof, cmd...) - if err != nil { - return []string{}, err - } - lines := strings.Split(string(out), "\n") - - var ret []string - for _, l := range lines[1:] { - if strings.HasPrefix(l, arg) { - ret = append(ret, l[1:]) // delete first char - } - } - - return ret, nil -} diff --git a/vendor/github.com/shirou/gopsutil/process/process_linux_386.go b/vendor/github.com/shirou/gopsutil/process/process_linux_386.go deleted file mode 100644 index 541b854c753..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_linux_386.go +++ /dev/null @@ -1,9 +0,0 @@ -// +build linux -// +build 386 - -package process - -const ( - ClockTicks = 100 // C.sysconf(C._SC_CLK_TCK) - PageSize = 4096 // C.sysconf(C._SC_PAGE_SIZE) -) diff --git a/vendor/github.com/shirou/gopsutil/process/process_linux_amd64.go b/vendor/github.com/shirou/gopsutil/process/process_linux_amd64.go deleted file mode 100644 index b4a4ce8b7c5..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_linux_amd64.go +++ /dev/null @@ -1,9 +0,0 @@ -// +build linux -// +build amd64 - -package process - -const ( - ClockTicks = 100 // C.sysconf(C._SC_CLK_TCK) - PageSize = 4096 // C.sysconf(C._SC_PAGE_SIZE) -) diff --git a/vendor/github.com/shirou/gopsutil/process/process_linux_arm.go b/vendor/github.com/shirou/gopsutil/process/process_linux_arm.go deleted file mode 100644 index c6123a4891c..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_linux_arm.go +++ /dev/null @@ -1,9 +0,0 @@ -// +build linux -// +build arm - -package process - -const ( - ClockTicks = 100 // C.sysconf(C._SC_CLK_TCK) - PageSize = 4096 // C.sysconf(C._SC_PAGE_SIZE) -) diff --git a/vendor/github.com/shirou/gopsutil/process/process_posix.go b/vendor/github.com/shirou/gopsutil/process/process_posix.go deleted file mode 100644 index 92353b8c5d9..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_posix.go +++ /dev/null @@ -1,106 +0,0 @@ -// +build linux freebsd darwin - -package process - -import ( - "os" - "os/exec" - "os/user" - "strconv" - "strings" - "syscall" -) - -// POSIX -func getTerminalMap() (map[uint64]string, error) { - ret := make(map[uint64]string) - var termfiles []string - - d, err := os.Open("/dev") - if err != nil { - return nil, err - } - defer d.Close() - - devnames, err := d.Readdirnames(-1) - for _, devname := range devnames { - if strings.HasPrefix(devname, "/dev/tty") { - termfiles = append(termfiles, "/dev/tty/"+devname) - } - } - - ptsd, err := os.Open("/dev/pts") - if err != nil { - return nil, err - } - defer ptsd.Close() - - ptsnames, err := ptsd.Readdirnames(-1) - for _, ptsname := range ptsnames { - termfiles = append(termfiles, "/dev/pts/"+ptsname) - } - - for _, name := range termfiles { - stat := syscall.Stat_t{} - if err = syscall.Stat(name, &stat); err != nil { - return nil, err - } - rdev := uint64(stat.Rdev) - ret[rdev] = strings.Replace(name, "/dev", "", -1) - } - return ret, nil -} - -func (p *Process) SendSignal(sig syscall.Signal) error { - sigAsStr := "INT" - switch sig { - case syscall.SIGSTOP: - sigAsStr = "STOP" - case syscall.SIGCONT: - sigAsStr = "CONT" - case syscall.SIGTERM: - sigAsStr = "TERM" - case syscall.SIGKILL: - sigAsStr = "KILL" - } - - kill, err := exec.LookPath("kill") - if err != nil { - return err - } - cmd := exec.Command(kill, "-s", sigAsStr, strconv.Itoa(int(p.Pid))) - cmd.Stderr = os.Stderr - err = cmd.Run() - if err != nil { - return err - } - - return nil -} - -func (p *Process) Suspend() error { - return p.SendSignal(syscall.SIGSTOP) -} -func (p *Process) Resume() error { - return p.SendSignal(syscall.SIGCONT) -} -func (p *Process) Terminate() error { - return p.SendSignal(syscall.SIGTERM) -} -func (p *Process) Kill() error { - return p.SendSignal(syscall.SIGKILL) -} -func (p *Process) Username() (string, error) { - uids, err := p.Uids() - if err != nil { - return "", err - } - if len(uids) > 0 { - u, err := user.LookupId(strconv.Itoa(int(uids[0]))) - if err != nil { - return "", err - } - return u.Username, nil - } - return "", nil -} diff --git a/vendor/github.com/shirou/gopsutil/process/process_windows.go b/vendor/github.com/shirou/gopsutil/process/process_windows.go deleted file mode 100644 index 3176cde05a7..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/process_windows.go +++ /dev/null @@ -1,357 +0,0 @@ -// +build windows - -package process - -import ( - "errors" - "fmt" - "strings" - "syscall" - "time" - "unsafe" - - "github.com/StackExchange/wmi" - "github.com/shirou/w32" - - cpu "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/internal/common" - net "github.com/shirou/gopsutil/net" -) - -const ( - NoMoreFiles = 0x12 - MaxPathLength = 260 -) - -type SystemProcessInformation struct { - NextEntryOffset uint64 - NumberOfThreads uint64 - Reserved1 [48]byte - Reserved2 [3]byte - UniqueProcessID uintptr - Reserved3 uintptr - HandleCount uint64 - Reserved4 [4]byte - Reserved5 [11]byte - PeakPagefileUsage uint64 - PrivatePageCount uint64 - Reserved6 [6]uint64 -} - -// Memory_info_ex is different between OSes -type MemoryInfoExStat struct { -} - -type MemoryMapsStat struct { -} - -type Win32_Process struct { - Name string - ExecutablePath *string - CommandLine *string - Priority uint32 - CreationDate *time.Time - ProcessID uint32 - ThreadCount uint32 - - /* - CSCreationClassName string - CSName string - Caption *string - CreationClassName string - Description *string - ExecutionState *uint16 - HandleCount uint32 - KernelModeTime uint64 - MaximumWorkingSetSize *uint32 - MinimumWorkingSetSize *uint32 - OSCreationClassName string - OSName string - OtherOperationCount uint64 - OtherTransferCount uint64 - PageFaults uint32 - PageFileUsage uint32 - ParentProcessID uint32 - PeakPageFileUsage uint32 - PeakVirtualSize uint64 - PeakWorkingSetSize uint32 - PrivatePageCount uint64 - ReadOperationCount uint64 - ReadTransferCount uint64 - Status *string - TerminationDate *time.Time - UserModeTime uint64 - WorkingSetSize uint64 - WriteOperationCount uint64 - WriteTransferCount uint64 - */ -} - -func Pids() ([]int32, error) { - var ret []int32 - - procs, err := processes() - if err != nil { - return ret, nil - } - - for _, proc := range procs { - ret = append(ret, proc.Pid) - } - - return ret, nil -} - -func (p *Process) Ppid() (int32, error) { - ret, _, _, err := p.getFromSnapProcess(p.Pid) - if err != nil { - return 0, err - } - return ret, nil -} - -func GetWin32Proc(pid int32) ([]Win32_Process, error) { - var dst []Win32_Process - query := fmt.Sprintf("WHERE ProcessId = %d", pid) - q := wmi.CreateQuery(&dst, query) - err := wmi.Query(q, &dst) - if err != nil { - return []Win32_Process{}, fmt.Errorf("could not get win32Proc: %s", err) - } - if len(dst) != 1 { - return []Win32_Process{}, fmt.Errorf("could not get win32Proc: empty") - } - return dst, nil -} - -func (p *Process) Name() (string, error) { - dst, err := GetWin32Proc(p.Pid) - if err != nil { - return "", fmt.Errorf("could not get Name: %s", err) - } - return dst[0].Name, nil -} -func (p *Process) Exe() (string, error) { - dst, err := GetWin32Proc(p.Pid) - if err != nil { - return "", fmt.Errorf("could not get ExecutablePath: %s", err) - } - return *dst[0].ExecutablePath, nil -} -func (p *Process) Cmdline() (string, error) { - dst, err := GetWin32Proc(p.Pid) - if err != nil { - return "", fmt.Errorf("could not get CommandLine: %s", err) - } - return *dst[0].CommandLine, nil -} - -// CmdlineSlice returns the command line arguments of the process as a slice with each -// element being an argument. This merely returns the CommandLine informations passed -// to the process split on the 0x20 ASCII character. -func (p *Process) CmdlineSlice() ([]string, error) { - cmdline, err := p.Cmdline() - if err != nil { - return nil, err - } - return strings.Split(cmdline, " "), nil -} - -func (p *Process) CreateTime() (int64, error) { - dst, err := GetWin32Proc(p.Pid) - if err != nil { - return 0, fmt.Errorf("could not get CreationDate: %s", err) - } - date := *dst[0].CreationDate - return date.Unix(), nil -} - -func (p *Process) Cwd() (string, error) { - return "", common.ErrNotImplementedError -} -func (p *Process) Parent() (*Process, error) { - return p, common.ErrNotImplementedError -} -func (p *Process) Status() (string, error) { - return "", common.ErrNotImplementedError -} -func (p *Process) Username() (string, error) { - return "", common.ErrNotImplementedError -} -func (p *Process) Uids() ([]int32, error) { - var uids []int32 - - return uids, common.ErrNotImplementedError -} -func (p *Process) Gids() ([]int32, error) { - var gids []int32 - return gids, common.ErrNotImplementedError -} -func (p *Process) Terminal() (string, error) { - return "", common.ErrNotImplementedError -} - -// Nice returnes priority in Windows -func (p *Process) Nice() (int32, error) { - dst, err := GetWin32Proc(p.Pid) - if err != nil { - return 0, fmt.Errorf("could not get Priority: %s", err) - } - return int32(dst[0].Priority), nil -} -func (p *Process) IOnice() (int32, error) { - return 0, common.ErrNotImplementedError -} -func (p *Process) Rlimit() ([]RlimitStat, error) { - var rlimit []RlimitStat - - return rlimit, common.ErrNotImplementedError -} -func (p *Process) IOCounters() (*IOCountersStat, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) NumCtxSwitches() (*NumCtxSwitchesStat, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) NumFDs() (int32, error) { - return 0, common.ErrNotImplementedError -} -func (p *Process) NumThreads() (int32, error) { - dst, err := GetWin32Proc(p.Pid) - if err != nil { - return 0, fmt.Errorf("could not get ThreadCount: %s", err) - } - return int32(dst[0].ThreadCount), nil -} -func (p *Process) Threads() (map[string]string, error) { - ret := make(map[string]string, 0) - return ret, common.ErrNotImplementedError -} -func (p *Process) Times() (*cpu.TimesStat, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) CPUAffinity() ([]int32, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) MemoryInfo() (*MemoryInfoStat, error) { - return nil, common.ErrNotImplementedError -} -func (p *Process) MemoryInfoEx() (*MemoryInfoExStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) Children() ([]*Process, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) OpenFiles() ([]OpenFilesStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) Connections() ([]net.ConnectionStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) NetIOCounters(pernic bool) ([]net.IOCountersStat, error) { - return nil, common.ErrNotImplementedError -} - -func (p *Process) IsRunning() (bool, error) { - return true, common.ErrNotImplementedError -} - -func (p *Process) MemoryMaps(grouped bool) (*[]MemoryMapsStat, error) { - var ret []MemoryMapsStat - return &ret, common.ErrNotImplementedError -} - -func NewProcess(pid int32) (*Process, error) { - p := &Process{Pid: pid} - - return p, nil -} - -func (p *Process) SendSignal(sig syscall.Signal) error { - return common.ErrNotImplementedError -} - -func (p *Process) Suspend() error { - return common.ErrNotImplementedError -} -func (p *Process) Resume() error { - return common.ErrNotImplementedError -} -func (p *Process) Terminate() error { - return common.ErrNotImplementedError -} -func (p *Process) Kill() error { - return common.ErrNotImplementedError -} - -func (p *Process) getFromSnapProcess(pid int32) (int32, int32, string, error) { - snap := w32.CreateToolhelp32Snapshot(w32.TH32CS_SNAPPROCESS, uint32(pid)) - if snap == 0 { - return 0, 0, "", syscall.GetLastError() - } - defer w32.CloseHandle(snap) - var pe32 w32.PROCESSENTRY32 - pe32.DwSize = uint32(unsafe.Sizeof(pe32)) - if w32.Process32First(snap, &pe32) == false { - return 0, 0, "", syscall.GetLastError() - } - - if pe32.Th32ProcessID == uint32(pid) { - szexe := syscall.UTF16ToString(pe32.SzExeFile[:]) - return int32(pe32.Th32ParentProcessID), int32(pe32.CntThreads), szexe, nil - } - - for w32.Process32Next(snap, &pe32) { - if pe32.Th32ProcessID == uint32(pid) { - szexe := syscall.UTF16ToString(pe32.SzExeFile[:]) - return int32(pe32.Th32ParentProcessID), int32(pe32.CntThreads), szexe, nil - } - } - return 0, 0, "", errors.New("Couldn't find pid:" + string(pid)) -} - -// Get processes -func processes() ([]*Process, error) { - - var dst []Win32_Process - q := wmi.CreateQuery(&dst, "") - err := wmi.Query(q, &dst) - if err != nil { - return []*Process{}, err - } - if len(dst) == 0 { - return []*Process{}, fmt.Errorf("could not get Process") - } - results := make([]*Process, 0, len(dst)) - for _, proc := range dst { - p, err := NewProcess(int32(proc.ProcessID)) - if err != nil { - continue - } - results = append(results, p) - } - - return results, nil -} - -func getProcInfo(pid int32) (*SystemProcessInformation, error) { - initialBufferSize := uint64(0x4000) - bufferSize := initialBufferSize - buffer := make([]byte, bufferSize) - - var sysProcInfo SystemProcessInformation - ret, _, _ := common.ProcNtQuerySystemInformation.Call( - uintptr(unsafe.Pointer(&sysProcInfo)), - uintptr(unsafe.Pointer(&buffer[0])), - uintptr(unsafe.Pointer(&bufferSize)), - uintptr(unsafe.Pointer(&bufferSize))) - if ret != 0 { - return nil, syscall.GetLastError() - } - - return &sysProcInfo, nil -} diff --git a/vendor/github.com/shirou/gopsutil/process/types_darwin.go b/vendor/github.com/shirou/gopsutil/process/types_darwin.go deleted file mode 100644 index 21216cd09a7..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/types_darwin.go +++ /dev/null @@ -1,160 +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. - -// Hand Writing -// - all pointer in ExternProc to uint64 - -// +build ignore - -/* -Input to cgo -godefs. -*/ - -// +godefs map struct_in_addr [4]byte /* in_addr */ -// +godefs map struct_in6_addr [16]byte /* in6_addr */ -// +godefs map struct_ [16]byte /* in6_addr */ - -package process - -/* -#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 -#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)]; -}; - -struct ucred_queue { - struct ucred *tqe_next; - struct ucred **tqe_prev; - TRACEBUF -}; - -*/ -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 UGid_t C.gid_t - -type KinfoProc C.struct_kinfo_proc - -type Eproc C.struct_eproc - -type Proc C.struct_proc - -type Session C.struct_session - -type ucred C.struct_ucred - -type Uucred C.struct__ucred - -type Upcred C.struct__pcred - -type Vmspace C.struct_vmspace - -type Sigacts C.struct_sigacts - -type ExternProc C.struct_extern_proc - -type Itimerval C.struct_itimerval - -type Vnode C.struct_vnode - -type Pgrp C.struct_pgrp - -type UserStruct C.struct_user - -type Au_session C.struct_au_session - -type Posix_cred C.struct_posix_cred - -type Label C.struct_label - -type AuditinfoAddr C.struct_auditinfo_addr -type AuMask C.struct_au_mask -type AuTidAddr C.struct_au_tid_addr - -// TAILQ(ucred) -type UcredQueue C.struct_ucred_queue diff --git a/vendor/github.com/shirou/gopsutil/process/types_freebsd.go b/vendor/github.com/shirou/gopsutil/process/types_freebsd.go deleted file mode 100644 index aa7b3462de6..00000000000 --- a/vendor/github.com/shirou/gopsutil/process/types_freebsd.go +++ /dev/null @@ -1,95 +0,0 @@ -// +build ignore - -// We still need editing by hands. -// go tool cgo -godefs types_freebsd.go | sed 's/\*int64/int64/' | sed 's/\*byte/int64/' > process_freebsd_amd64.go - -/* -Input to cgo -godefs. -*/ - -// +godefs map struct_pargs int64 /* pargs */ -// +godefs map struct_proc int64 /* proc */ -// +godefs map struct_user int64 /* user */ -// +godefs map struct_vnode int64 /* vnode */ -// +godefs map struct_vnode int64 /* vnode */ -// +godefs map struct_filedesc int64 /* filedesc */ -// +godefs map struct_vmspace int64 /* vmspace */ -// +godefs map struct_pcb int64 /* pcb */ -// +godefs map struct_thread int64 /* thread */ -// +godefs map struct___sigset [16]byte /* sigset */ - -package process - -/* -#include -#include - -enum { - sizeofPtr = sizeof(void*), -}; - - -*/ -import "C" - -// Machine characteristics; for internal use. - -const ( - CTLKern = 1 // "high kernel": proc, limits - KernProc = 14 // struct: process entries - KernProcPID = 1 // by process id - KernProcProc = 8 // only return procs - KernProcPathname = 12 // path to executable - KernProcArgs = 7 // get/set arguments/proctitle -) - -const ( - sizeofPtr = C.sizeofPtr - sizeofShort = C.sizeof_short - sizeofInt = C.sizeof_int - sizeofLong = C.sizeof_long - sizeofLongLong = C.sizeof_longlong -) - -const ( - sizeOfKinfoVmentry = C.sizeof_struct_kinfo_vmentry - sizeOfKinfoProc = C.sizeof_struct_kinfo_proc -) - -// from sys/proc.h -const ( - SIDL = 1 /* Process being created by fork. */ - SRUN = 2 /* Currently runnable. */ - SSLEEP = 3 /* Sleeping on an address. */ - SSTOP = 4 /* Process debugging or suspension. */ - SZOMB = 5 /* Awaiting collection by parent. */ - SWAIT = 6 /* Waiting for interrupt. */ - SLOCK = 7 /* Blocked on a lock. */ -) - -// 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 KinfoProc C.struct_kinfo_proc - -type Priority C.struct_priority - -type KinfoVmentry C.struct_kinfo_vmentry diff --git a/vendor/github.com/shirou/gopsutil/v2migration.sh b/vendor/github.com/shirou/gopsutil/v2migration.sh deleted file mode 100644 index 978cc44ee16..00000000000 --- a/vendor/github.com/shirou/gopsutil/v2migration.sh +++ /dev/null @@ -1,134 +0,0 @@ -# This script is a helper of migration to gopsutil v2 using gorename -# -# go get golang.org/x/tools/cmd/gorename - -IFS=$'\n' - -## Part 1. rename Functions to pass golint. ex) cpu.CPUTimesStat -> cpu.TimesStat - -# -# Note: -# process has IOCounters() for file IO, and also NetIOCounters() for Net IO. -# This scripts replace process.NetIOCounters() to IOCounters(). -# So you need hand-fixing process. - -TARGETS=`cat < TimesStat -CPUInfoStat -> InfoStat -CPUTimes -> Times -CPUInfo -> Info -CPUCounts -> Counts -CPUPercent -> Percent -DiskUsageStat -> UsageStat -DiskPartitionStat -> PartitionStat -DiskIOCountersStat -> IOCountersStat -DiskPartitions -> Partitions -DiskIOCounters -> IOCounters -DiskUsage -> Usage -HostInfoStat -> InfoStat -HostInfo -> Info -GetVirtualization -> Virtualization -GetPlatformInformation -> PlatformInformation -LoadAvgStat -> AvgStat -LoadAvg -> Avg -NetIOCountersStat -> IOCountersStat -NetConnectionStat -> ConnectionStat -NetProtoCountersStat -> ProtoCountersStat -NetInterfaceAddr -> InterfaceAddr -NetInterfaceStat -> InterfaceStat -NetFilterStat -> FilterStat -NetInterfaces -> Interfaces -getNetIOCountersAll -> getIOCountersAll -NetIOCounters -> IOCounters -NetIOCountersByFile -> IOCountersByFile -NetProtoCounters -> ProtoCounters -NetFilterCounters -> FilterCounters -NetConnections -> Connections -NetConnectionsPid -> ConnectionsPid -Uid -> UID -Id -> ID -convertCpuTimes -> convertCPUTimes -EOF` - -for T in $TARGETS -do - echo $T - gofmt -w -r "$T" ./*.go -done - - -###### Part 2 rename JSON key name -## Google JSOn style -## https://google.github.io/styleguide/jsoncstyleguide.xml - -sed -i "" 's/guest_nice/guestNice/g' cpu/*.go -sed -i "" 's/vendor_id/vendorId/g' cpu/*.go -sed -i "" 's/physical_id/physicalId/g' cpu/*.go -sed -i "" 's/model_name/modelName/g' cpu/*.go -sed -i "" 's/cache_size/cacheSize/g' cpu/*.go -sed -i "" 's/core_id/coreId/g' cpu/*.go - -sed -i "" 's/inodes_total/inodesTotal/g' disk/*.go -sed -i "" 's/inodes_used/inodesUsed/g' disk/*.go -sed -i "" 's/inodes_free/inodesFree/g' disk/*.go -sed -i "" 's/inodes_used_percent/inodesUsedPercent/g' disk/*.go -sed -i "" 's/read_count/readCount/g' disk/*.go -sed -i "" 's/write_count/writeCount/g' disk/*.go -sed -i "" 's/read_bytes/readBytes/g' disk/*.go -sed -i "" 's/write_bytes/writeBytes/g' disk/*.go -sed -i "" 's/read_time/readTime/g' disk/*.go -sed -i "" 's/write_time/writeTime/g' disk/*.go -sed -i "" 's/io_time/ioTime/g' disk/*.go -sed -i "" 's/serial_number/serialNumber/g' disk/*.go -sed -i "" 's/used_percent/usedPercent/g' disk/*.go -sed -i "" 's/inodesUsed_percent/inodesUsedPercent/g' disk/*.go - -sed -i "" 's/total_cache/totalCache/g' docker/*.go -sed -i "" 's/total_rss_huge/totalRssHuge/g' docker/*.go -sed -i "" 's/total_rss/totalRss/g' docker/*.go -sed -i "" 's/total_mapped_file/totalMappedFile/g' docker/*.go -sed -i "" 's/total_pgpgin/totalPgpgin/g' docker/*.go -sed -i "" 's/total_pgpgout/totalPgpgout/g' docker/*.go -sed -i "" 's/total_pgfault/totalPgfault/g' docker/*.go -sed -i "" 's/total_pgmajfault/totalPgmajfault/g' docker/*.go -sed -i "" 's/total_inactive_anon/totalInactiveAnon/g' docker/*.go -sed -i "" 's/total_active_anon/totalActiveAnon/g' docker/*.go -sed -i "" 's/total_inactive_file/totalInactiveFile/g' docker/*.go -sed -i "" 's/total_active_file/totalActiveFile/g' docker/*.go -sed -i "" 's/total_unevictable/totalUnevictable/g' docker/*.go -sed -i "" 's/mem_usage_in_bytes/memUsageInBytes/g' docker/*.go -sed -i "" 's/mem_max_usage_in_bytes/memMaxUsageInBytes/g' docker/*.go -sed -i "" 's/memory.limit_in_bytes/memoryLimitInBbytes/g' docker/*.go -sed -i "" 's/memory.failcnt/memoryFailcnt/g' docker/*.go -sed -i "" 's/mapped_file/mappedFile/g' docker/*.go -sed -i "" 's/container_id/containerID/g' docker/*.go -sed -i "" 's/rss_huge/rssHuge/g' docker/*.go -sed -i "" 's/inactive_anon/inactiveAnon/g' docker/*.go -sed -i "" 's/active_anon/activeAnon/g' docker/*.go -sed -i "" 's/inactive_file/inactiveFile/g' docker/*.go -sed -i "" 's/active_file/activeFile/g' docker/*.go -sed -i "" 's/hierarchical_memory_limit/hierarchicalMemoryLimit/g' docker/*.go - -sed -i "" 's/boot_time/bootTime/g' host/*.go -sed -i "" 's/platform_family/platformFamily/g' host/*.go -sed -i "" 's/platform_version/platformVersion/g' host/*.go -sed -i "" 's/virtualization_system/virtualizationSystem/g' host/*.go -sed -i "" 's/virtualization_role/virtualizationRole/g' host/*.go - -sed -i "" 's/used_percent/usedPercent/g' mem/*.go - -sed -i "" 's/bytes_sent/bytesSent/g' net/*.go -sed -i "" 's/bytes_recv/bytesRecv/g' net/*.go -sed -i "" 's/packets_sent/packetsSent/g' net/*.go -sed -i "" 's/packets_recv/packetsRecv/g' net/*.go -sed -i "" 's/conntrack_count/conntrackCount/g' net/*.go -sed -i "" 's/conntrack_max/conntrackMax/g' net/*.go - -sed -i "" 's/read_count/readCount/g' process/*.go -sed -i "" 's/write_count/writeCount/g' process/*.go -sed -i "" 's/read_bytes/readBytes/g' process/*.go -sed -i "" 's/write_bytes/writeBytes/g' process/*.go -sed -i "" 's/shared_clean/sharedClean/g' process/*.go -sed -i "" 's/shared_dirty/sharedDirty/g' process/*.go -sed -i "" 's/private_clean/privateClean/g' process/*.go -sed -i "" 's/private_dirty/privateDirty/g' process/*.go diff --git a/vendor/github.com/shirou/gopsutil/windows_memo.rst b/vendor/github.com/shirou/gopsutil/windows_memo.rst deleted file mode 100644 index 38abed819ad..00000000000 --- a/vendor/github.com/shirou/gopsutil/windows_memo.rst +++ /dev/null @@ -1,36 +0,0 @@ -Windows memo -===================== - -Size ----------- - -DWORD - 32-bit unsigned integer -DWORDLONG - 64-bit unsigned integer -DWORD_PTR - unsigned long type for pointer precision -DWORD32 - 32-bit unsigned integer -DWORD64 - 64-bit unsigned integer -HALF_PTR - _WIN64 = int, else short -INT - 32-bit signed integer -INT_PTR - _WIN64 = __int64 else int -LONG - 32-bit signed integer -LONGLONG - 64-bit signed integer -LONG_PTR - _WIN64 = __int64 else long -SHORT - 16-bit integer -SIZE_T - maximum number of bytes to which a pointer can point. typedef ULONG_PTR SIZE_T; -SSIZE_T - signed version of SIZE_T. typedef LONG_PTR SSIZE_T; -WORD - 16-bit unsigned integer \ No newline at end of file diff --git a/vendor/github.com/stretchr/objx/codegen/index.html b/vendor/github.com/stretchr/objx/codegen/index.html deleted file mode 100644 index 379ffc3c0e4..00000000000 --- a/vendor/github.com/stretchr/objx/codegen/index.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - Codegen - - - - - -

6ybZl3LMfoLrq;};rf_YP#HkuZrD8!!Q)5b&xz(4Y9xd zY^i!3%+E+_=6N=pg|zNU#0Z}=+~<}SpCvIB%YirC-^(FpRHz=QYC;+F;0=M$isJOm z!z=eB8jg?@Q3~QqO}a_A20m)KJ62=PDX9)hpyL=*u7#(xQ^vIjNg|k`k&TYxApx`E zP1yl=A{X$6VdY#ZB16xA^(s;dvlZe_l`oH2bQ~UP(Clf%;YUn@SqU6d>P=b`G~Qg0 zm=zpohA~2_lK1GMtpo-kIGluCjW~HA`};UWeWrY^f`(Iunyn?l=9x&ovVPya4x*2ymbG)ba&g^Zvv@|jb7(Xu!DT4 zu&>{>RO0VJ2yau|^+jzmD3zT|X3Zj!CAVjcFRPcIyVYcUKMI&}#?W73<}X#g-1nxM zF>#8oD*hd@0Gr3_`^IVR{1bqIlSW#dvO)+wsNey(ysslq4C`K5$Tb1{$c^IRpxdU8 z25bdanHxFRiCnW*e=c!aTv-kRv!SfFIVhhSJq?Ft(Q-ez{l@noZdxp~9A;&a$tW@x zn7%+C5H$djBZ`4~VBfZ}`hcwL_?8?31nY-f zci0dgpqVrkQUm^AKNUkN>~3xO2b*l?5OI8wiY6)4X+F_$ZjW|6)h<;2&|D~{lt3SW zOD}0Ge%52+sR@OU6ifJP@?ZB&sq5MOUXDNSarVP7%p1Yuj+w#a%sFrIJ6zf|Sjp&+ z?k*$bmFsP=SAHB0+&K{RX$ODIJKo`o91w2aemQB5GgCvyM=fB~4Dd_mG4o5P1N$~2 zVrXdI<6onJ2h#C!5j{xcBf5c&f2ai=n3y6`Xx=KA<);8GK+?Z%aN;mcx~k0~*l)DH zjdMqT{$AJ>X9|Edjyu?M()zFw?xnZsQ(4)Q%ANUy)t^4Ek&L8Y>-t*tCW2*NRTnG$ zmrw)?pu9|rUjf?Wu`!cG{CJf^;0y{~6Q*v=^a8$vctc;VQPSiY*&-&vHX;V3g&ixGy!o>Ng(Fi*ILkvjav!oY5Oas7rc zI1RO5h-s-kv9(l%abRnQX3qHsBeO@`ST< zYBozBO3f=ywI0e+aL;>$C*EL@(HAbyL3)`nI|ux&+IxqYiZ1|Znl__R9`M)|Iqg6D z-WqGPQGk$W5%^uvsa`^Uq^A9Cq9q19u}&4cw%_jr7Kw8 zjp#o8{Vd@tuLPa`%`0)Ra7F4D1 zN#$o4Pr#n=3OpOsR@uBsM*sNzXj&Agy$DzpW``4~r96Qk--(0(o23C(vm6bd0vRG&WTLx7HbHLP^(A=Rk z9&n!+u~pDg$_W)XuX>~^or5;HfeB)fnVm0CkQgaQ!^LCP(><`flcR9jkU1X-pj{wx zde?r4bl7oamErSTly^P7951RVO}J$=#Apqw$`;QYA`y|!1}XR_5{qmMQ{a67*8j0$ zu+J!&ATUhKGJd}zdxmWl-N=8!<7b#wZItn%VvOY@q=m9WsJ6Q88_lXSwXkP^2J|iy zqt}QVi~>y*?X}wdTBJ>sk(NR~$ZcsL(Sx(V3lh(?$+|m}9x}NH?Y|TC-|xAk-3h4W z+-;a=WERo2!psFibNe)kGBV`|VzXzbsC+A))yRR)i1rlTcgx259(Q3EzCMx{1BYXYhPqJxpAbE`mS>kR&=wg@?!o=^R^x;jboN<>$ks)4x+x*UiwSWYY>N5clBk2JM3cto`S9) z26G%fBZ05JdT=o8X{>w#6sO78`!ncSSs&Po1-0I}up(l2ao9;iBJ=e38fa+h1DMtW zn_qwj1@}Wq`7fy9YDgjIWB#3VQ+#Xr69pc{_X%(4YamSa2@%0PkUeUW?K3TPkC_wS zkGo54tBOZ!R4HdE1h64)=`-sypxO6Fhpl@odNIQLTnD7Ej1QH2Uvs#O3!}?wxHJ_E z`4@Qxv_T_`4!0wtR04!yf-nUChMBnA=fPKcvLZI9J9o@2gr*eviKE9O291o!V(RnF zHs=*ysdY|Y-dT31BO_G{3NPsE4k%ZXzbwIj5DY-F5 zD{ibR*KRd5M2?BcmAJN@RlQWkE2UGdl~g39Y2zcbS?<U?=+enM zbc^4X3~?K!ri^$cG1^yU@5ebDO`L^|dW{UZ_fA@m!ofkeQ9EuG=219CsnzpaPpE}M zI<`gzFTT!duCF?y2r;93JNr-xJ=tiwmVWQIj(wP9%_0$9E{YX+_jsRq?w6)13vgJ3MQZL7 z?|ip-(rk!9?4{+bcFhXhdawRSbJLGN55dj_GO{ z|4{s!q!4L=BT!O#=$9x^?R&Ddb&jKEqHkAYRPR#lstCC^EQO&QdG&~z;mepT9bOvH zft9Tfo_LELE;qKo3Gbuq0WTS20M!yE9QMRoVb-tb&KsI`FoaX=r(%-G^a>K3D3P8p9>1wn zM2{%Q)wnI()|#SWXj`)${^m+Cg9fsUHj499O!k1AtPD=oaL;+XwL!M z7s~&|bV`LTstgvXP8s=nF|gLTr$n!V?$axkO#BT0-8ze?5D$LSLgZ~sw_ulE<}=t<(V;j&oDHgHdV=R1Qjn-vdn zgrU=G$0BpTT5w9o3NIk30-Ona%oT6j0C=^LtyQ>+K}o`D2Y54KHPnv zp^~azSFV$1DjXf0(9|n03O{qBYr;^`rxugR5H{UOg69>Ob!P}I>d%r-m9j`PE%e$4 zrXr0{f4u=Nz9UlbN)2WhK68)ma}bGawaHQ}8k6{BqY_=O{WM1-Hop*fQIQKiF?>wL zbM%AvgyF5C6YIibHv=rD0)644HWW-8?yKZ(+E{k;HsZRJr5z9O2Rjr+AfF2Fx*}xu z)^2H|A)3)+IKBs2R+EVsKNZpl9Wlj<$daE1!Ai6}1w}9ZK}n8UiTB|+;IbTagei->aMhLHrxjITdRayRf}=IwDk3jg)48TGq`Z6rJm0KD`-2r51yFMb}^R; zBLP|jNHMAMrNjmHw>|_18m1A!_W4(wymPb{Q%z5ih7R$K*`>PyJv~Ft$;`PmqbClW zXISjpkxmyH+nuHa+UH6AwIEMGJZC*QLOGd@lRAp*zh#ga2NU9hhmPL;Zp0`%a7_lV z%t%i8GKsiB(g4e{)R{q;&gXwhc;Z}tdX}TXIX|~$qN>&@KB~?Rs14!FQYnwHdG>0L z;F8%gJG#Xy{wzH+rW;ZOi`Viq`9RM(eijMA!xJb`>;+3TgJkS|03NtlN z2-rQ7ua@F^h7{|shGQ%!_L#I*h+Ozh&!>cP*YUTDpsya}4HNMl`9I zTAV;29J;lCwoQJ{v8O=0bd?fo&dd<36@d~s?J%7_sG3HQoND#Ls18}8(XtZa78Bj` zyxBN!PFf5jm>S%$jB)n-7MEDGA7m%6`$T9!-a@R2C~Ssie)MFncmov`b?_a1b2f{? zWM|iHRm2V!LVdsYKOfyoYAhbC7;uI6lPx_`Q5WPl2SMp_Jb1ht_h9oV!=P{u3JE{6 z;}y6dDP3#GznB-k3rS?yg=S0gB=33Yk5B)t2!_gdxs`&%?z}^p*?Yv=g5uWM*S@`U z7_rOuo<;gd3sZXct?9y7+dvYh!V`}c7{MPq#*Sz!h#zGePAaU;qk!XVD`IHm7aiMT zW@~(bmCC83&ISDIo-Ugld%*jOE-Ix62Mssid3yVEPl(qOI_an7r8CO%v}|dQGuj@v zs%_2Lsc?Q!A7n@{KnrTVeL&~s$y6H|?$AKM$k5IE+${l)2&X z&d5YkeX=QEwhhA`{O(hi(&gS2DkK0$g&iGB5Rzw)`5quqK;kBE+X`5>H`4RI3w{ub z0(Yxx3LqcqrLM|&^O|~E%m0U}bB?FK%k37n0u&a+=#GC{d}x6?XwI_9r1!`v-$B97 zbzc0R*=Xg_B&ItfttTXu;EBFlif;pHd3z@z_aWaP6p0!P5%2EGLBMyp^p1-5 zMbv8_pi1#pevSf_nx+f}5QJ4??45w#fkQjk?3C~ZzGQi>;6$P3c3bs=h&ni4cV-ct zep!i9POQ2)H@HmosBzRQOV&x4C1)d|>&&O!%Ve7^8glG*wlDBqdwx%ZNLu@|Hc6tC zj-g>IR5yEu;$Q#YN^Az~?8HOH%B#?9Emn~wN#)4(DF_(6Aia%ir5v>Ys@Bh~!#3VM z2Q$8R9AAU(19ZOc&8`5`*pP;v-w9kodt6BS>&Syoeaq3B|I+WRj$mdG{eS#dd8$cuam ztBeAERL1bVeFOKW4b?B3r5)~!)+26BpRNREw9^(kw+-I3EJnNlY zEKiTObYae{*nlr(w22_ep*R&MZ;LOZVJ_P79DGdfA=HqaKJ(23pE$+B%}M#u>53(&=uzm+sli#Nw)bN`DJE@41#_FdJ@N z!Tr|s2DJ6x&fh9H0S$e~;wPL#M`BZ;b_5Ka>+Fib9DpXn{+wv7XA_W%FYet7?5`$! z5Z_^2Pka<4C2(m-ZbrHs@IXAK?QURlCS6&0^`Oxt)p)r4??zUOUmefXGG(xCm=Uc< z@#Q-c-q;XJp^Kn}5*kiVU6ub3$!P;i;WN;|OSlO>WF5McqT97CF+h?oM!C}PHC3=& zYNUea}pP&4bRcHiP+awqqXfh2dAE8F=M8w%N@3$*8U_t@Qh zaI2;h%^BmYP7TU41vYRP-om;DDk#X*`aCpc2)SRO-aXnB5U4C`fqd|Hu+o86+z|&} zp;=!Z`WKa_!?3GXL?0{no)}GrD+#$sAKnSq0X|PP=H%acDS5l0v^+hkSie|Os)MfC zVlW)^Z?)c3mdUTPFv~v|Tp0!;i*v0JymqkeGfvCk`8e8s=`Y&|W>}+=k^Yp&hXnTv zx2n@WUUv$^g!jw_o<&^U`$1FdM$yJMO-KT$!ItmHoJMo5*yFJzhdXwLLR`ehYSMRF zOCQW=QnUxR8*F`2rCfOExCmvn*OMB3UXR>U6Vwl9aEo9)1)MZrrD8MFCno6iXF^co zaF#e1AebWrv#@1#xAr7LBoiK9E zqnD##1K@Vzg|-4C+wMnz@{6?8nvk@RfQ44T{uob;Qk(I)ikqB{@0TU!(DV7%$kcR| z73`uI(DHsZKKjva50h%QqA4wzz$9?njAr<~ zFaw+G^yHok%aftv_(E*&zlAypVC<#{&M);aCI=MO=)-i#)R7oW0|76DVYg@-j(A2#g7t{2zkjSt2LWH%!}L8&d{2}vM*qE^QL zYby9ghvpVbSf+tA@i3&@o6jJ)8UW0&#GbCzpmxzY`t^OVheNfGB3Lc_^pcBtQNMPb z{eKT;g1JdvyIK6MDCKPqL$BCNuG(CS)(`*}`T3)lm{-Jt`==WmdSih5K?;o3tp{#BmwO11^z`Dtg z6nYs>ae)Ts1OZ7j^FyGH7?X|ceF&rgQ?;zFkN8ckvpHpJVxbgEe*H%!6Srb~*P0Vd zi~2b<)0=tGo87J^prFAELJ2fks@XYcFC(JocSC|Lc&hbz9BY4LD!Ip*iq^S zh{8=|BvC_DxTb}c^6FqWKv-2K-osraT^`D1{|u|F9}>O%vtWv&xjuoN%$(SD^7J!w z6kTGD=$gi+s3A*1c1gdg)6bA!4PL7ugyZ?86w;E;-mZPZPq}pUy2<3oT;jvOozWCzsQWhUF`q1tPg6dk6QVWM-MJ;IcfL2680V_|wuuA* zjTs)kAnY^m;fjAISM*M%h@jGxf%*5*UxIFgTghE3TXwV%G$3pjyh#wdEk+(%1&PL( z#`d2DrQg($F=*{bCXJ`&t>M76_%sOBZ0Eig9>j_x^Wf5T*Di8(p+CL9Bi43nzt2OY zkj|w2+X$nLJt6OLYbYNAqQp6t<`SmM{ERF}Adzn3U~0@Q6byK6-fW#^LR}5HeCy*{ zb{Pi;BmwgGtKPWcjO;@1ovxxP-OFK(>!dBo^YlzIwbNb~OMNPViz^-KbYSCd^YoMu z#oL1a$S9JCUQHC~a`co4Yr~F`!KP#73FR(mi(sqiP!LtuoQKFnggfxy+7zJfu-2DrW}JajL==L z;sy!EUJZX_f^^pr1~u1%6b2iJ_x>B&paeu+KEV%wZ^FYJPlh%xm?W!@Bs~oAZvcpoZWj^H$ig-E>Uc5ZnI7^xdcEEF!^3F#x=nIFMy!DD;&v@JnIaV{~Wzat9juwCpH-WAkM!y@WevFV6OEN|c^*N8zik|D z;G<7lKF~2?)eNXDF^n}=sgB!Y%uQI8nd0GNdU&i01pS^sMybIIjB2}eoNGBg5^p=J z6;#bG7Jmk1-7WRh{Yb;IXM6vdO$91A0J_%7{~tf1GR#D0=P&%aGvh-Ix*S#lZE|{X z2^=c=h~7p`w5s;s&dCg|lefNoQfxJQ2wK;ZNOxW;x6YArH%i{YHY;KTT7t=I#)>z| zNwNn~!O9-}1m1@qO5Enap-T~W_1b5tMYS5FEV=QXrsooPpV}foWZpjzh_w6q+NE~b zO1Pm%?6K)_^8+s3(?#o3F)tC!v@unFy(}F8q%^Q(+(-LIq~WyWgFJO}OI?pMQkKL{WWK_; zFq@%yk~9#*+S9WSvGB$ZC*^++R7qj?b>s#~p9SuHbeaVo2@tK%-md9`9X<6vhU-Jz zikW)Y#|yUCE;cLti~Rs7iElpap-X5J&EMcIuLT_d9u&$8tqKaGcA_(#yx5{E#vV-1 zB?DY7TKc~2=eBC0P3U<5-m*MCwyIRNfknsO9BTP+Ik*fCe7?JpTRy!%S<{K5xqrJZ zAq?({Y2CcQOKFNtcBhLS`KGGb1c#}Dt6H}+5&fCl1;J<%WaLHUW$t6GOnv4>wseLxb6ukrTT>H9E`tZ8&JtE&SmYn^1l4Fbc9viO6kDz!zX%6sXyv1&dPjFo<(SepbQMg3bORGR{-J)@ zlS#j&OO+Mdfz;Vg>~*2a6hS_Kg=iDCp1E`bpvvILn+AXOgB(PEJnE&3JgK%AXvyMj zSr)tggc|osHma){8f&tWVq!m&$L&nJcg>-M%RietUiDcJZz5H{vKn~(SGGjygtPA^ zdkR(7&Ni#pn0$591vAM6=y{iKC;!5@*yeh!Ypc?V2l=YoMy+4tY~kXsp;ogfRX6AS z{a_1>%9i}uxRO*!QFnjJ!4hd|cWD&c%_XmixP&O_6>|uvD||$tzU@dw>_sNkq>_G3 zvR|mnS!6_Lfmh-ELBR#%g3~Zya0RpdpY2(Nb!*k<>{mB9xjNy_a~{0W+@(VUOy6x<+J_4jdS8NaN=C~jAyF{~M-aI5KP(W1A?ZwTv3S6eihAu4|4k9yM zWnN&+BP}Lp)#hY{3Dh2E6^F{sP#Apop?t=N&Fs+#<7qK$ zOrZ&dPq?1ph%No#8AT+Jgar4z4T-xX>dBxY1Wr$|*`7?h@qK5V(HjninLAF{FVNFY z%>hW(D348DhXcwUxUpJy`DDkm;nvJDiIOvNg46z9%o0H^pshN`PvoSy`_q#M{SRe z$#cgYGM!hI^kaGyCeY!E;VS!KniKjhj44*R*eu30cFvAo4{jhDv2YbNN;DMba4ta4N zF8Yrbc+^6uuiD%>I@9`FSVR33!`}`qrnr~?VLUW|uOTHdkA4uia=XJqnzIsRLx;H# zjW{0_3-wC(--~9^vly7lt&XcbmkJzW_DIn(&NO4aykfzUKMEwh{NBnHbEZ7bQ*e=B zlhgA!_;5UvN6#ko5MGMHfTY|#J^Qna-*=)1@?c>yRB@oblEHpdItY%i&MMu_VYIM# zhQVL^?P)XpO~F4S#@WlM#~*E}DE1(-25$t<$m=N@(EV6l&lxnxPJRS{g_|#JADyWe zmTC0;D6*A%{XgX+C>iZ$3pF^XP!7S2#wgFqmM=49;ee_IP&age_xBwo#t*rt+ceD_6GXVTa-rGm$aCOFEz3@xLY(1Zj&NGPN5{?d$7%H5&1A?h?0u$)bjd#2!C6{@k{RPf^9R7Po}zCC-dDY#@LgeM=F3F0i8( z@=4&IlYhv&mUUKwL|mR~%eN7w>K$5_llk_5*fipw@MyY?*CoM9E+T#GX(GCooT2T) zi#MA!UvczReP_1*t~b2Z=W14O$6JU^dY9rSi&g6)E4X9d!S$|g4ukD;*F?x~6m?jY zZmL-NEvczO5QSKzz>q*O`*}lk5L3HdBISz8dQg16wdQ45GJM(=21uk9wdtjkyI^b4U@(h;XQI!E zYMacZ;)>M41)*@ZuC!5XGPuseZn7^0e6qMga2MBg4RCWFwr-RP+91*CViDU%q4toV zNT8Mxq_BIGsgwr4uraFB3;GKLD&#t&*QkvSbR z@5H$vKm?7cU@`#en`m@gy5j1(=RqKM>61$p!htm+BwR7`ySn=w*#*nfVclx6Wj?WB z=$L8N&8t+g{?yOH!uFUww+tyq{dsNwA z!t2Jn2fV0nL6>%E)hj=Td0#zJxoh7v;Vm5$^~I2=rqOajVEl=gZ9@UAZ0N+vd8?u$ z(rAduAS`&w=QVt-&qd1y9;ap~P(z0^WR3iJ^Ad(X`7j1C{5*3)oS740Zglp?jsSYZ z8D_z2A%bj-6&wVYglvLu2BuuVCOSw5Ge3VRMqhTP7=gH5HyY^{Y}sW}QIzKDCyf}LNa)qZT_KW_1Ipk|^!-0+4)K=*!KVSsEgx{*rcD11b6 z!Io-Lg;z=pX)YM0#raE+Ow4n3dvnbss=z(eAPW1vs~?}VCN=Hr|Bp5;%`B)tcg&Du zfB=+Gg0=O2iip8(2}WKYR-K&zVmEwXbq8FZxCP*)^ojII(5=$|p2~)mN*0G8_pxcb zP&@~3U!3hhd@=14I;q{3I+RN;Ieb7?&7dzX82Rr9AK~NB)BB&HDQ>4Q)Bo_dVy6#( zJg1)a5G9^h8^`>~a7kXEb}kSDaopP?uC-G+ zKukJRa@q(qcyp2m^Y*xoueM7C#$-(LtC7sCZnl2ev@O%Ny%U!UfOWh2l6vA{tGCXbYH%w&BXi2IIsPlCARb33=2f7|v1(F^{nKOv7k#2=^6dLWT8 zXA;F0CnNM;PsxBF0f#w!f+)W{p3Z)+Obr*w`YlVxgA&{WLX=xJ>cMF-pO#9v{1Ss0 z0B68qo3b>~<$t>cMa@t|$AV}6RHa{P4RZF_+x7=N2m5qbe>qQ5QW7HG<&gD*=zJB! zYZulFPDpUa=i^emMzl`zvElOzV0fU8hOFVE{#X$#^ZhpSlQM>Q#7lYN4dRM6$SP@- z*wgMdKDy%%VlLmBnYZ*()+;zaPhpC8ew$ynOz%RK1;j0TJsF@7O`-896TVWCJ~-hS zsoxopc>Y}?&zvzL{*vo?GMiQtN9?GNI+MXp0vAc8n$2xb54qJnJ-tUD$(Vt={T!T1 zce9uZvXMkmkGJ))J7dsrHOJQ)lRdP5us5^@s48eS2re=Hu;E>qe($W+Peg&{Nujf{ z(}=>$XdL#xz*w?79^nkM>W};cf4G2J(9C0+TTh~1u)Sfhrxf8jk?J^ic!-j-=D(&PU^P!kkvTyg@H6^3+$(*n)^zX)}JpU!Q zwTPzEG?Vx{y!ucB?aqP%e)3(E9S8A{NL0eKkU4}O7#NhdhIkx0d0P}m^!KsG`*NcK zTkDi`n(gewtd)Ae26oW*gDP4C8(z<+P!E<}RSv!c$(tqV+jQtODGE!$87$OcM#xBn z^oYU^g%*k|Ov%U!0rrecH-$$6WhTRQC-z=q>KG`4*cH^IDouIG7khfvfi~z^jzm%_ z{`?Iz(cZn#Xaa^N?u#Qrr(Ph)%f18hU9BL{)RJFzB@pT7ZI$ASy-%(3C^6n*H{g+E zel!NwQ|+Z&y%{FTw=!hJZZ|0@SAR{F?k0=Bj5q5PRz{zN;_FU;)F*R&)oyh?tA=T7 zbTFF)(o`;QYJR7p4xnl^l2=EI_dB>0YGQEjrUH)8?^^U<0Uu> z0lQ08R`0Qh;>~j$x*~E|UFZ{`m(+#4V2ud7)YhPNl+(gAOr}IJ1Z7oc=dN)JaWX;g zSg9LH7V(hk8mXZ0FnSq6Rs@0D+Y_|@vPfY7~^BuP0H2Kx_8W~Cb0 zKewcg8mm%Hu0)2Rgf1(Z3y=%Q>KD+LC1ka57`fGVA2heP*ok7fsbGz zHe5=*DQY5}@grr`I6k}JZSsQPoO5)7SoltZ%!iW5|2F6RW?20_s6@Q%Yfy_zq#DTC zjBR#B_bBxe#ykWP7h>Le+Dn%#$S9$UR@g$N0g|S)abJ?;9;zoRUw9~;8x&|aYie#6 zf z84#a#Fu9<}uy0x-$y_RLnN7@a|DZTwBz)SKqm52-w~J8Vo3hns?@^!qEMkm2Tc0J- zp<~qbj@qKp39^S;81|M{u_<%n z^&9^g13NFtS3f5}69tO(VdCt)#2LzUA#W6aoH2Z@M=pABXE=yqt+MG#AtX-<*D3(-so4%c=QwW&N>VG851Bc~zq-9p3a5$c}Z|>qFxIS0uO*o}c8W9Tw2@N)CtM&f#!|xm@elAl*=EFD0 z(G_}fap}PvIO4;e~%bqi3y$5+In`OMZN9Oe8x1(k~pSWg7q=GLPRRr@IA# zTud6REQ@y!ffpj$VswO}Dxdjuvb`oHaaT%^xDk+@;3hxU&AJXPasa7geGqoTyAR$S2rxAV@H{MDyqH*1JBYqk%__8Q%3`!A#G|@>?xtgnBKiP| z%){f{0kRYbo!G_=j~34Qs|52ktiderFT%lCX6yZ9gZ|-TuY1<0R@dRi(c;1T_;{gd zx%56j+)|p3%db{(pUbxTTI{j3A5EX@(4J|;e*f_Ewe4p8FcK*`kQ`1Q zX9Irod|iVtlYi5rPuGXSU+qH>tv**Qjq1;wn85X_o+Y0fL2z+R%jetY-3Mk;+*hz~ z5MRD-eMf~`B4d^J{X@@F>d%kxI%erl*UZTE6TiCtr~VcW8efYLP)Xr_KT20m%J0fK zZM|q1;yDJVR#-#~A!!8fK&>>SMLR7IK(8pZ%`}f4JsfQLEuf@0okaoo=A(+f9JfiXoe=W zOmq8c1HDlgi>h`eW3LGl4*^2$=l}*}dBWL%s{P#?Kh);Z-_=#oEaVPlKs0Nqh>Dzr z6_^knJcs;ub2V&eFmnip0JFz0B$0EMlWPD4@Ut>1)8q#!K?q$zhFaY&jbS3&1$wbk z(@G|OPKu9tb96HM?u^X~lDJ4%ia!kd6a8ZWRobq|~fs4;P70K9ngPsAl zuSvd?J7sXlrxkyLOZ{3&J|Ym)Vq}K549m@d|F>`$Y>D}|u{4LXdryDSu9@bgqxkuA zklt1zPLbjM=yo~Ze(jhB#}~=qSjYB0BfqsjxVn5NU^q_je^V_injtd2@CfbQ^U%~( zvXOl^m8;h5bSd79pi0+&XyhOOlwwoO{X}-#_R;-2Wr}IPShxeV(?pD^%9TZio|Vt9 zzTTNGv)>;)Nb*h`sPSqawLSRuWFiZ7BML8k>oBvA1&JxMC-aENynrn8>o34vNys`{ z15mfDJJ=L(x9s3mz?CHgM~B*bUx=IM=~RmS9lP?_bl6^W{*v+EUS|1+wtwR|9V4~b z@`hbXW zf(t;pIG5?Zacu1jGD_Y4AZ4KYU37+tC|_&WQ66TL&m#e2`;6F_c)nrMfTTolT7*Mx z+0XO79Fq9>gu^8?zA(X&fPX;n$lr;G+tOV-0;)AW=Qvn`4>#f2Hw?!R2;T~C_o>QS zq}Zy(ZSPUF*U5d{+TQlt4gkC%74V?#WHZI-26FIVeTvvv=^k}5IXp=|I()B;V=)Jp z%KmK>^zxHAA0kQRSm0~+fFi2%MGU?TI?nrMII}Qf1^f=NfBJI9gc&nt4dFqL=mr|` zk|vfO87UWbqaG-wjTP>0VS<)7Zorhm^;FVK(~ z@Br)|*!~_aFRbZ;6d(W!{k-7O2?X^R{tcbx(l(MMOg27R8$$aqUsqZ z1AP#ei5XU9niqlvAx5>Er$XI6X)NaDCbfg$vE9)Vag0eDz<+5tHk&^2NWfjQP$3dV?;0& z5^diGlRT?HHrs!X$X1oSL)l^(x(7sJL3Z^wX;MCfSxp-ne*L^B4Khsgbzx*LTiNZ7+23gaB;)28qo_(V(YhzpcyVq1`x8P8A@ z&%}lzZtJ+ALWQrNQvkcR=$0%?CO@sogfVMQM=j5P03utWMD|dyK+)IyR)0Q{ob}$Q zv<9$+ga;q+qxi>?2#m6A@2*I}Usl3u{`gpE={edJ0V3^U7l276ePINk8GLRnc^+qN zT7Ml)BiUuQS^~5$NZCzKrZ%kvPWW|bCXi-Rwv;zfuM4nv;~i4v5Q-dH{)I>R7QF@e zSpdPkDFL=I3uOI20%h0sb|9juocO$?*4C!Dt4qKS?m7iH>tkAr)?eG?a5?A7YRURb z;Ott5=i!a@?QZ5A(6r$~JV*I?nFsBcwr?~CP+wt9M{L*xd&AF-OQ-#r3;ed+Fk+7n zH79?u-_cjJF(+k5^T{He)ybit}v-T7a=6`P#FS ziKFV01e@W22#|J->*7HL()QK{;%~A+ZvF2jgblLG0ncqyp)({A$CF;f1 z3xy=jZRDWzhQ`4!1EJDf$iK3cUO$BipChvT6G)m>n>*-oj;uX75$8@>`;l*AJ-}hw zA&=Ohv4=~&w@Nyx^8@MEr6NiS0i~uP5I)|mUi+n1Q5G&7oJ~*}z|kJ0d&W;?vB%w< zz5Q~PFx))?(_R_Bey?X*A|#v5QbM}_nSV^AVPlT))iQ*F1@s_Z5k0Q-QL%ECo&13Z zGN&3+WyHrvryBq4jqMA&3$AVjZ>|BM?CvFhGDtJ>P-(5M;J!=UW_5^g0j`e>u^kSD zev!Fyczo_EL&PbSt{|Dr!&j?W3a!8^e^tp^uALbxxGhG!NsX(BvZcH39Ncfi#`WtC zR+z~Zv`l#~Hj6%dYD3o4*&SSj5!tKKxgh+|;SjjVQ)D^b31H#d{mFWzxtMzE*JYx# zS+kMqQn)omIOBN@CgPsP+_t|rArjRQ2+!wP5sdA%)co*=4Qj>4j_mQ1#5Xej(0-4N zVY*AVt7%>a)#c7D`yNZW0SVx^#-r?IW_w9;R@nf{FX2(}CK)j-d5gSW=LzLwUk|1E zO7@@?FcD}b4>So5zfU-+sk(#xs@@rj;QRAsJH69q-y=ecMAv~S8WYGog2wllks`z$ z)IED@;Ir@j3ZO%ik}zDmM!Oj=^mx?CT|vZd>BYw zDF*;Y^A@&!i62x!rz4@T61Z^W(9K(ibbMuySOsXvM!ik)RfWN386%n>hf@|jyYv+|U}pqM@aBXNDPCRvg9Gibge#Sv9nJvt8k4nm_0tTJ zE+a99O0!-_JcJ&IeNKT7{m?D!t4aw#usy*PTZ6}y1ehdBOK?_Jz|`Mh>otWb;)N&I zX84bIQjU{+mcS`72cG>@sb~rR4bC$Qg~ghD7pOQ^x&ZRg_%fPvR!*PK!$xxD3U%r= znI(254eb=Q)>xh#3yL3xRoDaLIv(!KvBgwB)b!|K{jE7bo?Ki*YtrT4^tUf&Qh!tCSIl zGWff+2sw1h!EG8?1ermquE@bsh*^IZD-;Hod59Gu{G1_J1V{YEqJ?;A)4-e=I+$XD zwe8tcz&ZbB2G%*4(S|Hk0L^3?&nM+;s>VgcO^hi;sy}jpz-HhWx!yWaG=L>?GbV&M z*o;Gx`NEq*CNLvb?&{p4op*s@GXw(@t=avQkMeWSr!Z)`VJ1s|)$i+Z#t$i`P4d}o zaK__P?uX>Yg%Uriw$fBM#IvRU2EAwrpR0%P?4p(|tGrrBj!54plmaz)0y+o72m4y|#hD^+HYc`6v%GW%6KBqm<;zFY=-eTLA>}e!wZCLhE<@8)wY@W602z$(2Xy zWP-F}h2M4(5=~u^^|7oC3(v6#arQSE*}6PKo#Sn?=8jS@(FM%Wg7h0J{AQnolYX(c zxwyUA(ANu$|G%k=;1ld!R;}rSk(_i^XVH5{=(a>z?cBN(kK0X&_Q5FBZ_0-T+r^gi6?E(yq=l z|Cr`*mhlF-h+$eHvI}^vhGwREO0g17K@mclU35s^?(eDb{AJh!*+SXUe0&+Dex+x} zmo+3d)9#X-&n5&NAN;dOCz=JG;-PLrbWC}jokGMV z3}9l5afn@pK+r;6CUak)dg_|T|Zk*&o^=1ucx!;&Cmf0cdsUIA|f$XLkA4*{3EIoM!%+}jm2EHcBm z5PKjq?{>tJwq<7=(@-zA(1Yf+&?1_2RKc6(8O)Rk&$HuA08>D$zcB~J3#W?blvmbG~U-#(V_u0N06Vs4`EfHJfgKh|_YjHaA1_r6l%! zkLML)w^AjhZLvHa!bt}?joR@oe?vT^On1;j(`g!2|7qFzHu5OwQrKIa2 zO4~G>&uz7{cg5TT<%B1L;xc3iB(O-;=FXo1K{ZVf5KR|l(ZPw3r_{Dg3~zQ))!7jc z3c#6_WeQXB#ko-{1n=FpZd0o726Pnf952Obi4JFqd1Dxy-3FbQo7dqc>Z68m{#J_l z5CkO)m7sr5Q`w-)gO%*>b;%K75x~Nywyc5)?e5#>rHYKA#j3W0-347(T33$pW}2Q> zsI%>E`VRw(w2G}pm~OS_l;Zqc*_e))vOr<{dXIvwV(IdOufeR9Lo+>mWv5eKA|J1k zUQfSRo=CCv>vhagVGs}*klB+?>pK>(wB%Rf2B9t}GpFSo^9tEV{k_CBny=t9cu*hE z?V!x(@0#~!^(oVam7r51{?85q(FE_s5r4Y962gIKiewF4(<@T4x+gY!O?b$O6bO_X zAyt_GGFoEZ7H9c(ke@x0^JjTkyB>lYI|YZC@JF*F%;Jhk98U6ndIc_;dG9BxQbTUJ zZ0iP>_il+hK_Kw{PST$YC1Ev)9|pbc{EJ)nmjAH#(G0Q_2rXVEr|5?(-4c492% zYUh3qLAiA?rtOIfswfriEcT0P7v!+`{Y-8cOUq6@yraAt#zNa?gEmfpmQmDv3)eQ6 zyC^+4^8*E^uY5ossCNl<89qZS0c5CLSqM~$Swh0ICdYw(tS91f4>xJ=8peXprrTuS zjjL3(zlt3c0p(0+ggmR6Y710Ger!xPVoY@G0FHGZ{iZ+6_ivz92BrHd>8Ryz%|p@E zu-^?+OTxttc=AQB@4EaKCO1Low+ zcv9DnpYj5&#K>rzkQXBd_3txIN|5^-&Da+CPxT?XsS8v>h%w-$$gmTn0Z-R|W&GQy z#KABTGn89bNNkHoX+_Q>nax`|++1;I5eI;8MZ4(n1-3g`tn0dHCr?)b$7$(QiF+z< zN`R9n871k4y=~O7Cq31mA?Aj(Xj~D5Q|9z;9BrItOR@F_s~BMO(hE4PDf1cQkG(;1 zOrwTWD=~IAwEn$ofxFa*U8ScHAKNTRB}s8bNJ~G=mYzL2*Do_;hWGSqNYO0SZA+1# zB^9X5FW7GP?}z~8moi6}w^<*VIm)E}*CsVekgk~MW0B_3?Q8{62Htwga$BdUXX_^v zD11b%l`}tcyo-O-6fAb5a49<;`?p5pp}w-6_Z*pqlDSG~2h?v3XV@@e+L{WY6ev9f z2L3rRtG_(c3c&MmsCBpk9_FZIg{G1-FY$4#H7a6XIqu#e0H2vx2Dbm(RE4ZDNV=CP z8RMeYUHR?xDVd{NGMlGEG!*pua`0$`e0NeDlG*GRFa6bxKAPb|_vcGId5>m6qR%{P*)bxr=vH#*abtmGNlxLp}Gm1V#9{&Xe)vCT$<}?C03oRN@;Tog$I8TpEuVhC!vdOI3%Wy zMmYsaY*3(j317439y*;%*sK)o%pFOmv_8FD(!mg9%*k40Pv!Yc@lGJhC#4-sg?SQm7 zntQ+Ebo%)pwSV4DyPPMxmvs1QI4D0}Aeaf{6M?F2f^_@`nh(A_6lq5){sA{a-c|ooMp;cH_1JRIQy&c zJK9#$-)@C0E$hLZtKh$v1Gc!QPI+t_zfYZb=IvBZpJWe3YDIVJXwcrD8S1}4qW`g0 z%i|QDaBuZHF*D~XxMku7X@2HCZbAn)0!OZ-0kZ#lQ<)Qf;C^lTqM6oYZd?8`Olf&5 zYJ|Ni&xk>W!Pf3qWz0W19wOGq;=$W@Q(1z9MrCIvo2JU01#D?2%&x`5~aO?q%|D zH;&e9S&nngB}!|g1b{`#0fkS4Y&=dPDaK9mN4bA$xlkSAH@p_RIf)Zs$*#EKNDkwj zR-Bxzwir;jmXBNbM%3iEploGF+dt_cTGjG6Z*1}0syfezSMq(z0~yQwf^;3R0CeHn zukX4?%A4RD+m2}0t!R&42;+NuLa{`KVvvmrsPya~VHMC$aR-qa^r0*X+XsL$xqiw} ztlkg(Zmq})c#IMZHviqUcWAbVHTkIZ0oYI8`ykXJNrE&F*39w~a8>AT z_5Vi5tx2oN7k@sHE^f2Qj&0mE;qiZaQ6rpAWj}!kvWD6(_MZsW$?j(+P@A4HAX>FI zpUxbo#p3@~_k&op9?NyF%bnIHaC(>id39b1{0gu<10Z(jo$0BX)C`eqMO4 zFEaE@i3ttadQ$WE9svm+BC;Rs+j16@vy)tQ8d8yuQ6dRIpszX3RY$B*HTSmCJba2h z-e5TusRvNC&V}#T!phJpeAQVSe*7Q1Ezr+!dbpo;Imii04p-3>+Q?jPhlb%jp9MMBXPp zpfJCpQr!gfS|0i7AoY8iVZg|XM}&IdDh1ObC5@jbo?0C0{|`=U*Qdrp-=N(<`!?Ap z_@K2)=qwZQilg5AoCfr_O^|>D!eOf}_-HKq$HE_17X6~-xrOc7x zs?e)jYtFtqh6&CJ1c}{1DFEs=9tkVSIVFiWb%Kx%QO)8`B8vaE1dSlK+PudN!R2{6 zRHVunj)NKCnTc=G_Fc>JX2$7=a^yfMV)%QeKalK>VV}WfqSz*Q-+2B3L(=EyQ$=wF z+TV5kS@T2IiM9Mh|agn9=CaGmTFnw<9ce{OmaHicS7jq2lv_2@=#Mzd8a!(CwEPwXtVY>DT5?;nAe$W=ngg>M3TC2~XB&n=Bq6vXFIQi%HIgwND zIT59oo91c&1wkA3AuHHk;YIzm+mGOw`D?H)+{iHtkkdiRmsQP98+F)-lB$9M8J9ZC zQ`@wWGI6^=gCOsAMFil^IRtFC$wEwA6VH;hi3Oi%=IfGhTUJE`uuN%Z;Z&C2XRG!} zD*t8Kb6RDad$7EWS8Hy@AY(J+yo>I>Rjw1h>uMwn_q{y;S_2-YxN|i9d6o&VK}RSx zbJ@}lsP^{ycd=umY*oADm*|es9{fLI{Zyw}L~5T}r<;NaoYTjFp2Q(_*Z{&3C++BC zz{DWv2rVo`Xo%Bd{C(!P^YrgSw3=UsEIWG4^))!mY+lp z{A!iSyRzC6`wg>rd)Yce^0?7y5L2!5o#$@1{=bF!>$SGnIIgvrTJO2LuW!)Z(Tofl z-kW-x=|0Zo<)`qNgmaW|==waE%H!-L=liZlyy)f?8zi0!;_tY}8Pimk+r{x_;Z6a}siBJyb9@7X=rvzA5)g~nAk_)b^r&De zjMV=y>PSN$J(Tw4@bB!N+mP9rO#M%UW)t%7^jQqLM${RBfX(BpQplu5i$9DAG;n6u z&}IJ18g-aXuIN{hT7itzM!DYdj*{Y&p$4kVYR~X?DIU@$HjR@?E+*;gRG&~qA_W}` zLxKGqv{Fp(0;*?pH#VjdTd~)+CDK0r;iN;LU@2F@A7DqhoX!eWx<4oN6}hboM?>xa zrmwsd|Kh@;1Mu8{i38yB z6(2Znpz9eu+ApKfbnt`uIoEl3dUl>qE(;v1xpnX!1-XIg1L$VjzM3n(B_%;a{{c=E z&T+VTIy8V7V*xZSXvBpQA||K_iXU8t7l`TBzYd4cn(a&8)f&EP<81oq35d9n&g#{x z_gUU9=+j~SVe(+c-w(Og%~^vJyAV7N<8TfJDPD75^#hL+CtA(}zC($aVp;J<16^nN-p;>PIZ&*XOv&b!T&{ohLy z=qz13A@U~}S5xts6?nqLpAfP#1l<0!{D91h@)%C^b`JR`)^kO*^Ik&fM^^?%Lj_(^ zMHe|x8Wn9J@rv+pQeNVHIfy@8z90Ji?2bGZ%~de|D75GU&z(S-6^V5t{_1OJ;eH=? zjkxc-_wRkcTJ1BeH&O?fem0oE&B3hq%>~Ct=tGu)t)vxvDETtJHun~+ZJd(e2?WB5 z*ELJ+?I0Xtqcg8`N}5__V@l$wgI(->=Y53y@C0sxdqCE8gMtV#Swimh43}bKX}%lZ4M8?bC-b7$RoBZ)R)}fV?@tRtJHF(jnAxB>jJvsvzW8A z+00I)7d5!g6Lf<0+EF}>s(0L`S*gKB7iq1QrEfY;t@jHX{*lcE4q}V~ry+7e+eOx^ z+`_z;9DfoanwO8e7;_M7LbWG%JQ}?q%Eo_MX6pA`XtmD476x=^G6H~cu~Br2Y^?HY zm9KA*BMa=o>?W^!|HxBOr*8=#O9~Bc4|Q38ilvR>s?u`1?x6O+F>xKzgs*NtIti3H zSJP8HQsM6+6%4Wr&`o!z_Nu~g`ICvJ#awwjJt+bAjHOOB*38os#6Y858sxbDQ*t<& z5t@f-rOCm4b_itJ8N*s$8B`>slS2If>bkaQIx$tQ=%gNJj_bjNc6c$bw_)v(ju_U0 zQMTjG@GQHGv@ETZbVA2MB2i|VmHS#z*-~B$NO%j{hNQi!b9JQ8h|GtQp`VZ-l)+VP z6~UE}-=@`W!l%*5!z;Hlq!y>?mETQ+8e3dg!$|#Ve41~|BX10B+T~T$0XrMf!_qfr}x7ZOw|u6&a3`__`#ns z_MaL7Q}y24Hn|D4DNEjH!4YtD?ttUP2qM^1^t@PL_(ry>OhRZR9LB1V%e-^^BS{qz z-k6U2DI#!LL`v)_1o5Hx)vxq`Lp4obmvDijHDCE#fk>1lPiX&ije8gn-~NwBRCJKR z5lnhyk*J_Pip`HG9V@^LHk`*z^5?G6BTmRxy0=d10W{Z~h`|d7(M~jSgDoYR4L53Y z2A6)K0*(JjaE(x(U+gBEpJMU6Lb+;!fBaqtQdaWH#16Aym~(d>@Gwhv@+CJNDllX6 z)@FLwuQ#eG4k)p^-0X>!`7FawL35X&nz~Y!^xr)1v!S>PbcfD$CPxds zDgW%Mqq6Efk`;oV1+P*VK{3+MDL;83!$QX$MtbOsYRskP(pXagdY=(PeYkk+ zupZE1J|G?Myb1&4LrdDb#N4?p)hO9oH|Cwe;=()m=GZ_ib>Z}30k0a2oK{e`bbXRE z`&;`tT%qhloMnb-rdx{a9oUOwR(tOLB~o7%BA&>CzvMT@1H3r&PB@)+JfhIx>h$9P zgFt24E^GAVDnVP|405kXNa>gG-Ot;iZ&Lc5TyQi*3A?#A$AqlOVg7r183~O5*ZFFL#^u587zM5j- zmU!(%fC_QPt&{CBdXxoB0Z3p}b+*5VRT%BOYZQ@ELrsKH-U=asyL#IKP!AY`u=x8x zFAo}J2zFi*k5`Qgc9?Uig#Ug>5J|kV8~Vmu>G1Dh7gH9c5W#{V8c8-!mn^n{RW$J0 zvhRhx=@!Q2%Wvh+?n%_anMrS_-6OP9iKgt|Q; zMRuwU&4pHtvrV5|3(VBZTp~agaD2;hZ2PZW8$M^J{ciD5^8q+!e#$wG_~6(dUlYmy zf6HAJh@7}rUhP-wW@ME`)#$)tw->GPouIf+>EC9r2sD#lW${js|3CR^riR&h`sXGf z`X-_{&CVG4cwAdWqS12G9l zT1Vb7em@RA)(;IH-uIH)Nk2Ve(8o;MLlY0LOjO@#JoHLH^MKX##@^K#p@Z`E#AVQS z;{N91Qg6vtWdkR!SO0+qfPMH5Xv!;`wOUGi_++4)AX`@Nie?4TT=Q`sVU`|VQ=#A& zTAcPzwkou2LYkX4?)zI;>J`0XdxW!A@(8sy3-r(vKUJYq8!?%fD)MXIZ7yd^XM+f6!C$sJwsxd5jlR=z@mkZMT{4=NHQ!rSNy1g5X{3<2I)cDNT zJts0t&tMEl4zeOUi*!&bFxJ4QVTOg`DKi4m7MTI424o6atIxnv^H+E<@~vjfi2e|X z(AqnJX&y;ASQ-7v2TA-6qRi06EyTLEfFw)vgQ1ram~38WVVlMmFK;i<3gY!CpTt<1 z>Skct%r7;H0#sYD^Y!NNEO}A^?Oybb1q}@M{A;M9E7oKRv~u9KAupw)F(e2*Jv$8c=SU{U z3YGlziAm$?*eeKy0MkFONod4&$!3p7SV3}$=K(G00?|?@p*DGHRj>q0SXg*UwZ#N= zQt_k2FYy@#TJ@T5DLniHQ@R`QnqmBaljETW_2&U>4_Uvw-kcuQ9Y^& zk}b+cYQxh@XGr`=K!{gz7<2{fh#CH6tIu@CYWiq-7OHhDz6^qt10sEBsx;A+gx%JjV@F1`lB# zjy9I~X*%j|cAY$r-aI?)KNGGf$a+;R7A+LNj{f)QOy5`p01uC?85I#>Ue$w}bIp}b z-cFUGfC6}H9g{l(wmZ-86y-jboDZHnkaBv;cS%6T#ZM#=$WELQS7GoprnT5_8>~0# zQqzgAfdQ>b+R$2XCNM#W)I$Y|DN5@M@%`z5e1Sr zbR+axf|{X2>1njM-1s;-M4LrnSPJrW+hI~W@EmzG_^(0Kx|!bsMc9r zGsFx%U(IDdS^LJElv0PF1L~AA^?&YVF}EUK?SFj;FRX+~lzpYBd`{rNI4*M$%9i&$ z0}h0F0%cz`u@5eV2mTSd&NQHpg$6_BLy~eVhlV#3Jl1fV>&h&OkZu6Po?fbfaP6R! zu+Q6ojn1G5PY^!fgH;A`mh$RuF`H#Y8apYxW-(>=! zP7Qcl1$AQ`hlYzK*z>kRd6Zr86qt^bRf{jtTV}C1w~z+Y*twV?BLx(%WInqv!8G`h zQ8Bs;0aMGVj(sz5%IzJq|X1sNI(lj8!OlQdyR1@UiSuBWSF=x8?RE%4~mWUwOgq}8%^z;Al~oafm21vfJQsN+8)IAuh#_y$Zhn&SYpYJpTVUHGkz?aC16^c z3%EB5FH@xL=;V{;5zjg4xP_cwCo?9nzpJiQ_7$?&%6F6Wtr=&Q1tf#b*#15la7Ox!1KUo<~t}DWXe1 zvjbuXj3!{V=N3Czx}KjnW$o25)khYg4b+$$!d%?m`}+U{tp#*}2Xe{fYpW z2)>sO{Dr-pvuG5B=|I#q!H{`wVpYUh#L7uUxQI^?A~hZZBV6* z^SBegjABG*4oELY*t=hElIFH76ZwgZb<;Mh%^m4{#VXZxy*CE4%ULoyUsauK=VM&q zD`FOxWoD9-q@WmEdty5FMhP?^pR#NmcjmeU&7*0h;5lhFZUwaDYC%a?)BvUJ4beA_o1>8 z14MVUcJhK`v|JMa3wjH=V%{^yI7K3qI*~AB!~wF~&c-zUQg0_n@V7FPs^g1YW$@v# z)xn#+8b}&^!l>-&06(Y1|KX2krW$t(fZ5`Yrp5XA8^Yt5&>)xi>Q6#6Uw6W<&_kX* zhD5T7mp~>Xgzj;;MTJ^SxQl)zG5DQ90pS$6v!c6?MLoWC|Ip#=26tfv%Cg4wQ>+(= z1`s2%fSVO}imO@+xiDzn1zITU_H8e>93gCObaSLxfci~$)UNUAS&2}sKDq7ADJG1@ zwyzt$!Jl!?RG@yYdK4y9%mMpU*bdTci0{M5n1>Vc(G6$r4=H^&&d*b`ktb;MLdBJe&F=a4_Kc(7D^QqOU-q%QoQ+`sbbS0eDz+UzLx!#$*5KwhY~WpWie7D`-qT7xg>N^Q@k0 z685Cn5ZZ|Dk!=niU-YC&HjRv^g$?=A#yHcv|1aasJWr!C>NslRIF7Xk79H|srW&0^ zOzFq{+F9h-LQ3P7DOEggubYMUzEQn21Zn6lc>7Md>{j9B%B{y~&CmE)7jgsoFQsLOqs zgiqfLt3UBV2T1MFCX1i^pk+NpGlWdn&_<^Aldp?t+a2RtSu9`BA;01Ij}kwsE;xOR zf>#z1Cc&YF1iiSFH|AS#?X-3nkIaZF#~b7y#^<%h7LGm-BYRX(ST{0Mi8Q)bl*Kgv z|0ld8OX*_7y|#2V@+RnZ=6K1N7Y?P|@3N>iai4*4bKZ4oS*Lte>87ML^nNN(&NNkjEF9$T2g>XH_25v$>4jf46QbJWuE;LG2UkkMd=r)Iuc-W zMpC<=`cp#PMpEr)Kt+h-*yNgYCu9d1wB%KXSfkxuOa?y781Tw%VGy^?(1lNu71O+( znOOPwZ4`fCJy!pNA1cg`KRe~|+V@#4LS_1wR$~qG8agM)SGEcPg`Ye%RY*Tn804+2 z(M;*Z!U@dJwa$z?{mAW7tRUnOwdJ;nP7;~@ATHXeOs!B@I(>hO<_k(#C+O!RuTNY( z=4@p-u-$&c1LI5HXl@F0Sv=@5WJKPhVGiDVU`|^Z;y2Oe-`}PVG_-$Q5JVh6p*p)J zn0#8yn4)YzpWz zpuLCf8a}(-;SJ4TqADNw@ScV&7O^xX_x4Pl0Lw~1kHo1|1A>`*xkLF4#UUd+W3xY~ z9@l%$677xCQN2@j8EY(jqSV%a5oOiwp|OV=#9Umg7LWSW|CpRTKZq(r*-xcg-VwH^<*4 z1L*5iU`A_O2D$4AiJ66nd`M>Va!%2N`j}?M=vQjABx-7A&R@fhL~S?{9fqJNk%a#w zX`(RC^plvIbdpyOG#(4c@wEoHq0x6SwscS!-IrV*p3UZ;dl-rThJaz6e-}Tvw%_qeJ;*7Y~gyA2r@%r25M`q-0|rb`1}{i z!2ptLl>=B>!TOfxxlHezgTa?$-Y8>wj4Y0%>YtN&=OqQ0cMBCCWhqARS&Tx=2m#+$ z@~j_tQf2i~0GwW^xTXzKNJ66}KIAlqQ4*sseg^iiOON$ zK)c@r1e1A^l23uwKLeAS|@E)c|QHx`m0`Rq|gABP8l5=iN-r9KHL3ID$I|3_mnFw}aFM z)okMD!qL9@L0B5R?@r6TM$3zpROr0nOD`mm%yMBbqXd~MnTCH@lDz%Qv-hij|9nc1 z(mBg42D+B3;uWcCdb~q z^t0I%YQ|ghu+p4;N1}g)kC*V%o(H*yYy=9(ug}Xx@aNx#9e2^`m#B@Ynt^{Au1iDP z%j<~_mO5-0o80DwOm~9RGSNUWj+vH``Vg)sneEcEC*p_hbz2qBLuk%S0u}<$BP-$L zRv^)6D6arZKgC)JMLR!$R!A&K#_Mlt6N|w5rn5hnROdxxjfFY)RV5OV<5X+Ws+N^+ zy8cUtsIwJ8Mb(u?Cj?OlxIpBN^`{V6w`y&_^MytUk&FEadv>U9GG$yj#bo?}by2Tf z+amXYLA;CUr))%oVgyq!Qsu8%W%yZ62UXiq)wG1-%76bIi_^~lW!9+X6?&aJ7 zxFyTM8w?Zkl0!wgu`O}za}%Y3=Ln^M_*n$3O>x(F0i*Uqn{KniF-)&`#@C;~&23{H zTK|qyOh|Z|od_=w-x`KN`dop0I)D*k&F1p8g@4JpB5aY=cHm?abkF zb#&Z#$-*2DCL#?-;m5zbOqjg>F=XC z7K`Ot)C-nFXz30MOFtoP)p1Z<#E$bHzG1oogIC9(S_nv*G|_Eta;asAOP(M;<{R@u zS|T7#e}7*K#Mm_w?IuNjIxEhV5^wRwxopEB!+CZv$9-GfPFM7Z@bRAobu!5bklpBJ zGkq?JGy@euUz_xMUq>hdT2Qc(YdrB#r`;6$cbl_}<`Qd86z5Df2NU4CE9iWCZMan% z$_9+nn_N#_q>@W&BtgxxgUkY=A$Mg;w#olpvh%5P2 zgZc;|ZT*!ijGA@BFE^EG;iFlw(e~@!s}qU_!*=hyd+u+l?1e4gE!J!Za}75Q3co{W zoRxBi4H~k+Vw8zC*9-P9EGkB@uM=J-$PU2n+xiiG0M1!VP&F}NL+>_GlolgOX`3lV zl8KKRJUmKCVqk6BqBNh_7FTtvao6;SXCH)~1h!Mr-;0Re!(bR0O#5f+2M?RTsL)nV zvzt1y1@&v?28AL*evGqXR1dSfKwfg!y|V)?NrQJHCQYivekEec@qlu<(n7aY&E-qW zeD29Kbzv}~WrFN3EgrSYyGTIG3<8y@zuL>)n~nslU!7R?DWmTRc@k*T{9Z&SpA4bI z+_UVrg!=hB*3cr$*$~Mal|oanz$cniQ~ZqyZoeQypmZ+*X_0PU5?Q%dri%Ky=??M( zQGGHomu4;XZ^XjJz+*PekX5wjlF$SD;5?H-&P{18%%WAfNaC|p&IzIY|{tmChTN$ zYW>t`n+#c@P{%~HE5RbEKmO3;cSbe4HN-bsd@iJ9RWv~sx5udk)j z&eoC~&pVJj^&W63BSF;6kS9S0mmE_bt*)H1LW^s-mOSjH_LRJ&U*Gwjn_L(EN@)lw zXUgaC3>HE?0jqwT6Sx#L4@?R-|Fl`wCq_gCa*lbfAB7Zv<2^6i*TJOm2;uD=oYz4} zGdp_FkB@xH{E|VdSd-1);z2Zw0OCf9yU%|6tOCwG6O1K?_32#!KVx|H$3bO<@!nEB zwNj^FPW)FTJ6|n-P%}GW^BW z${uJ-B{qGpY9w zvl5&-{SGwLu}zjyt>5eoKDXPzVq|r19fon{cgLaF9ZP`K#qoN&XQDCQFbuRoo|y>i zBo~db^qz~Y_-D1;);Q+bZs&%jZtR=8zQAY7Jtk<>n4za5J*b8P_N70h4K-K(m%jw_ zLz5Ia9AcHZf`8}0{R9h(OZ-B99mrg*(3{hAiZbdO*Hq|SXY^jEl##_0=o_kl=_(9b zo8+Z5l%5T7QN})#BTW^TN*jejxl<-ddUI0I!-B}TMJqe0Awg?+Llnhy+S%e+R%|;F z95gPvL~1}iUaFHVeOCp{t}xL7wU_Pg#DUZlMXo?VKmmZGy0TtW)I4s6r=z=9Zs7W})NfA@xqa0oU-MX#bkAqNAN_la z;i;*}`h+TB@H$INc8|{^?cqd%L9`1LyU^EyHihQV4|Wv-g{84{;DBUme-=Kv+fm(? zPXXONS!WD?MBK%8fxJO9zcJ!?_OV*Nf}-{mZ8;j=RbCK~=t^s21PA@*tr!47@HNvw z>B$|%_AjPpPiH2$Txub>z`7*^TCd1{_MAiA*s!5@APbQT5@t#s64(wSw&9{3CGSF` zsC3>YS>?l|hG&|f;lWsko&@hSd?@k4>K+=P-akeJ{(5cE*N-Wh;6HvhCL2NRA2mS# z)f(;PR>iY;c_*Df4$zuPG+joOxI+M=*ZV8A^g)!pkwDer9xmeTN_!S{zrM4;W$htJ znLJydq%caEFGF>jH_4NMwq}gvNKxJM`R4%*+iOgCEIGx#Cszy9kZW3(AEn2`;c>F? zE4)F*&h&;`KutJQUh&%diP=5TaKD!=7_ysjKy!0|691il)(=zav-su`MhiOU$j>C& zN{g&)(n!?40$2YLXHuQEXP#2y4%TWMUYrgu?iaYd!e62b5ewB|KW%9w_6N(34;}HA z8dO#*>k^N0x%p(w){>94dqP4gndA>IF{ai*qez6z0_G{E+yIx8Y4yH3f z%lLXH$5J5nxSvv6Uol<0gSE6tl0D#QcazRWtgYS?9bx1DupL-Z70- za}R0z8(HUAaa6(wU|;v`w+7atru{oVT=$*PQ!HK$GXXUVXLey%NC^eozs(x5mN%0du~6OO*!G zYr`$Psj8u%djs=>sSc}XloLX#Z8E#9oTDXZjws1r+vMqX z;G7awArs8T-L!KtocHI*gr4S(>BIv9#ew|mxKj$8a4z79M<=hH@Ef0VV?U1$3^(|k zH*l<_9Ku8ASqAQwa@y!s>#h+oSXq}Zk(|>3H7EEd2;9Z#c`C{@v>f^e*1DA?0uocD zQPtPvIxi}rr;?^#EHlc#W4Z!R;q^IM3Ke3-qPL<%-Fk}3z|J%*it+r zG}8Q@I#fXrSqQPxdc*N!s1{?t+*WOmGQl6cIzbL*A5WN6D^l-KCU9KaZpU*H-=W_{ zsy`g!jq8$}GgKkB@np_&!bc6n6-t8SdP~bFO~!uRS25RZXSI$*esowj{yHrM;U&oN zx=E73AM;pip3cDxPv-@2p`{9#8&sr7eJ&U4@_*&;V&<(1Kl_*OTO5FDd(5_$O_`<; zt}>tkbE=#>ofNeSiDbtRaLAmFW-~aZK#=mFcmc9XtloS11tH^yShOzIG_n)DqFGk$ zK6MK|G}Sxzi_q=$V1RuD8KKUe&f)*awcbnL$>h+XTFy&P z#rF-lUtX=t$R-6*Y((h;b<4|b=kBVpc zE*wEAGllwA680A;Z!)nc8-o?3ieuyjw9nQ8^)eFVyc3`L6CcbbC@L4ngAZH+eo zWSf27Im4g4e#I=J`b*bROC=kNou)PCaK&l7Iz5A7xY8DH?1Zi$;aou9Yex zfDD6M4JNsfmCjEQ;|v}Gn+NPRF{X|K)4cG`OI}$N3M)Qr@3`vs9;s|~cZX{pR~%i| zv}{xaVD#kk8|v9B9Jvh^I81ELKew-6Mq=FWzwn#A? zYZJ31tlCEv>C+3=hE`_XcPkTNIh{ly07?e|QUnQm!I+@DAQdGlkB|B7aRi+{(V^eK zTD)%x(DdXSlc%xvLAg@W2`hQYgP$bWD3jj(9fT*@NM#Q5_f!7Sm#Q{LeTJbGTuxaIm z5S^D8OvqDk6xOh@mQ&nod=gUc&-#Bok)$CB5-jU%nn~m@q9#Ldjr>~o@r>;NpRG}l zje59HQAq&3l9zelHfh?)3_I=w-vi`$SIASFes(QZk^;DhWE;`J;E; z{HFfpaUdmsni9dz2+ldyiEtZ%>Fb3tB1rO#amD9ie1_$v<*V-NB-a(ark;-bJMk}Ys&S4v9m%3`jE!dA$p5cd*KEp4uR zj!m=bI(wIQN=3}ZWJ_O8@r%REj{K}+r*&noYW$#*&3I&OCU5b$CpMBrM;{@N-duwj z9LvK!Y#NIuw~e=qOFH+8FKJBl>>uHOxzy|;ST(*hvoJ)9Qj zWK(xLTD3vUL>%zFWpEce9z~QrZ?UsLY8(sQS)Uux${GjoMAmGdX1UtXHiukm`%8#r z7C1RiTkN@aJO>x4p5gzf81JC=5Uhm(pKEI(BRDlUUu`izZsW&`q66^eC@I?sB7Ur6 zl!?(K$D&r4^0>>@!P}a`fETl$D&Zp;cBM)Gx(R*e%jXKowe}HtA7BFaRqGX-GXVJ) zyX>-1m&CT0q&A4sDx2R}@k}}l=NlWh9^PWPKp)w3Hgtl$0Y8qhcfM@3XnrdCzysQD z%X%eZKgV3MGXQ0lMh7=thfqo`O#A&sh^SV3j0k|Xn6OX}24(O#6+>LnxqN-v|r1=w5EU^-L*^$ogw!*`8R=c$oQYdg%7O#ZtPYnAoq;KBn>*rttctZK6yk>{?GCO;RGFZ6oBMZ+l01@;_9ibBj;Jm*M-#GU zI-3N*I;tb~DbGj(sI6*XPTDD_2J>)AG^N!DXfJnzaA2pF&1UG%XfPkk;N(4D*khBJ zxnS`-%pwH!Nu*PpUypmW(6}k>Cs85MC`Pf+HnflWtv#~Dy;FJ#-}4|2wu?mX@xIw_ zBG-i|fd65oR~m&A?-q|w^x2)C)V{QF*8@!=)dv_uhs;O1DCH;gFBEP?yUi*Y-JJwI zh=Yd|vd2D_=dy`7<)puT{+oIXY#(`08{GAkR1s)TVIE;LBCPO=04(^P&82f1sS{dx zgDr?4p6bxCeyFP7dEwczcDC3|1F!l>07F2$zs;UAH)z2n=qC>OLlmE1Mhy!wM6Dyv zq9<~cgWWMQ7BHz`O%tlk^Mw-+IyJm!B{jE!z`+$`)82X2>Z{>mJH%QC6wk%ts)W|| z?Vbh1Zy&N=Y{uRx#t1LoAy0#;&7z$hxLLhYE7Xz9d37IblZU_lE~vX4CycjCk+RS{ z#Z-Qri1CC6{F^Y1=bBUuerPr-ve}b)J2oZ>JJ%GVLK;2(I&iJb!YPAo4<1wQ-E$KA{@sZVjVBjc|SE8}Dv2AhQ`J>^;y%Er>U@D)U4nvJEae(vZDsZ^$7spEu%R) zV2hpbtDxaeOK)*UwCk}a4Xo(6f9$l%u=<`0_(ZjZRWAWndBVLM9FL$mze{`+#-)N$^1;TKni~Su^&mGY8so zMFCgANv4-MDq!Y$b0T~M#ts2zxk>vJtl6h{q6kGh837n>QPI;Ru{<7`KL(c)x-uXk zo%y2fB5kq-POzHDzt{KkuM56wJwlmx8KbdBig%6_t+V#Q-gGS*;?bT;$=#_dJ)=34ob%y(`q5*;4C$4=@Zi z#6{X~K`I)cOlX}@!>lMU?JH2A#LVOD zEKvw@q6S6^&Z%==dH}%hW?3)HtRTE?r6kaK2>{l}_G{M+{d$r}0VYISj>dN?TZQ^Ijv3EtMlASyAKNslSsVZ9JY(eXAir|qGA(! zV2-sSRqtFvP^kL|JW37?8=o24sEDYXo?sSEOaF5>W2Jq#2&FS?__UPex*Z&H`Fbs( zYZiQCLQfknr*MGOr!9}>O~ViHDDIGYEO!|>QByL`<6eG>7MOx%e6tl9_49KcQmWGENW0{2rJb0=2N!*^3 z4Jdy(iooP5FXx2=MU^EBUXHFIVi`wD_l4HSB)~AicBOO=#J$0{I`X)x=2UVPnpOsD z-R&+iC^Xz~v%FiHYlVe7Y$Il?04(j7SKA`}Sw~@!a*xt39d$z4$wMeiC@8F;asR`2 zeWCs_^22)qtIj(xV_i|G;@9e(e7+=vuh$v3%C{M5XFWnqCvs6xEyczrjmP-hfnb}* zHYx{-5>KDqUo@K+@0avbbqBxf;CEohzYNhPeUD2|Tu0Nducl$01!{QXB<>?y%Q1k~ z@UITpCuk2ZqyC6igTv+&u<39j;x>}p-N*u1mYbPEEye=c{YNdEugtG2W)5qy);o9q zhN}&4cEac5rkAxzhU#-WNtVoaa_q*Uy3t;Z8yQ$ogLaju*{!H6w}1nHYI3fyTGGqi zR#ePjGmr6Bua!*g>z8>85@M#o9GAYuu4v7ysC}@U>3RC|sI`W=>6*aDEn|q6da)i=E_n|E?H&befwT78QgE{oJrRm=03yrQEsY*7 zIbWfw?yk_gJlZrX{L0fffI&KJ3G&!MEE%u)zCr#L3N{y$S=r}4_{}7r>Pfu}1U8v$ zM>|{+6X|RTpwT*;Zkr~EG*^vSbQUi)jI;6|+|v~Lhrn;Nz}FXX@IZn5n_ev%PosUz zniVb=q&FV(3qK&=kO?T+Dc#kF-8QqYhH;;^gS=btow_Q_?k=KOY>cPigl>F5iOs;| zNSD2lBPWMHf@8`jw9Oty#K*F12*N&y056=swn>H-+OJ9&ArmTVK%#K{p>jja6(DD) ze{GTH?ZumWyC1?GNBcUZGoiS_It($uYm zTftZhs?kwH3@4zf2w8V+no7ZwZ%lTKwdD@K<-F@cofCVwFIP+V|VGocYxL>sbYHnoS7GygTvv1Ha z?9HP$3>%=;|L!I-t0~Hh*Ek09sVh7cgq-_c_nc;62L)o#!q$s4uYsUz4ehoU{AjRw zp7udQeO@3EtK1sYhI)J^uw>x9c(Cc|2q?G06X#Lv;SeU(tDBMOjkXxe>#pjcwU)oE zFB5N0G3!0`ic`&%ZXsSx2n5(|D)GVyF~PemoAEDrc>D0PtbgRtve`bhaQ}Z_UGFih zn9=i~y(TbSaMP5JO*_x>(xR9#w}@uR4VWrlRZDT=h>5}~a-rqi+V~VZEKj^GLLE)6 zTBS|$kj$`b_*Bsd4yaRQ|7TT58(#U|?QAat?iLU|t^B&Q)#Q=J4RGan4?gDQ*IaC^8*3_RyyX)R@YFbMoQ;JbYe(6Wx^W`B^T<1NHdU5NHbLdHgr;B+jY#j%+5PQn+a103p{V#PVPjsBjr-L2-> zhB}u8XX$9WfMQa@^b~4|VptA1me17lBKtSxHJR946fSay0TlfA3*2$1zEXX8sjfKS zWn%h6Ho>K2{5E~mE+8%?SLM<2<(dEOu;w>`FI9Q_ zUtlGT1-LP4<=C+&_I9ABKk;^ZNsj!BMH8^xRCb#pwZO6doTXa8^H`DPf=$7LpANw> zl5J%FgZ|UD{%Ftnz1POXMXD2?Af%@QwoDfA*zfVE+Jo$}HQ>3fmOfcup;GP%7cLNy zIgIT0_JP{zs)s_U$#<5VL~oe9tK*9i56V4;fn7)UZqmmObf;vkraW*bxAeb1IQwf> z|I7@O}YrrxGgC@^M&#oQSf#=J5cg$IJA69+E6 z7y^(ewO2vpf7bN(%4^AaF7<}h%KBg0)h~a97sDjHOj(2sWwDS=vVBzT-&j~0(qjb? zlxHwL`n1UY;jXi0nD*Qpf`d>&qy~aoL+T_xwGExoKs9}eLlM|I>d6d*6P%%~Y>CKl zr%Fdy*rmnXv613&DtTQ|q=MlHXI7Z7RU6Gyve!%oB0P;5tzeUHd|q>K3s6OOHYbC2 z2o2&nQJpE)89y8i=uHg;nK>>IiHhl1EIC#xD=_WC#hR~@6lVsO_B&wiEK^h0pIOFB z3Rb#M#NkVqgFccHC^-9Nx(e0U>kCD^HoX5GRiT1F2bGPp591+jB5sQFTQzKpeB%75 zLfV&)g2XdEu4JDF+@4eB3^Rq=RBfK6-OoIFUuJf;Dn#|aJNmqYJxDGJmHvQxf(2O6 zKPdQ}d)(ulErUNdAQeSPi1N?CQq`dN8q4fWyaBsY&ktaNyN%Z0>_#>m+W zTw@mO{(B<`y(3H_5LulhmDH>g%g3O|R%Hu+&jZB&AqAC@%xEym07lo+jVF{2ICzcc zPVEH;?WJ0Xi%N^)$r)Xh zMLA8Og1Zb=phgJ5D~R);XVD9r)SZKRy$F-`Q@; z1TR=%U3Y)LM~txVQ1Y*Yi)qLlZq!K6Eq~1W-4?TAId1=CrNS9 z-bb%$cURoHUbe2ott8xqOK80zPs|@xZ8_N1Ry%Ioi+Atd;H*l`(;&e9D+}7zCHyvB z#5{(6^kwQh(!2|Se-n9#)QVUo048S3H4hX|vIZ$i3SwFiR2EVKu3gd$t(_YL18l~@ zerM4&sTGi%sik0o)6+D6J;oI-I}5wKi4jfSm{&}_}YrA zb<37lTPy%w*HoWqBYl=-Rz6^)_tw!)EswZ*P-ZIrH^`no<#EMl)uTqyZw=|FBaeZv3WWA*tlxI_ncTB&LvujIe6Yj$Cl;Od%>Bh= zcJEt*+C|7!s`h{sI$0gPl&w@ZM(K}ySpI;Es97x!wr(;AXR^fZS;TVG`#xa^_0KmT z+h`o<|fw#JD!v|>i$$2VVPxUW1tK4Wk&g%;8Br#=g_o0I9Cf>tkKS zNEZ3qlIcWjD27H*j7x!XM7ZLH$6jcer^7@~V&X7iL_(4Vvd;zGvJc>69U=OB19Znb zl0ngzlU9ntSz&FDNsY5tdn!hJcd>>GzehHS&bm41jO2;-`F!nB{u?{juS)li5(?PZ z1hH3lxC3%aYxwv(XGN8DUz%=3^DKy(qTtcosJZz4 zPSOd=DG=UBDXWnB`GgjQmE?z6QZyq?uElR&2V2I`OTJcE`z2TGSL6jGEjPRCL70r9 zCvzRo?Z7M{)T;v=_}m5f7@hBCY{%|Q70O~otI(`2%PB7JW*#QS`gi8^G3K)#t?>1G zZ)b$`zCSTAK9i8>TalHo$#l)~o=JC)5sr$IyEGm#$$(|{*k01u8bD!|p2yTcis~Jd zsS57G^hKR^LdC^D(gqO)WUgOh(<_H-PI~d`mng0QwMqQ=4@l2T`Ea7{Lzm*x?s_Gt zlM3A4-g|>YSt}>?dWfN&;5yZw?yrnRuxb@CAaYkk&2gh^@K<46bEZ?R%w*!gh&-Qsw6_)0D9UQPiWU%cgH;XodX&$;nOm-X)-fQ_Rp3%6 z%=7$UCHMToNbKuj*2(qnOR2R)DCZ)v!+B6plA-_Hv)L7MHP}ygL z-R$RQ4UqmtJ@q0Lw3g>S_-69)?^pLW2F*D^^Z1heNnTDPvyg~Om%R%=H;1|r07{X~ zQqD1$Y>Cp?)yFHoAjL0arMqohUATe}7q3|a3q#``viux3oaL6@6@U+yg<8ahyLy#7 z*tSWJ2-sjLf2l^9$3?D5Y^m~lfH~clJ!8c70P;JCe2nLpw-pQGa{cASduf7w=GEIi zyV$E_KZ1lMdF9Yz9lPu?dL{jtxK@hF63t*4jAXYZU*BLF23!ymme8DRETDt5q#% zg>75FM_9<76{lNSfMw1uC+2EzG&+G#}dkQCx#Wn|?4)AwwDmN@C+Gzu~lf+Q>i(CiSQ} z>_%mcz;!~6oD_fkK5@?kXyK;ABcN`W$(uDtNOOfy9ySsc2h2vQ!ujeJS|EPIU&V47 zAl!+7K?bltrsk`O+4b^~ze?%*pN~!Sst}(N|KIgbD^`5qp3Xb=0+IVF8~5T0S3f{5 zWy(3R%>6lBdRef7fK!%&ptQ!PpOYV+aec(+T6)dJV07iQFdN_VuV~IGuEMNN0c)d7 zuuoo)uDm?3wbj3w7p<~JBAveBeA#i$-CZbTRG%l$B~Bc=t|bmH4oqcG4~LP0Z@Qjo zrCeDOK1ZsMy|5ij!p#S$wwwmjV9s8%R`DfhWO!%u$ z)UjMNx42(@ZtCl(D<{t48K@2Uqp0`s`Xn|=ZtGr*nE&4@aCHB5$;_GlHt(1*#FkY_ zAlEXS#^R0Q_%`X&biBn8Xzh&LAE<$>3ubcmkW{J($jS=N^G6f>uks*ppW50Wol@VR z&Ceu!?=PM4ce&kWh4W+PLP2^9RPXyxa}8vMZiP$FlGqT}AC-^_Lmi%~2P1QlK_0k} z{Wx`9Ht*juriPVyCh0KBrLISPlVR+95LKDmxOQf0H>yJRIyqMsC?N`?<)HvuWx*%2 znS<1FvgXUh`Bm5m@{knysMxYC^$_}cxnm>Du8!z8PU-%XrTW(p(*53}o0#gWo8o8C zqU+UV|6)hcR}Xz9+)w$q2N+`Nw=&e)rr@oVdy=(e667Y~+VKq;uc1k&Cv$t{R3qvw zLV~o;9T4v7jY!(@$WbR$;Na=lMB8AfwJ18E*{S%l(Z}I#@^JGqY|`RJ9!JMWKf+6V z-BqsywjQ}6jLBVvH?Y;zP@CiUvCP&2fzf`(8dWIE&YzAj334EwmxF%%n>F} zR4o`iIaL@PqTw*NaPxP1t_hmkeazUR7K$x1+q*a`GHURSL+a@A%6fiL9uHu^U z8A@@DhM;75`4w8ZAC>nOn0Ujbg?ZHX>~8@eyS>6T(eEoYS`uCHSUDzVoxN}kmBCUC z+j+}{?iD%0Y;_H}XFTFgLhv}`7`sVh^sQ1>GD|ZFI}-Ph}rW2Fspp47St9z#1-9&M8iH1c~C(evw&#*GOHDA?qHSaT!L2C$>oriK! z1;7M2?!7vigivTV39K#6?b+L9onBMpNkIs7nB+02a4ors8Mg>ZrEz%8y-HErI!K4p zq=6ZSueZh?rl>`uAUSU*r;tn0+;Kt;>qPax{W5}0alBWhU8EzWrQ0V^tY4u;Jz0F4 z>xu_JZgB<9Ps9$j@9RSBvEaIM06(NRG{B&b&iI>kVztZDzLiF?e z=qkp%IVTSBKiI#bsdT|U)&!=$VFU#0A;$A)iW`YLpDvx9gPJP)Y@TleVtDWBXEFgUO+~A~1Da{b!Q!TodkwnkVd!hce>T%n`^e|iyd3|g z?1DNjy5USf5l*Sr_Z4O#+1R+nwQjY+P7$mJ5nbse_*Jv=rDvr8kZSj_VC75-n*CrbMKT+9EP`fAs(H-ODp} zN?~_!*f_M{wdJY$~(!4m?3wLuvhKG~(k5_p*lhU3kSh zGSn$(c$1@=fZcehlKAi@2jrxiDOgnHHD%<^4@KRYL`#}t*dUyzCQ4rvxhTeK-vTv^ zXS^(giX7d{txOqOu8LEVVQidD2VfBog5Wr<9Z@~tka3>%;+?$>i)nLKPjNYBvoj3W z!^QAPSFR@Xv*Er%5lIJYliv}ckcvdgl@1D>JPJNIl4aCKaEp*KL}Wq+@({HqMpSue zh*YUL0?pU8yk;+*?5B_aU>K&`!|(zSAaE4~D)>-LcL-T`6UE_Fx+H83jgw?F=}Si* zPspyRy8`SGa6!vG;r9>q9R@e2b~|T28{D80BSFyfwvZ_(7sgFyzLq8+k$yj;(lS$J zoHY0bu)eig6yLB-)2kf?(Vo?xGDZYXK<9BuUm%h=2~Qhe9^JDMNPB}&1GUy>W~ z5*opN2!cIn0a|0Op)=ASQN_qCfZqbMGc?u$Ozm8rUNCwfcHE*0IL)dmVSijxfT3M8 zsZjO+%H*{HLTu7psDgo-jqfR#a$uAXoXMPXG9NvG=yMv-d?y(noA38|3PpDAzWP}l z7XlfDrlb;AON*%XjPk?hXt}>N_#EQqaL4S=EuhkmvIRJ|&ah~9yc$%!Wo0>dmU#h5 zXntl*C~9I2KfJ5mI>`!bc%n2(w3!sF0o?d z_#g8YYZ}^~;x9TkwDP1M&W}0NtLP7 zawPV=yQSVsT6iC1ttdA3;oSH3YjV18eVv{o#oL8{Eh>k~JSx^XWP-@IhE>b_0IBl3 ztd<%{(Ys!!Kbt0M!A(Y|j6}QyJqDRC&gIbI)Jn?|IfmkxkRk&D>le~>dGt8UT~zmu z_g;&pu)vL5ReZYWN3mdC8O$V`qDlPU2^psQP|MIdDjulKZ`sdiK)woot)#C)L7C!q z9d1T4(PTi^!Xc*jM2D!+30hp_0g?~2sO`&*g}wFt{!l~=ON_CR${yL2&`=!fe{lOr znvZkjCi4IwJdu`x8S)Fk!jS#s&`#OsqdFHX_obLg`2H}8U_))vH1;Yek84J!ZM)9H zOQ9dv;U|`bkW?G6)n4;DRRv$o@vgaUmn=(FpI6a+Xq<7gk8!gJKA(DLu4sHM$y(d> zPk5anC+%h%-zvjQp3AOT zUoql~2SL6d4UH@Dc}e9vGkM-A)dKdXtza`+nSDcSU2k~ei&D^~8EeFFuC*){t?CY9 zomm?YNCm3AADcrA0|-VWO-m++^m6TG+`=0bS+ZBoiVat+WS2xlPh(% z_G!R2yBp*nST48HD)8)h5j=Af;(ABd1HDTgtw`^>HxOUSMmzrU01e?G7Z*s!~_d$FsP`Y0*b_;8}9Y?r(++8Rd$8Da(oC#sqtw@f2YQi1g5RAF$ov49hu< z;H60FJ=I5uI)aHRI$yfk_XN_5RyWrO2kV;3ln?yjD2!XgQz1aBVMbNBIpM4e&R%)W z1Ya@mZ^+IKQEh-tL*=j!wT=w?O613nb3p)Wkp6Yw)5pG|J;D6!ncSz*>`+dyftZ8dimnxwSA{;Mkn%+*8pjb$}ITy4@J@6k99cl>I61Usn^>^KshJIgU6)nRAcB=`6rk6kTh1UwK4>1|-B%coSnAY_M0L_MrOM!HbguzBSu@5 zu)q{XX7f)(I2yAUCe_@TjNp7-egt;D?Y&H2cQU-zRVCRL2M}W@Soa!LcuJ1hiNbp} z0IiD%3tF@Uz8{WaW=EGXN!9KRe(9t&9WZ5ivnSqgYpaBgoP26k*I#&5N@NHwks>Qn zi~N+`+S!)((Iqb=>e4PM#Ui<8m=WJVGDkR4pn-XnJ_m_3QLII`qMN~(;Vek}K4SI{ znc~tv*e$$l9kWd7w9dmOL)~XUk8DkxYOYHNU#{Sl>_-cERad zEGmLQ32a$rI>uwzk4c091m1Buby1#IFfG36{1P6nuUCI6AS7!p1lFw z;X|q9v=Er$+l=^^XW^d=SB-W0T|C8VRJ^687L89?6&l&xUa^@Yp+J;YEA^YS0+5i- zg&Y7E#JK8B7=a=qoot!ulrSNB(?R*3a*R72?zzbp%*i2RR4?{UEF}iAtQf5elc4uC zAo@RV?KgtYs9FkUpc+;%Y_;C&N15nAvK{m5Flwy@#NGI@*fG_|lj|PJxwsu)P9i!(uua*dP(!esSon zw!Yu9G*qePhQX}_QJ}f7=oBdYjMKX2vTIjUvNUo9mO8R3@~0PIkz=A73C8r*5Utdc zg^821_TM+@abUX#9EgulX6TxKfUJZeendXQu8iAW zMp~yWXbUyX{5#_@Pyez$A5QH%`dv81zF!1-72GXf-N{grfJDp_N~*lSqPHj%Z0fEguD{+%zT%BW3U$$;)=@LVc&&R)^VnH#qN+|A_$;g6n0*vrwXP`eocJnW{wKQbABa z82o@kov4Xh(gVYa{h~wPzt+@Ca7OBVw#;|&2>(yYmbRSS7 zp}?hsBaed!lGnd%$b0R4u=myzL+CLIo)?W41mDzk00i&?S`yZLFbsFGa+eHSy0+D@ zarEUb3HJ9Twtyk#0|L;CaTX?RR?oSG_dG*kn=K@`?)K79pb8f{l}t~T!TQ3>kUL+= zJYX~okx@&wM7CNVeqZ#tNw805TauJ+9nz{uwLyAg=(%S2)Ge5;dLwjUC+!~K4c#IC>~-Yhz!EGUjQ2tL9qJIF};{$7E2*za%rjPcF0Y9T=YF<2(*+~r#c=3Ct!zQY*3RjD?x2=JerU>6-r8shhnNk8mT1( z&Gv>K7Mo%14R+F-|4ykwZArvsGyizInMCxk>4Nk6AS;^vObf<<^xjMxtwpjFiun?- zhjGHK(rveNCRA-|!rs28sHgei{$lGhCCqyfmH2D=#i+%kCW**~wEjom+`vTQ`#-S` ziRs5pcI&p7hr4v(-O0GO|oJ6d)So)$Si6z(f(1>q1xQ}UqA2}J0C|dDh2m14iTFC#a zX)|R2O6Cqvx|!eM0WWrZptLPbVSR;&=;)|vTpRQOUmm*D#NAmjF{i68_(M2~Qs=6t zv+kmF2x|9CA-!tt*V5(2s|*&q@k_54Ck(gJ^^H^Ew}Fu~E{1xmqZ|hQWpFGoUL)dh ztD%)vf(r&8|0z=DeXkWz6Y|abCFDyWIyB$N}s3xpLH1+^ZQ$ z;W7dMW{?X0>afIj`u*`kzj;XDt&$G1EN;nTdX^69V3&&29sUAETO{VyxSJOYbs+=&NBVHPk7bcbIJSd7z2@a>ZB)1j;0Xg*wnGfcqP)FLT^}C|E zpG9kG=TB+}%ufaFQ5^y&6hm7$A#FMr`Uo2`pkTMGS}>L-TZRocjWKuF1{iOWz0e`*0bFK;)Dja0ZV`nLHQHx_s=hZX)>C^%w z>dfpPh{gs51kWNX%Rv8HobzZ}{4;8;S9b(R?uh*&82873-RCS_V7!HlysWxcOf+tC zM2ovJXVvzrzy?t8Lmj4ypt}&3|EtSFZ+aF&Ux{DKN@zYmceLN~+_+)?=MgKF%@v^Yzb%dh%Al$sZfm z$N!XZT1UfoOzV15O?6Gtu~Y!~DS|3w)at$+GWD6GThh(XvRa1kKqs2}5)wt_#g$k& zeAQCVNp!2<27)mMy7n1Wl#SvDTv41!0N{%HE{TF{JS5Sz{86FHzaK3xVE1h$`{BuF z-t0L@1?|f>xPj|{6hz>SS{6zOJUErA|M}GFMv=2i-mU}`C8l!8g*q^2GfLDhY7eCT zH_lcMf|fOLs!|bpk&e{F7MbDF$i$>QgjS)t#iq0LT0eE`zn9tsy^m|JTk50awXc6D zrPJvGJ9(}nYbI$BCwqf(+G>~^B~*-p>C%GopKUaXBzDpcMs~AiYEZD~k@=2klRhZT z?p#mIyX2p(H_c}WU&SG;Xd%d06rn*LWUOjl68?wo6*u0);hoem zrwbF4^mgRCAj|mmJ~yFN;y5sW2(LIm0_LsriPz&sZ;E6fgRBN0)7?^YV#I;|$dL!g zp^3EL@ul^^5VSw7Et~Y;)oNkVDC8WX>$5ZV_`x4(xp$DV6`h8J6Z1#@FR%FB-zk2J z9Qhrhkhg2Tzm4W@u~QHmE)ZZAw#f4nt(6GDSmk|N^uZQ3IqZ^XkIf$%GdikG$}v&$ zT8R9^LZf~;Bjvp^A7>Wdgpc*EMdf>9Vq%)^0ac^s4?)>$fvL)|as0dH_Z7U43|{L7 z(HKoMYLsu0Wf@=p5fwsTnw2n@^2Fz9P&Id8Ni;7vF%oL(n(-Gb4$@g|3MCuUtT=Fh z`18QM9HpCjL{@sLz*kjZ55mB)U{yTu~+L&)wHz0uTcQ#7z zrreaKcX)~ivEVZN_sB&`I)y6n`%L%G(j1tQm1T@KvKdONMYadk(Ck1keWSMe;SD1FA=51uecY&cb&?3LxerB-b>f*=Kcrfp3 zN(Wmb#Ibr-QY?53Mdis>*!^gSjKk&y^LPbGmDAaaTlQMa6Z4fdp!+Cv=hRi7RVe%a zs`&uY-gCC*$VZ+wh?f6{JkIazY0h2L7+;8UM>>_< zKQg~)6`4h$t`@B7zUP@B@?_9vQR#RQa|jCh;b5@sgk*`zuyr~HTTv?`QeN*Z@>+h48hrt-OOk<715cCa?`>CmsTfKJ_o5vZ);#u zOzXy6U@|)GkYBl0rH$mXk8{sysC$?U9O<5wN z8vAea`ybGN5vtC(hbUSh@B5br+QQD2V+AtG^V^JkY$S?RHTmMv5sRM=yvex|^az68 z^!zA-|E7Kb157yj1?SbIx{bGy;i#KJFQ$!IV9&%~XCbN`hmQ4`#_hl{6Q3!-$n$ZS zrDb+nW>!~&ovF03r?~}sfN8*O(lDR4fxEKyTb;T)wpj`G(`PA@uYv;neU*)3*_Pnk z45b1;kLR9F2Q-v#htq(cXI02l*TqA%2cEC-Q_4WAm!QYefLK%m1j^|2SA^<-^-QrU3bIVBf8I|Z=ohfPbm45@sp(Ml{a$U`9+*hS ztocCW^HI=~ck~4lU_US6U$y59@II6#4-w=>zT*e%ytKk!*Vq*1yO)T^P<|f&Yi6DZ zQpqXxQ60_4f7Voj;bQd11~O%qu%e+zQ=Ik2@{IHcTsUH_0Lp*n;nUm&%Vu7IPt;R!-?Xp@i4v*3`C0S#)&eP6P@u|P}mLt}82*3@*oHs6wsT{_% z)*XBrv*n$l&x4|)MvXM&ByqpB+A!M4Zfz^Jthok$cD2Giuua;#_N}46LR{(tH;WPN z*E1w~W>X=fY#4bvVuHe|7}l-`)mOEUpsbS;XU66cIMwKgM1^Yf(oGeE z^i3%f1VGs{>n!aDNPSO@G&M&Bn>(}V7MNxy^K_sFqQN+K^Vv5l0u4MLh4x^Ot&F=B z=XnZqTx3uWS!PGIcm34gdEzm2hkH5PhhuPj+Iuw9LiC8Zk(>!BR9{YHWddPSyiTJ= z;nj0peyUV`eKzR3LV0)`EggD=CL%bTa+O1bTI%~lXs2mWc@ap1fK)2SY>-sBizsop zj7e|gt0%?K^oYq3a`n#YX- ze8)NsU_U69=IS*54QN2Hlt}NjA3Ku=5$D0Ec|L{T4&%hYfwmtR>T+M9q8SYkbm?Z$ zzyBF{cJ|<#17RRbsZFuq;n)u>C6(;to@`Ucmi0mlq0(wWk~3Z!{SffFx`$ueM|OPM zagRYEME126YTajpgjA%#9~NrQh7Tx(X2jQ!)hC4Uw&P_z6cTk^Qx2f7IhGbHB&rof zjMgIgd^@meC=?jPJ9xs%^*q>#g|6m!-~-fxh&nqy0x>ULtsA|(s!6g!BxzK7M`U55a=}9yVJ_t`ebGXfBJ+8 zDVQM;+681nPsWoSRh%;1v}pmA^Mn^9Hx+b?g(Q^^{Q$Ydo4zyYb*bm-gL<`2#bqib z4)=YgURgvnp6;M>6`qWW{*Dhh1c#V)Z7vp1J?IS9qb1ZPJg%!`D)oF95_9C9kGvb{ z^;3y>yo;~I~YJ+gP zv*6o*1PX|W8VxEopVg+d4OA`?U?Qc?8mi`)O&O8;8o)cSsuY;qK6h(3VtpbhRkf;9 z@g|~B>mupQ%U6n7F|CQ$^FTs)RKz6bEcHula>|t^KncpD`&th1$2N|>BNoNa>r2?hy3q;xn5qtQ znJ*-m{b+B7HGT{Rfw44U2c~Rs44Vb?V1|Cp+){|Rz;~1~@D8!BfQ1~~e+Kwo9brs@ zMC?3?0&F}D4NxfX39ZGDE3-W~K1!axovHmjH`N(lR+l4pS}px3nC7Xewpk!uUGes2 zv`3UjiBTPUmNTC5-TY&}?0!GIT%$5u2#X!3d*1H-+w^X?fyuDat;R(RbE0a# z`}>96Oj1X7DX#fUTc!oazR{1YHR0nn`~JvB)$Bz3EhvQhQcf~|74W8$Wo`!sU1GKf zT$7L2sIb$w$Yzh&XUdWpdHA*jZtR#0neLC3c-C;)D5VZ}L%P#pX2Pz;PC`gx&%{qN zE?5EY;f#Xv->uv7L7l{$iL3v-?t6!S8UqUg{nEOrKg?d{JLC%?u>)ub3I!?+jVbg# ziiiYQdRE{qF1K)O<2ZEnl3EkntOK*;!09VC#*9hx*Cm(`pdYomjjrN_{H=EBN9=ys-J}Dn26JQBS4T$>x1)7u6eIIVe+F{V-buj!4cw-?RVRgg0l^PeLY9mcajE{NlmS-i90%)swm^|LuMZ z4I*fP+z+x11Htk6QqA%efimR#{Tp-h(j!!(e$mS6X)%F6rk0=U;z?FkXoi2jM%I5r zjPgx*G^9FMRs{*c0?JgR`PRlBMP)_&|KkS46??s|g~s$+Qw=rZddU5C;mW+c%Rs!~ z!FXQMTURJHrY1^TiTQKv%M``06y2|t)@th@nD_BYf1PFZpdx(Biq+xg>yp;w#d8(p zI(9{;Cwc=63V$?}JZhxAF<5zFhy^5d8k<;*OmHY)h8i~^anh1vQQ*bOggEq zXO%?RwCCn+`CrcsIxCowh7jxM*J|C{J_QhhdZoVFLc*NY#3&xhx|stUduCLDXq&7B z&F9ta^zvT=kWXKyU1xFCFlAKY)%My2;)-vvrEy@hm?IyET?W3M5@EQ3vKO+i?;(D zOfOt)G?IH#W>20+YtD8|y|EMBRq|Fs!RraO1C<)BRXs9G&;EA9)>I|CPEmnssOa}^ znuNnD?aZTLPL})SpKTQF!icO-?9Uw{fhWV+a8zM!bYKXN+}!<17R~J@qxo7U*LM&0 zNg*NQ{UnF#F+C{9Zw+2ys0N%Y z#HrC=Jr=&c^SkCEUr;E!>xF>?s=&k51l$ns=;8qVB`8Qp?D` zpRpm0sUTKftTzk~kg*V-QJb>dr5`1%usExac)_gBv8K4p62SO>5~q?Ji+bUhS;eK^ zUZwZFp3PQ}8Jb8AG*&DG=lGYGj2}lBBCEwN6fx-UNJCgwA0rU|T9MY1Pw(To@|OL{ z@}NgwqWlmH(|@uz^jaFHAAD~`@|%htvIzceKFto`wZu59K|L^VCMi!_9>h!_XubdM zr`9&_ONTyA-|!vr)r}0X4~BHY z72Cz)@jbzRv*JDUZf!n;vt(48x!!f;v~$;#*cBW@=qEk7QO-vaC~J`Rp5`>%;B4qy z5ZO)l^=G7&CWgi$q=EO`6M9oB*-eV#Al$p#Mr}yOY~%&d5#e>Spsp)}wBD~MP|Wa9 z$W#BR`B#4Wqm3e>QZ zpq;E*zfH5?lEB)OnW&amgKRAIgag)(i<8Gfe*3|5;R%3Jm zMDg2C4I+Hn68e%sEVuBSQkQjnh<%?#wik1S$}=VPhB=Pa%f2WKnp2iV2yh7p`gBEt z-4liWq%w+36ga!c{iV2O1&l>!gNYr;;8;SKdUh_oEe1X%s0K$r%DxRTcAv3{j^ zp)}7|pHOgSq2|vBHTO{MhSnr&l1jCtjW0L)Sjmz6w6M$O6U(rf+Pf|S2R7qf@sG^h z@f@)6n97H4*K2JM@`#P~ofo9j0H#5T+HgME+c*4SVyZ$1C0TYe0l#{#CsBPCj4_si z%=b-Tb>K<@>4j?YSWP_$TKwPEw)J3}K<#+NDPBm00{lO;AAI^{!;G@o*TgOSLJ30K zaPRL>BYjoAdeI3Tm-$z2CgSYe8(d4{G>x2BOgU&K(`@A~p)F8103HlfL-Z))rk~~u7Jf$ImM;DrJwqbe%%r^gZH-eje_>9>xQP#vYiQ*Y|-w9V^ z6-6FwgN-f68-Q6Z2F{!|x9-aIbN+Gg1EdMKxl@4O6OS5<3>Q#bF*6EJmi3U|B9k^= zETgW5o3Ou93Wq&Y6&Eecd654i)LRI?z5Q*Pm%z8EBTLxcM;uv~O;>XlG6w2!VN6az zY#?y_a9$2o%rurdgQ%bErk4?5M?g2ciwYSQs26I&1Shp=Z{%b$&S{0bQyLNCDQw;2`RcF#p0JxgIomH zGgh9QnoF7<4_b|nD88R#H)og99lIeI4nrC=16}U%v7tBm+iva!WFIe%6OdcVXVek) zuJS5$zI2hq;h!Zbd1-;ur?O@+eSTn^_87-yyi*fOe%koxXoEoSlwXs{4viFh$f|<3-4Yl$ zrdglMaDf5t|6W(~0vP+9kr9_!T=jqGIz+JxF3MwCNchO<EbCm>m(@aCCDL7Svmb+E*1gv#)DOqh3?6QH&PAb4S5IAUgWm=JzX~X|2D~Tl@Wvx0hwm8UoP)+b zJRt5|yZ>hm!uBb{>;Ota=P}39qMj;rz;j1VBh&!MTDLkxG~k$V@!um|dVQdzaVuR_ z_b|v-bQSG3XrBn|n3HC5EzgOoj|6Ii2`!-Cd1JM@-txmJ7>avrD0+IIbDCXNM7T7L zn6G?0hhW1+*eoQwe)~tFj?>rHiV+={Cy+*Y$ZOB+M4rb;cce72(C zS`W{ab4KQt5SZUOh5%_lI8y|6>_@BSlmnjIWN7KuOy4|EK!L*>#u5CBCNdaVvG9j}LGzNkGB+^P5wVR}-v88zj_K@%tp ze!tY$mGgp^oA$$FSo;aZGfzsVbfkW!y@De&qd5deu{D?) zRi!+0&hsBO-xa00z5~sCqcxV)g1}Q_tGi^9SHNJE#zCTJ!Jr0<_jBsogIlo|VR_L& zi7oa4i*7XAwM7I`4LF9X3X*<9!@xD6YpV*|O9+w7?UL@F6{)5xVCBeIN7|}~e-gmQ z^yRaF8JjzhCD@=?1~uQow+e*AyJhCW0otVFO&LGqkFJ`C8oWf^RkTGywsrKNl+(mW@5KFkGRn|X(H)sjTE`+^GUFT~m5-025 zLMTo3Q$wnzIf!CQ;C_fMj?g%^cQa?TLVQ?*L(}xT)6x2M)`i%YN|A4E=ei;=vLnq~ zhWtu;`xwyY4Gk4AObcKdWsw^?vL0IM=Cs2#}qdnu57IL0@1)RWN?z#XYYQHmL zFZhf4!(efqjM1s#VjgO)VI#`vj7BR2yIj}86)n`(pT{9U(a>-hDl@Q9dv56=h=crm zFj+4WD^nqfi!e5-s+J@eGjGG{kSPSk^%3(e^&SqF^Et$W1J@Vd`IugsnxNaFZT07y zJd|iOywr-C*wbU~@p0DxlLeG%9+w0w8?<5pdyRvfU%!mYBtO&F&deWsv z3BM6(xsE=>V?ATHSS9+mR;;cF1m=o>aL8D{@r`3U)O+P%pZJp#z54Nx<*hYHeik>L z32jgiTQ~(=BR`-q{xA5JOW3w(KYJjEcRtYlw#>G3(*iQ*VS^A$-&tfpGWcj7SlgH} zMlO9w#gP{++B_u&LOgf=`)@5U)z!L0rYXozJvoLgJc1~@Z=b>Fkp1oA)m8X13{33( zwCMJUbQF18hhKN1%Qd1KvGhhK$7>E`A@aZ8BxLj#iO&dGS+j)i z43Qn=cCgN>KW+evs}pb`aO25Y{3nE_AA|Az9`_y$RFpZZWbj3{W-tKiw*q<0}jd54-FqDT;9 z_ZOQdN#$jk%Sax0%>&dKHD{=KQ_y?J%@a(=m^DesB{NC}+N{sN6}k@0F4iD6LyXbi zYw;j{SHKTQ8seBjbEezTXRW_{Kx&3Q^f^7)4QOdcLMz22F&1z~@EVaV)Y93sEf+<8Cf+c4u`Dyl#nq$nfjGfm3oiQ|4? zu!JTj@#l<};Nxqn;+@0PK0Yk9Ct~`QUh__r(vmY=7VLwkzV45`h8R}Znghx+3Qqfr z)9Rk-u!rk^WW!zP2{d$)j@@zewK@6f+)9P$zh}C@kg3C~Tj);5VlabpSwnWoDhFEtmD^6(eR-$I@!Rzr)a)qp>PKoFU47t&k-K8jZZ^~kQ_29{{HUE zD@3T0)7F9RmT_z9MmqG4S^R~&HUnZ9`RF25Blel$)(cujl^l31Y-Bqm`7AGPZ~AD^ z+$f!7xi8htycixQA#=j`87*VpyYwxq+M&4krw}O-;6V#4{MFTMkv}{m)FfL0_d_tw zl-3~)T#<}j$zZ{vn#PxO>+#(T0E3D8dez5yPNy|WI>XLr<_r`E$&JJOxhY}(j?2eU z1?UVfE3S>RhN}TzHEGJKpj}4o)a?bd-dj+i+JBUd5F_FdfOG|$SO)J~(v=Fy78+*g z$g=u^_)DSMP7a|*t1%IK<034DX?5--ugxe>&uk7vc}qRF)IyI3O9l$lVNN|KmZK|F z8aBz6S_|d>Jxa!g0Cf(|#va^Tn`SY9rBnwZWO_5mNC)H13L0j56*E4w!*5N_?Q!nl z+AQFFkAG_6G^$Y;(V&Lxsg#dB}Ke7mIP*8|#I=mGJjjN70 z^5v>{)L|Vk-nI*vduyZHp|1!<8zK@#+YH<0+g?mTWhimAI0b@1iDnjcaD2|hu0u#e z*@e6ozRfFXykxF8dixI$Z+!D$$=%E+U;zoNeyvtE(_{g`4^Fn(*SqU-2-h=5>q*od z<-PmA3|l!GaU6^4yVdtuKpnO~=Zq04w}ai$fO@SCkLJdOics*vCJQvEgDk zYqw;1je{)oHmlZ;QQ}1qLFp4ZHOF9OH?6SR*DR_OdZw@Nmp81RQl6%zhafmmQ+WAk zFFXmPGQxhkvp1L2JToOEQ_o1vTj)|D3UMyq3anLtPql^nY?E-h8aJ-19Hc0edIGB= znzJuMUubCXs70eTNF4Wyy5Ef&1+yca*td^(0Q|B4h)eON9Q+zLcxSs7p(n}kiQO+Kn|4by*{R9pk!gYKTex^ygttpq@OrDETekVV;3fbBdN(^EB|Pyaumaka z9f`aN%fV{E7<{|iP9kdg7i<8w`=a9w=W}`rwD6R}y#xqfU2wL{DOdqnH#aG&J+w&D zdsX{! zthRCn3|rI!V$3Z`&X!`?$nlysn_WLQJ8_u-HM8D6l#r9K+ltHRwf_1}k-BZBpE;$Q ze9S8~SN4N%n*tfXY?OVq)HZACCzeu85kU#HV>P>h5hVd_dol{ziK+Md{gu@C1EVS=avykJvzqy^dm9GqzQmtjk} zK&ZjZnv^(ib;UbduD2bJX5a`Z*WulF;l$3PZ#eKbGxN-(0ARsd3Z|!DF95Lv3!C2u zldAR!c#5Bsve)n4^l|w_;nJq7=Y^d>ToiCPGhRR6jiL2&2E}4tXqEP_!8UK6CyM+? zL-Pqc^@6*;2*#}I>{wXNy#^SyC}Pp4feN>X7P=TpICk`0!S{P)!=Q8byHIQ5(?)~h zRJOJD@O8&k85u-bj1Z9NFMR#oz2%$SRY)*k{|9W08K22$((Hd4vxYOkyp#zbZHJ^g zAJhdO+u*6uH38)%u4Ri){<09b>qBt!V}-DtVCUN*F;}mNXm;yr{|5T3UUm^kJ(>3; zzAgY470{+uiiBkWu~W|r*?ue+0g#72^hP-3`m(oJyfJ1472elG6WJUjgh7(%$kF9S ze%7BF6igLP>OOe*@;B>XK+C5D0H;h{o{B}n`GPqVplgCdzywnNKSx4xX|1`!( z3{AYw9sA5hk_L#{?)?*)ux^orTL9^rBdD_-32a%g@{r%`zmKpaJK!`4@8wkXV39q^ zEKX}tqvGbQOIKNAxjW<4O@O-2?A+0JLb?evK$ZVJL7t5`uSRY$V@dBg*%*5_6Mr^2 zFJ2(AUa(WC{i(!1WlLa;1z=a-ZjvfudU`%${L!6( z70&4ly^xluQYP(Ur;u`2*w#!3HQ>>KjmG%HQKYP}!cOlF-3&$~Nh1{ZM${ zpgF$r?~1~zKaui1(3snW@oY=Dn9Fet>FoTUX;+{qRgf3(Oh?+}6zXO)KPJOFoja9m z<8%Sqd`S%7yu=-rAPRp{2@X4K;&BU8olg=)cdZ7DY^7p!OaJ3e*Q5VW!^=z&;MHp} zU7D&Z@&dUssWrBjGtDNZJ|mT@hAL|TJj1m2m}?OqdoTBf@hnl+p=F5YVf?qA`G zQ>AahH7LO6<4{ngRw`b$m+Q3Z-;9}>DnBv-wqq*2u#~*RASW?=80GPL74!w=r_R^7oVEzq-W?WpY;vifdYwXk2;W6)p9X z>?b_kaR$z~AenXSNUou4mtFOj-+zw;$#F&T(N2kSLI;`@gq#eRV7o-70jfI|qVt>p zEAqnGK$bd_;wh*QU-KmMxJN5skXoqYi{hj^h1-O3RrSY)Dgtq~ET7 zA>;|Vx50o<%f{-#9yA`p#@6d|TRlOL!NnJOYOSp3V35&vvz}qI4S^8i~61*OFN8+&|M0(xV^ylL)>}a>&T@tr)eQe+8pjWnL(gjg5hkwRf=@u(wj)g7p-{KBE2j?ARXu(_BWyey`!_V@X_8g03f_c;N@$t_&NQ_q2&FYhc#@YS6bl8`pz`S)rpIH ze}QS+d{PPjvW7Zd>k#aqdy?-zygT9v6Ko_++HPu&q~H%3YH!n_b2~J{EF)=3XI}R! zW4HthK1vh-AW=$xsS7{v^%fBK`29$7K#Vxw^L+fpecq!b960*Q7<_}2yZ((=6DW_M8- zY(B}QMy?ED7MR@;HU6V`J>P6v<-RLV8gfB0x|?R!cP9}B6)#{tt(U6f098I}!$mp0 z(<+C0j=?vl?RaxCW6Jecl&o~j1forQF<`G0oha{j^OK{$iK}#}qI@|+NA$+*LF;#} zlx$v$FQ_(%!|q{!7$pV-0e-OK#U71DS*+p1++Ldm8bw>4hCTU5grrwGB|Ro~GX2RG zuL41|B(sC|P#vh1TkEU)Ay@HYJ%Ew zWWwVaJ!}^HV{iM*tk@3ja%}P=c{1JfvXVYIfimW4ZWteY@yiBZLBtPj6s;do*;K;e zs=vFo*3oHG8juF(OBtZ2uu`*>-RoQS1TlV0a~Xp(yW?q=#e%6a4kl@zA%xw+W7DR(=|tiZBUvF$HItR7Uo?|id3XVu5#XV z*>vO-bq7Z};#Nweg&L6Ml{C%mWh1^D(2uUz9*d$`z%{G+iBCbDIq^%OW2u=8A@j<@ zO5Ax}7|)u%Ch%6`9O9MSIZ9Av@PJ3$Utx1k07Q-d3AXEtAb$6EM^KVKG13>q7Pkb% zuO_P{tj4yJ;zO#_p%vJ2>OJA@j(~GtYO?dhQ&(0eA4OwCvXO$Fcbvc&iL|AISG|R3 zG&>okThv&O-I!dqzz1kSrF4>33jKo8t%Zm)QERR=F%nrPRVWqlx7FUbv=?wt_bq~j<;BSw=q z^F*+ljUkU=0;5H=@;Z|>rO~|9j|SAU<+O$y>1oV}1AEb`1mJ&c_>_(vhzI(xphLV! zG3}%D%&=<*{A&LX1(gU-L&H|qd)WoC-VRP|)quw1sF@U$2Ej>82)_ccnhM@IeS`@k z(RQD@AX?XmFI5SRHI2kerX&UO>O3vE0^+WlY(04@4Mx0rZP56^+!q4#x^qmrECZxJjOj`AZJE74S$%H(=@i2~6Ggg;wBjs4sbkALBSwP?h=r=-DUy7l9qC%P_|8Ma?wY@WX)d|DIf#w}wM>2HTwG*5g zL%s`ZUPUFOdhb2$(t&g6o4-|+E^saNt*~XerebmzV=cG)x?EvAvy)0mQQ5XMb$>2d zeEkEUs!+H!h$D;bSCzDH`+;sB!vT;l9?@llFkUHzl z?}=N27GLCT5#FIpPjtKI`?J#LQaS5FAwo!+5*QKm5UyqVW{Xy0J2|_RNg?#OTUaYw zr%c(=$ypIcG>NZJ^k2Mbq|gX?bKf^^BKUy(r2G7kTGY1@G_bJ4rDy3DuKB?;eEt@+ zwP8amLu+Qcx$i_b6%o*mGj!CG#$#4)jZ{Q|9ZK~{E)R&o;+|ti6c|Z3S5_kK(gt+h zBs@x;3ZpJF+adBdI$V0XYGx1|H-A)e{OX}b7{LzKF&BhzDYCr-OKyT(W>bO->RNsJ z-0KI!jYNWKLmstGgVuXwf31WpJR#dm09tW{y(e<6%ttI{4C3PkJb4`2Z3+asue}>n z^Y1V{9(|)?Oem=ivPfOfQgq2Zt?>fp1#Hzd0a4_wBb8~G%u>TcbF7!_V^|Jt=S0@j zHffIshfGG}aWgW&7T7G7*hh!k@1Gqz^ujc}e}iJOuGi=C40jrzy*%Ts>DrWEwe}Wk zxQGW4(A|*Q>fBy}QgwyDhF4WAat|xd<20Zcz^G1%rel4XESbNe#zXFKIcxn}Lsf_V z25GH#sD(_>o;bi8K$ldm%EF)Nk3C+d%7v!OlpvdhoMqV1Z~%%+m(li@`Md?(1>PdK zh1S16dwyJ>QIm5o-m$M%)!UDA9On}Kdx&8d90$YqjBs=D7$?J*TI^*#SpF6UW7hUn zKy^AWa1;ni_yQ?C`?0BXIC9-@G+p3w2_MjiPOk^RTRC`3FtBrT-PNl3Hu^-?y@8U7 z`p2~9zmt82cgWk6oyB~lg#}tO=KP}NGGWFXN)t;XsbQ zz-wf@`cEs8FiBrO19~6rP6R+cJ+#}0MsezyGlBr8Gop*PLkp+ z{%Z-HysU8(@C6+Y7EeoTNc4m<{j~*jtbPs<$h&^W$+B0xUJ&D5%+MN3-w=oVBCHkj zAz}gN8WKlEF)s#Bv2AsLF6{b>XXoQ zL5wI)WT3EsB7s>?XAkuXA9(3lEAZ?kgYxQFSxjGpl*F^)@b#XPi}}cCnmVlo&W?2O zE?P9o+;=5&H1u6|PMPqf0+oH?6MIp$;SJ_QDNWFd5Fc)fOKZJ}jwD*oTRh=4ZVhI+ zIa@rU6Mt;}V zS9kcH=pQojKP9SeM#iT7*WTY}+7__dHWDy&LJ%h_YMbvo%ZUPYbM90dh!@baI)L$- zm~>i1eTbfs;&Np;-xn$oVNq$*S;xdo_e}4FEh+@lGPd%tf?ld+=D}V}5VOUf8rU z1cK_(ZW52{$yJV@lGZ=MQ9s;}10#cWK421s4PV*;6z>VqJUIGGhly2KTXE~5szC}c zVs3c7c2+OlY}#p{Bv^h+Ma>>_^MP3Z!B2Tngrl#Lco`5lrigZ~rSpgp2d!A^?BCPh z=qKr*$BYe>S~E-&%2{}82{*0eGG`@q)ezDoW=u~X6^{m-#nCpjIPrWR5azKvHFc|x zaV#4IA*%LRiXxlSD)A)0to1~nk2;d}C+Ar?^T zS$(Vw@xhkjWAMYWSnX5yT{jrD9sKK{40>!=_;&vI*FKvb+php%>N0b2M^D9YUcBqK z{rJ*rUbHk&(?lKJfYlB9@!Xx-SBBml#OM&GLtOVUMk$T7MjMkO$ zM0Q4XnTe>E6Mlzh?cesw`=wu(<)18w-(wcJ`ku1I`d(+SDul8os6v2arxg9qa9~Ge zB6$K`&&)>@_p=_by+mN`Iz=FgBDgAz<;9?y-cIHGpBm@i!iT~n?3kx6bZJ@`LQ>0d zE_Gk@Rwd*&noS~bSAkdc4VcDMmYyZCGGNx>Yfw(2MX-}>?I(pQ(8F5OqqBXEzmGs) zKA~hR33XYVIXel{QWxIZ5OC(7Zf?Gddd)a5Sd8q%mD-B$>O#tXo%C_yx`Ar!hP8V? zp-o4b5<8j3w-M5lt!IXBQZb3d$M|X6pG9b`#V1*F8YhekE_vMRSFyHN!_LGe7HE8$ z9?EyowCQ)7)a!v&0M197xd6$*MAfEnk#734lredt zmo+A1ns3~${YSzr3_yt(Lv%$3(Gs92rgtbfasN2yYvzc4FWzm)q5(6qk_lq#T0kG; zV(55y&yQ1z2rT9~);*a#YowDjOgWtN2E~XaD%RjdTv;Z&gH1S>bB zTRP9kX_%fa*(*?baTl281n>B3NlsTvuMo!zNOLwoTaHRYXNU*3&zMgW$ttk|VER+} z5xi~OudX#59w+nRA2%;)oDG`rLMmvO(JSM@;T8eFo2A&gvbNb7w*TagY0J-UBmo>g zmJi`jXrTskP=BLwlu15}*UXD^12mK{vW}%HlC;A0;(H*h&gifG`hA0y)QC1Ud$7yI zW}|J455D%<7OU%XKuY@|!T}!#GOulFaE+rdEI~uIW*KiKFsPonSp({`--lX>=QlEfT9p@d}U#rT18?Q zCbl=dfrqs$&zUN#hW>y8wmF?2Ug@Qf){q+M>jwHDroL$j<{8EI{CnNF(QY_}Avh&0 zOF+b|htsESw2ZIfX77Ugc=fC`?JR2gBTJwHTAT8r+knop`zc>p6bwH8`wEt|q1UH9 zr@PCe9|5+Jt8K4C8TatyMUK*?q8f=YdvjLvXEZY@sv>L5z?ea8{k9Y%`Rd0hH9Ek- z&Tqx~UjyMefF}W=laCmUB(hjgNqW2=(%86nhmC3jM~ZFe3Haa!eSvek9Z5#F3-f;d zQ;`(ljx(ol^=1^aMro2vS>~;i$=G9isy|zB9oy(%%ymMz3ARPL%j^q<ME1` zXRiE!C}W~$;f0upRH%GsNcg*GM}>!FLj8tXuN3_Dr@mPrKwQJWm2Rhls7;gq75^j{ zIfyA3SB)EaxY}h?c93MJb$_t0A}=KS9v3C;7F+1l0Te$Y!#`xmHGOA+t~36wG6Wf; z2c3wfYKybBMXn^OKbJ>(`3Ck$8OmN7Yg(Bu*6}QGBbI=1J~o!dEwdw;TBdSz|L)J& za5@7VQ8l)e0zj1YZ8Pd!byVZT%^kwFn*D-~65%F+6}wMixf#|Sw;5Tl{P07ts;Rlr zfQJ=}GolxEs0_QAOJl9#v9-UY`_#F_5U}z6g`941Q(4q#HL`Pr(%V+YrdsQ*c{r5b ziA}H;`fgu1eFPJJ17XghK9X&SfTw$v1TkSw)q#E8p>46!r3R`EEmniDgI1xx55ibH zwL+tnuoFnPOSS=iv@9tFm?c0KqZl-KU$l>4vI{g(hRSWrx9Yn^?#%3zL9ka?8nYy+ zRtO^sn>b{8A&K~b*E`2E$kkVLPKF#IVN|<8Wx+5kgW8NOi7-_7F}EwNmn1h70awJj zd4>dS6BforOt@uMX4^hXr@kG(jpIfVcj4{`ro0UAxJw%qN3Y!x!n#r%=P7TM%1mW2 z1ZAuvhhS^&@CF&zt!U@s0d`s;E$+sKhF9s5#dSK9D@%MY*yjzK72gBUQ@-ZIa4|-T zEfp2d(AQ`q5IDj~P0g>zvY&4&-qwhg2skwwnRjiE2Y_*5itAWtcaCWk#^l>kRVOCo z-b7`3Y{u0abQ2DKX01=t)z^*yNOK0V4{bg2)cO-EK{pheC|fnR#8h(@)*n;BbTd)} zJ*hP_8ORlyR-p~ky;J_n$n;pH*5ycz?|;55K$uK;Xn3tbt6mxYIx`3eM-3;99(N_AbGM2RPhPj{v`eIAAm~kS|rW z7yS4Bb4fAX^u1EFSMt?@CxyF))}YFpyP*KCJ1Rj0f+1?OXlE}W{?L;ZZ-dDbAR>11 zRD;uy1vn3w-T*pcjJHfqiq@?&?iWdj*FffMGp7ReoVD4jR6VI#*rWK^_$1>WjoG^> zUWs=zP%i7w!P&a~SFdQ$kC;g1hemR9%?m_btn*FYZ1wOQ(*o&1M$L~t6<1EVHWGDH zE)xIL8~Nlqm>(L`xy(__>_7eJTpS52yfB^vffK!NepLFj18$-iS>F%J1PmkOKp^dJ zR&WFW#oiXu90X!XpcAgjlYdysU$JGcfz%J;I*WuI2zI#yo;wtB#P)BDMa`Gwl|T9= zpj@zqHrLN!5NEgRzECj{nCiE{P8XDTa+m%0l~q>W&cb%*%cMmi|FhG65mO~2@Put{0oxmsodQ)4`j-80rpCL z7b~H|q3wN$_H!ah7v4zcw5~M5-F}vgr)s9=6x+xV#Ncu*^ zSEneHz-N)zKIfAVC;V^hQ^934{XeB>gSl0zU`Mh~hBy*s*h^Y<8#@*$R>YXqq-W{f zI*PR4gALxz2*>O-`X_Qli8;w};u*`C3Mq)`kq(QMogng15=9!5(lakr3m)q`#F6`M z-WZLV7-R;yA$^r~h)3C6J}fBdG^h~22;CH#&PmzLT&Iugd3F$0TrlZWxXff}9XAJb zX4*7JkFs|HR1gzZ2t*(jm8;7c0yyTlD8NPeCYmzbYA?zx(t_t-O+>stfLy}D{?d-R zaAjk(*4qDu6#}J(r&ur~dF31R(!TI7|0qDD z)wTOc1s;6nJuMkQ0PFZYze%v#$^U1W6Exa9=gBZ&LQ~Y2D~D1veC;Y}}E`VP(`D%Q+L>{(MLrxuoGJj#Wa~ zAOPuu#z*~L=@^0?PA)~uR~`?o`577!R!WbpC=?D9++bx{msR6;RgS*bW-tPO;yU7? zQr)9jsi9HcOfkH={NR)f4&**)A;$KaBP=5$O6j_CtQNLm+bbR>?k}-2=ND*{_8az5 zWJjt;V_G0~WpWL2O@$w##Dsby^v2k+xR}M>(1+=~aT1}>dI)xw>qsvdF!omxjiOU$ z6GB%04xLx~S%(qPvtUY@Y4~rBELgznbud8$T&sk8s5#eR@Y@pU$?N8_-tKbc&hIsb zr}^J5>{Q_+XOW*{$s^KXNJ5*6cNL#)xmvUBebl@YCvZ|v4LX3MROH^~+H}0!VeC+; ziOQBsRiIo7=+sVVa#P(?vXOMq;L&%`Vhe1>CmG-lfQQqIcDnv%hbWsQ7lGytvdDSJ zgZ6Z;{rgcHE7kE#9}@!}63}nvTE0?nX{M6KGvVfH<}5YZ9OZV`C;Qhzq7;xLyLj+u z!2uS=8YzPtw9JGEhebQM0Lxwya8elOy=3`Fq@;+XZyOF%J8KzV3-aWTj{dwj9 z{o?fxc68pyec;WW=(u9(Pz1UXFhyz@N#z-&A31WHvbVZ*BDABq3;DYGKtQolI|g?@ z>2kb_)OAq8)n~0Bb~hU3SCJ1x>Z@vQ zxqTP}0RXh@MaF98q!qx{6w((RRX(%u$!IXV!}R$6JDiqta8oH*4KY8^f@w*F2x73# z^*5=|TfHUcZAvB?e9sp1CVzq(ahF5cmqi_+=mJYYOj7e}#9_Uo>NVLqz#z)4#;WB+ z8|85hk(bE->4QywS%pGTA$-5LU%OFBE*Sp)@)4; zv3rQ-QUNR`f_w_p>TrglS0=taVW|uq53(ikaa27=+;FlS1(ALp=`0OLKyQcbPbI)_-aJI8kIu@zG;a0~}3yQk$=eRm<-8aB65RCU_KTBHOp)pn{w zv$umpTNmeT5ECR9d?zF=S7)3ANhkRKzjU!goym%vJNZ9>&fyo`%?JarJKuEegq?ag zqS|~qB2Kr^XdOcud;0}Mgw#;W4{S?eYe!PPf)-Jc6uzV=% zhA?U%$L)+E{{KwqFV(GdNwsYud_h;G;QepWfhMMk$e#pO$;F^b`Iy@St6JHzo4 z?X*{Nw#qMQd#{8;#A{er(2#}!h<&ksN@dZ~!G%kIPhsOoW*XdM=irW0p`(zVt1&6w z($YgYJ`-o3|b_OfZ5Hp|}f!mLBY4?bQ7d(~a8#O%OmxI~2)8qa=leh!200Gxa7 zTf!An2~Fpowt)}_l%04Vq;zZN!Qm#4U}K=qIMO0Rjml35AZg^m)2&S@2hwxy$4_YY zak$mMX~%W>dnNELxzTv^`^Or@qY&Wab(x3tN^T3Iw%arKveA^cmANkw(ctqP-@KcV zNqy@fmu3x}hu17E*_$n37@h~}$uBkGV#7=-;nkT|YFXH@s#|r)mzh%wu*B4>w`~b5EWrX=sUC_up1%ydO!C6*Y;z z3RYW3KWuQ{fKPxz)rG%{0gW;f%$5)w;n8=)Ks)=hX>9QJe3OE@9b-dn!RZ7%klb?I zezw!dnRg9CWU}BHx8+|@O-RqRf6ZUs5SLH1{~2NLggY9^YTTW}9q^-zpZRFHUMJ)U za%h$XXgBumEGV={2Jmx?jM3q84o7Hi>pbU9BeG`7LCgGS72mo~;?|G~q5{NX&R<5| zYy;Y?Qz(Yi8c&WKxbO$Gz?;0*Vkjad#k8K;y7F9K&>1XkWc8(9O^Z4Ys=iDEp>rY} zWr_$y8HyQ5&f7}=n+9UTJ(;|GE!32a$mTK!!U@1a--&YjY9rPx**>7&u=tW#@^Ku~V!qdLrh)%9_H|?# z3ZD-WJ9qd|lJdd8{*xJj_XUgcbm#TJhD{H6k-NPX3c;n-IX_4vICzF#wP8n+j1JOj6U31dab+ z!%e+W>&cQO#cnTuu#ZM)ccL+-J^v74$^{w^hBS(VCd(j`-J5j?p)c##guqATKHce{ zCTCFHAB&>GohfN-if}EyAWVYG8Do;)xyu(bq%gOfILT$+3bP2wZO^7i8Vj~dmzad^ z%Hb$#4&~YPCgJR%FNMo54nGQ?;C))vMRYRCB;oGVf<2N&n4guHw18#gd!&_NLjL7b zkH`#v+qE{#nQVo0P;H@uVcDT#x*JWopH=(Sp+J|QDE+1Y7vYpnXeh3ifGX{b{ql<%YMsgY3J zIcvbt>Z>s0C{sfIc_lqUjRunZ0b?>uZ&MrPVc%Sj&LRne$zTeDM|~o;t=khPgi$8} z+Jd3^AMGzQAtoyfQ;af_sT=aRp;vfILmGR}!Q`$`D_}wY;*@u4Tq*_8>&E3B&Jt+J zWh$l#aXm4705)+x;3q)&gE~_^>dZhoEoqc??OQ^t69SpPU{1MARXr)augpCyOZ#Ke zGI9NrxDPR1NOT6LT~G__2u`q|@Nk%3vhhn&d-OauBzko^H-I$ZLqF7xh%iX%SM7{F zahuqbn;G?OHeG1gw{;p(a!jCG`TxfGc<209&Cp-ZuyK@u>(VuOPdrEWB1~nBQlD)_ z0QH;542rNSJGlztnD>Fq*ygHu0ZI-{_9$lRjx-n!&w4k(NK&~|$RAi#O#FiAQ{cP& ztmrIMXzi*jtmZ?*5}IYOgjKO%GqD%P7p16wFwFpUk_ znAZtIAwsP7_+u^z1L+MlTpjH@5m7#Lb_AFv_P?4)ICNfPKigYcH&p3k7ZDqzzyq*D zAWh!23*rWiUy8V~9$;@;(k)(&4a@c%SR7fE^#`uvTHaGt!h~km3j>|`J2mCy?u}KK zQ}CYw5^x0t;!brAhL@GY#j=aX4A2Mf^3@RW z&+|yWH%!N}KCE5OzDFoDq+&sji*U}0GYGr+{6agtPI()npBxPdV<ZmPFf}&^9`KhwU`cgioD3s0Z)TDh7YswqW=BYekZ+Xo9M&S)6FUvP?&WNN>UVNJEQ`Mv--eF zbYn^}^Un_WW}8&?ZhPvFU+#!tv#S&KBFMbxj)POsxrkre7z9j=_9gRPrEh2%l27U4 zn=?045WT%242eaKskI%gsGPp-##IS>F1td_ZYIgo^Xc(#<@k(0V$%my4!C)t5u1w* zFOy?-NtM<7v_AA^FTn)e0mwMhbTO0{C3W&Y)t4-4Ks8!W1}zUV0s5Q!ZEi^|+4>io z{$Smnxq}7VLnS&&A2=(ll}#NYF_j-%aQW7(KfFjY!EM=G`P@4jtO#UgOhl8$dN|7T zeGnI2P#o+_S$&-TaxexA4vns0nf(N5$m@VRhPqb&=s}5ldD)GOEaWZDV~oulDQQq{ z1@?k0VI5L#@N)EDak#!bwtyf((A+J63eZn87ylpWH}<4~B6HJ}+cndfddTK3L^Pwa zW_A|@j1kz?IXSG7%T>!}G zqgO@geSH4nA)!{j0UGnn_Fk2D2O&g3^^vrD1??4%vKpd#1LkLiM>wtJSnA_s z@NpPL5N(wTRx+hi&586ufsReI2@*E^>i$zR+uwwi|v(ou=vN)23(R_ zqmCtYmw2FMRsx+rnkq@^(Y7fmZmvl7<>0%-J(UrPP4OHZTEW@tr2>J&Oc%_xR9Obv zXrq>lvy({Mcysr=wDoix8YQ?}vG!PttwYK6AX$CP!~&$`i^sogKtbR0^|rZ2ORQ; z3Av}qQ3JSR+TUMwPSC=IAJ@zT4>8kMxSbYYIzWqVaUQ%){wt!{7y54Zpg%V>$KA#_ z#~}%r8)uUp-Y%CTAUUPkvgyf==8{cOTruxKmqllKEkF{yiN+v@?j&db=8|%r*IcDR z`#Mf8cC=!TzK56@6#9-1wjuKxKI4zcBgpuycAnEylfE5I>}L!d;g16X{X$WW)foPd zYsExSpn8|rg`0=Jk+IVb_&edK(AQe%7I;c`t70!pErhr5UzrZ(TCiAa+G__F^}qiNi)w(!_=9 z-BDODbV@vzpJSkUJP~~R5@9V`8zTYtmoEx|K=aUl1TOfh`xzA~q_%khWsF^DrwNj> zFv5+X>ewHtxc6VvQ^n=_Iv}pAGGuNT_H|ekdht%SuZBtSsi7NfzLh749EATA)_ju} z<%64VAT=<*qW18b)33Et9E(E~sbB$|0DOSfMq>s`1R_U&J39>t84IW?g*X!H*WtRp zzT$*=AUnGNQ4H%gtP(Cc#mph@Z@3W|3vU2D#!4z1$Kj@{U>E!*W`<{~04$V4=}WH| z4KX8~W=&^$Q1#fH=LVtW_yZE^5j(;Rfu=}U|D|9=VAi&#`!itY6;-ewu*&6JX0 zn6JI)nc+|Ll$^SzMOz&mGZ`+&US7}OzY!+Llxbke)$OLJ{@ zFjp6<1DgnM8&xB*Jt}{@Uh6-TeY9|Rwrh9i-$GQi$RzA|(Vaf27c*2Sl@I)w!D}Zv zMT?p@y6@b$vFzQ=S8?(Uj@^PU>P658ltHIflT*J6@o<>Qz6lkZKH7ogd7MRPxZoAQ z^5dG0z0-j>w5<+rF^G_*fVXy(Bq)pYkLSXN2R3slvU8=PRyxHo8a7!C8rVUH5}BO8xi_?>n!}y$P+k z0yRB^Nu>PxHzvkx7EYz6$kq=r@)_$9GG7b|?{05%HJlpIoUvsn+v7>(^zBA>KrY%7 zOz>}#%B!cUQeIW;BHp?mB_WcTA!>r@{>YZBdC`W7n`!j_^1~5%aP>mjUb9=6%9=e8 z5zr4yxuxqijJv8~pZww+?!LN5*8@=X0EHHz?jRjNy?DT3$du+atr4l^s^=}x z1!3YiQ|U=xIre#| z5X>y&Q@}$*4rE|J4Z%Mz_2O;11Wm#ON0>4nLJmI25(wGe_08_d-g?}NI#})=_W5HU zT+=BKR*A==i&8|UOSkE|r^LAX1n|{I75&FtejnX9iANpEL!fRYJaCASZIh6z;dgm% z{tQVZHgIi+gwi=>S);fSTZGf=*4aCG5FPkHR zt!B$X!AEyNsrXV{=DL2Keayg=3ia{5{%ZugxOZOb)N*XbP*HZY#$lyqQj4FUk9Z)+ z8v^P?z|$bBvRf|DpYcLkOy`Z1Q4Qw}iu-j-Sa8aCh-1KA4q+q~b*+c<+?^F|z(*_uT z3>|cMO)9KXQbj!yqsym>xq+!b5e8p9Du9bCuqU!=d^g4RAK{}{r2^KNo9dsZ?xFf; z6&<$U1G&R}#3}cZ>bB@MgZ&%%M=jKwLRhwS!;XRMS3xp#{5phYvr9B50O{*3j*}fD zv1xrIHcg`BR1%#SE~-%txTO=ijl$Zb)O-XThS&NnK_!E+GX>&nY@B` z^KCUAVj)!g%u5G|ML83-gM>GmkodM>_*RO9k0-Xp~=X0{%HpfJVW?ok~K2r_+ zoZwA6Lz<4UkkyloaW1kXZ>|2lK*%PfbgJJ%`#gi24AZnBLhSN)=kXab0p7 zU%Y$(YCx`N0h3KA| zTT(=g>sY?=9Fx^kG6hj!k@b(~c~*E@zl#6D?A6Ljlxwhp0uGsXy*ke;Jl zGjrcQ9P+2>nUhb}nh#V_m!w)`tOz@V)VtMv*~8a&Ab4~t-I$PFFseLrO&vcT>QXm` zWm-o6lF;<$!qfc&u)=ARC;p#B${5EFe~?w|yc`f!DyjU11Cph@C=rFY-E=qN`-xs0 zy*lmQm+S5Od;~26Q!Z9h?T{pRQ+>OvaVVv;nn_6kSJsgPs;O^n-SrSwZNKrhq6c`v z@Y&}Q3PviVU-=4hz2Cq~i9@kCNvFB06-1-0h+rlVk0A(&;QAa*WA&Pj+uFqoI^PA6 z*lS9EcwYmfIqnb-?D)zdf=(x6Qrz>em^6YwwWNk(?UL4ncr*h{?U*MVkI{WpO{tet z_-1?HF+}IcnYpKlDdpZ=cH!y9%RTD!*>I@uJ2y;81*ULNqKli^Hk?75pco2X;Kt4r zTT7#ap(43~cA&@l6y`^sLBvGyAxAo}PUPxpeG)7!+2}iXdHl7EfY5iM-02(=^e*4Y z@({V*Wb9AnE}7=&t$!(Fez<^0&7&R1JnhdgxZp^=G}ZL48m2}F)b2$UO`h;O3yE_*a8Z<<) zVoYNy=;b-g|NLWA-X!aX22zxZo;r=G?Zp`sH{A=Fz{U91T*(aCYJ;2EL~vE)Gp+}D zbsO2zH)WT$Bc$$P{+wMh4$@Ar5^eEv4V&=><7q%|uW8ptM;`r?Nct#f+}ir1R`cvE z&c=kg@fdQ->EMaF=_Zvp?@^??j}RDyHRKX3NZ;IZZ2C!UBrYQcTqXR)z$m`fhs{k) zG21jGs~B$a&C08}jLL`FRoE6SeZTh?lIrqyfW6jhngl9>B7^N=0jwjC6e z9UHskfc+Y4DArt%+MFzD^FZ%-us`xqSD7m~4b#)Q`aWANKEfa%tQv-^b z=tb+t1FIdEMlZaGgMB1A%NuAAd}yQMR?TH7@?baj^i0!IVm5D+m^wa93}XL3X=x!Y zB}Sj=Qq1EgiCpctfHR^E_-Tyj+8rP(>xZOArDk28Qb*oO`Ww`J+ON$dGl5>+6s3z_ zx02tfoDqPRX#N0d6oU0B zR`J|R<0_f($Oan>9F6^YuEvw18q&5C9TseFWMev*g=+K8F#=HUu!uglyiD(LUB8vu z6DNx_jVeFLWcGp|aV(P$53T=)nwcC{Ra24x0F@fqg@qM(cM|VkUX7HL%9YjZ0PS_f zj0h?gP46?c%V;Ae8O1RL!LMlSJ!5=<*xp&2=Xdm718{lIx!+K(Yy1w?r}mdWKfadN zx_KJZ2#KZP`q+T*r}Rm0(&6c3=qj&oR1cyOTdJQib@jxhbl@i{(VkhBm^TS!$I(pH zAl^_Z4F&XC&bu9Y%Ze{s^}#jL<>$W!nYMW6A7>AZ3gAXekjX^*4pUBsL~^k0&MR7Y zYse$ilnmfkH+rh*iH+&em$rQSCpVh3MqAqn+^q%t3_JkaS-k(hJ4cJe^>ZV00n-mj zSUhkT)ZBO4`2hzzKyk+1duwz#aR+Ok6SUJj^;fCS|}Yxfc@;UdQ5oN1oP^xdq*$uX~ias z(!ZhHeg;jfd;X?7;t+$!%K6@;fOxEyLj`ccG>a-V?{; zTXj$2aag?o@cK4I0GLrFKt3&g`=wE5PMDl7+k4iDyxL;QPpgVE@hV`InAvVKXPg7wYyPLXV%Mj>8 zJnswONP>f+SQuBpAaye>`H!vY6v5yA4wt|nUPq5cT7H!B%AMZ3$3yu-un`bp3L%#t z`eK#G5I3km#a8;~N^1jJ!MCJM$~5*xnNA*+nDH$9s#YDnFmY`#I=j*i1ZKkQSUG$l z>TV^4inRTAa6RyhSo)zbgVMkQ&3Oj@@o4fAhf;uISG2|nc8Gjw$dI%esZU^bwvP6d zH>1yOupShu`Ro5;^ z&j=lY22C4e;ZrPWdilZ zwcGMDm_zR)z9O^QhVO^6CGcgJQ@Xt$)J854xcgD=mUP5lXpnfaL)+QF?2p^$~rj&3Ky( z8xN8lrBlLyjAAE!Oj^rCL_Hzo<>JmpyHaywxy-cHtoK{(BL5fq1*VPPJv9^C& zXGY!|YoR`L|Kd1Eu_}vUOR?8XXh7pdDQ8MMI52OAmNbs=GT1zp`s7*DoB5DfkH(gg z0AA`P-KG)>>sL<+8yqPmOHd&hNx*39(c~my{Zq$p(5w-29)lp$=;J>W9_WfM6FXMj`gCj>Uwp`Ne^p_i zf-pO$tjF~n%0N=0Ie8W&C@ej@BOU;US)@9OGZFp0u$;R$2#0>AfaxC1d2+kXNpbiQ zd&p*w;WhlrZ*9L{Vq#@xQ27`7tbz^vE?eEX;6k~4nS`|y%1Ui|(TeBX z6wkiB=TtH&S}uUlw-6bMNbVRGG?GHNO-Oq$FXs1 zOweXAE1jt9!%eP%B9T|_PZ#t2D}Zr{N~{_FmPqo|%6ftEGR!SvRq84;ypA>Y&~~7T zstr=t97F)@@tMyVl8Wp#``>tZEF!K>*dwVhzVnyij?KfO-ix>mdBuThhu7Umd$+~& zGgIEKq_YX1M~kl(s1lxrGpIOcuQ;OaI*jYxp#dYA^B)zE-Ay^7GbR-l5P4D7Ihui(ew*Z!nF9*JU?T3O_8XBh~t$h1*@yLa1??%L_#{7tVKM$D^bPSCJe z)(W!-Z7jXmffDVioV!>3Wx0;p#sA}}Wqf4v=-+RH!om`9=QPpwrKwZhEE$BI4O{Vf zvUUUyoMwrN%4``iR^zSlk3=G}zuJS>Viq>X8rkP06oVMOXtgK@vpG2y9>$#o73UCx zSAiB_;9dF_SU9-cicwAvo$RiRhRs+6f?%>4{UPrsvg zAEz~CmXA;9u`lJP%t=<^+G0;E>XIH<-f+q z6U9P5fz+%|{^GgSOG%}3qNm0ZnKCBkr(>l0>QRf@vJ94K3Rios4^np+z{#Nz`MBJD zGXOFFx+kl_5FKYP;yuQ*f#IfhQRt-#*o}8((8K za{Tr z5MF;;pIg^x#(u+kQ5JtRClV>WmPqUhzhPPX#y4+dn=}FY_qNhiU3DLoq--Wt*sKjfoT9OopXO{W6dr4_@M2bK( zc6)Jt(m7oxb`X*pibTm1rCGVzQQ!jXBjN^>FUUDW0`W=IqgTaxt9sRNf!X9Uv=F=pFQ2GfG>M-zqOZhkQh&e?eO(X#&;g*@&vS-uM^p+-M4Tyf z{i{OV-*~v%AS`GDv*iW87mo^jUl5B)SnUZ=DF(wi5ep`I^r zw*#x6BjLFri->;nmn6`Cq_@ZGQ#HL?yi?z2SpZppS~XFsJXvt-O&UQO1HDZCa7OQi zwt}_Ehiyr`Aw)r-WAUs-*6E{rYgp2AUQr5>*QOYei+Y7{J-N>TTcac720aCQ0QnMq z20yH=Q`*-~IB+CL$>O7J(@%f4yVr{K^-ZGMyxxD>pwcoII|}%ohEq;6c#;XCmu5NF zB)x~AipYL$Vl6OMx_&Ch65gWc0+{W;?vs0)Mg>&EyO+QbGMMK{>AY}e1~ZKnaet^0 zqI1Wew2O42UOBX19N@qd8j8L}x9Mo|J?tV5R?G3d-I!*asMtuTs{wC`)FIyv8RwES zdkky`IFOlNVf&i)rzU4c(iqdV%)JX%;C6 z-_3TbAb@fXO~R1!0>Qaea=(Z&;7#|8-@}_9wmrkdK>G{;ac0YO6B!2f>oe`VTLc}Q z_dhM46MKIxgq{0opI!orlGL0c#we%U(T^Z<>@`WVW@sJBgjviy-Zv?1$2?yZItMMP z|IL1@3wsUbGQ%mLT}+`GeW&V%+5Fcd0xo)qnd6I;{fyX6e62&{J$cY`mch##tYqJK zNK;;;6LeRCz1>sfvpXBOv8hMB#N=-tSH8y zi(c*ILsBtSV%_5DiGHXaem#;%@G4=j^s9dwt%pg0?Gn@b;fc-!Q5RC~!7byG%cgZz z!Qf%j41|HXuP6W}eVi5=I@5)T8l@*Zp(COq9r9fQ=m`^e-7(EdIuC%)TLNM4yw7>l zJ6Ta`f8?~RHy)YYLRioy|7L`SZTwBgP7x@oWgIxidm)iahszE&kT*8R7<$78Ll|(z z$m%}xEPf9@_jeLBLLeNoO5P8+i9eL{B}uVMIuK)3(-2*LBZF>Zi8-d7U#!chZ`ISU zGu8EE&>I$zsz^tD-A*Ge;7?PdyDm}n1CMo+QEU3`O%2Fc?;=W*mMyf-9_f5?TH_O7 z+3h+R7HJ8!BJ3GqiVKv-J1I>C6MSUfU8e}%R+{O+kw;J_3Lnp{ohsOm#S*D-#eYmo z@g$a6%Q7Zp9X41Jx5w>H_E<47T6zN4Ruar+=*ogI>r8Z&8bj>;NR*M{%f(FmKMeU0 z2F`4m3DDt*jOeH@*gn=koqnnhRJ-|~9AEM9I5N3Q?E>?LnwNPelS8rWYnKIVtcd46 zO=ZIi-JxG*t;xmPpl#_J9pkE@iyk29bp>t`Rj7ZSl`;G^5ETB{pi+e%3QAv3E!rIKJxh#CFo^Fo9Z4x+lV(97UP=(mSPuY@RL$?d&_MDhal)d)e#!*U!+zx47om>uH2BS?hE1GBI5z z(as&Li1PyNAmJ_-17y%uq8v%TyIL~hK3EPhLjP@M-p!9S_-)B?)a~E#YKPx7-)g;h zju*-v>9}6%wU%5ZPIFW>b0(xvby|o6-`REJlRZNHnjaYMooJvM*-!)s&YxMp)r+`g z_S1Sk|GnAaciG-P*K9&74zr4y{s=&Lpz0;c$(a20o zqhPQ=Na)unRT>NybdcA+tAIUY45R>c6rRWF0>5O3`3Db_JR5Re(`kLWLUmX9Jz#om zoP#T>dGBa6X&Oh5xaA(f*Mfkuz-QPnCWZ;bZRin+>H$p@m}Dc(7=(@u>G3gI&r5$I z0XS}#t-Z?7nmP}(!McvG^w=2<4DXK2LEH3}XH1O_J_n^E2i3CLWN2fHoj2e|{pGvA z$p#)dYi(XONUPDMLl8-|Yh6xwE~1mAx!_eG`@bXPTyJZR(M)oFv~RZU{5=x&G&1>G6h;Q$5rP+_^a-7Qru@NFHf~|2#CfD3WJ|nvp zi7=?bZAw>GXk7%+4-qq)amuX+8zzT8Jg^2VA|}ImG>fs$XdLvwzW2bi!GU^~*)$kc$C!)IH68;e;S*azA5UmJIP zF+JR?5iAHN|7dc@2a6nAQpD|gZ*+jIx+ucz=Q)-DVs21{^?hIOU}~@GySYG%9|DGe zwk!*|GgMf}N#{5TVJQr9iO)MMWBe8hQ=pQEbqAaJ9i6EGR{XFG_f1!E&#&FArVxCn zLhjN|u`ZlyXPEvI}$foa&T8;pWjB3qu6T=l_!e~VOZ z%DbN@hqj<%WKWG8R=_4sN8K^HIU$wwba~T4GA;=#ohyq9-ec=9Hb0R6US>dFmna$0 zxeap55kmNVJ0&itrfKTS18>e%eeRX@GfdN8N{L6B+PoW(oy749U{(_BuCmlawOaDI zNGN1Rpi^t>b?CAkhmvo6+j^4_LG*VK5s)L-fXa;EdOiOzJ{4_#P-H_WHFOO${2Gbo z%X(osCN@X&Yv>IA*e#kn(YAAE-n+vvwK8|^F?bAU76$c@s#4Ut-`DyCmO$60n&3-Q z(=gaMFAQCxf8CXD8nN`{kT^bZi0`>C%PjGV*7!o;A5UyHQtPRT;NHX>qLOVRY#*0s ztO8~+FD@*tC6N&n949P%Kt4E`n-z!Xm{+AL&G{Y1LkaIgw1xM;Xn!B=FskWc_?8B= ztrXJ%+ZsN4>|>oOntk}&VWwug<(H*OGXRCd)7@k)aP(`&G7tCVi&C*h15AV?8@V4u z&Q8&SVJ=^fYj{T5^WQ1PwDH(sY1P*gh&FvHH5>)A6UcQfJ{(C_E7_9P$FfFXT1$ua zO^cDIB}{%{)Q_S6?q_v=*3UPd?;Q05Ofa8m>#k!OcUxlxABce{9M0l&02CS6aJ)wu z*vzk%?kj@0lJ6Lb39>4vTqXgH?mtx$nQ`y(+@vgq^p~f;rYXigXLb+4zOSo(pQa^n z4+a;r?sg6+BXgi=5;=n!ov}l@{1SL}k=&l%EcRDqdLK?3r31u)&)eCSZb0h$)@o|i zqGk3CeORqD&Nm@7Y^Zs1{9f6#L>wW&hB*;c&>|(}M>z#>2Gb`Dd2>I>ef|)^hFM)c z!o3XYXqiFyo$vfoa@cupt?W2G@>i&Q8H3-5E%Z@viGrq)Ao~H1Y%Q5V*+Fm{mMG{= z#`-P~#a*X)tS+n3fR!d|WI){_KIh z_1oU=e1hL$u@;n8=^Sn@x#I`8d-yGXKn*?_TXk68nnz|#rfL?>>WP@wLJyB<&6(*` zxeiTYh9_{fD9H3c&E-WFTj)Ab;1z^Oz@;EMBOgx&a%;P{?QV0 z_3Rgh7MCF?+PsX#`Q?;B`Yq)b-tPxox80@$#RzCErbOw|2rT5YlN6DrxO7FA21W)5 z^2WE!UGLA||27ePUZWR?`z#=ft=+9t1`>Ahkls?WVCZU7%EzBW1I5c5X!S36{t94# z8GInLTJ`8MdLVA5g<82WxZm%Rcta>TjWGYQy3mCH(u9@!V4G4?$YWf;@ z8lay1>O334z1cA@+feJk{yn&^BZbnn=#hN_L6EM|SVM>WHYKszkl(_qALe24qgACaivZ5RSjvX)=|2chZE{_)(I?yTAb!Sb6L#-Q#eI zG4@{`pZM-dr!7RKL8O9>H35*E^qP@(IA?dX_$5-mhYC^r{$S(Z)V;&(Gesu~jKlWZ z*o@6b*7(RRYNl`ZlxbG0QQ-IwLbBQ2%cg*N3U*RJubT(B7OEIBW=3;gT?CZPRW0ik z0}Z28O@!*eoqy$>aZ?jQ&#>!3bxCogKdUx#1m-k4M_h>c=pB8L@VT>atFc=wOZAj) zEB_dBYJ#xf6y6h~1eU*RFMa#~Z;p1ld3-{7Y1Veh@g?q5xLP6uAY0@Bz1Bkt7cj;_ z0Lu|;>4ORvE-q;h?(R}gM*r*pFs@2?bCe1tmQ`9}RwGf+{V_rs&rxL$o8@>3GO>b6 zqpDMRT7ljimePq2pCh4@1%uAwd&F@Eo+74eU(J5fXNt@-0tS>#!?XLIyk@R(egvXv zGeH}`4%Taq9e4jLIMc~mc-5+c{_v(jdnsi)V|Z3cDlZEeXM&b@p;tp_9o0lMv1Md| zya;y(hA3=1t%oOT*v~95Lf&Ue#Ep5(261;GOIxK?JCMPQMBb<%upg)K6L^ecNz~qa z&Z%eC_I+nWy~+62|Jl%Swef%Gb>IS-NN=zNrOHq1cgiddRz`{8UtU`q4pE0}pIxgq z$6L`Z7Q)g=0FjAZ%$5K~K)JuVHUb;!Y-^({f)Rpg&7*HOBoGd&cL_Ovo=}dM1SNim zJZ!%u)A^G8g!TQ`8(-Jr4p5{q7(oT~_gdYhG?ZR0cuE(ZgZI&eR|?8a=<*=y7jpeJe(u%#UmSBeE_F%1)fQp(1*hx7{)mu^?P^?S zo?>cSg(PV%2#u(PouO0iA8H=8~yJvnPdKZ5NW$0Z;HDLe}R)Q(@(@<1TOamja zuMNqit{hE|2$GyR0=TX@kEw85?yBTbk9LCE0%qi#O>nmt8a$~NKn25SxF zq9!9PFeAj4hybGO1AklA>~dK1S{bhez1pEd?m#w)2kf^p=i^gXxM!4mz*gafYh69e z&DGN!1>Nu4PkQ7jZ4cRt)3r9B+hHaQJEXw&fzQP4sgf501&~Gh@FRX!{Nqoe1pivr z5-(Dks>IMd#VrNB`X9c|OL=QJ2GhQ)k4Zw1nC%6OX+SYi@$DhFqFy^>ys^U15T3Dq z>OH&L%roY}nsDDo9Y$lufHrd#rgi6=UgfFFG|i}uuheV&v85IjQ9xOS&Qwn){kZsW zN`seJ_DY$l+;jjW5_u|7xMU}Yk2;t19RTm3Sq0FA-8cGX1P?6gr34RQ9QaOuN#RXN zmSg$Y?q20Z*tMp}(cBP40G1?7`}cZ#CEmwi2|hJeY02*U#HZ?RyCF1gjkY;7&Jg{t z|Hm+sjG22&A^pTT_GyqblW)c2=?dgGgFwe9rRP3IoQCOq0@g0N_$vOck(KCf4A0#z z>=6x?$od)1k=pyY^Mz@F5A=eiQYRt{W#!_$R@?+xqhdN;4f)ZWA>)kJ@#!}BX~)0O z)t&TI?^s3(h8=Yd?YAWIExwP4<* zzQUYHFteuLoqv=2+J7j9M|)bP(fyL9CAULDO%9XvJX1zn?-ty)+)A7_!U2n>kTLUX z`7VuRMBF_!aEm(prkFfYQ2PAFTRX3WE)kJb>9QERrt5W;cm7Nj=nHdn8BsuCYAF0# z2(u-RFkP96x&DUQzoK-s`Ay>=x?lHSc09&gYjtPKPWSJIU8ZjMOKN?_Mn7`w{9ddY zEKnU-$U&Q?NUagfZX%i$f`2UmvE(wdA&3Df*ztPq0+96Z;5h>5nMSu$)QF6zZ0Cff zQCNd#I2ZPDoGQLSpqh)F<_27H4t$BSP!zyG0~5`E8-8(=WgFq<`{xi$?H!0AwPy9# z(Nnr(gx>a?w)gONlEh91h++hn&A&J`Sry~tI0{Q^MT2~O&MCJT5)Za zS6?cjUbw#y=`;^1jgX!o?IM)l!ZQY2Js^SLQJHm>kV8s9x+) z*_;@c{)4#xCa7oxYY1^{ayopqe~ZM0+d;tnmX`GPtOxI6IAr+PyMN@=hCVUAB%I&S zvcuy|eXvNWnp_rzyG~?ovTi^z6x3o{(&Id7>hV~wh*F#U^#DM-rJ_4uj?J`)gchl7 z_(s@T#97BdP(=!61< z$eJ(0@iQT&y()%3>AYkyL)N}UsR*gN$sY1pR=rYNdXt~n9li{RI;CP!-TFkkbqM}- z_Uzwy!hO>@(D8d8A5R8agR1&`UC}V3B28z@gQ=gFgB*OH18Ai*4Znl?j?h!0Ip)E> zm-mBuT^dh}-oM<>j|?$F*$uuN_XIFiDnrm-bz*=hSQRUtOe5C?Q9D%wjS@!9aRqr# zkLBo0cOSA|9@z6TwHDMT6!5tf8<~~KvW1Q)sk^MCvjFUVT7s>PAW^9Ox44EcV!I_K zdVp0mx)1n5>I}9VO241fX`{p*)m9+xp55h(umtv)=yIThJwV-g-sni;l}>o*WB91) zN&QQY@h`k>3rTM4eBnX34SrXly6@}^r7bF6$<8X0HLo6oVLTS@JbnIod`D}mmq|CK z)_KAisR~ut#?0+q)dhVvZKsae!^Z>J@01N4t~Fx^ zoDRvV1rLtr4r6Dh5&xiWl#BnlYGso&wZH_*U#C82d*f6I@AJ}=7ZdoRA++f!WXcvvYF~yWk#;uvioXBjh503+45vZ0m+4@%)jwp z{9%K=(Haz35}qUw7t=4^hgJ;kLo3Kzzl9zxp&cwqHGjkyGqqK#ey|X|`j1Ei|ze zl&)s4v{KHLah3L^0OcA@yl}=LBue6wch29_Oc><>hSlNBbRJj#P|xClzF`pO_Hc3~ zfftjkm0dSmedx(fR_|#63KS@!~TS@@k@ zdEBYLcmZWQpi?n7C&T4;ZWv2?e(1g`TrZp2tbhXlroQ}%*RKM7) z8kY`ROEDj?>zo~C!F-9_()_q!d+MWgOKsM?@XjNB^t^jlL8sD|OjLVHAt|zXE(x7W znx2he;B>u=D&!P^1Wc_S{0ff>R1}SM{{{jX*!?}_F6jYDVPSI@Q3LQ-U=r>!nf8Bk zAO)-qq>7{gS`)xx8Hz_wAyn53)K3r8jY-I`n>1J|8qG8-k;7il0|Xk4^xVP08xM{7h`zE7LaxTJj-Jb< zZPp8=)?Cr@2xk>bnLclXkajw8e8#xqVD)Sn@PujR3WH4p9+(t_dh?GM9yl!LMn&-f+%gRxVIx9kxWnGjA^3Tc#*xO*HG&eYPR@`&70 zDq){BGYZ;yT9?EPfE(&Brp>wI74jd^YBgwBfI$?L36LY@+dku)TmmO}Zm1n5!l|(| zZ~h{D<`xK=%UXz{&IpPR!#5dznI>V`xMkKD&L>0>3j3)Gg@D7~;07|C_~)!O24G&6 z(CkgoIw#0QhVxA@$&uUU@cw_UREkb;bq$wr3qIn};uhUkLubLVngE9+5DhDw{EHSs z@K9D-)VJk%m^2Q%(j087GRor*+#twNW!2{2tr9Bum0{ z5|?wNJ|~KP8!p44xY^__05lmVGT+_;mR=yKNbnwD#Xik8O(&wrNRX%gYLqhlWQ7U= zfEyPjV`Sz*St`5xf@Dl<+-(XBg2-4~xVpoO-n(B~%#pE7KC?{uL*t|M>qZ%GpuVOZ z{8vkgk{w(Hz$!-adsMt8fhD`}W)ZYLl3}jct z20;Be9pEyCBgi4dB5FKdy{Xfj2vJq1M1_K*Y8@Ye$mFvf`<#ssJYEQ~;`Phf&kR_G zidz}Cl<>jx3g5Uryy$3+!Xyxm(EfL)!Z|$jev`L!E9Eizo2?0fQ6a1Tw(|E@;C~2J z_uiL8eqx37IOKV#7IDZ{lPY0_a=b7($(X>i0n*qEuMRN?WHpmivm$AE_=!tSQ8-sg zmH~9U@QG!eGtAwKLX@x}wT4QJRmsB- zF{MR1@}Ot2TguR9b59)F7^7R7shdHa~7Y|A%njt z!v_0a&LdBCGo;mH1L+dqPx?1??c{pA#Ho)>Yv@JKC?AwY_nY5VTThp_wbr19IcG<} z-Jh2>zy&|D-4SUx;uUz*mMO2+X+nHfVSRLp8gAzXiBTo!w<$|a7(JxI;}PDky%ndd z4x#m|+x2G`nkAu-kqxz!Ekj3?fl(Gw{B7kL2fYbKDKWX{l8F#ISle*YXC8MggG9-t zNq-pfVTsllfqG>%wiQYBoro3<5)KQJ-FC99K#@al4neZnuW?Qr;+}Y}{CU;2p*{#V z-n$Kn3X@mM-gR;d08qXsd+CF1`F1}a2JAo6>e$F}1t`hyHXR(J3GR;AbJ7%=V zpPdYo6TTQouBBK-?86{nq{^1(iWS!Hh3i;Nw3ko3JHZBnmtVG$YEASC&Z`zkQuK!i z_UqcL6gjvfG(Wf!$t@$jk&hB$v?n#)@0q@siufHDpxW1=traDD3dpe(CE;#%(E1nC zUukJU(cZ>6X1_T|H~{lQ*pq~E#ftp4S78$X=#<{~j2mPEadf&d55uPUC zxN}{H3QBg6f;N+WV{OB~PskIY$80qi6G>L<1N`VU3OfC5Y>~uQsdVq(JIVNuA2iTj z<;}A-wT>zeGxtzW&_&Jd&D_1RL2b=av0V0914eq(!JvO&lHgKiVCkDIoqOjYyH`m$ zr{Iz`0sSg#u}!CCZ})okcJRM^>P3@~T6l*VW$OWHRC<**v2OMFmaBTi@*+Xh*PZ5c zNj0%G5C8g?rVn$TQ}cG)-CZWmFsjz@e>PD*pQ%0>aq7AQJz$B~5e?dRfk1x%IC}}6 zeh9K)pi&E)j?TZ6;F50p;-w3R`&+A>m{DV}EsL7uKR+`3v`)NQ4WdcV-#Qae6PSuL zzQg*YMN7in*Zyl*+m~wTqi#*-1wCh@MC$4nM>&yQ8IMkSTQ@Yp7`B@?m;FQtBs5Q5 zlSVM`Q3dZO`RVF`B^{z!g>__0iQOoypG80m(1GbfnSej{r(tRglk}UJ?e`W?2!U#O zne?>H@+~ZDTnKGuUZ_Hux=;04ilbt+cRF|0K z|1I*lZ9bAtG6ykTxaaL1e@&S181OdaqF;5^>;h+#cW<#{l0g_ih6jW&`?KDxKlo!- zfRVnKj2KkmVjWbS(3DkuT!>|fAzn^hU5bpC1@&OUuH_d`SU7CDQ)OI^Da3GeLnA^^ zP}Cr-g6xc$E!S}0>j4FU5`0w}Ddp{9sD}`T7fxec4i6;U`k(W-f*~Nsj;vno%H@Pm z<}LffmNZBygRNvMZ2V?1yJ;AdZdMg32?f~kWDM(1wfQ69ApOltRYwwQcrE^;Wosb1 z)uxtW1|knBnqO^gc7ZCt2=JPi{UKi#+f9ezvl}4n)a3ImzhB|%S1gWea7myJRk|TMRgk zF-C-Lc8^3jB*qfRL4o@d5+Y6pPgfS}NlI8ppq*VjCkWG*k`KU~mH>HE`Va_0hBN4g6yiEAN%}jptT?;c8tLxEJ0KeEo zIzFunQFis5^rBhlmpYza0QQC(XUf;(`bTh!ic7T~R`4QRN>7vLDn>_XKu(Z83N2@WVX$ zLjO3iZ|mr89wSm6b4&^?5o~xCJtE;7M}Es;ThF7t0&wIlDkmrz61$n$2NMN!h_JgV z_ETNZ?7hpR)eTJ2(kPCLW}#Qm-mQBqW}MV7$X~ZvT(p+BON@1Q+J?~jCLj~nn^ zvnE#=6tU{8;FAo-r&xnH2q5OmTVF4F7P*)1%FheGRBBTOFKz5Md5NwL^wuX&unxX) zC+!`=Ho?{!pIHWZ;g@^V6D1P95KxzvpjgBsc!i|PaYFR~VoJnEI<#Zy3W1x6=re%% zj3L8fow6UrJWqH>O%@>7Ml7f7RBt)!BdHH83(C?gHGEiRlrb<+&8J9#m*Qp}h&H$ong1s`|gxamYZAL|hJ7PGW2Dp(K-`> z>lwNzP*u^9{e2dNyzZ*@d4f#pU#eK4 z=x?enhRatB{zM+L3$72O(tRv*5knY^5dZUlOE1`G3r7Ibv;*fmaTg_$BuWH0*+|L; z+7e0!&$E(Q`W9ZmkUU;c008Hj@$}%8PaT9rT2t@j_p= z;yb*sVX~h`{KxCRhZHO=at(bSk{l9_+_W*UV0Xf|5TY=ul6~AI^#I%VUGa$?wa;wLiReKg={C>8p(?^VC$X`SR3Krwd#Df5t zPAZ4Yl)ev-v-~Ny*Mfh5g68V3CN^Amo8T3$dZl7liQS*fuL(uenJ&7V7u}xCDwa4c zo@I)O!XQ6VVlrjYK{rY>8$v;nPkE#>fMcGf)cs@sr0%&7*b74Ki4DozU^sbg4y)=@ zEW=i~M>=&lP}XaxFTzeJc>fH>aZUjE0?yD%Sbx|==0*;idC{?8o2QVgdcLk0 zQO2Rm-!E#e%^ntnTz1Ts(8KfdRY`8w>SoDreII%n+Zlj=M#^h#S!P#W6$7tHOg39W z?Qy5O&_K?}ijwe0J113_=Tx^`85I+oy#Ryc8HB4cZ@qZ0OY1Nw6fjM!j0_zG%n0J< zfUspA?<+|RCqUXk%SL(z!ukS@nwW=eJvz#Z5aIgKci;-p8Rs@hUCM48h&9{t&RHA3 zDW_@5H{ZS_kPVhtx%%b@%b35A)o>4@a@xpD#Hnu4cG==dVk zHX#t46a0+>S3y|=lxQlRN|xF^_F018w)0 zQ$!SflyZ7XDPiT+=TOKnm~aez(a>g!b@jw;b%rA0^HM^x0Y{2O1Xw|O@hLVrF7kT769f2X#o#61rN6=_9lx-Sf zA$zqbEhNiArUJfAyd;io{cN{jkU0EarR@014KgDb3wl z2=`4ZSJSL|AF%|SY~^sBwx+O#Xw}#V9XmqB47~D(S#zr!)%8#F8w~{UqbbZM+lMRL zW_-n&qs<|~*|*_om{|{tSzGKc<=q-USHKZ0GqVI#@}PB zzPW;W5j;HHX6K>3+Cz~d*Jj0ZV_ptlwjm5!EXp=#n@3xazx84`_4xrc+J6m_G;X>k z<-^D~YsI5-LLgA)F{O{+iqAhc(?W)>`Nm-QzT+>%3JYx#bJEptaGTKI1q8Z9B4&-Y zo{!?JTuCV{AaiDH{`qqKE#nOtZr*O)|OHIEDrs=sro3Yn~?P zWG9N&!V0rO9iQ}}VTfM1>*jwV2xI)^!*3TG+SC6?sM^BV7;!o-2)Uv4v|8kb&?xu{ zh?#-yqb~mgR_VH;=O)U$|NZZ6a9R0gC0Wr*r`tdIak6u5<4dR63-p|PtV+eJ>j`5> zzHyyQ@kU0Ma3!MA@A!j>t71k7&n)E!+z}o`t}6RnPJlblZKS=t?HOKJiVXK40!7Nj zwF%z*d}|v<-XnX+lS5s~VKsxY*ucbKjn9Pt3bp6`Jqybx}6oE1}QgPi*fqN zP)8YeQw;d2ezpudp2{;dr7pb&JYjl4YyV&OldHt8K}owF&@#QQV)l zL-6O9ROOxUEF1#<5Pz@6R;t1TSl&dDftPn)!or2A@8-S*-4L5@?uJeu`K@;@zKIX; z)VM$i%8g?J!V>NT$9f>zU`|TZ_@>>}uk09Z<;*0@^_(lnmz)B(n&PG;s)%K7;N@5ossAAt^WIXeET-qn&e-7$?37^Ek;H!PbPLpxXo{iNV zsed#&atPm`O3@IpchhT(y^XoBG<)eMi_Mn_8LHv7avzRC{W`+hc$p4DYUw_f=Ru?1 zT9@mke6Bd(dycg#z8?~*<#0i7u(Ru+>^H7h@0{rXkZ26YH0jYJ$I`kD@CutA4achE#;6nv6+^Nj=nQ z?wzu^Cdk#?%>IRG2N$DHKqxtle~%Kp9zb^>m%a@OjMOnL7jk9m?zWl@(sdr6!L0!p zg*%>SAg+7BE?%Eyq2NHEqSyBd{0L#)7S)753A>FG zBmMbXA=7w-tK#|qS5iDq6!4okO<`GJHw}7SQIR%&=}FQE7xaZ(Hqm~}*~NX;WuB>A z|FKSursKqwoYX4?5qBA$DMYON*>Sp08xFae6Q(q8MVocY3SrETFr6qOF;PCK$oDU; z|DZ4Al3!U=Kh04bpx70DWVSearYHU{3+dE)BSW*}kojBKu(zT& z2&KRQ`N0Yx_VacP%3^&VggxP=DtWoaC>QHM$DB*_glCEA6KtS2YP!PQP~%AlB&f5n zO$O9LaI)Bg+_WZL^Q|8qbqg(pU-BP-5gw(FZ~X{Tqs23)BIQP~wmnNPfxoBf$PHw) zm$tZ-SpWPG4WPxRy#=#udao6AzHYp8nPrrwI8%m$dGSBA_#?9S3yE;D4W4t5Cd{O` z5-9g%Px-GD!=w#OyBoAM3?Fh|NKdKVDs=J>LHz`Fi1hvEz;uRn*Juf&RE`SeEVf`l zx;N|~3L5`#|@`LbNRpC;uq9Ce)$X3sSho3PX1$0&ghhYsp znShFj!#GhddtnS4G;@P$@4vzQ#3& z+3?HCzLb2%D?ly$a;3mUX^JfqgL90tU04!@;h9g?Bfp11t~kuJRkIVc;u%)plsW%D zGryl<$qPXwoMm|eWB1smTEg#9?7FTBRUP@t3z1%X8`fjZ+9S{t&eDHeomV64dPhZqxOAko;8tM#eT`V&(8UT|sk_JEX`1QgL`pdbHn)YB@nBahu{? z2srBmP73c>Q>q93BqZcdGDv-pGRt_Fwl#tgDYKDLyEY@)x-pxBH@X}vib)-M?#@<0 zz=Jt+rU98}|2oKTJv$LYC;hTy3gZ?qK(8iQWdg0YUQupF!49)h$_Jrr9N~Q-(vFZz z!}u^j9~AbFy3M2e?(Fs&Nke1jWu>1WJVT?yblq-A;lmQ3bG(|LT8S04gXpU{TuXNy zwXk}>J}s+IFzfL)_ROjz0F9=E=b5(CiSBVlUM?Om67liUw_W=d6v42MmYw;=oIm@#g{CVN(Rp;_Pm;bFOe#8;W>)?Hc32 zUl&ET>xERKm?azPbMSV+N7l4?@>40QoT_3M%Z!3N{?CIG5{;gKHXRUz4Ej}7=VX8+^dF2yvx zVoBNpZ!+=$S5+2*uM{knm7)5Da{&L<@pyd$r}g6CfvPkcMk+>i^G$FO*e9gJ!)-HV z^EcMd=p*R9`|P5B+*UYue#Vxz+L`H|oYXww3Jsmy;YHdXs64ELy0uvq9bI$jp3}UN z?RN?R1~UojRrnOAM;Uz1yZWCGHScZvOx_oX`|R5nfF95!SvPT+c>;!&5bV(M=LiZe ze2N`cOF~_^JJ+A`!ji0d!i9=QKx&Qxw&2}mHRvgUQVlZ>S)d$XY+SF58!0WfEC4=PoE;!Va~;S+eCTyY+RXr!E? z5n(z&uG295*AEyPzze4x^7sY7NKp?dX!xiSYqh{UQQOJURqFp>-W!EuYT=(Pa<_C@ zdt3t6cW7X7liCCO6@F%as!$R@q^XM%p)={n1UmtDVI(W<8vB>Y>WPcOrf&GA|Ic7! zHXzoa-$mTnId&W-H?OF1$tZ(2k+km0o8j|T(y>`-w4s%UWosS#;F0VShWj4LmUrYF zO6r6%`Zx)QIUiGvBct<0OIWn45}%`#tH0>@#h|}rHe@G+*`;-1@eJ-fvnO>g)tz*> zLT*D$BQYLTCa4v7F5OR6JDf@=y{yv#UPNp!6IgOvsNRb1M&tB+?oumONEp;+w0o^8 z90@zn&&Q{2NoZ9GqVqw#>f`TrCmne4R{cZlc6ux?Ax03EuGXX>QY)5_xb^CNuG zWOH2lP#kljFckI?)?>4_Y3p;FKAZ6HMm7L~J`lcH8s2z5gLzL{^PXOp8BV5w{YM-} zT4n}3Vet50w>88iJ>S<))EkL)jsgX4rzel^;gARSvuvzAW1R=o_l$SKFkmG4Wa0N& zjry?fQnc}8mo!PjrzL08v9$EhRF)~HG{ffswwEJvTMz7RAMCF}Rty^vz$<(Fg)zt` z=>gAesDGd|Yp|*{2!zJzoqOfKFNAhCcGY#FIA7h}?Sur2@hp_QA-)T)MMRhR>AE-L zj;wDEKFwz}iv-&08-w9HP^kkL&_O-NqmVZfMLE?)F^Rdh;K6eaR8wIgKFyVbfT)jz zwd*1_iNch9+U9vqg1y}koaUq14Nef(qr!DMvWK+_5+k@f+RADAx=5M$cx`K(;dZ{8 zv!_aNH@xCeK;}Q<=o!mBp^0?T1TB`eGAkR3cS=iN5(B$O-0E|)AphnqpUCCg8ng03 zaYD2;ZUkY1J<$*fvHw+B&D^3lM~tvI71MmM>xCMqO9H?~uy2&N$X*0(+prjpVqmD6 zB}RinE<`uuEuygvy`;+h>0W{Xb2CBUiF`or-uNL5OpyYdtVlF+_qdzii-!Yiq$?1x z4yeYs?xF%nXnZ{s0mxl~Z+b@Y;lK6O`9a!Iu^b!+>#>L45A>P_SHIe(ycKuScP& zDFLd%PWLTVZV`nwBb#vh--C_fZ~Jqm&5iG#2ZMoV^@0BTDUK#67 zWDIYv;M2le-#)uglAN4(_R-o@>(+vTt0{k*rf6mtqHgxHzwP>w?8{}!!o}W76(hGl zom0syp}V%>PUl+Z`rRd{=blwxbt;B%`cKT zZ$$>AMe)yRd_ThoYeJLK@izP4r^7?^B~73A(%@-xg59#@+M{0xV&=`IZq&D=gQ3Ql z;8Rn?yZk#?8N~$y=Y<)(K;m$2q!X~S2`+mm{`x$BfBT1#D{XD<`RG!W z=8uCnZ*qc9Z3`s?^NFHx zy+EUkBINfTPGy}stj^_y2^josg^V3!?NAhP;u$m`XJ#!GM)~0m*YTepX3}Tf5f|AG z6lpk8m8x(38?15qOTe{1}9yiU#-%pM2(>3f)J$59lBKBYRyQq zjFeo2Ei$(iYnIw)DUL9n9qKbwi^{>t;t8Ob`F?D)KAns1G#QNsj|-EC zTEq01QwMRQDons`2jsIQOKS{fLuIz8#L_dG-Zqy$zyUCYfHJ5DWv68xG~qsSZTC>6 z6IGR5t_?H2fXpA!B=*vHlul1b6eo^ik6>mxRb?IK^1i}<+K0pM*C4~x{^MY3meXGI zoJWs>m5-^lwJxJZDP8$=KU`(!;r?+IS1HjcA1Zc9W*~w=f`)GbQ#1ST1h0#Di_}D* zM&KoZa$wFGy!iqZOCusoZs{;GI$~5p9(Lj(f^;_L>AyNnqA|$GvAo9DC4Ek+gs1fS!`Bi4?gVqhKh%?o+vamSRt#zo4ZN z8f4$cSJ5k7U+dNgRh;oTgx0v=au=eR!f$aFTFP`uo`bH@0qS@c8s|O-9;+h zA&H)8EWt}Ur?SFp;go)f<-!a$p&KvDqlgE_&oj8_>*lC4o7ohs2g-!hCyyAvz(0lw zI-A7Sq%o@{+yp+MLvd(mVAB<JJ-N?VYrY|VG@}_)EH{r00U$|mdWqt$^6v6Z~v`NI04ITpA;MBTV zna0Tx=uzNvp$#=6?cU7nH!0(TN);$*rRSWYwftT} zW!3J(C43|DQQF(9Id}y=bt!po>j2PM82M@r^Vqc_t-8xEEg$rsNfF@R;CZZv!j#$F z@+0jzG&ok94}RVc|JbH|z|S*9xD;mr32cJ0qjJfdK{TU^kC!1^%|X}WHLO*z7f=3R z7!)wbI^8(jlJnVQKhoNT*wwcySA+|sNT`sUNuNc58>*F8--7yTXd#)tW&e|!qUgN` zXoRXSjY7VNghW29mU0P@S@uLD_H#&{jtQZ7O$M32k5HKzmB(a88VPO~g$cwiZVfgx zkr^95$SGiXORW@5UMKw}vZDO7A+)%o|J#Z%R8}Ib6lu$#{ zfQLv!U5+DBy}Drt9@~J$ zU9eXCTd~PKJVAL`dxX(hZsEhCxFnU zF@+*Y`q)JnABkmID~(;w444s{7*YJl{_Z?b5s}-Kae`qjF6I)wU6tAFG~O0=>s<`r zEp=Er*_FyRBdM;9J0WeB7BzNRVwv$pcN<4AAab|<1m2^v6kFYp!9P!1BB`eb{}lBF@| zOMi_AJbRA$&%AU+b5j?W+24GZ=~&aUh0qw^;&wQqEUQ%x&s2j&A+2|SiDxY86Hk(01=M8H zjFH=t0G!_+<8BbIQuY#=Z+#$H%|rxz&JzTpLTlxYsbTsFS*PQH4p>h|_&njfRutH{ z8(}4b`_FPZg&UfAWL~gHbDbb@HO7?DN2!e%5Bs6bGFyQ(xaQ6S21~LOxBFaxA2EY0 zg+Q^Jb`8^B>|f3aXNe`dX)v+U^7f1Ntor+8w}+4oL`mj*9iHs_Y1(aUQwW_Nt?+~HGtbyEQK|GrOt|Mt1%W(G#a3gOeQtlg6T5%p@Gk=`xMn7JW82)9chk^@U%?54B zU*2FSB2pan8Cw!V;{Jrd@FpHb2p30_ej*>5v8#4R+Mek)0r6e`dWeJt7!JB7m$!EC z8Xxm#ne+wUtCD5uN%!`a23`E1A(z}!VhVUgxLujhH(38cPvbRDJy2G ztE9P4|Fmnhd+x9dKu7RGed--qA$YmC4*c()R*#4gi6IwHtVM2P^z+^-byyIZ88QXr z@Qe~%ecNrjPGB{`V(;lzgPiuhN0!&jN94g$f%=9Ru`t0)k-XhW@*@Cg*=b{E9I3%! z#e)318bQ4!G6eO$sXO!|S;*t?%hUw!P!$>pw^cp!7%~0``Xu8Ie|5bc!bbrD8Mj>+zXX`6i;)=67pj$W zOE^RBVFDugdnAw^F+8&UnB_E@Hw5jyE&ie|N^!5Fm_xt#oz`YU@xWh<|7Msq?wCQ? zJz-xlG7@*ai<}`iw8_3?25}*|b2h3vL!LaZt>!g$;b(KoF@HyE`>ZSJ{uwW;pf#@W z1aSxOnBA8f&O;(3JfRtMj_b%B<~z>h&!3nI%%yTxt}RPr%(0&YT>*{PUWds{V-Bjo za-U1G4#IP98rbvd{#z9ep7OC?s4ZARNz^1GT`^G^Xlt12st4PGd&~6m^_E$7H-)1To|^G7#`Ri& zf$&lzVSGNG_>f9+68elHL7brcmz21tsjxIQkW=wW<=Ws@-~8=7V;P&VWs-EW5+cIH zRv86MVz<#gsF2hIe~p8Y60j^oVLYc67#hrv&7OtfQ0yPRaN_(G<~m@(x8&}vQnm;p zp;W-tZZ%U7F(hFuyZN{L;?E5PEcYSh4gSRLcmZ0?2x*TV#YK=mWgAriPe-p9KZFym zwX`#VJ9gWo|bg~_F_SsnB?cr5sSCQ_o zI%-?R*l(2Rj=-HAZ@V`&)BN(}LVFTR9AxXvf2=#J9rbp~4J6vSwl z%XE3WM4hASRjCEq_CF33Yh!;{RaK}7cB-Tov{`MprY#5q-|U{1II~P_Zgu$*l9Kv{ zA(yk$wo*@`v9(YPHU+$%k0Gyb6c5wI#orl%_p0U_+@ciacy~3D?V_J>ma_ka>_?*yiH46%u=`I@;(aR~7GF%MTqW5h{+$z~8zb zDlRxYJRK~5xYv*1Q&(;F(tF}Vb>*Kqr9lGztpIe}AlWN(jDwHE_>|20Y8tR@sD;02nE zn?XSHr8XJPguG?fR(Mg_uGqN#E;-A|&ZUVkHL{cvr&2xUb>1>WZRb!UJr3Szv)ZNs z4fs=jWw}A7=8SHKzON98DO}r~Vzljb8nhWC+QBI_`h5sNjb<2JO70dD9$adv2a=Zm zilpH^(?9lx(nohWzQT1tYMx~2oI)7 zW*t{$G7;0HN6cNFtn(BvA$p#<9y5y&%o@Os`c5!p%&E6@d=7{ZhWYb##9uQJ8CVHc zJxX(?jIOytkLpOQ5d~5k7rSLno57?*NZad&YWZp;$e!xuNuP2?AR^`%i#N^X8C9{s z!xDIY_T|b+k#NjrU5ty&D72;QD8A*>_C6q~92llb7+~4u6Tk}3JD5fLsBy&~e%z$H zxOnmxbz3I0gos3Z4dUlnx8_WQB3ND>WU_^a@Kjmhs5awidAnV88NU09=(HNo)dZg9 zw#^6lI9ev;#VlE6#p66hzyJw~6~>=t3|rdAA#H`1O}*0se}}`7Sb_>@b`H%=>U*&m z>d4BCQu2TCO#_U!L%EZ?)xu_oyGuu0)AiE8RW_l1zqr9BQ4J1d#S`rc#)8q zm#ByUb#0%5D#m1tELDi$nj#o0n*;|P4Q_MLb+H!nF6&!0&OGk039mJsOdbN_`V8ey z53dBq{Yc46)IUHs8~Vh)QjIii9uX3&dR+BobIYfMA}5mDB6TTcQ1$YvqRD zZ>3PndduEsy@WeP^1@ZJ+x6$36&E z4wX9r#Q?+a3c2#RMNQAG;uY>IXZwImGh*apHLKBbqBA#`PAh+gRn{gO>=wbYzye`V zo0*CU$qw}@_!&NnqT+RvkSz?GY{#R;yH@ts4HO~(lD-l?zkr*^6;PU~n+{9^4JM^c zehL_;R0bdr);OX=69fqo6`YuuS(dAGQIm9H=D6xS0GAiLX9hM%&C`zSYZsA9i-YV` z$WCXcoE->-R<A+c;+C3Qw(nE%nct~UpVfxdE++4$aCEI@ph5S#ll$KyEo z3f#Zr6Zh;9_pio%|1q9g9*WXuiF^I$5Pr<%PZtg;bAj(!-!JuJas7Kz{V;&IhHBob zwSmx^lIS}QRdNd;s)9D;D_LG}Zpn9HF&@domi4n{y!VtB^t@tO(bO&bIR?OF?bZt! zscr(oAM-TNAv4m~0kMs^^(92aX6MOAI@f=~vXc-7r%@NPbiW+)AMRqkr}*Br7*l$# zQjAJn8x!7}-q^zffr5e5LR3PUEvm*@<--;*ySs8)cgNM+WL-2(7NC54{9M_xQ_1>_ zZ$o^TM1mcvuc)oxFDm2PZo>F{z7BI0gL0f>JPj{P2Q@TC*ZdM)a^+U-q4CUiiiyn4 z$EcTh#OqL&Ft()()v}+tmGIzeGC*f$Un@s<%&W=_18+Up-F4YS!gYcgz?lnO0Yq*7 z2@V;_xF|#t7yP%dStS4LkW;HH#$8_-+Nhpw>jVb^oR9lq^Ki}JKe6U(bG1`v|^SpJ|!A(Co&UsacgohtF^HH~%0@8K}humttVIR{dHg0D96M!hf z284A@Q$78SPduEXSBoj*I$BhgR3tsY_5)As2Q{oR6$z4ug$v(4UkJ6GOYD3OaN(@~ zqsQUo^xj)5QVPql#Sg;1WlZPHK1K&44oRRnCUvWgNQQZ?)|BHmJpGjYF4E4?cU#q8 zP<;k-xn$6?BFuxC5^MYFrM=^#MAYuUb(1zM(pEKFp(&v}+v>5Ra*pq-wk12m<>)6% z9FUZdyf7&RA8>C|OALdX@Wc#eJwBZtN@AgZyTX-WWZyn#T4-2EAO^r#4ukL;M#>8{ zoLGZ-F7hN3TK0CA63uMxCK-LwIgKcL=}D><$Bo0u!kb4OF&zKoBtz)vPpIBZyC#+Z zu0e|iX`R)@C|dXQZqSfz11N!C8QP}leMPrb+rlG8&k)TB6iZ0MF3h>?tA+S* zk_$9^`lQ<|s$c@Oa~>_t;Bir*Uu;mNcT?CVX|JUZTrD7-PQI65~-6|a|XVHmYd zo2(6dnfAC-4me69($Z0c?xro%zOe>}SnP**7UR<2YpiaW!xkSFonhzcKV@yV*_kNRYh`z&0rpwV-ObA27Ep^8+aP zm}zsa4r#vVoxsF^7FefY7F4;s_3$)T{3!4ah)s8J?OrV&fd9*jAb5f@A>_pt14QPJ zRaAu*J%m+0bIZT%!Ahk!PI0r1Ga<~dx7O1D?b_{9&%@&JkJ$Lmb8$u#;X~774sR}O zJ}%#1*A%LS9ghg9aM_5|EOY8nn={x42QREV8)#F*5jNhw&%&;$@JJS);0NoYn(BL( z`XC2(jvdpcxB*ey!$vt)0}`Z<=kjldA!pElSG{ z*TDy<_q|R5kClVtyDrPvjZDxOQT7Sshu5*Tkz zUWrUfJz}HnJ+)Y@vh{?!A^Tf;mg<-s^|+n4pygkc*Oa4c6FjV^=OMoe(qPTuXqiDG znlP8KzsnL$PZc2WP`|~lrkbD`@#^F&B+dB{K$0!ws){U}-r$O{<0DMWKi86rX7-Lv zhcOo*)W`QKg|$elm+mdAqAAEe*ixX2R<3=gP9^uRQm@5E-5v_o#lQdvj!L4>m9yBf zSH-!V9&126^`pJ${i&dGSD{jg)|Ghou->E_Ei>AUKAIH>8iYHS$3qu32}Xj%W5{F@ zRB^?)gAFycaNtv^%kh(xOnq4(<%+-$PlwVycxkYeii2xNO`=#pUY-_OE_g~f)0m_4 zkyn0|2I3#Jc(E?p1J?ODscL~E?Fc}5B{V3dpXU-^zI=J@aeB|%JN6{fV3vSowYYQp z7@Ds0ES?aAxICIJ{D^~Rb)vkXCP(CxVwcmW@_PNRh#*%YSp+T7CF&STbh0#@c4xG< zCCzl`{}|qyx)U?1w%hb6R1t5t`~A_xHf1y~ZqI7yF)zYKn^xtU&yt=@VWD19zm-B6Paj6`Swl|yfRVO~J**?h z9~ONPuC#cQQlOV?zfQ-+H-FHV2{MuEkE&hyO)!RaWwxZ3(N-_Y`p0TNDh_8Rb{Ko+ zjV`xmQ8!%C5QR>N`Thny2am#m zU)_CwMG$(g4(P2@DAfsKy-ped$CY?D@SL77FD>$Z!FT;a9j@UJ36*C%WZ}#S7~Q{4 z%z$OCH4M)wRTCanoP=Xce4>N$)@QmJ%XQ|*iX@fpU@lkrX^US@+Qr-)cu7P$TX77_ zrer$3nw8G4R);6FpB7H~aVVLuq`?;$Q@fn0zr?yJJu0JY%;vIl6j;pU2M0mf2z<-w z86tuwP9Yr(Il5DE?iR(*!F2mpvR!vvEx%V)586&;OX1|`u}DaJWR7io7$cscL2}54 zY)w!=)uRR&1sgP|8E3rq0%t&XR!bZf%Mv(YOc?MMmzgXjp-mkuZPQd5O=E<`)~f|P zW=9`;{mm(Q9@))0>JV}W1F>1hQfDa(@;)#)+X#p4nres&k8Uxg6Hel5Fz-?T85Zb^ zdyBYKM5S8sK0$+DHs0SOE3W!Mq$KWHOTbse;`|6Ws!C$hwR&k1W}B%^D*Ihjf$a0u z@Rw%-WL({*(JmPNMx+$O-SW67w1ZhppSWSet)|5g7Fc*Z=EtL(!k%7rJ#f`oNWl;Z zCYc|(7-m2}X;VLJyt~l&}XGhH_1Sq)m*F=Ay=M?slMGN zVSt=);-WK6@gE%`0^=1ZdSRdXRkJ@Llda%*q^bMR26WOU%mrqa(0$JuBsHxR!ATS# zK1Gl<-1v*2&n}6YF1v?-=x<-C!RX~>LsJ9&^uBW#J9a8Rp(RFg7vPa7Z>ry(E>Fkux^jBUZun=Ie6>>Qt}w& zTM-&wp)QOxtINJ2FZrXlJ~77tT)3|Z;o4}`r_n;DY?;*%6;hQYK^%kK>lAio9rmE8 z>9DUbeoAAI$=dd~F6eGI+iR`DyCTIfaOF-$7tCV05j{S-txEzW9{-y;5{c9Z1gt2L zMa#Z)J`#`l)ff);97ldTe?QAW8#qAkHP;EUdqu?ImbAUq{i{}ITG3@hMpJZf5s{Hp zQ^abp)@k8Kkq@i~o>+ycuYVF<6_2h76EXu~Hrp0?mJIH&BFt9E~wsF}346(`G++hbzPW+qGhA zJ^pdKDfgmd&ww*1VB9X#tM|(*2e~R=g^UK35IvVdiznU(e2Bzo-=-5X zWT_l9-{9`On`{!W!~C8&?CfhlmRq>ox4+)2{k$3W39%^%XZhYhKq;nn~iHS{Bw zH*NtAVM4>i01q<`$z3z4rL}DhO*49Q%`K~|9AXy;X)0@({gV*IPtUcH)#80`!GgyY zvOn^aUfTXf^NL-0gD%8FzFr(s(qA%>%_InCOPBf{9Uz{Cai8m_#BuFOX6IW5l*WA; zzU_G=EJVtkvE@svO*6*LI*5^b_j%KZ1TqEb7(_B3l-d_X7oRy}a373=`}Fb4Th>Id zhHm)JNo#E%=N{}m=V%F!XVc8Ju^y#U%((BVEPivoaFkdD5_ZVj>h`XZPxi2mirxw% zR|0WP*v8~YqzGB-oh-B6_%=WzQy~{9HkpX0`}whyTB^IXbz=jWGiyVr_trP=c1v4Q z_)|{A*doR@_CKbc-TP0N!yg#HZ&!DX;4Y$h{TU^Gp5KSfIXK>e75(1Y;zCd=+WI@I zgl$dXL&j7r3=(a@+Npg#*Ki0o+`tUFVbXWJIGH-@Xv-3=#k zvsJ{OoQ3&a(-SkaYC>(6vRrY`1&|ED(B? zr|XpI0<2x3mkPfs@kP2Df5Knf*P`5^B1QBsWxbyu%4Sr1(Wsd4+}$!KtuB1 zeUmZ;y{@^5x76$IaKXq;y*R`+2tF(OO>nSKOPk-((?cgghpg$E0COQkaH$oA9L}i& zDx|Am1XAtwxiuRX^;b<5A{6yEEZ$a_R>>pO7W!?9U<^8m+SA_(V`KyjIlTHZdf(;v zN!00N>9YEH{E4_k)XQBh$p;_y@#EQpgCNvGcrVUjej2OPUIZZsDECEs_m0zOKTEo+ zj{OdKVA5I7oGPupd{tX$wA-u37DEUynpSRa31cRkR$|<0|1s1G;v2wRE_Pq%$T|6x zE4mID&_F+dIWqc_+1Uyx!y58*K+tY5Nq)(;5O9sUvKv!l4;mCco73EeKenSg_E}rjSS6S}^P%UGPz&niaFm0D!R7sbP9gNQLs>!gnS_uVjK$_J|#geq&J zDSRY!W3frvVH{cF5^qz8LvesKvD*vHL9?bna2hiC@hp#B@z4Sn2;w~2{*YwLS5ZV9 zSAAnH9ZCA7IOlC!>X|2&X3Fmc3-G=bnv)EZ?qI5k(>}Glg9uZk8&t!&4J zX@VCM@=%s>baRLDlCvj1bG1;$_$Oi8PJ!F1@Wzr8y0o>*ZIlxR++^qF8y-Zwh!{K_ zU!h~cN$bg5>%n=5B5wHCl0YW93AED{vVcdvSr#4N+TpKxGe+PMOw^S72+oGD}^`Wj+LrAnPk;V)_9Md{h66N`e0hvSUD z5)=8e-iQsFXo9alwm0LJE}bOwc9wgv>ewzH%|{)O60*|o*Ajtg4 z;fE^zDI`wc6ZeQlfQ3A{BqmnKjKIuWq~gmbPVy-4^aDu$(7>7){+XCp64wszG0dXN zakdsvF31Fi(voiLuh}ra)_EG;Y#*Qn!h80h8GiNVe=D|H2}lPDwL z(x!3bI`TwZz-7!gx%&zzOapiUxJSN|=OK(IB<4|I3=l1bn(n6=#Um|xMI7cYb%I0rY|KqzGP2*z;5u7|;g+J5#cRdU{ zXT}|if*x7KJT4>r*+dQM-)-jpYigRfA@dUACX#4;M!K@nE=>naXvgeUcYh7Ni2(Cq z25e8EAN_s~#4KFvD2x&PJl^2bJ_!MRNJ4~s*-U}T$j#sQjC-2-B%0eA zlmu?Wsyvt~E-C>&lwM;X=3!OLvQOBxS?Do4_ayR~JyDLvwmV$QH&0Fd_iPo(mo^YW zq&l2sZ)#A?tS@0k!vxkfkqHH8lDs0J)B-akiN9xPx5~&AkwNxebWzpThUJs~ZNO3` zTb$V1Gu|!Wv)~uZR_ot#LQ!Llx@}4H+$S;!I(HSaITx;b(s`EXa4Y&rnttxRh2!60 zX5p)5p>2L*j&_mfFXmS)MG_ z%vw-DKp>s9@qeRvxWpMBl;*KpExIg!lR`pQ@lX%!jjqm6VJyi~2DpaW-<1N_2jq9s z#!>${Qk?rY00qw@oYdvvy6CDf6tYsGQt%HgZTgh{aM~qmKdKkS4A{%DiAoA5F%ZEX zYQS+S5NvYI&Z38q&10O#Ot)ep=!GsOOxma29(P{*-2|r0VJ$HFsh~H%2xW%CF{3x7 zbm>=`7S$zU@Bm40S0;jpD#lY7cK2kV@;E{#@zkWcE@@a5o9WU-er$q6-$|9F4>NxO zBY~1>s=hdzZr{)4wL*_A|BW1Dnv;sssRs-l7vm(VIEyOIc2U9&m<^9Jr>EVF=*tpx z7?`g&^ly+Mii+AK`oHy!k1HhGVz!icoPNDp9G6L+3VXeDJpTlRxQ>gT$!PIR;}_FVk;}XZE2hjbp2V{2jAH}XmXzR-a#u=U zDZKUv0t*K^zL<6nt0r6XH0>jx6BxH2vm9GeK}44CDZe*SNxT67(?N4}?bPdoXzkeh zGX10E%;TuUBTiY2E=cr=?fegwdtp6DHQ#3La~;z)d=n}1HsXYQ{e@`Mg?qSd9~Zk8K#YTVoj!UgD%3UdRCye5Dl)&yfCF;{ z8-vd6Y*H9s^%Gg2Nf{NDOr(+K@9vRhCkc?!5tMgjw3xh9x0_{z!LtP-nUxQ}bE%Hg zAFFA;Fl5tqK%;KXW$VT@yG+FE3~Qv%r^$t2G&IEWWoU zQGruFuuBK=9?$Erau4&71maOQK|r*ODgt)BI^??CVi_%MpkPGmK|wm(Tck1h@|q8i zl>^+?0Kv58$kOc_J0f7hqP6USI?FuK2{=Mb66GS;wD#(%h$Qx%8f3QN)7ywQVCA|j zDRKcPAp03ZtX|il`Iu5Izrf-p)kqcS>;jq&Bwr-J4K-FLelM1;&P4(cFm6jTbF!Q5 zf!`SB*c*PL;Zsxu(btXolQ@I6B&Yx80!{I&DJ(PuJ~>UgAs!Ku-5Aa`{VS(udlQeE za^+MQJ5aR4+|K;Z7`2*`eP^~DGeV<557=PAX)@i@=I?I*|3twLA=aZ!y0@TbkR!QO z`odKc>*;<^Op~lDLnXG)QrSK})UYtF)9KsIY`Xbf(GIWgPc=?!nGu0H7^?!CB7aZ0ABucNp|bHTDn3PjhWTTIi?U-lP9KD zk-6G9oJeB$FI|gr#PMA%j;>?gml42FNHr$J#XT`MAf`ya#ooru6oHb`=Rc0O7!=tJ zw6ndEJ4+nMaUk}}>T)LvtfxLT>#`Sa-bhGLWMP=G=wgFUT0ExfM>o6irRZ zLjEKgU@jBt7uk!nj|$q)LKrs=d9@f_IqhEI3#-Uy$}0lO?N()Ya9b0LIs@tlUV+&e zU0vp+#)CxNSE^gi?7H_?*{9@d0a@e-ZQ2Wux)b$yNL`E!-UK1!(I-{d_gG6drQ|6$ zq>d9?9qmaWV{5!w)yK=yB2A$qRCuHOZaRJ@UrX$SN$^`mh9~7e9T}mk(IFV+Qmp6# z*l)k96Hbo(S}rxqwzhfbZu4;AC&dg|xW)pGo7&;lku(26Fku`1-$dXNi*&0Qms8kT z1(!FrdgdmP1q#3eI_bFk%!vj)=7O`-;<>0LHB%3{NqS6*Q!-(Lpco`|f8{cq1@zA) za_C%X-i{xssC5sv{2$Q@3eGMQF4^d;iZWM~hU0+9GBOGhAddh_%8B|E`gc}F@1!QT zQLdWkJZrMP@HtLK*tn!sZ!oRBmf4f<`R}J#X(Hl!xQGhHci#!?f0}?#u4T;k2my+8R}nyO2E4e`0URE`Yh3SVE9QCGXu69?rA+fE~AOT@Jg` zpMjO_T4NZA)qzX++A$grOf*&6MNu1$gU7**f+j_G_l+mQW^pql7pbU$1`WuHco?Y_ zvn5(x+<#FkqD4#dEHz2`zFfS=KQG!l$eLG=`v<0A zINy461S2k`*L^?x$`aa%?}dS7-R&xw*+aLh@w!0eIAF&|yKY8po^UFQQRxdIh8RMU z9OvMXbDaI(t}SlR006=XU=y1;XYsq0qdi~WXnkD40L#9(Y2$Y@9#XQXI2)Ru^u8z* z*0hg1(>(FU%qZtIFNA*E2m`!tpwNoJa9JB|c1!*#R?B)gCv#TWpx{5M)TfAP{K-U3 zM9hmy(-RD^T?A$%_JRCPc4R4!Xy0whkvDa$0V5VS?;iwOnzxa5{YG@6+ z*HeKK`R&!w!^N{R>sI?5MqMO`5VloFZxo;i0U?-T%Qb{CHM&SwC7*_SD(R8C<5Pu~ z)e%BIE9G*vW&<$>=T>^l;=0s(e9Pm+GShaq{VfP!>B7q0oq<^SQhJLRo2@y2OU3YW z(?Ice({wkeGC2z4Z~lQq9Zcbiou6{tX-hxZ-cBSJ>c-*hnVb6NAD#Fv?73heT!~x}%$}d0Se_Vf#VM?=gQVaHy&8x)%TlMWnc`IBwd-y_5&@eJ65W zmOqMw)sR0d*!rT9xgIkftQ>Fk1nvP!6G=Hq-*w#Fl0yKhyyL$_{0#K`l`6uk|8ykk zY@q|y8y8YKWE3<}L7Gu-n%~0uL3L9W(ZbS%oH2lPBOi2I@Q#BIm2TAn=zu$ZLWL>5=L0e?d7R= zuU+=)d=lJt2OThTfG?p{x>~_><{(kXGC!JL2R+zQNs5KmTUCf;FHtH(;KNDh0XDCp z{?UhU$9V4ae|9V(7<2*cnCA5GyS)vE%gwUw9MoP7z%l73R@6_t!r1r@nRGLh)-nBw zHsp?hM&bf>$h~G4?;A3KtzZdyl*?*`{TL+)re`8A8d7!M;{ZbhLh+nM!!T(nK%D7< z31rlVUEYu-Hfm=Z8ERE{5Ho*rru|_0icq}6nLKhRDNg9+l9t1M+oUD_xI@EPBFX`lLrw9PNoJPw_SaAA_1o6-P`WI<&dP?a+;^kcbNR zTAryrsO%Y9Yd&D(b$Z{8w+9ENdkPqxjVqppYv{Qo#IUyAL#zvDq<>Od_9>D=@#K$F zx7R6A-3SZ$ciFaxOhXeOm!G2xG*eMT+zL z*)h)i{F=T--Vl4-{}RC=#72$3Scd{*BjXsyt8WYm@42(dEQG*Mhe|-l9}%AN~==o*c0J|KFZh6(Bb|-+DGftdOk;+^>Vm zf37*-SOk?tOi%XK;;>Wta}0Nj!^1(LX{0E!Q+d_5ViCEyXWha;E%#^ifSR#ucz2dF z0Y6p{3^@llHOxwj)J@E8LY4}+=T&0wDHVe;eA(ODOJ! zCKc*jLr~UmgexM9vO*HA52HSuB2eb6V#)MfvkMoEaoa44P_2Jhr=gK~x@Go`a!8@& zoayw+4i*-wAOX25F`?a5G0x+7MvqiD$bR(}D%~}=D6B?H20ko?kmH{WBFZh(B)wMC zbF66%@!*v^yfr#6Z*ypXUiBZE&iP6vGr_n_jK11z<_m57Wo)1_`E)uBZ-ce2)xyDS zW}B{~^+XkzTnQj$=Wj=`q6%CcD8bQ!{`~$Z_r$^qXXqm<~2?qwPnHdW#KuKpMni{wumIfmeDms_+M;XRMHRL{rD= zh){FnJV$|Rz=h~c?2tIBTl8@nsin3Q5exnMNm9eg)NP>RQ~h-mVs0QBWe8ozWSs0`Rug@;Wx3;l(hI75jY#`A5m5Exxz)Rm zaLKaqqf*!@j14`ska@|`@o%{}25Oe_1y1aae(-?*F6bUe!_WDgL9abieL za%qe1T@#n&Rr0j7QO(0v@+!Ul#>Q(<=(sd-|6h_gW|)*|?+z|&aCt=vhtNYHdQf6) zQ*8}Rh{(U0;w30B4j|Q)Sla-G`cRH4mVljO&f^}d^8MKj1DVsNs(?3eN6hMKo1W zRGQVO8n2=BrwZKL2WFHRJENI&rC`Sa6L(a`^%ouX-6nLzViG{%rfaO)zlI;n@EW~M zhv{Y{`r_Sl#tRnjFkVW?X3rIrs78jNq#@mjQ5^!aa)`6|0Xg17=8W%trJkTXxrC4$*0)n6dQH`+kpj@4Bxq!-2y-o<}$eSiQmF;G{1} z=HZO%CVT0a3H(TAT~d}G``&tXVMrS-{S1v!_8jv@Ee&)9aT9bUb{aNu^in!n0JS9a zkfrD%`U%y18dTy6q5Z!4LFz>^ zJmOBi%a^+CbRDOoM_geMC;2RImc09F(PVGl*$?~r?)P7q4?T)8JJU+wlhwD0@$QbS z)_KId@cIeX_)Cyp=>4B&d73&O zJ#s~q@OW1;-bpI|))L1e?(N0ULwBl+>oG9N$=T5b#lOwYaO%v-uBRe{UQeIJ=z(Ilyl^7j@oD{RBxa%*0zff6!n zSaxE{dvTT#ns*3D8MeBN>bEOEGyLJ6J|CQQm}!zWhwuAUGvNGG|H$+Z96Z(Q0PSp| z&@N7tD0N0{!!I+Bd56OyD2z?IU&)?`Bq>UBy$Fzo;~p?Eo5k8*2O`*WU)3OzkJb=* z6d>7EihA$k<^QsVL1R{xS+ViR+Cn%UPhU10du|>MX`LwL1}yFEW7TLBDoQ!SX4<`N zTz$;Qka<03wap6opRR5K=Z4;Avh7)TZhU_7T6+bu#{oMP1g9(t2ge66C4O-1miYGt zSI(cI*SMULe1TO#CQZMCpu&lfXZ%PK^KfeK{-^(s`v-dWnwu88MATAvru-v-qPiIc z9`QW}Rvh+9-Lc#JJ*#m+XofJt5KR(iEi@A?j=WEzoh68uUlJR^g@+<|%Qz}VuL}#| zlw0NW#2bp_;5QEg=#@*?=`#75rA(RhNBc<1C=VP&6lA-f+Ke1>j5B0ARa^b~3dnGt zf&9OMJa{Iu&=@@)fUh5Jhb|p^K48|gWkAo+arF_g9gwWV=Yx=A(It^xd$#QePv#Up z^!ds7n1*XQ;nnEYaM+O&ia$f;T(BKnf)K|f5*uF|#P+*l(*?shTbL;Kc3n25?~m3U zLK_ZO{XwS(7A(4XIfV{^T1EpWgz+6IKtSg?ekh0NghyAgy;7D~DEdl*w4i)@WINY| zFG+c#S?Ciqgb3RCwC$I&co(i>!ubgxuc!!UYHaU9gfIMzK!~!ryuFO`r%eqqKxPvp zTAJwY(}iGw$a>g_0WP?=7;dY5+xBTXaI1B`Lr2|utk}5nYO2P=Jij2fyd166R+SkC zDYtW%H#Yh_8mB!72NN1 z?;qgsCmKHyGMQP?M}&Z_7Rk2<0K7Es_()9f=c>}uylg5ld|YNyo&x_x8+U#E#wwZ| z>r7w+I<9<%1tzOejA1Hx^d={*GXokPPNA7N%##Uf0YP7Srws{svb&ExwU0sfUo2I9 z-Uea)Zw?si_v0-w05tqSqm}&^+p!Yi!Mq;5FzEzDTDt#W?@mhJAqM_z!`X2o+5Zeu zdqz+5@bF&&qN-LA%vmYq^-X>I9Nsn@T~nrBvpnuiH}(67E3UH4+d7fED~Q$hp4{v& zN^F5K1`PBm!4k1CA)fSiAQWuL79n9XX0ST#WURd=rIJuZvB zDLzpNB6~(?A(VB_$O~ljRpPoDo=*(s1*^c-2o%G@&v06{?6}H_X$@VY>iLSR;hf9u zfV_P@rt&M|J(cH}{@3staTPN-=Kav5 zB_%C`UEu?=W5GCzdjl@iJ4m4&Q#b>D3l`hngmKB@H}hm>X4m!rM#pe+Rub;8cEeyR zw!sVF6pjV!R`NWl(GZU(50hz+qa#U3eH@gW()V_&q1CFHnSo z@&mFQ@V~Jim$K~61qZqP;@WPp66jd5jp)K45dyamueVk;oq0p|3j$ExX$*K`$shkb z!Z&B|Z&x>RA)(lINt)W_=ct(umJ^LY!*$Z%(6kJ`4X{pln^+F!z;5$k5bYU>lb6M? z`*uIhrgYg67oRByK8wg*R~Q6oAZ~f@X_$mQopC5P7mL>j)+#M$A{t>p5>f+OwkJpk zLMDYI9*Z-A+J82jI4_Sc#k^dqz-&6}MhZaWWPCpXNvXEtg=`Z`?VVl0#bhOAnqwH6 zl|?-j~!XhKZ_J!J6`L-zSK`Fw1?*h;tmf4!Fv(PA%@LRB1=Oj* zPL+OZ)tt_Icy-Np>T#SIY+;&9n{~4E)dm^Q7~PAnfPt`oX$1m54MFUDm86cVi;5itRO5t)_x$;aqV$P> zq?6kq&AgR;J@{tffOg{)EQ^%DUHI1Z05DXj`v9E1pe}S`QKjp58ZJC=v(i5e&=s7c8@FTh<;foE%6*KT3yxIfhTdbPl!nZ` z)5_QCd0J9iUf8pFby`!48zdEK(}r7)=HAk+28Qb`<6$MOYZTSMMDp&VP7UWieyT-I zN4vRUwxWr8=%nT`d7qV_*;DGo8N4p|(bf?}*#S;-7|DtArSB>s%R$7)`^!Pb+8Vjy z!Lg1+^fKo_mE+m%{N$A-$%LL8>QF;de%&~zc~bE&Bz2Q)I^TSF5bv-GQXs#HN*|s1 zE3n27SvfeeO@cr5P40mmu8cjnd9HWssh2>YGjo)%wA`{|qCYOM+hje?UeEl_`i4lj zaW?CLbO-VHZh;+_7@*ZwFD^|{8yOD|^Fl!ds;D6VX(D(7QY^Hvbn3wGN&`ywEPqNI zyJTIHajXvyFe$bvQfHwQ3`-HwaNNxfkduj~4w^feY9Q()2ybwL%G#tLfKe~%Y^5R< z!fv>@hIXL+*{xliFbtu;P7<6pVZP57`ppJnvT;1`n8JO0jZi`7;HZ7Z=;lFmWI_m+ zgJq0gJgvYM&GhQgz)WCqCG#c8CyNn~K0PeHzuMEk#C}-1u?Q=)i)TTA_xdadJZolp zYt7&>ivpi1j!a&vI~XinwCCi*JZp!P*wS`*8mJcEtO70^e}uRWT*>j#sT#d9+J;kG zJa8qN$27$J|4uGLxeoJ;ujy$*o?7@f##9i9D1_lD9x;{KT1|q#qn&Jv8e1)HwTj{J^Uii3W7bH*IC1#Q9`FX;fj4wq?4z) zh#X5in9Iul00~Gv%_U-7`bjK>;K>=C-tqr-t|sMMP?UjssZS$!iMlF02Qi% zlKSP`BJ6ED5E3uVtu3HR5L%%B+k3`7Giez`tZ#C(VLMYK=!|4(!eKTptX?ML$J}Z$ zOW{@KI+9Pe+wR(YD6_iD97beE>l$YWxe--LOjAz3%C(Uo+arkxGA{LzQ70NzJ*=coNu&50Od)vdtkT5?v-3WMjw z%g)w4ca>YshG2;5_(zX?aX4swmczKY>B5c^!S7AS(M-5^oqcC^CLan5QPBztX70D{ z_5FXgdNabRpJ1t5bwp*v9l4@^P9Qap=lFmr-#dv~haph%j(A@k*60g+w8_T~m8RG{ zUC_%AH`Es{Xf4xeTV}ecT6?D+L_5a1H14gJL_A{MYC-ie3>2EANKBXk0KevsJQU~{ zQKlqwnltnMwLMgX+G4;0>1eLbJCpr3Mj3@;<=S~Z%|CUcdEcxYe-Tej4*B^?FV3$y z@tkp!>q%eWsZBN5cCN^>^Xkd;z80oE@6R+!0w&lz_c4z_oB$l@ z8;6R7ah*Cfj#m~{pRF!CP!xl zxjvGyx^L;yj~qM@4gY2WXy|)6WzDDmhQbYlh}n~`+|Yf zH?64}0*cnN60xqnwzm~@Nc5uzzNfnD17Mbjt~$fvCuAF|GdF-&!)zxr+UOK^h!l3Z z2G!B}o=GtpFz+<056$@Hg4f`d2_^h{c2k?i5r-O-QQq|gGBIYHQWmr9U=B#N6O|-q zq+hm)VqvLhYHN1w&_bCR(hFgDOYS)m`51Z{%P{v4-#rQi&r;JxSDy&`+_z3}_UqJ7 zBlmGy#TT|g5Pz|5_}cw@ZN3IXK~C&lsX=8?lC{pNTvjFto?Re!s00{-&LyrPRNqIQ z*myQx!)a(Ys}kh!#A#4lqZm$@vlRb>W)psCw%nXp!D5)0e8fp=IBC4Iy%espd_i+n z!77y=GMeXrt{^J{%Zn=kk8ER{^59uq1us8Yi(*SK!NwMyhV_qFk;TcGf7OZGn$Z|R z4E3H(eA>c677K)ZsgL5~I2?)yP%su0H~t&R{|#Jymn9Dv0|3|!V@tiM>}WHUvS4gV zk|??`LqT(?`0~Rw!BE*3wBVvIVzfEqLNp#Jkpp_dnKTZ$L=8=ugu}eGmNk@Al|zzH zR)qsE1MKSoAs7iLS#bE)M+D~Pp;~Efq%<2TmF_U{kx%2Mn>+I$!Fz~Z$C+m{2n1k> zU?e_%P<13VE^}vCiKehduMq zaAaD=+LN&hs4xkm*l-$E4f*jNGKaNWJ`G%1aDZq9(UVH8IVHpo^O&YJgU z+5O9H+sEP;9HIyF-Ob|h>gubt3xGat?v)w_y+MwnexK4vg!n$6npior>_7a2UZ`?$ zUM+9APL=C`=muWq$))9u2U@!DZkZgT?{*E$Q&6uEHyH^1KXb2Z@x7F52ajG#O(ctb zy`S}yr3lgR{cX#Ln>97Yn}IXVqjrJdrB>D$r{)@muB8exgvSSB|F0{6LPy3|&Gs_xp zS^ats4ksI^N|b~YDu}3$uo}`2e2DROs<{D6*<3*ryWaRrG?~fhu5A0up*kDaY~j9I zxHkR`$elb9HqNkn&48gmbU_hotr2*I>}a}Io{iem z{f7V=Ej7lTY~ovTJGEJ|lD*ZVlo!L%s^(CaT<3T~E@Eno2ueHXUjp#Uib$9fg|Ol>tC63ogwAZg?8)q+$zLJeE?)*l zN0UYqr+I9ioTer;rm!^xP%I-`dxNvTz9~vs;`w`j3GL>^?UC8vOA|X#jG5TCrHVj+ zC5^09Q`7S7qzaAVo28Bxk?}YWdKBo3Lf@m}>NQ0okbCLXq&|y(oz8VsD_=hTl;t&5 zM_KASCejMJXV`zPt9FTChW+z}T4lurZJsmz`J2N-?{@o0^m_N7&Y7fjBmR8^67AgB3?XCVVCY<}hZeQ3wg6e=yW zrXfAxX=3UQ)m!tAouMoFV?|6Rp4OUG)Z((hobBfA+pd4{^NB;bvfp%yjWG$14}li# z3DmsG0jF!|G%kF$D&LOxF0d2^sDc977c_2m#Qp39u(dD0_#~bFnjkb&2&ySw_#Utj zv2sB?{FZd%_R6M^9_5z%a`l6Si0FC0BJ7Ct4w!X#a>5`Sqy2DcN1w=ISh{!gS5~Aj zX#L&lKim9V?Kb8!itMC+f*JJ|au;f|dJA@ccZ zP!DIIO}GOpxU`5y41c0eH+sd!oWL`TTq#CkIp#~ELcBO!{lzRaGqW}3IW0j1xH#YG zAE>?5rk%o*)~J=6p6dr^T%b|#wxR84fEI#SR#1&YX0FLfY+gtf@G+c;s@Lh&a4jhA zE4_TL*Sl%xheCLg2`utUDdSsWbm zWCQkp<;Jq5;&a>_sdK*7aU6K25ei9sG;|WYyx4LKvA2T{p6bSP9ruZ4^v*UoRHs&J zrO{Z^5%BWq2QN`e*a{t1>ijbbHSo zoxo5li;uEdQHS9(Kd>I%d!Q&PwAs@F8iVMB&?ItZ8st@zioN&iyFgxIo>@I->zG%o zTRc}fUqvmxxFYVw+!Cu-URJGKa?1QGa(%add@^xsf7``x zjNAt-orT!E@Gz*^|3`yg_oe_o-f{WVubTlV7>|dkz)Oi{_Cq{AW>cgMRH8VFm!x31 zk=1p8zZD7VA|lfXsM>pIK?dVhqf^`?yK&YRkmwQ6{k1!?dJSsTGwZ@0$}ygOQeCy#0zE10YEpezXhzHBT9_Se+@!LPMr-4fyk# zpb0#Un0YF^;Ik}FEs^R+%ljx6S zA;Gm7-T#!_819>g%(q#wI%cX@Kv(7+MSlzS<4$+#* zGJL=ORP9A6yZ-lhkK?Bn@m6_1_zSoeKFXXbONbT;{{?skOp%<>J+ z{zYkeA?JHS--l6{q)CDd%-Gm}y`k;yT^@YC#u?4J-Erii)nV5$bY!13lUvI>H$8%> zE|TBs+2~|Y5lUzan361+rJA!^JO>1l_ckC^5y!hUF@MvFcM@8Xgg~OQ)Gv@#e<#YT z^jH;uR>TYQJz>L{Q~~rF8)IJ*F-m-SovyO-t=n{|Gj>GzPoN^KM|h<2(EEr=)!!Sw zcE}8AfNg$^CP)jla^Ims@DM&a?L%=)X{mBqhA=6G3=#0QP5I|A2}sv|$&kF6)UJN} zq0%FffO3L*Ke`?AZf$NwoXU z$`y_y8tQ#SO)nw`N{RV(JBl?_L@ljR*jBv?kExjr+lJ%%5mxB{sZ=PR&AX@W+cN%i5sO*~>YBp${ zP*80aVE6nmQ1(HGRKFZzq#(xC;5f&A(f`!WT&v7FyPOj53o7x*i}fM)>Z3$oHy3*g z^$P5)YNYQ%K;;5;fubxlb{yYe42rXtJwr9;?7xA~DvdFx%d*-0Cyo!*+IpNUB{B8v zd~$_^2P9Pau^(1OPR0*oF3-N5{K$jKW-O&#-Ba=(+o3XPI{UWi$hS!dJ!8vAF=y;; zDx{qBV0(>Ze_5k9GLJF=-6>fPrO{ks#7FBv!?7wPNx_AQyrGsFFoY=Z0GI|_?Tg)& zud%gIfk2q|s0`e&WsbxPV@@hrh+b_cW>{oUMwx3u#Yudj`kr4XmKG2>rF&D-UcsE? zlC@P|?io1*!`zSW&3V>&C{V3RDK{oc&?`RW^I^G~gI+XfQS^{iK;9(`^ay!EYoutT zCwFj~%bW9B807-iqrH+Om=XLBy_Xuw8Sz~C_q~B4_szFBwKivF?x{trlInvbjlJ#1 zhcg?~*_R0j9-7ajeew@L)oU5iW{cA&!&`h_DM z(HJ5}c{@NNDE(_Oj;5oq5Ha7=N^hLb@*U@CCBsI6XAKfkE45Q5<+GjF< z{yR7a6Fc7E=OQf?8Aenp&GrS*$UP|Hk?gUWnSx3PH7&tFWvCfQ7X3-}TVqS;+R{Iv zcCExx$sRciI26qQC_B~QIVu_ywG3x@@D^w~5Hl-gMJ6Ka~`HZbOQBu)=-&jk|Mh9Q0gc-uRNwl}jCzoJi-svv!xtp|!(F&k=d1KPqHa=W0_5 zFAmXyw7Q8R^~J!R4xx3D_`JTo+-;l&fqg~RA&acPAf=lQcD#wNkOKF5@WXo=!iBwmNO(oC9YIK!k8Z zPFfoPEo`@@@0E<2vsk8cMazEZ&QX8OincbZX3zngjEPk)dF<&bff)5>28W#7#i#4p zqyOEaTm4v}kJ`TzddmZVS5k2~4igCW6>%_P>&J~V8?`ePy@ec#h-@(Ce*gZu<8XkE zyY61mLV1{iblzCYU<$WetPhaZJO<8T7uj(U&aRaa-A*#kI&y2O|Ujn8L(yzL5 zS~YzYS=Rc$IxQFsD&WdK`#^Y8UswDcO@cyVOJ*6|2Oo{zyG}ZLWi$HGUqsSKWd6_y zB74>DV%cE=O?TQe7obgdrvOAs?JUV>%PmX0g(LG#6M@bZ58{c6bn=2j+pi9g5ovaX zaX?I<{zK}r6*?kDW}kSo^i24N=LIqpUb4GKRcuvOD-S~!lv9W~p>FQQYSKcXRSbxr zq)H}vnl{TOQbf~Vck195ZTACej1^ZrlulVqI$VhXTRu!~{!$8#80K)r(|m9yaO<X@0zt<*fH4Ym+K7L}uf#rEGA+#6EHIRVpR z;EEG)RwaJ3$FB)axY@%U|PKIQ+fuHhCe;`8akV-bLLu8G0mmBbBCDvG@612eu=nzbh8 z0z(<)9u6n*uc}poM+?CGnQ{-1ts~RC7^& zupoiFIGf%&@Az16UE%9{ zk-mmyH|(7tLFHTAcjdKMNy7PP@pIWR;a9R6yVmAyvLlmwx>X!9S|mLnkialb18m*N zok=v*dO3Ogz!B0f9!5oX2JtJzsG@u_0{PJXaY$w}-=AfP?#I69HFl&Wj$Om?wU10! zMHXmdv*s~y<#_=?WRUB=tc6`AmsWy!OcN}xxo@qC zW~mdsKE@0{DIUq)LRx$#J!g)dDlOgoHsX5C2>tF6B$}TJzIu_kPH9;^MN{&o(T6#I z?us_4G)zp!@}*hvh=l2rG$@uDt>Lbt0bKjszmJ2GsI*KE`UWnLT;l`nV-uIh&4L(P zyg*U@w+_13tKpOixHnd-R76%VT2r2R^QQ>;`tM_yb0>5%Fe+6e1Y~2y4G0!UxCe$f z|5u<_<1&MG%5C}2T1eE*T2DK!x|p}z0Tup(aZB`?d z?@9zgtDoHhm}9Bg+Qp5Wj+?Atm+S<%_o4qS49Lf?TN{VQ^^W4}gC=qk%NpmA0xRXu zo=zAC9$SFanYv1xk#7IxGWIRvivaY4dqi#Q#`AtL&(p}T<{Ls9>hD1Phw$ARMcY?_ zi2lshzh|(zoNwpg=%D)T0PQ(jT`AwW`%W-2qoc{HqpZaLjnA_&nlizDxGSc_DQ=j2TnuvNfa1LxXf7s;Ym^f;( z6LY0nTMJIEDWUQt_4SDor(;RZ$0_F;#x!;1DRx$yQ9?P=D$h`caHx@Z?13kLkdC1YU_X>{Ux(60m5< z)@Ww8DKmbWcQc&INS}~>ma9(k4G%YALNDH9v2dE)NZkB4qEg`1?$A{9+|F_rQ=+$TfblcW zddEJ;i5^kcjG!`Pp?LITdTh=G8mXuYTv>GRp4^R?#2t^I+zBW1RlYyq$ygz_mn>>U zvLT#}=)T#7H=Ghxi>5Wcvaj|q(Y>T;D3aPjhVBgdxdwFAV$*db(C zL|st)$DL!ecl%x3pk-Z=3oMJq2C?)EM@v3e_f=+^HHqKPEcaBC>(^mEO8XIJAi67% zM_)9{lv7futO}4$NJuH@hO#T-qTj46hVhBp3s>-Tni>4Yg=0zlo598`#Vs>BJVO^M zTddObyhVW+pFwWVjOSg$tNrg*vv4W+eqv#Eq}3LZPgCTsG{l!rx_XQ#V0DonLl4s4 z5Tr;5%zL1u=dmN#azt|Bb6alfP4VK$JK7^>UvEy)LT4YJaLWBA>*mzI={X*+MZ#Tez%-&)>afWZE0!#2q1 z-(R>X9&w(NrRYPTAX>SvO(W~OQet01%5$}2kB?3$RqOGmsEPK0o1_)H>pUtEC9B#s zq!gnol$P3IRtkHfIKGG9DlMASWlWN}|7J)97v>FPxtdGP!$T zKdxW-2`J24!#5{p#BKL|N3IfjoXp#qUSK+d2XEPe=e?&9WM%=LB54$c#b-c$PTfbS zFp|~gc#o!1r2p+G6HF z-x#5)x$H-v2+VaDI`M<3_PG!eLufeU~mI8hH9uMqDnE5h*zJGc_Y{g>YKHygyYg zXDQtxIG5_Ab}N$KKExnCA?QhKYKhX!yaN%B9xrunWL@xuwA!D!1l?>@{YRJPC9JC) zX`Wr#?wK>Oyq;AJL@mOl;|xUXwT2}Kd`&1kVAK?v=lR!Lkc<`8borr_%0BrM2txck z{XLPGB8uSe330G8CQ?NQmz#sQCH-P9N>K<&yS|pQMjnnOp~JWI8fp6dsJH%-b>zPN z2B!|v_Hq8l*u(x&tq88KQO?J%0*~9OP*q4?(bZ}uN~5jQ1@3^rQhW7uwxWL`+eZIt zkULvYDo-un&y#;+MRUdW$gJg1+QIpJCFbc7dK~;3x9W>Hri;Y2@~cno%>L%m*j9n$=qT44>&n z;2?ANzr)UDls_ZL+pkFiRe6_;eJhf+cr6;C;o@D6%0kXZa`jiK|N%!L#vc%#%UiA*Y)oEl5a;I}! z5}>R!Ak>ajxvRTbK0v>NJ~P67d7x2;!*9(9A2qX*s{+#ix< zT6pr1tWG}bAwfk@+xr^JDK_H!w@xIgqkk6a&3mnP@ylscsGMl`Vn3eOdu5VZj|{Tk zVQC*tngZZKOd-&5Ut(;ZW>9PLAAVJ1=&rM-weVJF*KO>ip;LS8ANR@szg*mG8oQ8H zi4}8_LTsWI{~j&}c2$myl#KOB^(bB08G`{&+$YU@f0*J3PiWVK<&vFVaE7c^&+WRjE{f2x;)g zm}tXQ_Q(b7xA-@*Ud5k0G+7};+M)uN%g}JpZKzniLAJTI<^Rt>Is03E3UM#4%`Dz{ zl)#y+T6}8Wbb64BI|c}=Dv^AxNwafET>)yA1x>O-ZJ|Fs>0xV^QW@3RagUksZ&H`u zrUWYxHBrN)8UGAx7lM(Pc`SY$GW$8^@&S%D7+68*^-K=M@NtYID7+mM+OSN2WFmJR zV#LEpT}O8&P$CmfQ@Fpio!in_#YS8DPhG{uVr+ECV_es4R{s>`qDr~MQkd4al8-0a z$CIsa=;U4hwn})z`Mge9*l>7YN~xXLE(Fl5r%H5-A^+2uWN1*{$8RG-?IRT143|mg z>L8t)@jj_lGsYb2Tc0BgP1)nOu$nZLsBMIFrkG}w>`na?ICuq+rTqO8Y5WiO^`(Oi zbo_YK9b5SG9-1`$u1HcuuPuEgAL&FfppI?z2FLR(hAKSH!B3JGAT{tJfxoyrH}Pu zR)aH_(|KC#xmL;lh9=HnH`f)?gOocjt{ZjnPlW+z6-OfB);96lVFU- zaR-SLc7;p5>#5Y5Jtp&2L*PmuJU_;EV71YPj|)w6m>>F!FGOOriD>Hkh`DeVpjW+l zxwNL_L46GxZ<6vBKPA>2-O+9QmYJ^{M&ps4DNs6GYZ9upH*qZO(A6Gd>>$CjXQ5kY zHLoJIZy$M9Pfr`90knUJ`}=faVaK-zz#pmU-Bny_fvH<~R&-lCNkHo%_zg<7bPri>?Q>C?HDq_0nkPUF$i=XE zvL&98ZmqSd9FI8^qqHhc6j!1)I)D=(}IW* z;RcQg<<065rVdTRK&;>`4}D9{Y5}R(T6paa;-`283AB$0 zjdnm^BzjC@OoNrt_8S#pWgG<(FFoI1f z1dZw{g&Hv*Mm$8}yrJmP*=mPcSygj}UQs?WDOmZYmv?rq1KjV}&}#jJN>dVB1N@;{ zc00qV*RZ)SHzXbj0vZj89Y%S(#la0@d0{+po?Bo@#xUY(S78NEnph1`7KskcZ=D!@ zR|svq%k;aO$N-lQ9-6_1P@8J4Pqb&7Ee&-7OW>+KlcFZah9-{XsL-y4nBP}E#(q(!i@ znSO%G>Zl#qy4yM)6x-_Ae%^1svCDNh!d|#V1PfwXASD_c|Yk@JTK2_k#i~(w%Y^L@tPg(`?bEQHh>4NQlhU(_OlyzVuNJr z(?!i*OafZdd#&YvuhOPPQZgwI;;Y}k+p*Iai1%>)fRqDgUpC|l6X^2Cvl@x9G^6;>@_SkA zZ@rkaLAKsw!5K2T_$67L)cXm06Q-sf?U z0a7YH+1HBXa!bry3HmMX;!?1>ce{I2*#_#%{IoRL9w2+Si}yO`xPS+Tuc{6*W%J9T z`3!3p=xzqN6QvEZqdek_(FQH|Lf7j4a5-ElkSLp4kuTKaOvT$+GP)PHImC9r2uBCK zb(=y=94DaX0&~_PQS~OGZT0p_=F4q? zG`(|@liGT@PB!daeHk!WHlXrp$o{*mc$dWOA~qTr zhyf(1DrDF#n+zQISd)o90ou^kX9^)H!~s7XRf`K`e3<74)k)`b4xlxT64g~m4<+Os z!e(MLN-}SB*ZRyMO~cMZ;cZbzshCM`X*X^^=>38W;eC&>Bv5E$u=t+^s`Pp z(+sn`qn8ALR1E?a%)Qz|$fg`*B-ZrRcwibi=nxGy$ug`OH82<_i(Ew?35iOJL$}qq zc{`VPX8qL0foo26Mqa@5V;>g0IkHp#+hlqO2v{v##MIERN~IUz?Jz;AdA7+Eo^4@~r+vO?nZ8;X_&NP7^rL?2mf!2{K*ys&(M0v*FC5M3<24 zj@vN?afITevc@tJe3D?Z6b$%IC*GHWUFlt;O}V`Q$N#b;t~?p2BrGQdmk)`61Sqt{-K|0(th{~1*D3*id>ga)+`Xc+H3B6R<^|}StYu|`xsk;X%I)XY zN-~}+P=_pOlYYPMO;x`YCtM^5ybNJGB(D0BR}h9XW`Kh3&f1#c4-xCxiAQbY24^)6 zo!jgLml03GCERVee1oW9vDjV&kGMv$+fwXIRpJztjsh1`J5<)e7o7L3T9&wtmX#H_9>`q?$!nDnMGx`mXp;-Je(uOp+IF3m~ zXpMR&o6@a73o9tZ*Bx{VAaVVM=Fq*KzBQ$3*7H94NbNyK{FE`^W-fYO5?+gIM=)_! zpsT9vm+@WV=_f>#p8r|#>+t;A_@b(1Zz=oWd?DGSEqz67DLLPjf;->(0(MsquAoLG30ENvDN}H8gUQ;Wyo_3isq z2bi)U4Zbm=M1O1WPSwV4dSr`m`aMbSB$<^PerL2%KMe^!k^o zeM);44g=?KcM#Q4m|9MAdY+1*it%lFgug~(T5N55Ia&H|4B_#ALaKEXT(nE7yo|g; z7T(G{P&B8x1Algw{gk?KDtL?k4D!logc(HmYgr@BM%-B+O3R3R;%(;+AX*ObD@-DR zx-B8oQ4)KqLrkhIK7&)|=4ux^b&M!`@5fxiXATl5tIN@%VY&Eto6lfYC*hMrMuIc) z{=$wm8Jaz#GvaYG#+rh_mL`7a#Efa*o7k5PW90rwih}JPALHx`7YbO3br^tW1%k*&}%Px9Kwc z@9`!RdBr;(u9;(Qp1eiG15iri1gP;lfD*W1(gh0A()>maCN8YrRk%-Aqkis~Z)Vfo za6g4@wg(!z)VORoWAB3Zx|N~P^5Yfx(cF%_AMGlp9%QBSGJ(t1)@~u50d2?zBGNJi zt~96lJ{+5P#zpmW}IZ+T=YR=se_v5Y`^P2Jx!03Ex~0GhgH{~bSoHPC4p;!v2 zv~dXgCKn#f*%VxE*VRM9+Rw`PH8?N1ZYpwYhSea2cjaOV4*{uRbBJyQ{e!R-MqWf~jnn5=*z(k4$KX=6+MMGX6^A2m9WnSh;K~btv=;M5pu7UO5q1 z=pf^VArv}5C09RkEePy?BG;jg;jlGe*pZlulo<|{%ZiSYL{0LYzy@8Rw)D0>PJs1A zbYT#zkZ$Nq#%MK-avQJVQ{E7s!Yz}+?d#vZ*QCkbQUe;i>HgpOySUv|VlTzXu0EX_ zD8zmt4k6EOo~M}p<*sXQF*6)Pj4ANJ;#P-+g=Mds7t;;P!pueYkN>k^LHRw#J#W$M?B^htZ7qJ~u3Dqiqurdub{zd;MUH2E%z%Xz3U!q>{ov zwIhQ^ln?>2wo!}bm$F!F%vNBs(ytGe>8nuxlmz3?Ofktw{f(3 zY6Y_18Al&NSm7UfIIAR{2{7%14A|Q1zQ3%+qnglIcNDB7QU0V7P|rBMFE9BlPl*!t z?F#B)N~bV4Q3m11OMW!ssMdTBdviyMMZ$7ZUqN?&1eFT}0drZE#qnRBm%lrHt8Dg} zj$Db)ICm(Qrab$-2UBXDg|rj`@M?W-YzIwk-T65`7QQc@^@>nyCl^KQua_5t#R-uM zPiR68*TlB_o08cTNCwX`C&zgj(L3r{E~J zN_LGZ;HYC|2ZYAMTygY+;Z9NnD|NMDTqsP5@Vzot@IZ-qikqn0NsP-ct0_s8XPSYX*F*<74es)L zZDxQ$PR$<^4@CBhvz_r(TE+@&oyr%Owrx}|HR zN;tI#8ADkGZluR)uNg;`67hha`Ff0$&L@(R^y(CWGZ>oI7jNwG66zlu!?zej#RAs8 zIECQ4-E|wl@h)bq9QhKY{_dm;)VQ<_KO}DvE~!U6S1_EhpL>W`?Cb#pXiS8?o+~e_ zEKkm7+l>D!l?^YN#XgnA0HsTiOzyVi|HUWlgWz2;j`u$t?EAG z5jr-&g&1f#7TY|?%8l|;Mv$a66e$1pl~#J%O+1SO`lUFWTcaMLz^dH=yl4gl+t0^S z#8e)Rb+RwU__?!|6+OTBR{HXB60}xFTkBdOgj4fb_V$m*#jnLb$-;9)X=APXa0Fjl zvsl%@bMMxWWG(p1<-)kSoFqtEc*i=8S`WA1R84R!4Db{h@mKfD3LSyEy)MFiw{pbxcnlN~OG28C#9`&aI~8(j6lTK&c7iiT)#at)&oM^k?$1B0 zp}ygJgchH5iGUkQT&ZjBfjOj>lOYqBH}dluAl^Xoadf2sTaEL-n|DI1dWgxMnA;oW zmgdd1I;RFztcM=CmV>2d(~I!=w)zm#7^|1^S~Ts3`3rz5dfx5!_hX6~E!g0PDCW)L z9TM3g11&8azm9i{&r|TU)_iw%fQTU^^UY+mKpQE*FR5#^P6M-LxjQqS{4zU)|FfVX zXcbFj0h_v=JNbR-_gpg`O+Frhx~;)rWoKWH{-j-1NNYo<^xIJetaM?2a07eCxZ|x+ zk`;+&RF~?S1|OrJu9%5$^)@o~0sikxdHr&1Ld34lx3}ix#(HW01(h1$58Tgl9=#Yv zI97$9U0cQ!4uN4bm$p9?lppQ4<#lo`G>02jjfpPzTxJzrqQdC`42gw8Pd4R9P6(XS|jqVZLlKUn!00&8bvCoNRJ7K|odd z^<8mC$NMPI+Io)eUi2A82{||xKw6wVlhs}ChEzlPQGo%5w1oB5K`v@l4*UUF<+IbL z0G{P@GsjBSvl9d{rG;*QUE^P`Nz7ktVj|r0)1on=`C(e4qfWl%TNqUm`>=w`r+zgB zBTev=s7YxmgVvpFlc5dBi}D=2Oz4KeJ3;vi}p^#FEqgMRxG_obr9iz$%YdQBvZ`N4?r*i<&D*q ztRnF9q^Q8&I9w^j%-l6)ORVGBk|(w@Xx4h@gfgWdTtUztbca`wgi!2 zb-tnsJFGv8;@L85Op%qFSFUVT|5210n&rbWEF5$)h}n8nn|MO&vkY$=5`9HVK=k zD-jE^NP%u-eyY5CFDi_QU4-@B_T??P0Ba6bJZ)~?gr7Ebwc8lcv$*=D^WGUZN)t%+ zD$^9=cZ-S~nm!RlxW7!t@ZsoSa`sHI365oWlKGC1vQ)MV$VR^uE85BuXxH!jd|3z| zq;be3#$VH7D)D!ri0It~sY+vk9kVnwy%%fyfsod{*)L&j8{Qx4XWMB**zwp+yqolo z7|5i6$2hg#CtSw!UuSjfkitX7Z7AGOVini1HvdG|5!rm*=f-GUyWZjKL7z+fW$#4k; z!4L8`S1?RS{p#H-5Qkm4^KQ(H_77@dfF+Wjs)@rOCP=Cr_XBswVsk4YNqrq2?qeS;#l))A$jdT2S(e5 z{5E&GQ@UKZ)rngUb`euRH-ulyqCae4@naw2GR$)i&QxAJBm_=iE5!|2O}WZEge5Jr zmGwM)^98T*#8{EqZOQU)#wqp0aS?2t3l+9uAvVWKp%#mG&j)b2b>|bX<_=f&m(Ei6 z-LTHK9-QeAUzQo?;*~p$D%r`r{XZyDykfKCVK>r3T|QTJN2E8|-FAgyc&fv@BwvHx zjTJD?tQwXX?e|mXcrfjD){UhCBo(`n;|ncOm<^^D*v&3(#3X&96%ak>SC{n6X+S3u zh>#(Uuj9Sw9<_JeY``BeZNgPQaQEI0?nLa8czytGUQ<3|RB-e#UWov`4&q0A7UvDA z07cmm9aXNYR&qjJ7Si)j>9r?!m-TeR>flu@F%QxkXO_=|DV5~s8t1E;Y?Vj7q?z#E zB5sO$fhh_tQC!z!vf0c{RdC{$xGl9zxK6b*4iP3>w9M}nlIUYg`D-eG*m8QWDiy=> z+=buz1OB+dGdDa390T`xO|hSB1QkFX##ysu@;a&dSwo_@6_5~x`lZce>SY{gV{z%* z3U@gRZEn{I3K(b>TB*wL)VL<{XG3~qip;{RE91&KVwbD6dZ&@flR8%sA>C|HR^P60 z{2^rEm!Zv#Qu>@OGi+WD);ipgai;5 zpDRv<_EXbV7eR57%1&Qiz%u`$3wRmo9x{xIUCBjvcHwBJQEB;Mbf`KBkaMqxhZ(>jSrZneYK4BAa++1G*S|}yQW0##zU{_-juVkgD?pR?Q6>W%b z&sa9hz(vz*5=!{>zfYB}PGLIT#(|e-%qd(%GZ*e7kuk{D5(3qyYN9M{QtBQMfe8QB zuJ36+byor?ei_pW5z)fhA^7H|5qs0#{%u;Y|0}J&!MQtE6l z(Pzi&6BNy3TNeYu^+iD@QzgQfdz9pdqX;&)^|k+K;xdb&dqBWDZ5pv;E$+S4XmFZm zBgyEi0K{3Cj!fjR@#}j_OZbb;V1YpPFMV>G*Jtu>`$GE?|CG34Lv`*3T_Ewwgm-}R zz7^tP@L1EuMSKxjs-kqBW01=H0roKx-D~OrLzW-kceh}<)>ow7Zaqane`%C^uij8A z7fd?jn+P}8UpG4r=+sLd3uJ7R5#nUbb~{mt_5HzDTMW_9 zljec=KM|Nk=l&Wd_Dxq%nezihxx`j*jbg%Y~N0YXKHk+aZu zRK`$xl9D4(A@s}^Z^t(nc}}^z2WUVkd9%nv8fZaaziRql1TCT6w2>*HkSAhp&7`T}T7GtbNC)76Zt-WTbSRf460CtZ?NJdW^^?V4zaLx}*barp@d{R}*uTX;=_g zu!6W9a|PO86!LJMc;ze#ahMJ#313R=&g)X+xRFx@g4a{(RHRo-3q*SqPBdi~0?oBq z8iyv?Q0^0#41)7BcYM=qK^v;)a{7%Wjna*`8^@uxo-*p|hLfjL9H0-Sj8?8#ga{mg zq--sf%>1)JHsdI3rq`!9uQe=8Nx2j;CWn}ssZn`z@D?+j=T_w8*06QiSQ~- z4sGg=@VT5X!jAQS@}V`xT88nZ57>zU7^vxfy0*2)pqn30B-MuMQZM$Tf79$DtNuS! zz4W<2jy^Z&zQZI9Cke=!b~*M9KTale+x{%;^`BBBsz|>f--YGCNOO@t1QDu%E(SsW z@ZJG9aC^7GAp(`hBrUi)?9pcEow)B>^rncqjKB9Yi> zS0u{I(VC=QhHHoYT1fA_qxbM*f}JlCbsgnNpelE=go&ss+!(pLGrHen z;lac6f8u63wo;u|?7gaB9Vq+qoJ^&#Y*FX8#Y0>I<&z|~+eD8_C~^F*gpRnePl&1> zq1O2Iud*utu1k8S43PzMCfRpwGs@(s@qh*LP$3BfolTgQ71kZ1cHvWJ$?%|`En~_M z)b7hsQ!c9XA|(Kp*2P!R_$Wpk0OHB2Om02gvfJ3oSc8efB~_mop6!o!1O_()G|J?5 z|6pHrc^(NzQ=Du$c}@+j)PRktr?n7*b$;@Ib3J8am<8Uf4Uyg%Dy9pguu@gb+hxm& zmh4H0*#Zb{@nR7f4YHkBgWN#I!=*74`ZM+Z6 z*P<<)Al)LzC&m7BWa^4vIJll_lGOu`Q|3-`JGQCN3@b0!7dHGZl}`$rSxy3bWLq2g zo{y5BPmKvss~$+7Ewv{A5SVT*9NLGzXm9h3fx)9VsOJgIb}qhwzpExBCcF~{wbm?E zQX#WS^47;O$_G)vDd`aO(3m6V^4B6-jiFyqJQk&jW<-d{49$Q3!iU$bTv1yZ4NPbz zDzsuJMU+n*#+k#f>q{rq3lg~{H7Iu$MEzD|-;7g9yMB@O&1EyAk~!eUX-7{02q#a@ zFPA)B1+(ltxfu9S``v}z_)$HNUObp3=sG|nG<~tsYjL=LSPKueb1)C+P7|g%N4|eE z`RexljE!|AkX3Zm4>P3`FhrC63$_m?=`Ktu(+!x-7QEUZ{TGlgZ}&U>2ehH4-0t+`+n`v{y^vDZ!_y6qR(Z$(}BC)0fa7a4j~ ze@`)gV{FsVnE%b(WRMv9Eh9i&uBEc>Rrc=JCt=={ivhC@0*;0-XXpAwtjw6978sD9 z$L^WqPeFAWN0x0L;O3 zh(GG?_U*hup&7OlwmIpxPcludxx0-Ut?HX9?f2lut-ObI`9IG>A)zSf8(R_c{nOj&eIy4`!B7pzacz0=UgySH$VrY zuD;{f-Oe9QstbiNXxoXUY=`8Dr_{YkO_%>u{+=^c)Cr2bvg${n-q|#o-=+OjW$&yAiCuVwd32V!@=T8i!%Ll+s zfngAY6>+veui!?3>u5%bhK~lF9irc5q9d>qJTaoI#W-RO@;yf>OlvX_pRuW)g5l zn8hN15jMH^{Pfb^*{FF1V7&@I8ZuE}D9q^Qg5^xj7yb_{lTWd_FCU?w>gBpCFZ&h` zTu9s)6T8fBmRBbLSwN=0eqLqbfWvF@;S*U+*b)fM=2hDjzEF9eNKZrG6ABHb`M>=|MpHgW_g`l2{?&t-r$rq7Na~`Y28r38I?Tf<_?wEK(-C~aP7(@ehj3|Jn z{B02(%BNNtgmZLjxsPTtu0>)fzCfMluz!9cXd)t25x+1X6wIK{AXBpz%@$+m*WvP1Xvoao%EJJGy|#soI8bGaODscP zF*XRXqd4?u8U-OKHwocW;~f3>vBlV)T9Aqd#~zn9?n|0&(=}j+1a|08JqDR7Yi|n$ zDepCph16g&nw{ZErYTVC~~Oo=?S-PX%Hknl_f{yhqNY7bJ)20+q|j~z4;xg zthwwoVW26E9bx9m^pkC58)@3C?v4F19i!I>5QlpF2W3qmJ1?9@w#QSre{>jkd={e_ zC&0fvB*5qMW-}&kS(AsfWvBV)K8~rqrL1~T;94>IqF0IT} zQ~)a{(`=Z`?(H=R#17dbr)9_^Fjm!T0@@C|`H&)2moc_%slkR1rGnuZiCI%8D*4!o zF1&Re&k@9omMGf2?@GR{$LG`4i{5tx(C3Js`D(LQfT$5lM+^c#YVPbj>aw|g+W=J) ztrRN27P>V2d^uAkQaKJ02_}3z<<(jQ=9UYG3jAj;`i3qtn&0*501YC1Pgapg@Gk6! zAz$XB?qyz2*8T4`&#i3>A*lkZ98;>zT}Be3Htjx^aMn|j&L^wBje4T>uI^>DL{`ilRI1fT(rTk$3H&!~wby}caiKqB|ixMy<(-n4NZ zs70FE%IM_RA+rc(n-s z=JBN6Zd4;iKTPFX-5mf5-Zi!Z!P_X(w+GbLLKc5?g47$L;mRnuhW^EO%4>V)isinNAO%qvq;Q*o#Ef{|mR~JequCX3!6LiN`A{EnJG2OV z_vBj}#qz6}EdMlJ{xZ2m&aGKvI%IXJt0`j^IkV;@_zn`xPQuR_1p+_kegv{jF_+-O zP6$RPCyml|;OuZ}uF9G+41iRPn5V<8>3l(&jCqU&X#}IM#$v<5pG&VaA}vSW%!5;! z7aGWXtl1{TZ%x6D#o8k0^Z4g?nJ}bXaz+%v*sCv$_{dNbw_}o;Lyc-7_b>m}`;>2+ z)H1;;=%fRB#y*3PDNP}tW1NP*CNwqWX#bf{U~he~NHS<0)`H!y&1l>H@V}gt?Dx#fK1U8K@NwEg(7E4=J27HFi%+$5K=+Q<#1Hfzs z+Lo5^@tS(wh7ujU3=pc9BsKiwgNrr-vAwL@PGEt zb?lnhk=PVNz0}t(w+BasyH7U0HNZ{qst8S`SRyiNL~C zdnGvVAzgd&XJ*%?xxl)Q{sd;opjIm*zf1TioY#Xcdt*<93i##IX&~I*vz&DP7Ck;K zU;auP_X4mNXMJKJF^eQ-n%yV=P(QH3Ky9Z^K>D`wOms7bP70yoQ>NThg^pyKSyrciGiyCEn)w7VrSQ>0uUb7<$y?b8+Ly1~QioZ0C%qQ_hotFo`!VZ+Vld=)2fF1ZpuqmyqJR z{aVYR9?_)x6XUQ1rFWY%pDg<%upv#Kz4CMhG%7m5-(;J`-pmp z*;%8(J&f{+9iM1ivxct6W5tu?1MW0@6?SMQl-e~CD^3qC=1$a3#scSqaa12^w7)Vg zk!idXjJ=zg6b*g+%uBs9IiKb#*oXCzeJGdLtPri?cUMBkR4&+QYP8gYk(gutN)u;X zoKJ*!k}!?&i;uZ~k%5Rt1#VWa^Z2$IC4yB>&=e~YVee3NbE4(!x<%(TrS@Js`ClGU zK;P~8;LkYQh&k=Om0JbrtLSndw2#6YIdvpWlMEbrum6O6;Q(<%TEsLlouNA>sxqDK z2mQLkA9n6ST2R`LyMo&OAzBihv@0L9)1Fpnh;|2&bujEOnB&2P`fuS}VuZ2SP~Vl& zwaGO?$fNw%i;lunV(W~a8o#SX-C(WSNcqE7uLw*5V=~$pCP1#)N4AHF27S%weN0a& zwZE4t49lFVDdMP*O)vJ{GTv0}Kq-$8^FCSk0-z zb%pF^=&NG%S8_J5UG4RA(q^}Mg8Qr13kKesM;Rofq#8tSCH>|qJK@i>nQ0c=LH43+&(fvc(3t;3^BfCc&i(K=T z8(Ve>ymR0M0jYZ7wF!)9S7Z7{f@4!#19Ec$fhOLvy|ruMoSgpCWrpfB1*m$vhT1jd zO~aFa*pb*JdAK=Ubzovy?1H5Fh2z!RrT%LTaseo9ZX!X(-<%fcyI@=(7)my^%j zRv&Wj%vV2fbwEVCk8>{G!f7Cho;4tB#j^Yz8%)#!=s6?IxO5;ayJ@nAAoXySPJ9^@ zDkDBh2IzVoxh(?xlH#nPG8t!?5Hp=m~g&ySh4B@wpYz5pt&v1_IsSZNLY0*4` zz73$@S*~%pTHUbvZ^!je-u@%DOyV|iQF}+PfWtHodx_7}Wwy;u*Pl&;v#F+i@WE;P zlqw^KWskyUCPQ=f^6a?7LKLQbhb7BM$(u>`QiXPTS4a4k^064?$$ddAbROt|x~=H* zlXK%WgUrl)oGln&El}pGn1h`Bd-l329y!JW2E3LQ*txj@*x?4^DZx#%mo` zb$75;G0Ed$6P#b8^ot*MTJOzgu;D`&8mt6X`2bl0L;5QE%F9_Y zSlqG$oIyAp4C#OMRvq#1vAlyZ z?xJyraakgrPOWUT!p-uLrd%#RPkX4>6X_VnJUP1VIHFp>Zx0VcuR*qG(Aev3W76JziE=0)^RI>n+BL;hB>B1 z$5}sfw2Lf>!Lz(OHx0RjW)=YM?=3ue^`ogKbSbl-P~Dp>g;n^z;XNdef*^VZDZh-rqRCuw?Y1ce8rDQ(| zMLT4MailrTc-X^fz6NBwC*LZS1_&~nSxi-0eJGpoY*7J%%ho`-e_rKS)5>qqH))@- zQX`_v%wU3&w{|M8t|f7My{Kw#-1R0)7{;^7)8Nm?Sq+4;@um6N?^lb)J+FX}xTMTb z*jhON+H#6-;dS5Kb2lmn+cYKO!wF*+2=#*7c7^%;^eOTJ2?>>0YJ%b;1e7;Y;N+Y2 zSw~G$Y#P>Y-H8`nPFu~opq(&TFL1YP@}ZnJ05OWEBino?iN3BE`+usjVa^5fH^7zD zfHJb6l^dP157OJNbA z{9OSMFB+(jdv=RVFqNvckmZ<16jtX9U`m!==}}xzfyrs(1{H>;x6Zk=hrSEnA&QKB z<5qe=fVfoJuSkgXxQi=)Qwh0pZ$atig_Iz-&}Ye*coC1n`5L+iyEW&yT`(yf-MSiD z`I2aLZAgJwMM(I7c zc>U&mAPtUy_fBo}2H=uY&!;xSTC3*WZfRMRSCBtm)~`!0A?g~ETM0EmaXWiX$X(Xq z=jO`p!H~>@YBLm=gO!8S$8a0}&m8$;UUPi^4)Naovv?(7+VEme$^3gAv|*4MW`**Vs?{Acj5Dwi9c^Bq*`3?0S_U4rAxY)G(xMR$YMLccZ>;-VX zklzD#kqa%Jl5v@oj;U#h{6LxYn5xW3mc;ju`UvvTx$Q|^jnE%LzJRE7KI4+IZ!4}K zJTw74DJFP4_J@VZ#o7*ekD;0{wvCO?K~nC1Is>prLz#h^s2>TFHqFP4Tari<0OWVv2{ ziJynJiPDi~KR8cHMZ6CeWj~NZxQ2;j{c=Z|NQmU0z)(QN!d}(DHjH5wdjQ3EXy-O^F zqwgjrIV>65NJg5+PS8HuCEPhriLC?mp2O?f#dwclQ*Mm3E@85`AjgYb1kHua@(`rv zv)X`okT^x~ChIG`5*jhJwN8gpEnp6;S<5Lfz^R|>6MD05pHe-aRW^a34AA>s+1!8O z>CV^#5r6hKCH%&Dd#nI|d$m#`?Rk5`bl~|acgD8COec;Dm%n2CJZ@KH2XoX%Nx1dv zY-JXaveC&J>nKwwgS9bvb>{9$_S!@WZfbg>mbZP0nn(=#)zLS@_d!3bShqSGD1&2J z(G&@8X(U&gRM5}ife;?7vcKDSnLdq*=LOzz&YJgwF(s#$6{goCO09@1Z{S&ljJ^qe zCz>O<-+7?U&gjX;mNaonk%kXbO2f}c$8U@iJRw>A94J|O>F^DNG!0WI!4EFK`DCnW zf4`@@LSx32Sh)F`XeAeVhv}(O`Dmw_H`X1Q11h+NYU_9=A}6D zo!6fZ@s&aqnKw5t?;NdKDl=LaFD3++=2sJS{=*6sy}Kj()J zBkRtp>LBZ$Skh1uLK4Olq-;Au2BNk8cL+YjH-~yZG55X}DQ~@JLtp_nyn%1+QzX4T zW83gSviL+-_tRKX1`9dl3LrmXEu*OaQ}fAUwWIdcc=Z1t$A3i(kCm@ zao0gG4p)6j9}w2~n>@m@h@}MLXxG+_W^ui_D z!TQ`M(NeK_XgCr7)!M8Y(ReI_UAxbWfSPvBhj_Du`uvR{WR98el>wq=XoMd@%UkF( zPBE+Z5&(OIf*(g-Td8ii1Bh*`8nH)of3x_uLhS9kG7YGte`(_A={gUg85@H3a{hh_I8AD z+>E8hX_Z}hihG_M^`1+a&Mo%|r(nwx=HqT3UYF(^>qHT@e3FU@l0>+(6}-y30i0^7 zM5*wD%u+U%MI}qn+bO&%!)pqs?}b}p?%0R*?83_uD3+~kWFV<%WXX+9yD=<%J`w4} zBLQ`CRHd>Y_oJv@cd>B+X>uExVRroB;>+9VI0~^;(5|08C);yLDHa>yXj<4FiQfEL<+ix+J zd$L=e^swSR?Lr!cm8f6uyvHFh!H--)DD)HsiZq;O)ZWNrha$92fB;47AJ68)Cd?8N z;UJ8wh@VLeF*!iWA8dGqFZM;15#iRtc-XgTqZ}CB&l*_FIWP&8Oll13Bma*`sV34f z4QQ+NB$B_9?)=IW>a|72!X?bF`LB$1$@4i|N4MEsqB(h*YUx)Bjw=bUYZ9&$mFRrI z8{Y~*P6@*!+61Whg5;eY@`X59^Wx$Qr0RgKze6QT%GSTkGI-cYc<28P-xv_0HD2YNE0eQUPbyFt9^M^f6kHlhnWU*0DRQY?Z zhg^%|{io=b$-Um8$atqXOUMjr=*+&t!-AcIH4@o73zku`PaU5i{{fYwSZ+5>YlX_! z!$fqnOYRbOEEh&G$@7GlIyOl=C3yv1SfXfKgN)$KOJrHl9=dh~u6<1&g6#=Z!zU9O zc9_%oHpX?G>>b@{gXZxw*Zg)TLxgM$!VfW7Pagw!YTc&>3>sY3RB~h-?Q%3XeR>Zu zf3{+~)eVs8UuuCw^HbfFgyQ1{jeRvsg!UT$Aya#7|K3{;^dZr=x^kz1(e?QBms3V+ z;WNhjUZ<0H(?T^rGmZ*AEcTI3&B4Ou;+Jdy^?Q9+wi|%Bl`W}(eiMnQ`*Ls*E;bI6 zMZ1ztW<+T>b2RahyHemE z`XC`*%z5YjDz?^F=vfp6^iQYy)3$XFaQp*Er!)3>?g>6nDvma33FLQHaH!Ya@{&Hp zJ@d<&WU~OA-xmP}t_OXP(H?Wf@#+ba3n95bUk4?_l$RyWk9KSjD8Hr(=}#AvKUx@C zyj?i<``J!z?Csf%)qa~2q!PZzVY4axCsGUS^D z$Fj!>ckHZb(BM14Z3&H~t!zD=txS_m+)HZmQ^8Tc1A?DHRs6_TT4;<0smdtX&HXOnY zW`GO2+T666?Ii1s<3MXQcni7=w><4tcoQUQ0|r&_KL8tvN^aecOz`o9E*9JvA#4lr z^9#l^h#s4qiCS4Xt~km#)K}<2kG`dp|9t;!2b~608mJu$Fsw(qK!-pag)9-E+#7Ur z=gVE_!XfQt<)7q{fJ6#?B>1EAa~d8)vUZgP_sGE(c7ZVc$6Iw zaRP3O55H3@_>~>LCerT_n?L}=6CG?#j0l{pL=rh=uBBp z$fL`k*h%(AQ3o;gb*rCQ(2!Rt2=aQ@o0T))YH6HxUzc0wcA0VTYNU$l2x|I5IisFobHGV7Uy%8)(1KqKs|=3MkqckN&-cw6fvRPA1gPkF7#CXC5@^^KJ*UJZ6mXI$ zpunma7CT3RWs%**{#j&|M4<);G+~c!m>Jf}l5idBf7P;XBPuGDZwG^O(~Ll(cnQ!q z4Lg_1#38`kUw5&q=O?8;iLqd>vjy;aJ@jSFPAsql6jF|y>no&Ll8hBbR8R{+qMmtS z3%m>Yx6A|i2P;!bo&sM_%*h1wK=%)Cx&Xr>zbAi{e;#a8i5bXnbW4w%62E+uj zm$(b$Qn0ivORie~D73VUwP+m^6VKA+2T@c-zey7a?RXU@X_}X%WO()3tQ6uy)`Nqv z`fk2W6?&NW`&QCx`3q2VhgtDtK%{V{NvGZ;jwQ+lBBIQclSyPSRf!e7qe6k#? zeO`oL#eHnhQr6L5b!@eG;qAaQ0xh`5mH$0fAO*+OJzRxyzR z)}Ziqh1;mugLdqbf12>KsM!DlOd3Gz?)I!=$A`%+r_#jCYaf$hZ zQvl1v8a=2vtk{HaXXST3F>ZiklM;CrMh{LDLLz6Zx*1xV->Gr)#sZ({v)OTK%nX{* zOC#NcaL`B`mGoM1$O$yyTu6bY-D&nKXs+DqfP{nuO~!^jD;(g_us*h4R$yd8hx@zS z+3^26B9&!nU|YCNML!fTw|NnhtO!2!3yFMhPdes3e{c22HSBjT>GP*U8>uNxq4db~%s!gZ?&Uob652 zi_R_REorg+fGqqZa`cOEOE^i(0<8;MngR~PK{HUCWXRqgotA)rC5Ee^ATPh z6VFKD&Nd_G8%|K#egp;J7pdBmWKl8}`+Y0Rk3Fy=0St46(^3cq;YAy6*bZd)oj>_K zz03FD-@-^NYLG5j_{+InqueCYHeO}UyjP}1pV-_GSQO@t<8zWOnl-S{v!}(c^5CeJ zIn7bZE+|H9liNUhCGGj_v^c!Z1or?O#ytVkCDZ5wbB@~xF~?{P6xcfZn3lN)a41!> z-EIropLfjNzDE-j1|n_B81kzf8_V0$RkM|)4&ZUMPj$OIk~L6=UYPx;wt_vgIOIKX zE|dw}dwBc=p4-0u$oc2vS*X&~;>!tEcL3B3O7v#MeIHnfxgTNEN7;EsKMK0V=tOE6 ztAg&D-DcsD9dk@jDy+e2QZ#w2pQ|?)05Z_uBYY4s#r9JPw(RqD`1*bXu~* zoEn)#;w-)lzCrZsxS)CroyK%~KOq;Bwj_{{*L5@o2x zR+fGkWRAfhv`iA#H)3;GpeD8V`JWiWQoVu0D}6LF7}uw@!c^|JJ9A3W5C_8oW4T5_ zEQ^Q<)5Jzb&Mv0kvI|3MoK!~#$krKDv&>-u)b2!K2q})I z+;58_YTg>b5}2U)H3^i)WW32LPp1gNiMgvpXo;E?ne2bV<}DljN!5ChUcnm1{X$$n z>F@#=;iO4A_AQ4-nOs>_gxY5y*s{7NNhq+M_b^a`#i|~ZPH4p>snqPsz( z@AyJb$q^)pKV*$;6%~*Bm#@ut4L3fMR_`coV&slZ{ycgbS}nZhuYTzPv9D-ODmI}p zM_=iE%&@?j6rInUh)yKhm?j&n_G2LbkutJMNuh874~-Z$SCf_}y=09z@mT9eyv`AI zr5vhUTxS=N#?nrwGf=jGI65u@SyutiAQPgPUq7EvWkbtlsW`%p1=zxE^%DC5Ud_MHqT9kg&UtwXm3x|40fJ#-%J2RK9YQ>CBDp@(ZwP zIIx!h&E8+pk$7ka$&!H`?vq|*E&|IiZ$17e zO3wok6#mqO|6X(qHq=;IIR2T-;Y};Q1m6~a`&y2M)!VwOsL<0rAyqgQbI-CA z{ru6JXA`@QOoLxx<#4RW2$&s&ocRHNzR1=c|B$NWv||Y`{bK9Jo!30cg|zL=V=$>hoV{ zlc2K&vnmCZTTPf}DP9nbG`v=j<#4E%*RS~lp{eg@8lX}* z4#Qc3n;Smk$K3sF2|ZI|Bacw00er~$T6Pnws?1g5&1fY6rgzpclbUCNlX(L}g|dFI8m( z(z@pQE-r#;`r`iYo4U{wO0@S(`*ax!3l-Ge>~Noshy_C}Pm~7IDZbK&4{h79PN~tT zA?fSD3$1@ni+CWI_|h83L(tnEpzCFZM8VfqZ>SK>8{+rzv#>`Bl?LL+a$!dX+bRds zVI6ESk)QPwSud2k5!I;kG+J;7>3uieZV$)vfZcYts{2IUbKj(JbixX?CiOe~a<$`@ zE`ocrdr`|=+OP5vrqv(Ne47^b}>U!0iXR}cI9 zSgD-i0;uguqCQnUArmSQ%#R)psj${$>o#@ge$-M)Ab`8y{%;_Q)-JFM0uwgC9>ubE zKJyAnIG5B)VnxgWNk4!r#(L6Taj_e~>A=}C35Ky(Yzhh9+F-HvVcm7YabnK0;U+mf zrhym>hNwBc{(5NDh&O5H8=5p#Dn=v8Y0D5i9DC+Z?Nb0_f)-ppX)88eP$yrBOomT3Ow?^@ylANZQUoiERToul(rbC`Gst1H88xCLZme7T<4< zBD5GOXErq6!sF9aXf7}xn^H6rGQMy?aTBYf=bx&l{^uy1*od%pAN?cR!+d)tn9QRV z7axoG6}Go&P1gLoAdFpt6GpVz)W6A(2!VdBO@XmvtB*?cgHOdiYoF!eGVDT}9aAc& z@?m!}(Q1TG@-{wXoIOtytkGimA3`Nd;km6k>Ks6VHMyH&{9#M9*BZN3z^(IzhMu2g z0*Au_ArsOcaXp7K`1MCAB5*N6((wJvGdkK~cKhtrb)x_A_#IV}Ky-Gy}keZ`mG=WAV*!Lb*@jJ%~g(=Y_RJ zzKvY>^deV@ocxq(fkMA#D3PD%uDrkN`X*D5yfZV5A}zYe=??X+Ox5X3=2Rt0uL7BU z1w9PSikjeOTn)4#>uG7Mc+r)$*luCc>Cu>9mPrQFo`*LFgA&ZPMIp=+sCST)H3NK% zxIO(=l1;5ET=#`DEu^{RJljZKu%s=YLJ|PMb$f(FA6bCR%=yJL<0INW{GN^@nr295 zP7814oa1&}P?y@g;po<}RU&p(HqLwTUN2Laqh?K$qDmZ`jlJS%mmr5ID3`?M79*OL zB69&=yX8C4;0&tXqQ97y%!ETnt%bp2fo(<8EP04a*c67R0B!GosCu~mM5YFJpi&2c zRy+ji4$NZpUFan>r!4~Tm^iR7+MSnmYzn*=OpoPes|)E@S~1G!m++*;-89Ny8Y~4+ z1}cx=)sKyBBz{99>Iinc$#Q=QtrQ-&-lBq#%Vlw^lt=u8hXVQlmdYr}w{qK`HnTBk z2zfRB(HXY_r{Je#D`VySKDz3LvCkqr5F^I=l^aSb>`Xns}|NpT*k@>o|nFqs9<$&Qr2N50w=aW$>6TJ+T75N zIrYfa*&pu}E;vtsr(7*`CS!RM868kP2s7=Kq=ch+s&5ok*4v z@7cVI?m}}pvU;?AeM1p>j1Ik86SI3|svh;G8S{=5vL4fn#dUkLrVwOF^NgL_3;yvLf#es4233#ztu) zk~Oi{g?3)n#)(7in>+RuznM*&9D`+oU|8xdA>P`?3*v5Bh|- zmln0haX1BLlXl6LT}bi$Fg|jmeGV1lVlaI+K!n7&-N+*xMYyZhhx7N9nB6h`0MFr- z2-J-Cnd08|)M2+!2ST+zUb%X&u+b7aK72w@(NF>711=Gd7bhx702%lmIQZo8iPBoI z2R#85yvZ3tAOP+~CO&rs=zq;*lmj*d#umYnzsh4YI2!peSamc0fkzFwE)PkK?FoXV_+8ptifmy=#z!R*fRinQZ8rj;P0W6xc-H zaTDtqzJ8j;;-WOCz8ukuOH+XE<5cB2=o-)hmy=8jRU-GU)8uH1%!7vi zRNor#vl~Q$_4N#E0{jwy!Ukva?VYiDnd_~XV&(N2!k|lU?;a?RNQE`U-;7$_c_8OJ zfXD*4_`RTUaZOilYvnZ*n2$~qF413&<@hm6jmggRBfAz@&bp!!qCeF`N*f?U{PODs zKW8NHEdPV0widh5)?5&{FRK)|j@BoShL1(^CpRSK5&ruYIHp3zU;2`(UGxKI!_P9gPbT6nVgqchhzk94Sayt<%oi3%jOR56{igD^b!C(mqoyf zl5eAFM}Q#aTD^s<(4(7N3MMhz8|oB28245#8#aChQCEVY2Ufsg`gw%XOddV)J~e=I zpAiHRbHa<{8apCec6WCyfJjniY`|Ky)yF%vkJe3k;ozO~L%lf|1ZrV6edtZnBzO9by)ky# zBo>U0$#7U76-NcUK`l;qt7`xEvr??*hx(~1bH)V|4=qiOH3N~3JbulN35JGmJO)rz za&4Q9v#Iv||uIH6RxicNaEORz3X<;+1%ge@Fa>FQ>16||`vNAF1sktV?7OJ&Q>n%7hdpap z@JWoaqpYkV>2QD!JZ=Rj&59dYpT4Qzt2+zml%YS^%!1WSY~EaR8bL3b&2r3@)n)_` zov5wQn}fAQSWPT9mSD!oj^)S{Rk=!^RRY*-hv@=~kf3%+j7#jf(PZgLFRu%}!;pX@ zq#wrvvn;w=Rq;pBRR+&~rPN!u)UMHayvzh;vHfcoQ%<9fpI8*%xmS9kDrjzF%JpU%u&v-^w6!=e!~lkD>SOXtEkmWc24C1kjlb zj>6nK7np`qfA)#Q#rfo2$-iIQzzU04VoOp4;QQsFv|AIr^HPXL<{F zEd35D128m}HAgTF=I>OkVJOx*?x;dF%GKxXWiP6DRd2~t5>P_vpT}wM_I-l6!`HR1 z=2*mz9ONHft6792&7JlcO{;gd06ltv+V2YjsqGD``37>Ia6Zn}zm)C3cFN>vShj=V z)=6w^+{>-F7abE?5A}x&1Mr9;qlkaSfZQXa@yiH$cdA8!gL7zSu34$}uN@qvZ67`9 z)83*1o7!s8CC?6ZgVK{qyk7(_Qqkg-#tyMzZ4*u?m@03)R^2I`zd~}A=<)`Rit%dl zhf?ppZTe49Tw6*V8D z<;%*qx>0-`wow7<|RbKI4w4qzyUwGqDV>G3W&AQ_oop5hU2fc874w#P}T``tpS{FZA=KoOT-Te0J6V97^NC4r=A$O;>8>8*D$osu@8R|Sj=Ghqsag&B?i)4Xg})YB%c0(_4_(yao$w+FX$ zQvFx4(;$wdd#E%VeUp9`~} zye2|?0kR3|`Df5g^cmjD!VpbSK#so3XaF2z{lAw7-{*A(IQmXO>N9JOh22MgsfX!C+!k978nN)hX4xkr_`$>SVyQh;dg zCyA=8u1Bt@q8lP_TGz0wuaHBhH2<<5dFt>OA$pOO(Gx5$Ij~#dJ!Z?*G%UMM(qGox zB-4G@!3;3)y93Fc+Xv@hhw9Cp3M7)@B#>AN-F&0(f(t>TwkA(k= z@rc2Q5v1vW=N{>8#8aPaTJg*ph#?PF?xnAU*NdI$gtQ+-oqk3v!9k2zrV|V+u^r|m z39e3;$e|ED+^^;zyl5g+tn<+Dm72TgRs1GL z)e;2N**GNKd{vCNJgrzBDUzEpTZ`nB9FuJ-_eV#tpoOSgv8R*^uH+IiN>3|XAM37u z-}U+^Y%3i(yGgq?#PDEPB;~MQt0+8eFb~AwQL3Q$|*Tq-8G|lDN>F*c*+K zuD|t|=Ntyb&Kr82;X2D8N92;C)Oa0y^*xSUcEh(eZWOHXT1-$itkbpY{3YC_$jb-_ zm&1qvICXaHPR(NPPVrjjCb|Q4a1J_pW%3@xR_OaRrH#wDMV)(D?bYU#Vse+@+JWzd zDf}A)c{C!X6%nS6J6Lg)O3%b@?`XV50Mce60YwDuvcq`{9mhW$ai#C-%fj>nGGS9h zoAQiCG5l?$M-Kzf`EiTPJDFNn>J}^coRGzogx@rR?v7g3$941tZ-@09yCaGl35TGP zym?{<7W~H3jpxl~o3qjM*wwis8z`df=MSVX0ANI)R9As;MEba@ zCwT2W3=DhAN_S7-lQgXiwO6?lYLxmUFxp80`!eOUlU6iCDYS~_Wpc^3hM>KN@@}Th z!j^dHt(K;tv=4f@P#ckNk}Bd4#rpv$K+YX?ZQ%D7mfj-(Q{$a{U%YR;IL@o2R?T34|S)NJ)T|O-&jox z9s3`ctsX;b#o27r2i5%#eWGvA5~2C@MZ-=%#f9{dFZd^@<0f-39Rc{W&<*nye)ZJR z%l8zWE&ww?%)g@?vc!SQ9g%v>=l)rT0qq1uCX59Kj+AcDtK02kFX2x7Ii0tH+T=eL+c}4vg9YG4lS4>+e+xkhj=u3c+bQ7-;J#n z1D4n`Pshob!@b{(MD3D|lB2U2tvJ!Ttb=Vu35_}oG?x0cg02|NB98Rr6cV8xN?!ju zg(9$E$FQo-f*TLHr%aiXc7}WyJ909!A!>>t%zf1vAwPf0%lxLVY@d2V6q^t^8zL*s z_hgS+v5{BHBmh1203cEH>T62ZM}Y`r=MR6NhY5mV0!pwIFsLSue#001=;VPftOh2v zKdC-VUIjRqf$~`xWtCc`c7BTng^UrZSWbJCVAUO9-mMEGNHed#Lux}Wv3t2=2<#b{ zk~LaC>n%0hwc|{~TxnF06lytY4$a4sP7~koESzXKr?S7ML1TYF^t_ySPOs%Y&{OIC4EckCUhV=7c>8hIrwhq2Sya5^dQ%wUcIvvQao}74=SY< zqmZ-*jc{AKt-t0Vy=;1y`-S?l6+~wamp7)74k`R|in}KSRNm8>X{N9Uhj$?~It_PpT;lWkVNBUN-2#JSVGQ7Ix8n+D{YkY58 z*XNj8lEPVu&1BL)!u1leK6(r{f5cz7?7WG^Y4Qg02A@1k?T8ISC7SwN_=ieecLP5u zAVgZw$~uQ2J2nIMY_?oC;Sb3QnL|jhv~{GOcD3gRh8`H6AsH!iFKz_C;~O z4(Y=cH`nw3w8n?Oc8;ivXJ}61C|Ao-W+^MDcc!ze5GFSJr-mZK-bP z1EUeX0X3tEl@y2ogH2b?!CiJ8xZ6o9U-q7&o)5|n6RXbcJQ#O*GkINI<6VWSIs=c9 zXH5?+fHarZIwRHdKCk#+LbX#uq+&LL$=((Z?=dV;Xn)y??2iPJ;>9JqQE>QUr;H2b zNi_^<8lI`n1TF{?M+W)sHDc221BCh!2VY~^^1)@C+~_?P`iVtKdvwxKuOh!r2cTCj zdaQ%>c_3~hgbIaG6@)?pBtTn6E?VafU2huUk)Sp(nh;KRAe&8_ocSNegMRv`STucV zVGIJQ_ZSZvg^1a-?ndDaj{drt7n4A^iF64ik{|x8rbD9k8FKEvY|E+4%tv(;owb^g z3*~T)V=J)kzN6Vxg$r~($8MI6Ro@us?q< z9Uz9(37a8qq#K7`2Qe4v#bhTjX&pgZf6e*HB%F585DLvR1m~&>a_;Zcna5j22uNFH z2Im4`wL4*MRi|h<@6de9@6gY7tPEzj4bW>`x-wqI!k)Fi_VvoGqw6UHm2FQDY%@)a z6{s@M>Kr zk;Ak_)+29#V?GZjEws0yJIOvXo<=tha=Mc@#OOeb)5e~%(1C9R4DtWD5e8)3t*ofA z!>69O(@P~+jr8NfDCjZDqJBiM4_R?l;lLFcaAzx}l_K`Pw0(Z_o`uO?yQRh{^ddaH=eHS}(b;DhYyZp8LT@tJ2*Z`UCvmJR+#l|$H(+fRVA8`8?f4|AWeHaAvSWBXdAJa9Cc-iPt*g&6|8%V`LU1v z0>+9KO;W$@P`1)K(85$j{B}V;%6qaNsC%fGn@n}$Z{I99`hKN{M9EWp{S6b3Y~7AT&~ z?8$nl>!RAWqEMTmnsI~vK8ET}b1k>-+3?GXyrnedb7bexMN)?N1}ZVIxy(UgfaFF`k!jvZ++s3@aE6G9h@A%U3oAa&6fG4k|@ zLV{HEFo1sQHeQdeU6a3bBT4idxpL61x#2JDH~}v_Ge6ipp0>d^Cm^@UvU3PN%(}yVlLm%zsESY!wxt(&NgDEe})E{MPJc|tsn?7Aki15WtGQo z{jk|}GEY%6#iI7wvmiiyVck*3(A(9Q1)I}&$?t=(K3FWsWU(Dn89V)@*U+enYMEbk z&liY}f~3}4J-f=NxIiLsq8cbxol?1mDAGMNN*3Ig`ndd^@oV7+!R4FHJo6T63=5aAk|Uz_RQf?!$HA)eLk%}H?5bVT@kKKJi`@&$RQ|ML62 zsEGJ)ZHY&Rh%Xo5ltXLDAT=*r$#|K`xuP{BtH3ZiU@sm0F>TClExW%@A%~iuT4yr* zaKc+05I<(J(w~&Hx6swj5rMfb@HnAF`?2Z8mH3zJJLjud?P@jm>GaTEY~wy~k&|rR z2AB*TLGuVM#2+WoalR&J@w}(Jxvw{1HwpOC2zS>q%+uPwxta!3uJ0gEZ}?!yPOF(! zs@=Xkzp_x*$GUelSl$@|T9Vf?xXmiGG%y%9ch<{3emowgP@{V()+Nn<=$2ZS4|QoE zjjJ>d`t;)PTi20J6XwI!9OUYDLs7F#ZQP8J9ue>yw%kgmlvM|^wajTsidb$(Fl=mQ zhViq&6nr_U>Nbgr+7h~;mk`cc%AmVAVJta|KJiUqPQ3x!Ob(Z3r7EgtneX0uk?`X0 zw<6Yf!SOXyfr?XV{Gk4hT^sRbdZ0({VUF$bUR1WDccDhRF(%;dK_$#*rc1 z1}N>GTfHq`Gve(s4-s2(XD7TzqIoN;i4csNrp0em52MC|WcF$gHuP;R*nors=eEVE z&D|phoI~H28f~DqePfBPc@P;Z6wE$KaCYDKl&*T(Vq6Yv^>pCihG65d4t&$VkY&rK zN591i0)x(B+v>yvj*Sqb!ZO6Fn0f}1V(TFBl-7}Z_hnIfWM;}QHVu-&WMH01lsG3z zYN!%9Ij4y^n%eDAKi-pGMI;pzcdWy$mnESNd5WGh`(PZb9s(1%Dm^||hU$&bbtu91 zZL)h-Z$%Ip)}aIYVHtY-$HD-djSPOyTwQDLApkbsDWi8szG8k*F5I8|TklY==8JWg z1}=ufKp56e+rMKeRNh;;ay5MC`8hV6A~0afYRB*k^E=Pgh(}FKP4=8N4u{wuVSf0< zp$;b|`vWz(GXU;AfS4SjL%ZoOI+d4q+e_kcMboD#pndGi_N0Z{>vx~kvh%7TQ@Ba} z#BkOp1H#BaogMe-xHsH;=1nSNw&I<7(D&Dx{4ja+76jmpgchtcZOwmtvViX_j2{PL zKLlr8VIY|RbsZG8EH~7K0j1`|6eO12cmLIVvC-OyyhysFW;BW`Ct7oI2LuWhG^v2ynygfA zPX}<$9+*n^q>gt@Ba0T?om#vpK)|Y8cDWV)g^yY@C10YqD&i1#avAH!lGvnM;tPcj z5}J$D&`+%{fpNIZH`+??r8p~^$Jt7C28${F7g~<6z+7^kpUCMwFLE>542`h--BK3q z0jIw~PTik0GT&41!ZXF@%gRM8HwY{)-6mzU{A*AW8hnguSoHsN-rLBOVz;|q@D0Q! zMThy6N%6~HqihzO5W3#Vxp0h*bXKlQ#vf@H-OBqEI}_N5Q$X}cupNebk;z>t2jCH4 zmc&?gn#AHQ1#S)`MKdEg4Ls5-WA|nXl$2&mB(rTR7N1E!CBzF9Fhzn?ep7|Y3cIYM`M5`-i(%rO$0{o_QUbOZ4)PC$LzSp7)G1m6(52qk zIdiso(h;TsxlQ|~5J`EocSn|MkpRKxsn^%0-}dGaCOvRbqm52#7VW5MZzP4reEWi1 zbF5k|6hbP}EIl28wDGgDeI2tXdw(mT=3i>lZKUd_sxZ#ZJOxZ)w=yJz5(v2r19X-` zFvtr7D)}y#s?&c8`s}co5jMQR11LrT6R(euy=0Q#M!r*XyPZdD*`^AaF*5v-zc0Mo zmD_+kT`xl}A>Vrrkr26WdU{c2M6sfL^2M;$y8LNhOKMrB5Bu@RYrVAM`P&7B_bw#? zPqZ7#hQHs)vGR>AoLd&@SPjJEnzwLG+to1nNwiXnNHGyso2J90BRA{x?b8DsqgsfYCP znc~dsU0r>^mo0LxoxXU?U!0fDV3QH9d@aYkC&4nA6B-srsnhY^Ze5tgznZQUrhtPI zHy_eMqF!Lyw2| z3dp*OPtY)Q&YTGm_J{!x@(*D;&RIb4Nq z{33-DMe941brDqYwjsxTa&Rr2-vox7>uYKOqjUG35xHZ8A@y9&6;;iH7V{I+)U<_b zFoZ{6H45>7!tKEUr+Lnb}242;u>$p z>689`U!*cpyys$sqo?YgO4{r>z=3yc{?-bUkh5Zo+qcqPU9&Gz0dnBur^D*oQ#w}X zk@==cn~cFWYw@BFkaf7Z6xAtr2dGSU42g{3;c#`*`c%{`^vSb>oT^jf}?%M{j}hX8aS@FW=}VqvN$Qri_uJLP7VgTHI4g zEuE2ehb{_1CP6sGvk8*qFv>#?28^`e;P%}Xt|8g&_Uaax6nV&)Kf{vc6~=vy*d3g7 zr%D>aa5jh!*DSH%`4QWQlSKSc67YiG+RmK(nZw>AZEZEG<*cF_Z21yDJt^S5m0opL45$ zmkmOJbz=<#Mr(nxpw7bV5C*OMW?Xl0{=mWYj20G?YIAzZ4`;j9foLig)3@KWB?tM8 z_l1U(th4H)H-2N|%<;X}L@hJ_g-Ez*z|4SYY>2jA$`beYj*ic^1gg@5YBpsytbPQa6=EqUJ?i{o1Xx3bbM@v-K@a1CYxxm55UVi9G=E5#o5KtNi5iK;3gqU-L$8En?+_wbepzQ(?ea? z%tX~tn1V#~n2s;yxmAoaiVG?h_|F8wkjzPLR<8k|cwdbvrOBgqp#<}auc;v4#;@!8M` zo<9nH6LG7(!6<>B%?xs1b{$6J6C!YVefY(!>pWlPyD~3a?LCRJ?V`#bh)*E>X7j!DiHS9 z6jz)ppEU&y?!6=Cnc7C)G?Y*rS{ds-*LXUe+ak2oe{HcxlZe*6=zKDyprR0+A_da1 zW|3KKB&K};iwqhLL|SfR{ugNoT}#M2r@05F@i?_unypp78t`N|b;~$04FHB^$5N|U z-)PwVpD-26pcgdN>!4R?hmEg2*%aJ-#btt)5Yp(yYx;IWg0h^VIJOdLtkOO8Mg*}y z8!%?{K~XF<&?hPnKJyhtMF8rlHfH6 zy!dMHtrcZVLn}+Q-Eq62K75i_M{>w&GKkWXX!vT+LZ{Y)Bh`bWdR4!DirCk6XfQF|ZWWRB^NrPD)QG`Yt&^_A4TZeB$>_4~E~F@FL?8VTQ_2 zaY!cK0Qxl=`j}f>d#T9*gHB{JO!n)*7TAbkyJLUY#O!*N7suek*_z` zK*{R;u#3w0|0ryPunLoWFve=uA$H8U32y9JGd?My&|(Z$(c@F1c%Mf6)-8Zl5}*BLqpM%_ufAWlB^c=WXI3ZPf^R- zEh7{P?U#g4E_+*R>3qc=C`y~iz6=MB2zZDl3w)^+o}3z2L*}VV-ZjI^0-~*Oy6CJr zj~qnV*w;q{g9}{xR=E|Y4?JGONNyc%1-#_GHxpbA${A}QzL~LfUTa>4;S0%rz3IKZ zIviM#9VApyjT1#kswt0F_$SUytDMWEI>K~F@)1W4HeoIEI_#7cH}kmTyiNAt8598j zTVn5elzxUB*CA&}_>IKoj3T*ZlMz`e!TSkvg*vCDVVNs9KN*pH{KLRG7>8~OWqHH# zw_EX*(5#~0uiQ|LD-T-V>0aw>dqALgZwjt-af0L}4f%8wGB0J+O2}-jc?UMSDZyB9 zyQYC^Wf<2T8=iW_31(#qHV`2JG9}4t@yHdmK@3~`PKjH2)-P6wAwZX-t@-(t01fCY znL}p~#eqTYge62%LzKhk!VpVS@hYP*@dl2;?uPQ8fY>$VU8Hz@5o}75Sa7AW1VaKH ze^CS}@6x?iy5u2rfO!(%FG_>Xn#zp%gC(|}VO8+b0<*f$Vn`%g=bLF!^evjQrs^Xh z3w~=R_Wh%`lkP%QlR+%SZYP@;aShGXVy~7Az8FhO70c1{!cTe&dnX%L)tlI z&c*d_Ch(E_U>4TUpE;@bQ5+o}P$vXZgfS z;$2D6(e+N{T=}TB>yaD|*Qf#wx;lp$^ikQ(!Scur&^V@80WQi1@Vh{?FcNCmURo2A!-E3y z;mw@hLYZ<{pSL0_cNNqt(NyEh;YUXi`D{98bA;mD%HCIk8e6L3*$}?}fm4c#Bp^Up zKB`w0N%zT0Zg6Z#hKU2KYW*&a{_S<8dZg;CM3J3x4FkZCpik|S_vXXq2M^^7Z*9+x{BrBi}d*TMCS>)$AJ6grsWeNrBq_#^2Hmt;Es=AJtLz^fdZOv z{r05BA=Sy~a zmAagvJ}$>kwacvclq6~5aO^T5Y<_hmD+bZzU>y_o^#XU`YK-5FK>={BH>2Dcn-V_f zflV6k%oAhbW%>kED#N8RUY}Dv!|@gNj$k~Z&NZQfm8F5otOL#Wk7mziRned^*cQB~ zqO1Lx1Cr93qB#IwQ-NKf38PWtr74q=QIV?vyUr3?8wZHdX8ekpMWvKHuMcAU3t4I6 z!U~Vf!)+r?j>i}rO}X-xN~s2FU$_aF4x&bU{yz@!Opy1gPbHHk+w%-{7G7bWyBwO+ zlY@7Sx-G5s+>KN4QLoJ^Ue;C^sCsW*5Zq!@$MnWjLHJq=H#L}YYV6^8DT-vuSwEZR zWPzb*m+blj-yyQ;{&$yVf0eP}t6!~#2vZ~KHv4y1K&;oZ&w?8p+$m>*XJSnKX>B-4 zif@l@o2^M!zJ|Vnc^|+i^NgbdF;kBGI_;^gK|&+ajxgjB|Add0K9fjO+{@nuWb(yf zmmgydl2hK}Ka^r{GV|&9zc+nR9A+p%Bblowjfv4aJ%9yv3WcE!S=aqGC0k@l!WvU*giP;2HQ-lH~EWLl1hXTMF;x{Egox2!(F4H8lht z8`SGiTpt)IAGQHOxTd8Y;T;g4yZA*jf8Y=cO#&g<8$;@D5%J&#J{ydG&tqMp-PhGB zaMHkmJUo>vtH1~JQfdoWZUH}vXL3>&06OhraXFUnwwXS$(`4cJr|$8z#?qEtSO9Ni5dHs(PN&Tzx7Uy8+X#}_o;xUcHfUx5 zgK)F7(NgdV3^ms!f2tK&5D7F$a33M0a-yLjoSRS>V_HqBj{oyZsv~U{f}#tX;*wm3moc(UQa7Ry7e0?jwffHeZF0$rZ<2%$ejJK)S>3Yx=VX4A@I-CSE4Zup zh)!{YPn#IPL*O>Q?Jh0`SLN`2C8<$I=S|~PEkhX__$1p1J`SwYcyUm#pEF-KCj^Kq zuSJIJH`x4ZMI=+xYJbBG5;W)JP(SD6=U(6wLd}k<3n57`QiLW`LQN{K8kMU1fu|`{+*nQPwRRp>d=;Zyg7eDbC9SL&Q z-l`C*LBeF2@H74$Fsr~<%pK-D9RnLbe~vZm4rzd{4@uv88p}j$1_bB;Wjf>oLFhgYlj~$o-f4Y`#)<) zPA~n3r19Q8X+;YPsHuxRYMA7)3D7Y>&}&)-jK+Fvg}pJ58*_EnTrJ2NmNX>gC-Yo>5yI9S?FfAV!tq%|op1(du}SYM5?%5>rh zwj$BS2+wTTK3M0}YCjm6_L(AO zeeK_sVyJ&6Eujqm$u>(D-2(KL5gCF_+M;Pa=C7A=@Sb`1;g8U;PdWi4;#p-Dxq}8t z?M(`HB8v3{l1O&zP(&qZQHH=7Rwo8YmHSB*h;OErMuQ1SmDx=SgN$hmT2%_^@5?4glRZ7vx+wx=&aF?Y_k9x~q7={!6usyNP&4s0~X#0{lEZ*RIZIE~GRsMd` z4}ups2n8JVc3q{QuJmq91SF6z@<`LbVuOyAe;Z&%|dbEEfRCp$-m!24w%``!?FBvi993XS&#P0!+JU zhFlHYM9CiJBaVuX0xBEkQr8a+tUTI}MfqPCBREvT!u<)u(u{`mh*kB@^Dd8pe8s3D z%RJrc0kcGFeuTh9dwtWkOA&Q0fmq>7KVY5*O6Zz)KUEskQf`@NLa1Wo9$s)(U{xj+ zM@yBbhw3tV^4G^BI88B+Y0u!1huC4h=v^;N=vSD%V!YmjW?X`K@}SOZ1F*0$k844_ zWu`YamG#(cMC}a{Qa~Sgs!0SNkrgnW)k7V-wQ{^!6|sNY!7M0}br4qg@LOX+@)8fK zi)lEYKq@BVW@b|U`6{VU`4Y-gpl*#DZScnQut~#1(&l^#l52|GR5$5k%h)d3*I-6U zKv+U;p)wip`V~uSr#C9wV(NK@;kC!MZQ`bgcFM??<)-bDuOhPXg87sc z+KzqZ-?bnB>zitx!kf|-h6HiQHnv5g)^?CX6wlO3V0I~?WlwEc{*EV*LnU1zzc%7o zIazN)EYZ)oCtxQ}4(~9;1qq?LU*LcpzlP$lbqyGNTgBsm z1X43N+T~3iI-GU7B~uzDCorzG7XHw~ag<5udkT(`G+%ad0fCvKyS&*X`vVy~)d@8n zi^22fJ7iWXj?UW-&RKv5RBal0>;T&~#hCydn#Jo`-ub-MIFw8GqfkVVD!&FRNDvu+ z^g;a)rI|}aK#tVD#SB6w*~JE!z0+&eJ8kuZCLEUy*%eEJGIT)=l+Z!jsEAog{C%#c zUM4&2vJfR*$#qq1&8Ho_!tfDN3Gh~PyXaI=^~dnkkI(hUG-1{iDrn(K3NvW#m?XI} z8#FMr8zACM*Qv^LL&*El({!}7GI5-TMXQ}2p02w=Nj@f?OV5Ma#|4?ECa*Qzj(UZn zbumJh;oc&AJ#XAJF)k7I2qN38mPne2@z8mJe}<-8wUP+)c;e-wpNKJ(PV@cG@*<7P z!f+zH-ABrIL)n!a1wnV7lGD;_csCnx%kx+FQV4earjKGQcpCA(N@+wf-~0xw07Q~? zdf476=W${_kki>h0_EkwAkjCyzy;)6&8yP`rIeS6l2YkLW4Tk+I!7FXs6@059|ViX z5eArek?kulz>LAdb~13AW8AWftv1e6`}8+p;vf^zi0n#_%ql8?BE*0gHMbuGw`C^V zAIu{`D~eDlW`E2mnZpqX*}nH6mtbWzx%v;#I2i|K0qKPJPwFGSu-Z-isA;NQ+WnJe z=2s}s0K5$6UmD-^Q3+1XP_BoNBW)xmp3+k01Va!AHtM;97Oq`XuaHyzuRn&}-jZNp z4MC^1&2!M)RXt+?o0{Fob|9^*W@eXwGby0$tEx~gFkH7E!v8EW+@L10nHx!mfRaBM z@A)2DFtEUPK}szRe+X(4h+gAkz$tc>{@V)S#W@ZQ$Mzy{9Kn+gXZyb!FNWajoi2__o>nR(1}8o~Vpr_}iblkuwPMoka)4TlD6_;a+#p+gDamplqk+ zufZ%=?f%?lMlMc>F4ru$p7n)6Nj5MFTryNy0lA$YwcMaUTF;1X2Ir9IvH@QFOc8)E z$Ye!^a7@O`iF>gA5Xge@^z#uMtl1bU2Q)zhc&z!0 zEdB>5NfdcTAoqt8bCk(f-nR^!Gx4uR|Vi&76C&M zFjHSi`@%CXx}duHcxAwYsI#}b>9tM6Q1g@o5_A@V%esjB4n1aTEY@O!6X{Tp)Z^(6 z2-Z6nxPIM5QBr~n&ogM2loXSoEZ8Zyv)F3vgW+v4h10UnX00q<@HFo{4%TD<2c`pT z3hyCl!bJ-Sm9kuaUcEoG8+x?WI!=Ci@>v85UGa^G)75RodR8302D^kTPpVJ+o5={p ze`_En)dRyDIJ;-;w5E=R?7nM2OG&oKxM~&h67NVUx#D*9nyc;G0{j_k>XE(*2C#g} z_43q!tSjUG6{99;lr-_BZBX2j4BZ~X7{H*Vp2kJxf?bp9BL%dxDK`X|8fnRG)voEH zI7Y_al!y;KjA~j$%FS{VCYu9|{zDGI;R#K0ga)t#%xdNqCzW~yP}xAA{(QNZ#E~vq zUq15>Tq_e-#TMvcy9E}bRi9WZ~&ELASfKhDw&g0WxIhI zn3ZiwV*8}}v87)L@;Ak&x3_)}DlD0W4-gL~5G|r+YMFCkwONv3eLEgGf3E2sf6czM zqqeRW#V!}#&dCXUJ$f(5eO3Yh3>;^4s$4!@{P%biyasM%`=yU z`IYYWOgY_=_KLiT_^~PtPn;^1hsju}=1*d3X5$;8k^UnDp*cUi$<|c3fiD|{;xL0g z7ue$le0W{tNBX~%j;v;ZsjQS}0ur0Pdp5ayrrVxp7W6Q+>q6YvC#u$aoB05>B z=2ma9JH!2L-@b{Po(L~v}7@2oBN@^&Gp4D3Sg(i2T( zSIlHn`;hVdjxeJKM9AH+aAJ;ydBOh>ZO={?w!MVAL}zku$f8&3?;cI1LoRj~;g!IYQeAt_B%=sVQ=O zxFHuRI$)la-Z5cn*o#pLJH>bWB>OtlG>&)iZtT6X{b=x_?odFC7$X&S(ys zDR;-6BlkNpIHE#?$==UKYDCx+MU^n$mrpl%W>Alm!d-|^{6VM9+O%KMAj$TjSyIN= znFz$XQ-AJdFm5A~6}CLA$E!TZKGrSg!^+Ay!8&`;wo#-io1v0Z4^c2C#Z=18!g3mX zp37a{sP-$^o1-P;k}cC-Dxk};<-f-+!eVYcUX+t`cUG+VrCi0DPm@o2Mgj0^AoSt2 zvoAU4*ujNcMhe;z52Vu&Eh&=Qxp@)oYN0H1fQY0B2O!F3vQD^Eiz;FgUihM;Z>Lv# z1u*p!Ait9N(qsYxg#mO6J$3^6;Rg8zSxkNl_u&Z(8x$h3} zYz^fJ4ITn+`v1br(XnmVQi0Pat4=|fTBg0sb5Dn#uEwa8qD?QLtJ>OtlV2T-UVAzT z)6d58FlA*QM_}I=h)}BZ74ernk~V{=}wmJf~dywK2t`47-uIUmg# zdvlcKCWPj&XlXfD&b=>vSVdBG2y+3=i7-sy{cjj$?*`v#xz6+`19F8jIjblSE|C5y zw;He9)LjS=a=pC`If?8#dXp|(%r|@orsNRa=(238X^k<0IM{lHnKEHRVL+&FCD&p_ zsKBfyK8Y2U_Gj&(kGbk=5F$k3!>@wBLh(y+a&eQH z`Y6~jNZ+?MpASz}{~P`S2ZVeT!t&FCS@z7G{It_h&JYan-P{%y|+s)hx0WzxJ< zp7@y#S||6EDFj!KRQ5wlHp;GoQTn||ss7{i(IOHR=OXZ*nC1`k*CsamyInR z$j>Bd@&VfFa-Gdxy-JTKGJsdDY&cjAp@;-BJ8S+=P_67QHsH(XpKT7Zv_qgkCJX7P zuPhB3ymKxR5K>Fy%}mL(Mhj9zWAWj2Qa-_6%N3Z2PCJXF59VvB?*_p8cgk}BUVE=G zo%r`>_9nMtWFsg$4_On%RTo&)oMDjqMj+i>njD06$?wQd{)7&A^$skCCNySe>yeQ1 zjx0`rz2?@}J6{L#iuQj!zE#}{?#&;APjy_-qNlP&&|{gJ#A`&uE^yUxYuWkA z?9r5aSnMBQ8Y7-Cq$Ze1)dIVj;aH>tX)kuxt5jAD{)_{V7;o_uS~o#ib;mn+??T%s zXsv{cd?|QFEv^f!h@uOJ-chh{`u~xNE{)EJHv`_0%{o!jfHrL^wjvv6xrqh4?Pgvh zE%M_QCbkeMadPbD7{`(QA)MUj;RSn7Ra1WhU~U?L)L|N#kOCT&ywoKMMhr>CE&Cwm zJso0=GxO3KdM}3k?-1s!?Z|C`Co%hPiutxtcabwXOEAG(%S}f?ot;-zVkUIUsZ{3v}{`hgeUHn(7KNqVg_X^L+V1 z%@CTSNTY!WVG#|PH-6kQlpW*bXQdhm8Ca~g4&=oaL$^~fg25fUzKa0YvK1Ln(V~|6X93SevRt!4pxFjxDI7!VmbcjS^;jeg~Bf z;&=7<0K#>B(@;&D>3~&g2jM+OyHh~+TD6S}qiK&%yIpXK{RvQp< zD{RPkU^*!?)j^sp`Ac!4`eg>|9;@ZFXos17l5~(o>+7k|aFgu!!;4WnBZ0cC3WwNMXQ1zux%#?GPA-i4Ver=;AJVDwJZducW>*)#O4Ya=6Lg)&g9)NhQ z_QV|VoJ&SG$OMQ8`$Zc>_Q-v@Yy4Ik_qq_?5tQea9$gV!&Tk0jsw;601e1(M(pfQZZQ3g6(bwgTH(kLdk7b(T9lT%uo6Ng~<>n-B1m;mL^^#PhU5 z`eR+sTdJ!W0GS$#xC1zm|GC&1b5}IqC500&Pu@i8!PIR0qHL`5A~E39z`BYqlfn#mhz<23mp2sxH1i?-RPZ z8OM(>mDV*ShW>>m{}ZQ1ok2GRJOx3BC;=gzZI%c7o;H;Wl#}dNe8u)+qp*TG9>I#r zPLM`x)6Sq!|3K#|r1Cu=+K|!H^~T+~S&LC9=2Xx@xFIvJtPK2q)e5DSO0~1rGa76% z!(LlBMVIg2mfTor>7({78BarIf!UXXKE!DR(el?e%EojD#aLlpb)Lx)e)rE=p1Q@= zYohuNKgWLYpJp>{6od7fV${hP z=kdd#?S)1m8?u|m!MputFxd6d|~fz7nFz7+~3Xiw;Yo%6pQFyIe8 z<%1OL#{o#S`v3CFPXJx6jixdKl#b;v*?%#&_+W=*o`Z5m1-@p}>VI&9V6gn3{Nbd# znvkpn_+;DO>x|>N<2QL027S031#LG)mX}=iqw|~`p*dis9!8j zu{TduHcTw$T^!9?{w|$jCMx3&goeW(n4OJs264lq!VKTD zJy?C+6^}&Qg|sfjwXH}7z4ZTWt)A6(Yw55 zITY!xyia;*lKF@eqJen`cWM0C^I4jsWTeIC7}*1@USR$L@V0BgmogxIr^4G-M|-s0 zZ`=b8OrG=tXDbk~rWFE=A$<3t+~mH6-FY;v7ZRu#H6VelpJ;`(hjUI_4f(A*QVK{* zskT8`#_V}-clc7d#8YfVO)5;l@*7|V2$+lba&@fHO!!|qVYzQ5PAq`i2cQ*M%-z7v zpb9wI0~?JGHT~kpgyc~IlR(yK48y8t{#4Y)3VAw!fx2&wY$;L6CXIWyry+}WQEJpx znE%|Zu>e>(-~Jth{QB3MY1J3T2NK=@EDrk$9V`ZX}0Skur)FaYzRDs zozNe^U7X+)A1<+AS=KO$=p6_-u#qan3QgZ1bsTg2ejR`nt8l^P(~`ROn;B>f*HPg1 zznsGj+>OAyX_UnlNMHfCVK04hpYzmH$6pI{PBMg_0SPm2y)4ga`a}5!Gy{5n+&#;y z;sUlpCrye7Z_f&fi;#e;%QKMv^*b2rS5d`twh_$^&C<`F(aQ6a=uY}DF@mKsp6jiTV6)DUU$gDp*ou6uf}F5p6j2z_ z+LZ;W{`!%DMTU{joubPeWQ6Qj&e;7tCndWjD%eWnPTFAsyqNTngat+pdGE&tGw_kZ zOSxB;R9PQLacwMtN&quJ%)eTAPJo5&>^kNjemQaYOtMFP)t@~roi_(FLkDZ>eILQK zK9{Z;6r0PSF4f>sHV_V0y94&W7KH}FPT}XZ-5CQ=W>em_Pc2+o4rs6r$Hd8-7nzA1 z*6}tqM%4El?O)HQ-y@+UfZ#Bq z=H?EYhtXPYQqm(<#aalqn>>a&*igghjB&y?QV+!uAa4x(K2{GrxPBHNsZ0uhT+_Y6 zDwhwUof$P}b?+4K%x#?#bY$_rkVkO98Lt>Vzj5ywZ%nuoFIOIHQ?59}t^+gj)qUT* zvgDXL_Ta{Ln^KC!C zVCl&dz(J24vnUQRO4YtcrAL&2^598dpFmgqI5oc{6ySG<(t5c6+9=<<-V{XjGX?|T zo!eB}R=6q`P+*{+#N(+zuuIf47(tkVbc63RGulG9n6KGwlYymbL5{N0L_5$6Pc_l{=}%HM&2?iLwNOwMt7T#?mwBuIIDZay^9e!Qih0O|ZOLl@gq(z* zwyh_JL^SXpExesw_9Wcp>^@?mqKVdFg)UbVT^CKo6J5U_d;x0tBg7VNu`GW6 zg}~VKUIk>ov<{c1o=NF@Nd7_slKOcmXCFelQd?gMZT7_uHb~k8Llnyy&4`ih^(Dat zFF%KY_6-u4>jCunZAq`k+A9lOpi5ZIBEF+3R#VNSbAoa*mxFSH>$Pwv{ht@QBAh4| z+?h^i5^hlR$oFx_+xXZV@BRz&mfzcNK}k;$c7Sez_VDtt78PoQ@@ zT!7rS19A_IO&Q=&0?$Nl7S~v>)&1M$zQgOzWBA{4^IjX%uO>gov};%n^G8}WQB296 zYLTlm69ql^^6yEjSP2xoCd8THqB1xCT$W1DH&6J8Ls$a+Bl4PT9V5BFiui}ZS>6{S z7|nYVxGO(TQkpo4I8EL-N_T`s+!2T$TqrY6QKG7R!LP5iG2^#G!>IJ650dVdJxpPl zqV>PSA+(sn3dek#?Jk6_Irug@2&C%sDvX@xfa=6QS+hWfkNZGklR)0pPWnm8K$7v{ z_#}k=8Gb#9S6KWNelE#Ye=ek0)EE{MZ@V}jZ>ZVP2{_}B(f0u9>Ph0~x#DAy_7@35 zx@7sxo`OnOK=aDYjw&QjI(4L{5Wt+w1#|a74la>|+&=)VUdEz>e zy-iXu`-4qn&zxjQ8P|;QbObCo;!o-HdomP9xO5)e>Ie1 zR(~$`i@LFe-utBGV%wu!aLRe}&Drg&Px?qIWL&Mf=hWkCjPCtl*D<=!jT~77*3a}o z=@^(~h0FJrb-!kMdBJx}R}p+3-RLg0+)x^zB2S2n+A1zJ%6j+;SSX6+guS#99#nlz z_*j`7X{-G1b!D-hik-klj}}+`iVtKMv~uQvInOzMgs#E(_{i!bn4OOH0I8fv@JO8Y ztqLIB&JZ^46UAYO>N8Q3Aqi6}twYjNx$N{z6m+pdc?@E?weNBk1k6-#6qdgKIqHYR z%g~UaeOGj+dwzRy1$IY`8rkC&5ut}E%S-)fhQ4Z+ogE|p?zXyPv1(~ZPRajBH%vooHOhj&`U}#9OH_ExMy}HRmkp8r2=SBW$M0f2H`mU+>B@ zfc(#!r67sAh8C8Ldx_NL8hm4W`=4X(QFlcvtF;XzhRi-G*b-pVPw;EE9^&uiz-?{? zD%96O>Dco+iT5tG^hI_3LET?Q{YvFxaxtGFt5CYl4d~U7pbQ-E&tlks-`!SwkwW0+ z8!!bqlcW6Fwn=^GTF~L}l5IYyhf8Pdu|N_a!>v|cr(!(9@f#Eczm9nn{L`{lG_lgB zQJV!`i14v<fG1M#fdA3ErM{p;ZpJ}Sq@ zHUjaXj&I)KSldz-Bg_NW^MC~$%{W0NyTi%{&d`S3{UX`_(DP9>>fS(sZQ9I^#Jw_& zgPdP;qij(}wx}5{k1e*hZ-|T)sDpQHy*6240d#>nO7G!K2kP6(_o7ULrY;| z<;xC9piP*}Hro!6RI_2RYZnf^w1NSK-hV6kyY=sWn|hety9`YT%%?suGrxvkEn!lt z1}9%*kVEzh?RUZ%wN$T(=T)2ZqoHjTh3UrOnJ%?1@FYPM_t72TG5VZoBMIv!^+K;U z4imX1SkESFLMZ*_90J{bYU-+IVpj%D3k$dVh1GH`7c=NQIPbFr7R8jgDU z0V^NDpv)5T&vmbeM;KM*GF?(48?Fk&&~-7%n_B88Z0-LA=|;st1u;EANjg%>5b=z8 zGgE8Y`iwmb6P169bBR7gFw8cxqEnPH{Q7<1S7X#|tbetEf~^|S8bq&llraYsXOHn{ zg)k#J(3Y*(*K&>hVH8W|FVAhy9ZpLU2_Ov3Y}Y$nViBg7>Rcx1> zawGX8<#E--$g^xhbO~bjU0g;7$Z|na-2b+fVsHqeermgrpNH$6LQ-bzhStENw0Jzc z>jWCwRcV5jIHDX^?;y8~Vk7nz<9kof!!Vaq(G+lyOyYJy#ljZ9IC(om0=@$y((N9& z!V69dd5d2Sj@$TJNx3g+{nLyM{$StpsklL(szeh9(xBc-56=C8w8_qH*li*OG^%y z$H+<@z$T=)w1#DhRILx(6inwQYNeep0>$|hhLnwsD9Q^S^{7}A0aMIVvuj=RbuF4K zpgML_%H*n`EYtgWbSF{iNG6BPmFAP3JP>n*0ZD>9Nq4AFW|k!mWQg2K%X?ARl6?hM zhwQq^M2sWMu55I|l3g(}4nC#3h3uyRsEWG5b#$tiVq!uA(-SMU*yq8{&EPQn;$BhI zai>PpRzbssu;)L&tI49zC$0>rc)nzdmB%!XKGfOygO3$RX4K)jh z6CUn~Ko2tw`W7roZnXS;u!2wC*q%sjy*ALD8T(dLW30J;cqF2%@vm(xuq8K&fK`(o&N4yGqey-T}RV9Q#uCMsMVu&v;$52#M*Da(^7 zdyeQY7d<*?8p?2C|7yoTW~nb*e|{|%3a3rYNe61j;0y0deo^`-ovqsuXrJ$y{yka0 zb9I#xe{bH?^%Ps=$jDK7AGHBKLM19Ywd6tD&uMle&UYYIOuLs+jB?7ah0)%oKz54u z#=05KS>9~n$bh;H(Un^_0O?TEUAMm+(+NchUOnL{aHtE8`G=zRn`*pni_}Z*Qt&*h?;lT9X5lGI>%(dxrkEKnr zCpP)yJtC;^?G-Qhx?u0P`(cNj`=fC|u801;Mt08>lRW}v8QE=NZAQs;H)G2`_4M$e z7s58{yAq&s1aN*krT2o4eM7Dhbfa7>ae@W5-fbl5cib4JX~FCgnd_!sj}39_=d?(d zoki3_;J+Wfog(39+tb8MZjF*Z`1Rfe88t0YF6SaNf6=WCs@Tuu+Dy@krOAFHGUAl{ z!3hV)2MLGdgQxA186%uhGoCM-UUH{NdwFmz<-CwowV*8i`0k*o5s;dfTDT_dgAhZt4E~3@hiS-JwV8iz|gQ z@Z+o6X;C=)g+JfTCu=ZP}eKnUT+zL{+R7vs{ z5zmzhN7tT4Uwy@P>NKXT6@=HLKs1+oe`1?>uw=QS*jHZOkS;T3vK?&r`5&X_WU$RHc9p{P9ypFz38!PqIwjC(0rI z|9=_$Y4N((-`RdLf5hU_UWG1_rcb(C@Myb9r>Qdy0@Z| zjz9R!ty@`5ED%TP@xBy7o$Tp<22)(uzPJK&V*mJNNip16^gI(kbkrB7??>X|B4kGZ zXZVEM_8@@=ICpd|eTb6o-^1RaSpRTuOs&q-nAv(~I@y|6Q%k2h=9MpdEQ!a&Q5TQm zh&_76;9DG|FMKHXqp|ZKEg^YHO1F_p$*PKA^+e)3x_%aG(G)io#S!7uP`V%u?t@+X zeJ=u@18qS7QrN&XeMc`zKZ&vd0lpwjOd@_O59{w(AMaW7G*njOQ#7OZ7>h-47%;eHY*KO7T9I-WEHS)_%VAk>q{1bKH|6*t2ZCn<^NBGi~9Jz zzr8pVrCvu0@=|HM2tgN;uLvEIGBkpj-Gc<7V20B2|1!Nw$Rtcm*nPuvO1p&m#BEAN zP&QY}&5%qq$!%Ctxb*7{Dk8?!0k<7bp3a0WIdV2Ca~kxmSM+m-{_k|U*U-&gVNSm8 zugvwY`oGM0k7k}WsvC`4)D985*yV_o%61HO;dD6?h!+{;G#OfKY5a**l(P7lv2Blf zVDfO$)ss{edx=iMApCq?29|U z$Rk3--R+wL^mEkXXdlsmRD>P=qdjQF;}fNdXp1-+>7XX7Fq$+PD`R4r z^&I_+6tw_Eyf2xaW>89yz%R(s>y|;rvzmBqpFS|9(yJ!XnTADmR-Pd7t%_dy@uz|E zN!|H+XoM!BH@U}~-!FWDyd|rHOaTX<7T=ffV4JM<-u=mK`0RAM@1y~Q!t=e8+dxe1 z7`Pg>(o%;^-=#$fI@$?hvb2wpc+vSY^|&hYqAUQ3)c+Hnx9s^ZDAL>_? zQe)j{Bd;yNy>+1OMzPJT4g5t%DMQk{>7&2SPXzwBm2ObNRyTYSzcqMLw&%+L9fO|V zQEK5AkY8C96sd_h*QGuFEW|RFAu-{UUEMM-Je`n!z1X#^fzf2r#AyO60SMFVA0eVa zm@XMa;QKS+!p^LQ)L7`=!_O4RQF>plSha=JtWs-+J%HJ83y&fwYOqTSS#x(hRi;8;VxZD?U zoK1(FzQFTxh2i4pxq}I>6iR`{NCWHljc22JH*EJe@2fQ&n&KWPQ+B2{aa;*6@zS|C zIBK}XRK17c-?Vi9d;MR)6k5zt0f}XJ-q|Vt@#8+I#z*{%db0u#M*5w7elDKCyvDV+j{?s zu0CGh?oC*cu88f!E09SQ8?$2^U*}+XuvV04H4F}%o{D6! zs=Ux*$d`?xn0Dmt?)S#3q0l86XpkZJv@9jw?bAgy#!3UY+`B?euOF)wgm+tJtQsYt z0>=vzwD-QtlSf&D8-)yz=}f(n0U&0waxX|H758@+X`3zWV@Y2;J0^E18|Y-n=QCvG-FVt6$W*{rxR z{VWUlHikSLuVGHC-5JE2u5gu?;=uv?TCYRRW7fdyru?qJ$6Das>IWv!pIbonT5Doj zF_DVScUWw!TiJjVQ$p-6fqbDd&R0Q+^drKIdZ+v|A#_RDXu?L-Wdc&%nGkHk@qfb_E2IE@dgA?R~bG#j+u_J9JtMLWskp5aEz7O6A6JLPLu zm@(z_8E?el!EWx83O94hskca|i zmI)mUZz#z+cbg4eSU{bBr48okuTTrzS^@*^zwozWN806;(ScQu#C(cCE9Q;!ait&Z2zVz14qli&x!aO?!M_T4p`<|;QCt<;y(~$N8 zV`tg7P9K?%BTSc^v9cyrezMvyhRFw*So{7Hyhe3=tj^-_$5R8b+R`|xybd>XXtH$B zVDekT&r_m&^O3+VQU&a}d_-9P#S#ANg|n)qTQ-TQmL3XJcv zB5!IMYrP7RB&>kfrXb!6=G>?$)IxKHx@=LwE19O>A#)`%+#D&n?@H%~)9qD!^uXJl zn>C8^$>V+QC96qaxFdpz*5pGX=i*A4fov}9!$4y0lu^C;GVUu+c@tp&Ur9mn-@90( zc*j)Fqc!x&F9|gXvLWcK!|JOYik|a8*^Z}GjfyZEieV6e?PB?FkY(yY;g~S~2cuxs zqWRWp{2ESI!PZ`;Ndq+5d64zA4V&}nNN^bjoN8#*nDQ!E(iA=;F72}tUnf(zt=8t! z(V!@AV0!s3R+|9V<a zG42KJ6=J11v*25jI&;`8SEs^K>-=x6756kDsc1tJ8Vbzn0p}p*r*>JBKk3sN5z(x~ZnuhFLHH|bE zrf)O5Z>rwoplR7>qA9DneO@-WA?8|hA>bKVBO%v|m*O&D^!~E}^mDmA*ip;Vg<8{#9px~qx()oi&Nh|wWWCZ^nQqiJ9JWZAcjTUA*tny$F ztQg85UrTr!z}t#ITP}TBtV`cY5o{-Kkw!I-GCOMB(J|Y8lbj1W{i2|LSXDDw%xdvG zH+)Wx2KctVaLg6yAEw{yYNH#8hwT82Gwfkt}!a`Y5^<>=S@{DuN z9|r-h0NFa@@|flmYA{``u9dY}dfj6Zf38Wk!WM0^Qb>JRU6(UU^4N7Ay)45O@@&at z;lK2ah*{C8suyuyz5sJ*0E%xumfbmBaEf4H1=ofE>7H=j(Oxx(HTPz3cf~{nSy67jY zHA>&@zDY_lg%NPKSN-jle^IRD)n~ghUZ`34mFHsNbC}7igp}wUu=IGqI%1;;BoMb2 z!NRu{|6)Rx4|TK>j@%kpl81OCdQDlbta-PEAHRltmb0W84tQzMR~!+EQ~jcOc86Br z$W4DEEA`HN5(z+6#Bv`s9~T+go@GW(1$F=kl!;7T7DZh4%xj?2+_2E0>v?!^U@BhXT6v^#&5If8T5YvAf~j)U|u9MHH(D>f`;s>5aiW7=OPB3D3$ zBVw~Eyt8fA=SP<5NytjSd=TlP4k@h12m6v?WEt9Wqbq1Mw!Krx24dQ8V}A8T33vGO zhb8_xqV_hYMnU}RA%)r@;Q&4=UXm+sN;sUUiTCS+!Jt=eb6)cuhi7P@CY4bjTFpWg z83Ot5Qs$uSMgt=NP47W$oU+&Vk$6~kRp>1cy>4u4vF;mrwXP_)Us|Jh6@A7JNoyt- zWes(VX0{I^C%`@#_cj31Y^hBw6Gc@sEjf_gV&g0eM`*|>4*CR%VrDb8(TU8fZSz)hAn$wo<-<2J?LHJ9{XmMi3)g}4e2Nc zRQYV+V1uT@cr84f>%b&lqHz!}9=|ubj(K*}J3ZxHwL~1Gqn0`$!0?b}boq~H`9Sp` z6L&4>l5VShFGu?-EQpB@UU(?&$1bjZEmYgX8UQ+y-?$`=!8FzESqPx=d?BWCcA`b7 z2@F1X;L)%ox1wab|H$s?BrsuxTGoT)!A`=pCO@@@L)B`b%&|ZnTJN{OqyA{7MB|tU5BvG>^BAO zJtwauvW2@i11g$BkurYH@=LWJ0ft|Al#O7l1T8BJ1&~t_ zAD)q)82sSlefV6qib*Souo=wK`J|KPUsA$|I0Bb4hh9Zm9YUish^Z9JrA#hmZS7XJ zGO3fFkRiaAWQ(F&IqvGw6#AlJJc1AbjR*Mbj#R!eWWXUcqb!epxlyQq)ZC;+6P#7I z?U*wDgs715s}oGlpY)Fa88|>BgR8&nBWP(Ae|1p2VEHEY@djT>A=Lc$c3;b>1~*ab zLKmD1wApdcKr%QH1${<4onS}n|KS#??OPo`Xq@S~>BTt*qGs%zfP|^hk=LL;A53h; zWMsoGU$VO12z?c3(rPpIjeD)hGYVBja6g?44Wz!nx?IuV#6F8E!~s}0pD-T;%Xt4p zsPCSU5+y7~L6xx_uqN`?`y+Pvvr8Uoix8G+_T#9Rt#2pnADMs7OJ#~>`}*fua5NV-U!YtK^~j1c z@X3M4KMR&Kzlm^>^wRa{L!eDGhvhU3zc5<^`KX~eWO&QdWKmK3gevra16w3he|r|b z!b!ozCM4eZ{^I*&St`>)&)fU$P`n$=o!dDGd4NRuA@(9zi@`s^jAp7m%+C%ks9t7}-h3+X~ z1T}y7SwY1RWdTBU%u&EM7+DW^;F?g!w97wFU##+DFSt5fkvlX=@39=NVv%_>lDSh2 zW5ZWysN~y%MxzVskH5rRd*1(1HKI!dX+>HOUl4^`j?&YQU*7~MCWU6Rbz;5wI|-kfHE{;IA>N#3wo}mSCAvQa#Rt*^!cHP( z^(Kok0~B4dTX$!q5`lXqgh*L}C5~aVyp{ZZSZ5x3&s)t5DomvFYwb0D(b^L!6h$lS zHc>r9OB^|+p*g0{h8>=HS_ovfwGCjXbkYt@V8&(7=oCXwY^qmVjbzyqFzh z#hiOkxwzNqb1%hVu_1&K#d*b`z|qdo?dbPojGE)h$~ETm^9a^$G>cZo@j&i_wo<-2 zzvi_hU&a!rB}I^VdmPiWe*@pBifotwYh+*($f%#^6;?O0U3Cemz_~itn4<1VHV=-XAsS zl(-?iV+QBbT5m}umDh@*ych7D_VP3;`FowB)qh;$GR({(@-~(q^Fpp7PSIOj_NYg25jI^rBbU%%M7ZsMYBNf z#zO=*VL=F^Pxhf5=CMlT+?pe#<5`Y>E11eQM)@{zVcmKFzkMA40;WN#xn8?YzOne-bf#%|E$#p%~ak(C*?LBT z!ttXJK*2dF%YM3QTAFf0n*eQ{CM#QR-__kvsgE17>=;-oQH89awlXreTbgj+qi$Rp ze9OS(@)DRl#mSa`gHvy2I`$9d{_jPUfdrGXnN1C8sx_t8kLd&2YVhT4Ql6LThD3}p z4ke5oQ>FD{2iZ{AyTF>WVU|7z*s;h4h@-4Dm~Q|9UmNRF!PK1c*u|3P?Yw<2!S~gk zxs9kc&g~InV8%mX=IB~5jD*dPFX%-t(9H;1m?jGW)pe8;mAw!Sh zdB;Zrdx$QnHnkRzPKiXJiqXu7ES%c~Zyd15hkze@d(IxA7;uOHMv+>_Y!9hdVds>) zmaO(CBc+y?sWF)nK_&X?+Jg>tyS_^uX9wkTXe zEijAU`Ym!w30p}c`_dZ=ld@zMc_9TLZyqsprYE@W1~b>$Oryc}xqu*O+4EXEt{RKL z@mh}CUx&$&WF+Tdv1$pw=^x1GnVt>87J4L1m*K_=AOFn!`yYbUI8-4^Q;4s+XrhzW z)-5WWppN?~?oULE-mnO=>iyDmxBzX&BoL#x7IXK)H}wUj z-3%7T3bMuH)4JxSmwXb{?5$ii6&D7);`-7Mtu=)aJZy}iNpw^a3XdahaUARgQ({$Q zn`t#ZA^VQh?<*eKw9Ot@1)Zf<6vi-|xP#EZQ=CtJ+S0h}ugA~L*=l)5@Gp<1slnhT zKuVj(q}$-puUDtr_0U)f57u&rDMarUaF~cArUs`yk-((L5)v_l4{)@Eb6uCtDGEdczoNgc|yB2|GYif z)B(gkxd*`{b^wllVM0=#R6I|sd)KcG_?CCSeniQ~nWLzxV*rIqNr6U&Gx1^vb@XUj zpQiJsW0Z0TEkR-P+5^!yQa~Ext_{z>VGlIv@Tb7*iSD}u$z^IKJ{*9QlQ{leE zNN$s|7oWz9X}{W9t-*ES^FW@aReU9xCM>|2t$`Vx4YSK}Iz!NM;R@Wczw1s(!X_!v z^8{1QO}4g)Oytan`EUT&S5l$p0G;v{3^fO$0`W!XD7xI~Hp`0Mqbg^SpbygmDHny3 zG?O(dT|zxO#|c}@a2AqEWL7oTTGZ>ceIMvHpn%V6P-(|GA3bno`y0Y=XnuETW`b#$ zO7j?|zLy{JSGNwIiBhGi*x_UKk#n2WUn9(6gFp1BI^I^70T7V($7)il)V4mxYbb?4 zcz4U-3@<>oX^M4d+}Fb6MpGkM;U2YplWWs4am}S|JFxLVmb?guKlG+P(CQZbHL5`4 z^bb=B^sbtbOUj@<2oW|dR=-Iqi|-2~-1A4N(^f|mn!eV=KN-@bWa5C__?H`U&;VIx zG+hE7=@;3$nOW;YiXhj*j7>aw@C%TY#+Slx0xCF=00^#R4HH$5Rr!GNKInFjVc$r6 zQkQo-Hqrok3iutboj3bU|24fIY{wc*C}p4|Z=o>oJw9yjFk2 zcy5K3@LP=~t+Mek#mfl2L~yhz{q{8Qxt*UQN`J*l>jR3i`%{u?49vr7e32|z^kn>! zb>dJqwL*?T7nF&E(kkWjD^s#8OD~TD_Hd&xRK4fD3@;`i$b|ob7<#Si5U~V44qLa| zfj1=0bJ3Gpig{DPau!Q!nu|NMp{Yy~fiSMPuAu&KpkZMI$dpgzGnwE z71Ckz^kpm)JfAp?==?2SwS@{WTqqK(>li)OP$dD6Td&aA16fJg56HEmP}*Z#CWG}! z&-9BgYL)tWrw=k8W#`WDJQ+>3XW zI0xE%Xc8M|(!40TvbsN=q~)i=&_ySBfsQ)Ni59jEIbj#8uTLv4zZ7y=E6M};|(lsYI1pZ8N^CT;asR77p%b@3tqyWrZ z(tMq*G^q-RO%joKS1HF^Lg`+Bw(~^D2j1XY@z^6>`Dd)={e1g%Vy_x$J7%i8@NPjn z4VfCEmx&s{uYbJEQXj?UtBy0|?9x9$HDIPtPN*Zb9fu*PuclnC&)g;sxh`IP9S5kp zy}+MX^`{PQ2$=FUL6^ytqw`?L)SXfgNjhO>*lDa0xc+k6uR3x)lSv-2vvi~>n~EAv zSln#_y<*C<{&}GOl)Bt?r!wE><)Xm&W$we0IosrE*{XmeLmLYn_!wgt$Qv)RP-9qD zmcIy4S3q3rpo%%lQmBx}nsJpTQSwyzCwn1Dav{e+IR`vhTXFJU7aG?H{QZ9cFiFyU zSnb8RqFgpax&f(~bVOR-Fuf9ucN7lx01~wvq7maK4pZv|39S4d!#IMPIg|y!D@q=k z^4(sU@ips7P>Q^@-^#MdSYKlj&d1?|Km%Sn0eU{BQW~nGy``T8{L~DEkJ`dK9*zbG zcsOy9DJe*bL*6LKl@Diof8K4Fx*1d1B$)rit8FqoQcE+77$djIc=XVJ&fvHumhRXW zBRUN3_S)@>f4&7b27;X9vMBJY(du4BmRYkd!CPm)3Xl5BJ+&(A?2j zCExh($*VpXLau}G&>9wEmp!Q8ZhRJIwx~3HYC!A<5}G5k0N${Y3ex#N=o%!L8s z?pjpBdDNrI8~*C|;hU9e`PL6c2R>Aad9Qh*;VGJ32m4iEb3QtjPQ@U^WguL_ zJuUso=40>!+wvwvdF&uE_XY)-iZl$H3#TIzU>85wDM0vdQ+#39*`S1`2)s0y_*%W; zQ1+R5pvc;j6M~_n^U{H17G&A1b{HP5FJm^({{EIbkR{nhXxB(;*v)h6=)|xzD<%k& z_OaOfsGXBpi3k`A-IY=+*ZZ*FlO;ks`^?OL1UOWoD$*VOk+ISf{=bNdX18Q;c})W& z+e{g}EVb;$8}QzlKzoT&I|Q{a;1OgjBHE4ra?d^imK(eJU&?K?VWl#7Qp_i!k_5e* z#H=?4cJ;UDLeE+#ufX|R00cs8W0R5{L16!!QL5mr+-u}u_FBJn>wGFZDOcs$Hn_CE zuToO?zME07#-jj2B$oc}$w_cGL{4^gnI;TKRGfQ%H(H+b_IxyBVyzN)xd*5`CFkT* zE*S)z$(`YwpSg?qL^P_USQ>CXZ|W@++d?~)8e`6m&{O;H#wX97vCTZ4{Q8=WR(aol~9jGQ>OxNpcTsgnI{{} z=?(>u$htw@AoB3#Om?auxPld61y+YGUv6DRVN;4=4eNBg*!!2>43oXYKGi~dK~MDL z%i}`+jn^b+<9yjPnF}<=p;BL+apuf9sj<{tZlZ`Zhf!wSYe7%Y#%X6dNspQBZYb>4 zk5(mZ-vNB1S@S+^%W%$?yGKzuCBmLV@;U5CfXF~NTKs7&rqsF4F>t2ey=P?P!Mnz6 zBi21AySLsc;`2mlbvUWZ3_{4p3-{6el9ajU>jCHLiiQ1*W_UEM^i1@ho3D)NFs)ij z1%TF}4fd}gQG}72_vTsFAzyBO<32Zi6j+JEr_5wX?(`e%^RQXK)am~a{{=bx0vEKU zsV!7_hrYx5V$k*)%YaFiwxR*5wP{?)vcF-H3|SENDa^V9Uz5l(W=z87`Bku^dXg+eFekW>vRdIhQe+E5n5@aC1&cTSM`&M z)O?vpOs>4V$NVT>rOsHph@1P|ZpNpd6aDESV&dxKJ>p$r@G3xKJ~*+12(={`?4U2X z({$Vla!`e)MZj1X7XyPCl%E&WgrR6K=Ad-bBJmske!sSXPvnbuf;_RUjf=-3B4lU& z_GE)O?hz&>4?Xs;=79hX`>gAwo`&c2M+sgM-O8MkWyq0bmKpR?Ux;V~0ebFWAe~mS z+gVd6Oin(uXUM1!mu=SG!S@1CBDK(QSK?SRs?AGcDDO!GNnfGKkq^<6p(%pBV3;BU z(lm$TO#~wjF>*IH+SWSP=JBwmkJnNopdgPWf}5#s-86%G=K8W-RKMfn%iCI39x&r4 zgD1Lg`>m5n6tz3_-e26OG{9<AB|wWc3_aKU}W|Ko!LNn zDFBVM(b%Sz73x~a&o_N`*l6(=zKSyoAKB+R-5~C>zC(QcQ1zJ?qZ7G7@ocov34*LexZMc034NjlN zxZ#m_An)22rxFwf@vtY(GqF_0Wq?u$ePwabYIJP=3YD2_0pG>^gtT(-aP%wYSMof7 z5)}T8B+ahTN=da7jK!1lePcd7uL?c7Qa3z*@W;s!wG=%MWOD&Ch#b{bduCG;X(rQJ z4(64&!45^GF;inYHcPmYhm|btYqv>N*kaBKY5<~(3ZsLLQg3d+O7S^EFZL9ti!3{u zZpTQOH=Q5+=p!yfY0Enrl?Q9q1rgUFMHM2DOdtH%}IU;WU#dpE{ zO6K~Zvt3%ie^_={VFnJVX66mym3&e+WO8^I$}to}Iz?af zt2*rNYyQ{%iAx(v^+jin>6hnXBeiDfriLXMi(oTG^oNQ)2C9d zePqD{@$mz%pLdyIr|=n*G{NLI)3v#blqKn(OcB-?kf3>TRb>{S;}Ms*b!2Q(#?R$P zDLV-F&SL>HfOBUUyIgt(+_af*@qs!MivHJn?&MZw29`8nX_sQDYe4h&a5DCtRbsfPfNAB{I~F`fFxcrNXYE>R3s01ftaZ3AxbY@mONUxMhc3)uIG6z7;how$Mr)RVPN@W33$g6?~|JRf(dWl z>838NK0ZU!RYZ8aBI;txnTuTnk7aWm6&m1)h+n5XDi1cxp^~x#R6_)v_Qb!I#TlHkK0v%` z1ayz$s9&{lF8)PTB4U-EFw*s|bJ#VHhRwbB_1B3i>e@{peyM>?M-6y01-L@2T*=Ju zNWscBFLYZXV>GRA$8&|-=ijL>mUDl=(t!WkSza2H{igpl`I^<_EbwltG2=ftV9D;{ z{P5c9$X0wogQz3>J{{~6jRjC3$C4&=^-!^Jgcs}oqfBAP;FgD)1*57O^V`A}Z({PK zB}H{Poy5h1hkF9{LvR1h+RlUlUo|?RJyx(e`D6P<4*4)7Q}&di=WyU>dM_q}ITEw# zT5W4xJ#zPDke0!A`xUUh3KH2Bdui{CZ%I3*J|gH!W34_TL5NswHnPa65#V`=p3h3* zQIIpS7XU0Ku@<_jPFvcRdELMt2$83-mLNj22yMc4O=gM}Hdf!z?KUqGW2S0!d?8~2 z&RJTWX4*wO7{VfQvi4)Nj(O)`#5XavD5Ow?eJVpsF;Aoyxyn0oiP9dv&k@f$U$|~Q zZ;@k%{0DpP82YoKo3Nf7)Dx^XWep0~-q_=k07^(~K{9*hNyLiV8pwkc#r4EJmuD}P zW^u~)30rH`}OhIE$#?d-3#HmnE~33)9TJ`-1UZAZ{8z@X}=5{Yv#pMcubfuP@6{LNkAn z^vGTQDDi;~`J8uyIQmiwu}L-{1^2Mn0s^Ua{P}{E z?eyLLezk%#hSCmhw@1sZ~We%09ocj{8&Sb0XyYG8w#L^m5cWL51%DR zw6*ahB5e&iOyr#G;g;lT54)_IET*+UeE-FHtsbxJ+GgA#@tt8${72app42s*4O-u% zltYlI8>TTERWS^PQU(Uw(|o8f@fXl%%a_6k-zJone!7wZ)ZWg_!GtB(3@?HY%RDuh znQ|YQMeLvo$aI)bOCAuD*M8Y>{&JTcIb0mO!@ORwKiqs%5M(?Qe4)3JzYq^G3`^aw zf10(@^(;KwAl4)@&Zd!-v@)ngzI&7Gc@e8I0YIZ{vZ3HXurVt|#|*t_FZ`4AI+pU zzJ2wTeQ3{|t6XA7@_qsQMYhiL;`W9~3WP!~;>wuil$qNN?#`<>stMZtsVS++Q>_53 zB0Dv;9)7ZQtUFV66_G3WP}CpriAD!~v z#sipA=JIX~0+Y(t=vXYd0OZKx=Ou2Ql~IWAVd4`2E`@4_)}`wUjMU$?Ku(~FJpmA5 z6qVlYXcn-fVOoP293C0gws>Upas+$pPxw3-5Yr zV>2m~=q5bP6WkJpcUe3;vsT!OgD_+v&PZdNNOle;lq|_K1gtZoD&W_p61m5mN(Xia zT8kL+EfyGd;`~#!70YJTaR%^`59Cry5VKx*6&6esV^1Ffsv&#Y6~9cm%Da*4>#pNm z$A_U_jxGF}dj7xDOBG~c!r#S_B1g<{s@+^NaCoIAB zwlu%fG6*u(3@!b2AlI+SR40|%zoc^vhZ=)&feoTD5#s}w)1LkHC+&9#%&#MlnMma( z>#EQ81esev>4O#3t6$poWwFzMBf+aq%H(J-QC~rX!WKL|U2Nv`*W&je1m|9Uet1Nd#K z4<@ywO=7a+Kk7t)qr`r+^bRA@1^Wg>1?!Go?R}yl19i78RV^8&*<$bvfG&M|1{24f zFC85y_%lTny){dFZiIb+^lP(1L@tbfA#-`>#S&UQe!qwA;4=y7>w;Dm5CG#X%QOeRk`G+HmiKWNK-JYQ$*u%XKxUtL(vgjd*N&zj3 zcDI`==!=^+AHnh%98K zanP3}Lo*3x-43NJ6gvd5bo(A9h88h(n$`{VKG#H)DDpPfPJO#nOZct?Eif$o-#p_1 zPb|$2!5F@5r(WcA$PA`-#w3Q}01@c0ungF*GIaG_=QH;OxH8?Ork5v5CFRvwP64ST zYU>Wt5hhq5=5S20hJVN-H{VG`;6NH^T66y>bf%5tbm=-%<%1I5=KMN50AGa}Hf&ox zE3Ug87$yiVWwW_pV)d6g zu#*|<|_|_bhnHq=JE4oq8OJfM}aH)(ME$XVxyFrsXi^%j-cm9bTS46ri ziAvafY;{F?F^d$N+8_8i@tn^+&b{>N1R*v0V(Fv%sW3K1b^Z9;pQC3U!q&t|Ok26y zc2t)%F`%s+bcTQ--*;N~iG_l_NpyCUmS=qkYw|SjT=t&Re~7DSsMywF&8t-Ngy%JP zoO2yq;h8TcPunb^G8d48$-c`kUK~n@S>4o=J3X(-JwT0+u_Nu!U^>YAIsFIP9Wznh zldd2YJj?rqtp1+HF0fE&%SveZL#;_jPK*`$Qq9=uxGB6#a3Kdm<>Z0guP9`66NeCd zYOdO$u`;?(XG!4zS?k-I{il+K7;#0TVjv(vdTw*o+0@^>yje9G7|F_Wi+P+dO@w93 z8q^Kcl#*uTkymXl(iSaEW~az1{zPi~mlRz1n0B=Wsw(>*n7=+vA!-*1uVauKoxcTq z!R=NC=l<~0`-e*Y!9zyQ7n%=c#3fAXeBV=yel|&bPMh|aceGTaWx5%t$GZ@x>sTjC z2w}%~yN!Te*bF&3w_=2gv`fX~)IeLdQ51b$@$0KDCH7YO8*<6G^dQ4!Fd8K&0SBeN zdUe0LP-@6q9L`{xjLAn1LBFQLe>U!wUl(2sPWYHT+!&*-5!BPVR@AiKaLyG3h7C&{+|aQw5As|a&~G` zK6l*>*`}_$kA4pku(9;>hplQveFX*hXcrYPdKWHQ_!-&mdZ|^Wg)fL9n*AL_&iU-1 zAx&M02gcWPYQ3XX0Mzj_ol;)A5-V{Pe5QjGE`(7s9YL^k9~}KnLL6-=g3f67VXq3s zeLNm_5fUGHO5%ddq|OWdIqTCe5it=raA7Xgc_+23(2m0hL;@CQsu5Lbgg?xJN>t|C zv>5DlyX#6;6c+Z*N85cI7NfoIHMGFVKk>no{*A*JFnL?us?>@qP&0)|z89?{>|&zA zXUguczj0p9K^h>l1(>V-swPH@G#xx{pL{dwTn2C(s6i~Qe zNeuzCOjCEfJ}mP#US+=XqJkImO@+{*kRCLW z;J*7sI%TlPYFo+&!!ev37K5Cs`3_3T^m{)?^Fd&Wc(9AM>x2RC9K3$)=Ya(~Ezl)R zYwCLgkXx={4dN(fcb^C;lf95#-432Zbxt2qMukl&&9mR%`fs>HLvc~q<(cJMBRxwfD; z!jbXP*H8*EuF^%8goayE>U_t&Sfcw?eU$7lD3_BnX-|c-4pYz*$NYW@-qOjMo(~4U zKovLjvDIcf2tKi9*S2ycYh=SvoJPzcIk0e*?GI>~fz7~YP*+*NO(VwQdEtTd3Qw6_ zMgcu49=@7QNE0(+7BcY|hw9qUwkLwS_9O`1{3p9S`xadZTfsLh4z9w z+wkj<9r(F*om`}zbs(2ZkyK;x*sctO3Lesli%4r6EC8R?2-%PN&6Qqi>FW0^r4iE!HV}f8YGPx_M`D{22I{|=s zHM%;s~s@V1TCHR*&AnhFRPLQqU(dBv69p^ucm#CH4*b7y$z2 zbtIac%Cr4<|2}@sj#8{Cyb&%J+gwmbAdC~_(PH)V5DY=>Lj_|E?>iCJc=rcl2Br3< zeri8gc{8-@qw(QJ=6h9d`^=CWooA?jb0Vt|u->+2+e~UfNi~Yvj&#maXaa=%SkvZZ zt3JlaN-OTr0GG(I&Uhz>sRp}&SzqSQe1=*a4i1{}pC0Kpn&vP!Pdv)(h#i&$M%Xf| z$O?WG8h>!(NIv`!S%v($Oc-MFSr@rQ3Iwy^#K?!7b_~$b08=5ADq-=Y=9FjEMaQ4_ zPElUgWa2L=;UWD2aI!*w{F|ePONduE6dlw zOScjavho*3tB98G_TIi6YKt09&RPG=@l`b@3qA!oXLPuhNM5%xqie4|2SjgJA2c58 z_sI329SP!hh=EV&Q-s zF7jrk0d{+0s*jPCMlItIa-lA48>|EZnRL;b_CF>7sRGuG^~4kj zvWG|U30{0pi;xWYq=V0=piXT+elY-P{|5{Pxi9{?*udS~o1TT*#wqJr3ORs5palC? zyCgAJcOe~6rd_;yZ>TP9=VvFAtU*&Sx|~}(>ols~iOT{zJ_n1sKN>;?M3Nkrd|zW9 zl6tNGeNl3kO{Q_otw76R-~_RQlek(SkaVD=^%mGq8>ccI+Xn(l7KApveArvpSgBu{ zJ5M1GzOEw0=l=GkMAXe+#${9~dlgBzqnBikk7!90y#jr>Ve>ulb!YGVQ<3g6)*Oj% z+BkqOuM)-!ZFa>`ekA60vqECZm3=o&t-tKk>(EOFo1iri0ELBIL??~WUH$Uwe(&SV zW`c41h!HrA92xH*)zihgTtY~Jl0J2|j*x?33X9ERLm!8*a$ z(xD8T9{t!Sn=n8p=NT3x3r!<)>u)@qEuQ4D^+?+GOEa*ka_>t7h9y9`aTuwi&>e>U z=D7@lM$`~LbR_99M%|j{cK(zXRBVlmlG(WrWBg@3!SMr>Z?&cufTyqYom261mLCwP ze2})iRa0KzhYLcKt>AI!qiCrQY9y&?y)9zyyCRx`{7P_@6_3-=OX<&j{327eS zsX*e4X`nevjHIzmMPr+9;|taCsbXp0Ej+xjq9{}Xrv)*Xjnf*}tuVA?@Nm{e!2`OP zKr^4Jj^a1C**Dae&<^g!@xAk+aha4CNsCs$)J*S9eM{g*lK?B76b8=s{dm`sp9RQ|#UKg?QPXoFU5t*yc;?0Tz+d%T(-WA0QwOdeQJ`Ei zY^}KL`@~3OKPy;rGLV;*PDl_=NB`a^ONr#)d6Sh8cDIWk2SC|2VAYhfnj^m*< z84vnO;wZg?1+LbmYKuBMOT+RvJzkR-zFpu;!sMuNl2vB;ydvDX_U%IV;Pp6{R&%}Rr`8!DvHi3r!R%2*`>+)=tQK)2s>IUZ!? zgM>+cA|cP~PPy$1&-EyFc3z<7aWgwgEB+2p>JKYHS8s?t5+!Ei!_YspC8GKT!c@nz zA2Ibj?+$_MhrRQBc=m_eX!l2m+nI%UR`}=g^MG0Ix=wKtw`}pXLSM4Qw@}A^B#M>~ z)NOg4<|5V=-5+8F@3fNn{YzNXJ-gY-;b@6+@$|T{#po z%I8Nv0ar0T1#2_Kk!HAbSU&)t7#~gWx+-$t9?=1cn_SIgr^2#cj=qM0W(tBI`FOwz z=>`e=@KUfjw4{{auP?uX6P7?OGFmH9%yxYeI1P5#C4N*eXO})# zJ+zscPY$W!V#0V=4-{@PXQT&^^%_C{a?+bh?Qz%lFU2S^;jr(%6JqUW0JL;e2;5Z%IB@|t@8bRa zB7yeA-})j!eA>i=?~!+#P*+V(-veW(TTM)7n=Aj_DT?itAiC1rfUo9(_R$Hpaw-NfWqh#I?CLknW08#3*WI)je-j6_ z^Y*q9S`EUk1yNqs-q59~kBhaIpR=kEk^$#}Bh&9_r;tZ>*qe;ZjolLW*0KHXmeTjK z^NLP%bzsSWE_UcBW@z>B3fD`!2FRv7C{D?g)M2T~PuF#nN(Xb+^t;raDo;)P#VnWT;~gRJg^=-F0Z)8Q%0PXWAs#q<<7OnVe;>w;-}3{ii1RiskE4xEzRhX{NL){T{Maum z8-Y*$p+v#N;p7Q4uVf@Y1PCYRXPL2JgV!ib1?|8u!R%_nSTXonR|}BF3i^R(fn_pN z1CluNT3bn?mrg9CS8sPklACe<7w7pf;^f#wbP;Meyxlda$5??m&Ef+#73NX7h#*|@ zw5DubJM3{AR}4;c*l~Q-L)!?!V;O<{TierOpzD$uWx;*Z4@cE~n4qXPaTom+7IH)h zpilX3;|u^Mya@`LYyZ0fzsixk;=HYkocqgI&=Q~}x&tY&AP!O;T2LFbgH79y!P45w zvs*~J=N@!RwNj;=$(g-s>iT^pu?9aE%4L?*;(441Mkp^m3WaZ4RM5;w zv7}mX%59-2eh|QijJd(QLR(# z+5;;umhL%uw(%vmNyZG)+Uvkx29MaW24qN7v-k6d)N9Uk^b+nZZ)2L6Ys8paqqXs5 z2~IXg>l-JK7yk8U-H*4R{wjmn!ARDacYgMfv%I<}j@fUa7V2<7xtWsBoTDp{7#06q z^`;9VeJY6q-il|hEL|lmcea0}B+Gck3=A697QU+6@zcK&eT<9z*g}pcfX!Lf-zR8G zHTG^1wc8wj@&#|7I&vH9+xN`3CZ{xB$)VRB*vV|iR42&Sa>AG|ZttGla#8+a6kid& zCVr(7qb@e@c^X};JhV^ZWC5Hoe?uFKo9PI*zRkw%LX4G0FQPn>ve;lV$1`Gc!S2S9 z94?z5>pSl!U3vLg+M6=%8v(JBs;*0X!r6@%%v)1J#5v;JLq1rdul$;e)d3GCdoiSH-UpH1_$4k_lcOdlWjcHRCq%>=CVM3*b+<%5=@a*JC9Vt4oaAstCrgl;$q50M99-?O0B z>Y!!!^#HD8WYyVj92&%n-bBK`0?m&B8ZE{VfXJp6oI8dQ#dQ!}yTHks{U6nYQA@VA z9zTQLq7IH!tXk%Bs}M*pVYrf&nOPa<0^uJkHhfm0PCOV9PK6tQvTOw7lnl|bsLZB% zC};4cue+4xsR+tJ2!fN1NmI{m-$Cm+(($FZ%Rq0VQjDP&aQb+p$-%m181b;3Mc+Tu zb-eOA?UBFGo{I)UK-I)FxfVaI*{Wh7g?RL5osd{!Qg2ffjb)oold$YA*uxintpT1K zcBRU4u}7pl7kd>5RtoLFp zUTjiyNlBcTUEgAZ5^;e@7lrE5k_G*iZ$+FQFmc{?0Pxx3$YheAkSq6=9Y~^&hSYaJ zpm$sBeaz1rlW&Zy&e zEgtQ9bNY=2)YPEX)BQ75b0RNfd2i>)D}Ap&>BQqm=VOzHqpBQ_<>$`=iFx#)cBS`J z{qEC(+yGV@y-FyP8gRf}draqzpK^dkJ1ObkAV>fu(`j0ChWviL#w2zDFM zGh9KC{t?v{YlSq`xVmz*>p(`mwWm1e@k)D<*&pZ0g)`geHq||nAKukMOWI!c{fzK& z<5KGRWUWfQy-eo#2u6o zyTHkQOgVmm<+Wmsx+UKNQ4NcElU-iz&e4m7^5wy}6#dTopG-NTv*wTq!aJ&7y~H+; z*Q=M+ah3TG-a+Mh%Ev}!1YrUQsfr&t#<+J;3N!t(E^ew9G4qssZ8#({Pq{sdp4TZ{ zV0(URnqAld`I!+8{OEOi52O|({sKdzife#h_?zMXjSULM*)fAR$3;%!=%&hg*&LDA zj}`<2ex{)oB*sv?91E?ZPSlrFQ%cYix+570>^E01IWyh;Ow+^__Q287N+K)K8CGCZPw1^V^YLM}vN zrIC9fu8xtI@?2=CDBSOph^knm^wW1Mk{ zOxZ(FFJKX42s~)m`%sHWy}<(}HQZw%WU-8ak@TqayfPqnH&4vR^@g!=n?}gORN!}~ zo2Ra)jN1~7dh5wNd}cNP3T5;hK-0lX5pF5G;nT=cVp$?f3vW;knL(}Uq90)|M-U#$ z|LXS;R}f%EymZED0jBtpoXSCRhnx;o0=LvUKSZdzc+=!%=O}DT-$GS))F3l|-WO4h zw2ZeEhypHN&W%jc9|;@?6o0u>+4@!R=2{ZFI9mLT_jQgcZd5Zpz{f8;S# zY#Wo^Lifhz<*cCLl5p*(q+>I_2v^p8HS^dk$=wK^htBSX@kv65Yobw=03$bR)&`2^ zgx!Gd3K=i}AM>uJ8oduadh-&vnjwf&%wO(ahn!{Tuf22&1EYkFAnhrCFeAf#qh%pA z@>8Y3AAIEewMNpS>rZxB$Kw{v_05LqIUf@J{m@;6-Sl*4c8JMCgybhBWxbyYnrs3C zR_&8RXA(sdB{O^Vlnu}Azo}01LjJ*+by@*8EF6&qh%kt6YQ-COfVVj53Zkl|qU~QV zX=kY)$$Zp!@8de9lZ+%%GgazoYab^Mk+aCQcMSJq&k!1W0OQeR7W;CyR5?gZ&9D90 z_ePM4>(VDzH>jZ!CpB*NHe^E5RyDghB0yV@#s-sm&nF?)XDkCRJSrr_6HYnrEb83f zQmqx(G7fn;BCA2kD=nD#!R~$-D2qOg>2NjVU9EEP&+D)~--C5_VYT`+b^MQ%6(Fpc z4cb5gdW93I*tH;8knasH?Ub-#IO(H~Zi6;Q2wHNYPQW-oaBmei%yqD{9Q}kb*3T4h z(JE%4H_I=_ZF>G*mE*X9#=CE4egt^n8eERl7D=duLYLDJ^MV@?=T%BY;C8J>x%M~O zQTY0ghQfHd#U;mLDYgixeE~snTMG*r4~Z|aA$4*|7B%~l8$4q@lww~cI1Yea_^2O; z`?%*ZwRg$N85Yi@uGkdGT$Lk)Cafz{8`_tsC`a&+a#1&op8)Tt;{PK z+LUwyi%faNhwV&ub`^QY(P#?=^BO&j{NaTSQY8O|XTs1YZ0>PDVL4lomi%T?{(r2G zD&8(i)TB^Rki;&V3^x)MU#!xED~<|v z?67N9lR2GUA`i#NdZn!fL$n5yaT0rg# zK>=HSM{lF4LYA@QJ!YVA|4XOPR(k`$t6O21)d?#AzF7V`cCGRhI+f&kR^7d%M!zJK zQ8dj5ob_@=?JmDSY>#M|I`;~ic+v{Uq3zS1=MRLTD##DsM^<)6;pD*p>OL+5aCGOc z?M3b%o{8Qa@mfDC>Q^;+!T^;L06a6zHnV`}_fD>7P;qi*^r&e2;fVNaSa8^R4(^v* z#-D}EnfIar83Uag&wsapQ(^WKro@q1lMD_qe~V@}e6)Vf#^fW3KfJQb9^9!{5@ zyOF(>6L3AraGI{WI_KR^-TZ+v%n__UFVXdEZUV=T`~V*oBgPB&)Qq&q+MtX9D|1tm zMtZ#_D+YP>tKdyQFF=RGK^T`0m$TOr9hmqwY-XONPXh}rpV_50JtkVb#qIP9af!oG z!4b($YhV2dW2vaf9*Reqrq*Gl1Pj~{JG1RItaP?&1XQ&D#=|Y<1xNMjZ65u(jl(Yb zLJQLck5h_uRZZhf%lRS9ey!`}z`yVWk#p~}3+<6L{wiM^u#8rt0yN>mwklMw}xi+=Qbh zV((?kU8hl1^<=nK%nj6D$=;?Hmv74{x0%<3>`4S-NI#Z{Tqe7N#2D~Om{{^ZgE0v; zr1xy5Q}-z?n*{)Ao}RI+_9T_E2xXUQ42@#CZO#&b*f++Xg=Z3Sey(NIUeBs?A)quy5 zT7Whn=6Y#b+FWd#bP!gyJkSkB{as(0-^6$=&!Shg1un~x$UJ3ndyY#TX69RE2ot9d z<-07G4l%dgf!7)}l6FYY^d)%x=kynVCl?Uz!HVLv0iXj@`^h7ADyo=;hr&7`?$EvY z5{)Q>bA|Ff8o}H}-h-}FFX0!T3m(+wV)e?{z47;;Yw5Yokv(|E7XOq?oHR5>UYS~R zO+8<=tJ%p`ie8G%DK^6`MfERqQyPTZ)J7E)(KKF zUa1Q~d2Qxzm&7yEe(SX~N=20!<}d(II=XhZ=lbUX_!cOcW1LMG6pq)pgc33>lPx#? za<1LZNl32&EKo28Sh66FY#2;cf{Pk?aE;<_l@s6B7`pb*VbCb; zRMEjN^;7Key2ezhLl*FH!wC*gW7b5WUC+)(tRf(q(G^sA-p`vI(B>YKrfXAIY(wg9 z>a4Mxu{54R)WKB9L1HR%G?L)F#in$rmP#@#8(h0-?pc=MxPguA)BKmL+?>4HB`wHf z)J>k-+hb%c!)T9xzXQh$DxqHBJ+aR7AtFgy^-SN{tNapu`K_|V{$Ocb_ z9x%sX6w!iMa!G;wZm`?0Ce5%O&Jj@DQn6_n^0g5_G77+(K6H4lBj8%=$Ve9gSIvZ; z$l8@+kDLG+QIvgg##~MxwO=xCd9BL@6!K|WuO@4Rf%M{vhK|z)3Dt5YvF|32iN-`9 zKBHOPHF#9kmD>LIkF18qUcltFEg(10Igd0}R~~N{V+-agU5RGhcw_&ea_may?pEa@pvyHg2=ejDw(tH^0rLvJRQmD$Aa9WoOmB z&FY+^%dvwV(C-F@RLkxO#Fa4hYdbEbe^gInKVRp(d6*;|F@V_hGryu~FT?oquvExu zf#zj-IA_4U+18^u=qqJtW{L?;tp2sq?=XdDyS-@P8*?`-{?3c5P zn~tA-9Cn^y(f_21?J+E08)5eP)_Nr%Hv}lXgexKlc+B4^uOBqy$d;7?Nwvsfc09u! zOrP#pR|-|mHOxF0HE?raU#ZF63fbrE%W!22?*oV$-^|nfra_NF8DRke>J7Sr`f7M4Pe*hcS`lq z`rl8C7X7gfOG1?g){(8}Ak;2-GHe&V;TyG3R<|(0BTH~8Y8kcJ@xclj#AqvYIoJAT zp6S<)j?A%UbJBi?uN~OH2$Gq~g{l!I<=>F^S_1|ehmHMEA5nSbQel!?8EXQf<+9{1 zwIFw^w6;vrK4%RpdphC?>#-`NP6~%J@n8~qA8cR13guHM$&^b} z*Gg7xJrmQ$MgX^oduI)7D<-)V>(71$$I%0zg5`E${VGD@IOuk^0lGbujO_qCVU?6^KnqFRbz{<2h?GXeokk>=}FH zR-M#=x-x(c>7WRD{T=AYSoS7hE`KFmootl%oai>Bwe^Z)UC?t30+kqf!J&7GPY-OV zHv@Ql{kMCv+n(an_l#k>^R4KvJdbTFXTgRFYXa(W1>IXVPD%@cnoXvlD?FK|;J&yE zhl;+MtpqZ{dx|SjVmk`r-kCz321i8_PTZ(?>KK*C%YK?Q^iN*C>5OcM;*P;zn;O>4 zPv_GR#TdN6nUM1&&Lb)? zw;#YPE|7!3OJR#Yu5zH5RM~j?t&)RVEiduffO0qlCln26XBNpaU>7^Ya0W3Y#Ex>u zs5;p!A9oe=RGWwazKvYern`603{Kpbf`PI-!yrTe>iyZ()l$!>ku3vAgbS)(!aVWT zBTp0UJ8wgT|6qIvwU})EbboSZ&7_lxtf9+p8q1Sl`7vQ=3b#$12OSYMw43EI$NMoX zSIEZL4MO^Q!IcgV!?#P~<{d4a+%RMv5^Pq^O9~BpbO5g7{3dEQMVx*Jnn?ypQ_T-% zQG!?UGxN2lJ}VM1&sG9jox^C`5)}=6BK{x&`^JhA*xP5j%NM-ts5N8?st=t=?HlgR zrd^tE`3OUt&<=ip* zm?XWpgqtdwpQ#=DlomqHws#5X$+ClANrCwdt(%r}P+j@P9XklOwik>>K`Y4z#LJ}n z?%<}CLs+{Yj2DNv`LuHB!9*A0ZQFD?z(GyW^#FofZe!#Zf4X}G#lAB_`V z78`jmw-DrXkRHz(j$~)QD^X5ke}SG*@$tbdL?e~g4D{nWehIB7oiSVC)!dw?Ila_f zkS`HB*u;nSHnpWCZ71Z;sZhWoH(29Vt5C!FFQ=`30;9P$ni);%O*`pB`3Xu$c7#>Q zLKti2%iWqT-#9Hp#?~%qJ&&)?)olcX{1?{ohCxG>wQ| z()TWkj;-Q=Mm)^>D0huR?fP(kCRlafn0s=m__Vz=c12GEZ;`Sp-l*B*Oj5&s z>NCq^H31<&Hcg~Orjut#YyZ<85|7Q;b!9}quP~YVY`sMB3N8S+qvY0114b|VI5XdW zR4W#GvUfGyQ9q9kCZH`+3m(j`i%ko7Q1WgO&d8cPer``ht&5y?p6-GbxT!ycI8CY= z)!RyhKxidRcm-%v1(I>0G`}A$deh{Sd8MZA2Y%0{|7lcwduRzrlv+YfCm)_pP2K1N zVOAuv^?hiQ$#9YaWY~WGNQ^8iR(ioNs0BOQ*mICySMVVRlai;zU4Hdg6gYh?BP4e=KlH@|)tPh<+%O9XB3uAqOpgyESeDm$H2EQQP$RwYo(?mJ0E&q$p zM$PERma+4#axP$Yw!L()MbisAz3L5>Jg%k6RypXyg@x&mVnnzlD+-fNaC}8f@?}v(pi@)jcqU5S?&=(x{fpZuJhGi|LpT$#Lk1_;NmDW znd7~}&c<+%KMx5kC-*Her`WmYop+ZoGr+oHncr;Obv{Ob6Ksz5G#mcSDnFmq8cA_g zX$of0-u>Zxaf#v(=cBVdwNs)bss8D&>O2KdxgB8*k5)1ShXUxoYv0E>FQ4hf-aCEx zw==*D%TaglqG;4fmXdvaI%`H4H;C!m557B&q5PlG&s2SLB0B91FM_`7e@X8aDwF~Z z*Epla{z)UzDW9o>ga^Lp?G3hR^1(9D2WaS1SRc1nje%+S$OjYK%XoPn5Gu-#B+G2c zz|#)LPoe9(n#7Z#_FzEy?l(z0MUr))zaK8Q#Ik3Cin7@3SEK0RQI5-Fe@dNMo7_d= zeaoAFtj|W&)lc;I{WBmuFdYjX9NUJc8mSEB+U8yIG)R(d3w}iU%D*k-;@y!;5`+!H zwp2)Xpbyg+d%-w()HtwZIx~4)<$KY0YANvBTvVa&0g(br1rP7~&LXfYeIZ$w+!Mbn zgbtT5As&Q882qXd|4ye`hBQRnl23vjjV~CN2n&o00vO2N5K7S1`6`T0&@lqgHF)a4 zCB==uRYJFg86P4@rZ6uRYy40!=H$mLbh~8>+u)cu9<~KCxBS@}f)(2V@tDyFF9!d%B@p#g+yXJtyUMI?!ReZm8$QXt!V4vFj+0smxR@ zwOz`IO^n~!2SKNt8)c3m1eRc`_%jgo=(6+kPIpp^@eQI(?Wo%SJq!KsuQDRrPrv-f zW)v0xK6wcqxk6uOvB;AH2h$3I3{f99WyqLyG`MjU^U1wT~p6HvLOC-VPtNh zvKuPZ|GvoA1jh#Xyo9pZ(oYu~eK2}HmNkN13!ITa7&+9=>HxE{9KC9(Gj(>o;ch;LAYOcVB-vRz zDh@|(d1hRc*>a!c+RBSi$4><1{QWhT#g4I1K5ic)Qb#UgoWGumeL0!hEEad&&IgcA zWuY)(i!?urrF#2!tv@C#?#G?jBGsJ$Oi9@ayPS+#@%o_CK^%pp*o!Z1ov6lcsl$i`%6SEEdn%55NX^pe=qh=LYRg0+Aw2 z+odFm9=a**UXpIIlrK2k4qnlpfvrweCwm_$aJdlC9S39hR4+LbNAn+T^n4^6amRRl zk?ZhE*FcuxLcLCn`9Nuhd@0ely~Qv=vA?T|T84Q?7(J8;AJ5%YWsv-Ly2znAQ;5qA z@*U7hf*Pn4H?iBEFDMoC@8U;)w#22a78cyn)qkG9ls(@0`DA4-8*SmM>TmI++f1 zis$YJ6HExYb0}A~4yMoT2<*uy8BwXbnX>jFwc)BnK-b}%o~fg^B5kZskvxqykSOa% zcgcZ;m&#FO4Gd&=3QR&A|DE2`t$LlHY`2~Y61%S}c#gQgHt^;%Pt1^&jRFX)%QhCS zspaL()^#b+;cOrj4++o=u$iiV98fDy;SNCqSo7W#Ib2e@P0`69@OCk4%ch5Hgl7aY zz1`|A`+Gow2PjTmKAszdO|WLGY8(4SsVx)4X)Omj?~>0triuN{VNAm80gq+c+z2or z;PWJD6~TT#_B^si&G8YL!zgHjXO^ z4D&F0+`tY}-X&T6EDf}D=N+0c6NSMPm2z;EzXfQ_?pLP_t}-4wFc-5W5ckaXrLo7x zPF-P;HpTt?CL1;2%A$E-y^Z5?IoMv&U&um!^T?;ug@Sdod{JEjgGm;n42wQK(8f3@ ztJ4{LI&qkt`)gAmmlXQ(Yy_tK6B_W{%x$@wnaB|^+T0axJdOlu*$Y1eUr$k#an`@X zZHOdZ_psZBv-q|lWrZ55x*IKx*Rvig9lqt1i3ZjVI^H0EK1lA9o)Z=edV3aQH3)nO z0?yPTKi$15EdKIYgzQ2f5sZS3X2u2%w#H{lClM zW(0`m5OKlO{b{bOXC{xm3BFakIVU?{=qoLdvv#=>s(>WIL6g^heTFiL-FK=y)PdC0 zHNOvm1fX#5*K{oZcf;4L(I&|TNWvV_u6fTQP5g5tDB&sNE3=)Bz|{}~TwQNX8!dpt zWZ+w@%WCJmB%S2m2{0&+h$nZ^vnmSTyTx!|^L7VV-k(=f5!KF@fjCJg-6u3$%?~^; zH%f-??JL^4IHG1q#{LD>7Vt9V6qGP4|FCO@Y92knzh8m4M5<-@J(?h@WkxU%Dg=2E zrunam8DrgrRV{O(^rM=S{*(Hh*41qSdnv>$P>u`!1Alx+b|@e^oI@SZWYw zd?u_Q6s=`l{iPCT;{sE!&@-MM5;hW}}`x-tz zyqtnk+0j4*SVPbV#_2Lbb(t9j@UL<86MD++V?Ts--lKk3dd(hQuXZ3Nf1 zv0I6RuD(1DqUV&DiKVGT3TnX^?~@~o-92(q5m0a)Ga+^c z|9W8Q@I%Zd<`IS?7gRuDTIu(@_0&3LGsE!?NW1-*{tEI&m47}FLIGyOT9Yg6zWI7|~|>Aa2MRuqA^FA*bq=U5ajvUV^z@spDQDlBCP;%Gd@40gT! z4N;EH`&4B{P{~d~i*t>zTmJ8kMd55uY@l8~I0-`&2ysn+eptQmREGyy1=tU6?R23` zb8J1(cB%A#78LuvsyRE|k0@Mng-Qy_zhWYNb#Cb;eG=GnAkP0j?4D?lOEbeJ&02Te zZ}49C$0lhEZxk8bwV=dcN?25%5y3TYEBTSQ%+Z~;t_6K<-3G71Z=_;LCgZudLNXa4 zkH!*Uo6Hh%1ZGrrta|?8?o3$-b|0xn|Hq4hiPTqV63s^6J@?f}#e`*JF#ZpK^5me6 z(;OSO_+QJ5Z$+h(7cq9T++%rQ!`J_5UF=c1mCo0?8B&R`E8<3;|7rp2VIG(=FjNJ( zvl%zAbuhGXM1Ql>Ts-<2iu|>l92bp%P=3X=MM(!%qBb7+%t0|hP9}PFKI(cX03m9N zPDFmUo^(+dfZNS6ARdav2+d714*%;u{~Pxsk)_4Gs#_{{3zz@r98Yfnky~HMACWiw zT~=i|D`?|BFeW5W%y8Ruu=!^(?{o5LSAT!EeMU>n^RzDw1tNDHeT^&KO@U{lmcKkS z-DXc{hV+($;K@0XbXiL@UEEIvM>u&)cwvyq!FLR=6u7d zLzkL7=+u`YA`@`UjDW+PyyZ^SPsRb?m$A){5tKHZp5nIG+FhSnHHxQn z?=6!FEfjg}G_OvLrR-vW>jC(94V%9omw*^>&Va+aZ^*&^htP7W_3sKEiz6PIK0Taj_DB389Nr~HKe3lj!|4U#qLxc|ESr7L&MmU{LD!y6-Z8qT|##hP$q$#b` z>2&2yuk0DaUcf!m_&FZ&13iA*gd)gGnaY;z6kwv7NBR@^pLoZr)5K=k5zNuA3?uy> zAAs1cf;K`T)5cbq)wp9aK$~82-_?1rK`+1wJ>TVSX||hELsW16LGR<%8b^Z@XEm^w zJPmdpYTpvY9MbW~d6r@rGSoN$1DTL4pOB zkLRuTB3u3DwIlbL%DJrq1Fai95x03%7T-iLXcBm5A6O(qdOs8vhMcdLJA~>$6}F4j zW7h670?vK=-j2W(_Uw^G48_$|nz$G({(QCK?P6L4uJ$p^BWGd|`g~2A62IwFs=-MDCG||IFLggq^yowGix_*7Nb6k(0r6 zwA#sBUC_P{L>LCvfH&fJG|8QOw46t5YE&-ct3bE>NTgIC3LK$NGaHsXXFrq(amiq_ ztrbkPF2y*JVjhuR=P}SS`JBPKJV1+0H=?55b;XUKo@)<11G}`P{+5Gnri1FxPZH@M zXH)ZSo!j2)Q{L0Gu#8?eyxuhWlJ%p&VOAj3$s4CGY~{jfga6{``*#(_Mr_Pp%RsN=P5Q@Lnn3!WvHXPb9=o;Xgs| z3Zr}=qQKGvRL?&YCYC4?@s*ccQie@jk8d`CyZ1W82LrZ)_?{OKkM5lnn`0 z1I1Kl=($!`nfbO2yP%N&aEh*%(HP`1B3;h45Es1Hs;F~$L1QDlFNBQjp} zQM8n^M1Npt@rO+RY#xW}MT)zGEXNKsH6Fly7K9(>af;FN-@%ZE6U?gdv_&0=wR#e4gW=-I{LY9NW=&1WY&EPotnR>a~TL zKb5DfuqV>pjlI6nhTNlSy~y{(g1R5Uq3{_&x_yFORAhMz){$C}n|zU+r#mk_;p)$r zB6^?bgNmb<~7C8GFhj|;$Ms9&sdBMAu74lB?%1=I~rD~U)UT66ZDV|hVG z-|~V!p4_swF2xYjy5ChYA5^?#B&97%mG6u#ZZBF3mlfxBh$)O-S@dvo#6>=We?It4 zWk|+6=2*+WY{^({P)x<$&T!GzAH6xchq=8fpC74YySQe2Ue2gQ8i$LOnTs>t4qt6+ zSJenM*WRpikZ$_aNK(7<^v~qOJhq&H?A6lpkAfK31H`E*WgQT_0*!&zER%SjqW_~y zCNkONBlVcStQc&Hk6b^e407liGc50+^iw&r@Xkw4c+Uo)ZF5axVKZ59)B*1<#_ye8{1&=9CQp zU%ELvk4`qm+n=LJ1SEv0)t!rT&$|qXG*YS;LQeej34O7PZyRj^ssD(Y><72fn&!Ff z&eaUJT&KWk{LkHl@OHa;z^T!UH6Zm4pz=d-{Zr+RM&Rs07+k%8THrIu`fev;d@ntqUQ*Ty)GO0QL_-8CfB@u+{wbVaH08JD?{o<|O%e72ED^YjEOxfxMwYQ;^A zR%T)zy2&y$}MeLR%b6N$;cB?Sf5Tkj@~+q z@GG}uqNw0|co(%%{QigNTS-I?o*0r#Wv3uiUo+P|n`$e;ySD3O#1*pjfxn+B-{OH!%Sk_`vO4Yi{%e-Jpt%@UoqG&i2Iz@ojfP=%Ru@Dm&v7X$K?lCv!P6apMIVDm_9Whz7oz=iBcY1VivDBm)}GBi-Q%JF7Mt3N0+QJgEmrWYqN*gqOE z7lY4|_B=~VhTa>7FY_oaHZ1Cz7ek?$WD{J=Ilj#|GQh}w7&7v`nVGl*mgLct^nLmS z*;FxL@ZUU2zQwvM&;vs#@(@s^Iw67Sao-r(+B3hM736Yn#k4WnjY44EK`Sf|y>eFh zKQl|N_UI=CJV=2VyylNhhI48>5|EVVU)s<>?G@364?MBqy_=PNU<^m?AEHfhYOZix<7YsixCrsBkQRwxPhcZz{fk&mrlw<}9DrvQ<)OGSWeDML@QS0K%ePrf z$YP?TUZf^_Q{ZJBaDoZHfUEQ}C+GQeP*T}dvsxm?xFwF3v>8PNYp-&}YT-tZ;Xs(I ztTL@x44o8rmEdUzkdGZRU4wfh1vcvUA}Zv@mFVjGtvGtgg2#+tGofHU;?>Wn4l65D;QiqSSS(o*eP#VyPb8sDa~NU5rt~3p*DsmCW#e z#a%h$l;RtP(57#N7d>sd2e{p>M;d^|>WS&{b2S;f1%>UAd+6E*_Rh+M*|sb73F+tI z`sW^4x#w-)VruV*=(e%}`oM95$_w-x9fES+_d2qmEhY+Kn9&vt{m5ub@AjnN^eH%n zTPB-*(Ja47(VdHS9lmj6x^wda&`a+B#5cRY-JF8i_xH5;HHUzT;J4!~^}FWeR-~8e z#o~%j4SW?fCnHG1%Ht5$S=Yc`SHfv%Tp>Bl4ImV1m9pNOq(I`{VE0I*uhLLvUw^}| z?e@FWgF){qYv;E&s*o{q!bYm{xecoh=a=I;L6U3$b!Q5qhwg)Glg1)0Fyq47#5m7s z(a6YTRG=bv31to4l$Yd5A4S92B4s4dkzOl~hr13GyZb$Ar0MHapyQGKBSj^pnrxM8 z9e*zx=KUclfMPd|h+T<0*dYB#Q`T=EnbxnciBhf=!T z4P4ylWZ$w04?1fs)3Dw*hloY`WbFBZ72e*&YI(>jC7Z0)BKGP=cx16QB}3WimA(g8 zE@7`FCy;{(RP!S+N0ba(G&rPdlOTYuC*xWT?vq+^Z$lcv=Zi4%e1^6>t3)Ys*1s3h z>j~c32=X)1T(h`}XScE7hw1!X6UIZb^e*|NPuS6twtn69WbZux$+W=gfD73scxZ;~nE$2^T3Mw*7jm`l>ybb%x)c0(s4nUE)1;HJE5w`7BT_`Ii*U z07-#Il?Qq{%_VsP>6mne_+4xL81N!A=UvXxMmoh6Q*(Lp^y(9Oktom1*1>}$OKTJOv*x0oTD2%?Bl(v<}N z5Vf8puxqC`Sr~7hrM*C@>Uphn5V08B*9XY-2^=923rewzVZ;(A;mIW|HG5Xx^>6CB z@z4G(ZH_w}#Dl!d0+MM8s;cbJe1260iKI7~w`R~HmKv48c`?<4@;Be3Pyh$L#pfig9;my!ywb+A2iK$sUQ@R8-Ne{!s zUo!T4A3WbgUGqF+rP13r#d7`MDGDS*x2l3#!Q_+RGz-d6Okex{_Q(Pf>&cpcjDs;pTlB}p$q)oXV4{!6sW+_Y% zEEa)mdgarFkc5@FLPNW@%tzU z^nnApJ)ah$t3UJc5Y9gM8wi1i)R&Pmju{3`QY1<@(qSYtRw$LN_0{CIi(p#@>xU!4 zL+bOH-xjr3<(}F$927~?aw5+REW*DZI>kJ(kVYy2?E3<<^H=DmT4P=Uc;JF$iM0IZ zW(|QB*w*gNmJ!=)b%03#Yz})qI_4ksu?Y4N#ZfV}dD0+6W0mRMon!RQn$mU1&9a#g zGFopGqKxm>kUOd34uOsPxhYv@v-+@@?0EjWH5NxU9C}we{8EXJ2@2r6dFMdKqWiZ} z1CSjyoMm);XPv?XcKkUQh7hJrx49@{u6$A8)LBzBJph*^tV}*^QNUPbWE$I?3Y>J| zjyym!7vmiaomY7`eWrUR`i7{xWDh|ZS1~Ok- zAoH~iz_6ndv2Nn#TNTERu^{QqB;|WD7avq^JsKp@X{bxCy)b8Yp}IJQ9qI72U`Ktt z!I++_S*-0UvZ10^kxz1GZ}cevYGC(TVfJr5f!vl$Mk>f|C@=@0?%k9viq+xms^*bc zhotFn5by=ZPVzBz?2B2*m){D^~gW5lpWQDc7~-Qa0UMrw4OG3)5L}vDeETSa zeLFp|f^h?R z!@lal?@II>v*(y1pR%RaYZIgSA2yhb*h-GlsTxDJO&?y3Sn6IvZX|?>wV&;h#smQ6 zUb9!6NJmdZMv50Yq@bc`fc^3L&2_EI*8@hZRDy^@nFgJS$#0I3IU8FlQ>t>g32T|9 z@&`ZrHf@X$WAyDj6&=WmV_N4!fr7gsOoc+MQRk#6R)xBzz%(p6_R04+3b)O*uFW-E zl^xSu+?Z*-bn(9`Od4M~+}Jn6zgx!yL7nqjC3p4bewRe{SMYZ5+{;qU zH<%^w>8<)ti8Voi!S(;1#}T%7bxkS;7dg!>Jz?sc-(Jo&aKLj`oLNfNHp+a86eBn$ zZ)UW9p?db)0doY;T;!|+eN(hZ5Zpy2Rd#>y<@cFpTVK0_28v7S>Vk^454o;bY%&*viHxLRQV=Iy{yd*n z=3GNO!~y!fcQSsRgm-~$=N6aW zX+TnH49{0p)T8y`K(ZYIo&X0=#b35_^Wkk`qif}QOc27O*{u`EI5a%q24FFI%CMue z9ZTWtrKC{M&1HWHyn(PtYh>#0JiacpeLY%v-Jh7ibjTkSay=_tNr%Gbv37#4-UD$F-;>+_oLO0HE^5|gEEILqO|*C-z)T()s!wQD`Xq6k(cP&qYP z{0qkaqf;xmLjalWZ@GpGvy7Ad_)fiF*RNRgdQLO~@lwiuj=D)=wNOXA^Oqn&LE06f z)YjwI;=*ia7cAh7@`ph}#Y&l2)tx4V5*yL9nw;HDd~7>y*{)nWPXW(+CTK1{#C1*X zNOkN<=o7;O?IH`9S>|>$7VxWJ=`lH>8@D5Y9l_I_Pua~a*QEH-!z+6MsrciWF)|GK zorjk7G|RXdA6zA_uA%2z#}|LM1UEn{j-&12&XAa2S#r5QT#xg?sbAsqsbCzSof)TP z$uE&TKyY2RJpkDmu3B}+O9;M1QUgT2rf1eUh#rIxbQRyit;IV*PSD;FH zWZvfqjV*l7s`;%bZ|(5l7tujB(i2yxizz2Inne#S)~GCE=Ion$I)fhIV_C z){hd{{jalwNSVMXio(_QOvhh{n$sxc1TD+o`iZP7k07D?k4DLZT0@=Elf+ z^@l=#l837ZoPmW+W;g=`UvARv&m@xfjPwZ$>j27qxAnw-x~hk0ZR%0$Kz(#p5aB_d z>Y8#Yz&K#S&x&*0R5ffBGBpDg>yLjcRhKFvInTp0s)jM<>J399-2+DbeXU|F z2kUDIxqaj_tpr{8Wh2e1&Pb`B1OsD^He{`gK->Qn9 zwG{WIR8#!3a34{$?Kp2)zF8elB*x*$q$fnT#YmW9@S9-0plFD%X}*z%Ihju_XLT5i zeMAl7mhdG;bS&hvU${`|0Ugy3I=TLKl*fg5|Dx=$!Otxv@X9T2GbKXrD<}>Sv>4rS zC^@>|W&i@_T|T-($SH|5(p&~P!sg^Uo~`uvoPe(s$mPdo&2P->%~xpQs+fYe2K?+elmiwhTaV*8d-XpP+eqnXUia37AphDm!Nh7fz8$@Uv8X>w! z)|G86RTrgUw4g74?%IgEqO#%J(GmOr70ryVcr0qECIdrfs2`Q0 zyDiK&H^84WAI*zcE=_Y#7Y>tILu26j6wfOdy4w1?Xv-_B_cdgNCnEpVV%>k9uhEZf zl8&>QOc|_h(lV@eaL+i6fvG?0KGKRcoQdEunt^yNu!J&VRD97Arh9Uisc!e265*>v zKXhCa1B20-I^0fow>V~zB#)R-X}-qbBw!IE0|h*cuswOZ$*_j zvMt{Ow9Ix|R#&uLE_kWkv2#HiF~7 z<$OU_Ii@d}{^eEmQSBxL2m16%xlyxrWpQy(R9*`a2Bnbb=78DdmYxo%z{SLo&c)y} z&C$XH*v4zNG%9`rza3bSF9jgvsjbyoi=)oC0VX6LmB?{FNs}%$g_ktxOaVC{o5atu>;jbW{RGE0l}}%Da4T{<4C-yra>aTlk8-rLAX9FFW5)o-_7;h@yp| z;8Z>4-75&qbmtUdAX-GskGO8n+ujSF7y=DKN^chqYjl~43)7v(X!*auvNk1t!frdf zY(iS*PL}5Ba`HTb<*u!h71hRpguvSOFe=7=m2zy!13plZh*#SNc%fND?I0najlASW zL>TaRO)dOQ@5kJbYG!{kVv05{(J0%%lZ>r7DlY=?Ly<5ZMd{-Wx!2>5GIIF45?#K; zQBo6%ghR=VVpK~t35Ti>!sQNBAM3!v;4U|Z56XWEPW)GYgJ~^O;>_=L@%yb>;M(RV z)x_lW#*mw#(DwIPdfcrPYI5ll)fneQGs8UIV|89Wt;zPnC*HL;k2xy0Z8zXy9@v1c zc#+UIfE;d+qG!z(M~mP-AcW>q?iMO9i;HcJ+!mZ~b0Qv}x+#QF@P=e4GM5|UD<1g2 z;Qm?5{k+tVzKAz;6iWX0|C3jse|^{Mhg)A0*#ss1180A~b8>(HCBzJBuUIpof395P z0B!3Nm7tf05dIA~q)#gM9o-e;&B&~CFL(|>`6n9$^Rip0l2wt0|CZ)98^M+DJDz(I z656|rJP6E#U*Q(O>vnRfQuTupA(4vE%sz1U5&H$H81;NChO5Pv6Gmo3VCQY*S6a5- zw&Vg!GP z8HcBP$*o52dTuv+1hl4oZ6n0u<)y9ps?(CI`knL3Cq#?NQ17>8ye2y@WDo}4;_CzJ zT?UWG211b;m95;hW3rmH#D{r#Jtfy?uk)InEAAbeRBo0aSaP@`fk_O%< zAW3vLYdoj{aRrp&4Y?D6gJ+xh&4;cs=YJvg9dFI%9+BAaU6xQ1s&nbCv3RAber%$| z)0eh5WUY%2;F^q&QkjzVcp)vxSE#`mNAxL}c^iJDyvxmky^qORJe5Ag!5*Flr~U*Y z*rhrVM@v*Wp&rR*V7o*;k^Kd@_elV zz$G=nun$L6EQdxLCRGCn3TIlfbtv88Ew@0f@1hb`!BTCdbc-(ym;uupV2FK~W3+)@ z?=FCl3(p(8oVHTJtAWHD(RZ{fIGO@N)sg8^7yd0612-P%{7qL-0Ac&358Xa}9uu?F zn>q0oy&Y+^U!X?VPdrX&>c{0eRsxHZc=PZsLl{@rmq?ny45JKP{_659$23yIXV5>R z2Q7vQKs-ru>F;E;z}Z00E#TP_x}`9m*0|jA-R1>_Bo2moJci|96)pcFMK;@M6oNWH zYYG=)HeN@qoOi1DyxZR}Mh* zl@WRnK{xO$jQvrqR09sgl`4l@f!_0xrF|QzG@2OB<9DmO)@gY%4G&7urS#r$0C%L{ ze=7r3RMS&%;V$pt7xxiDA3`=BKEC}OxL?Uemmml{c|fV>TaaGpB>UcR*|b?8K(J!g z>X<*xXRpJv2O=*C7o0v;5Eu$FFQBZ5!U@i?#Inb07@5sb=}PcNFNNoKin#EUGEfI- z$gwBPs`F{X={0y*uQ>K~qpwhhw;e|gA!pOH;3t#7f^KNx>VL7A-;vLd0!juZmWGRg zRO9{Y49B8?%`G^1w7eoXH7It;Rs%2zlRkK|d!s^umPZD~sC#qFvusM|TW8>O_AUAl zMD{te^5+WnUceSDnSQCv&J~B~t+yBpM%uVk*0GSwe1$=@x7t0+xqI$JRVk9u5ZQ5r znP`IA832C|J#rL^B?ZxNDZ{}Q zwf2G*i)p&4?kZmZ(DYvSD#qphjA!%BVJzaWRR`{jh^tUniNZw`N#S_Pp-F;3X{a|s z2$K^sC_^mNGn7G!mENUaISswO$f$=G6h1kHW3Q9Y);tB#nO*x+sk_N%mn3a*@LK$Z z|C|n9gXdnT(S*t1%Xp^?j<=W1m@8Wli681#IOF%2IHf-ETW)BTAcwwpS2e_pKhyR< z&IL@S<_df%d{%x+`xj9;ej@&;`Q{9xMqiL&b8cnzCdtfw5QA^bZf>Z0*@gkx>U#cy zEc;u@99(bZGKt+2kwGN9BLsugC(pa6?oQG3+Uh5BFb*45|IC1iTiDfnz{KkF)DU0t z|6(hAE&T}>?7d*a97wkXg!4+ID4)YVlAncOK{4!ngcs>YuwEDLcle0Bxxga@6s!7s zJin{Y&e2j8e&SoQ=1LW*dM^mnP^Mw^_us_;#u%zIr4o&eaZEdFUknL)pP(v!o zX)&aB9o*$(a?*@3GJ(8464t&ycMnNk(2K>2Ag8|IRXQSE^deq;RzIe>0mF>v{H2YJkFU-%7)Yz->hw z@=|OvS%bRE%QEtS(OA7KB5wz|c9FgKw6IzU)Mf<*zPnOc7H{n4L1FZ~J?E80(;cZ8 z@|VrG$zgU({<~tA!Ru)y_K#&&1#zbCe5DXKMAdcZBVX|=Fbg+7Eo3T5?2v}y}P^caZD!33SLez`o%9O-O*^#9NF`j;)IjejD;k zz!v~DnyaR7pK}db`>87jor;|fmO6ZHLSah_yGsQ@d|$vZ(Ss+4$*zc?uiy8#UZQ_` zM6@OA52J`yDMrnPP2SJ&NGIUG0dV(#5n(yb&1!vs)6Jaj3nlL*LA0Zqs=yZv~lF~9MyO@?6 z1j%}?SUnTsoT4MHCER`9K=W_27ocVF4Mu8s#fR6w?ha-ef(l5(50e>`H%U=#jZm!z zQ!`;936mcpex6kAj^uEc@vRTg4sxL=X`o6ZpGe?n4tRN2L#8>zK)>O%V~Fvvzj5j< zb7_qwp`=;N3Fk}>;o&C?4@Grj9W1^Uf=*e&xArCymLbndevzHLU-x;MdQ51jqw5Bm zb`|tT|9~*$ZX^n8Az-=oV~*f|j8g((vRkRY?#q&GgsSwSAy4Roz5EX@4|v;|$pcp4 zI!Kg!QW=QFc7=1smyz@bu&>13e7x^4|>FB5|2Dea$WU=ZvroXxvRc zp6@LHQ&7w1*%hK|f(gz!X{(khQizFU4;q-d#??7O(ZIP^h}!)#**w(Mdr+n)1?(_C zQ*`Pd1>HE!5}t_h-N_q-fcm~rF16l)Qn)Q#D0q+b^@w-${h`&3pV}3n=_Yp3pyCXO z+=Qu>)V=Aq8ZoChH+FN&+zlGJ@=43?-v|;H&xS7?fko_M(2%zq@ci{ zis1NJUZ1FlJ*5v0d^B#M$2Zqzub9zq38dNtT|~R?MNg&u)nTVV3TIv{vw$CkBTu<>=^~n zF)(JVv><&(w`n#->$*{1?fa&mUKKtx4&#Zq4{?}A-{-~=aX!~8VieP~wd44XQ`U?@ zg5U>+Ak#-he?IFH1TARME)1@wD@a#JfdG7icp2+=uao&OouI7!)~%$^Hr?2~429>2 zgmwoMQhjbSAtEnW)pj^)UYE$f}1p-s+ugytmleI;JCJR%pa zN$Ns@6h1?^Wj;W!G9nG9pDFp8%todg=5#{H^8ONBTD!xbF?h>Gky(_tx6%=u8Sd{aBCB55R}L+{(T|-1f(m8{&>F;ZRIR>Wj8==HknKgx1_9+X}us5_r< zlUuZ_Wzt11rZ3V|rrIYlnK8I~4LOf3tnJEEjxDR6I*jHq{M|&HIQWnMo^{<(L)zj2 z;(uBijQIt&2a;2ko3IIcGQk>UWOWnwUu0sSUeK2Z*VU^9|Sme*Wn`HMBXo#Ew=#mD zAX;!bP(ms^G!L!QCcCAf|4{L?@ms!w292ZXdVNHqs~5NSwzUckA!w{%=veSclBjJP zx_2-87{Nbu>}`{7=>}eZLmdT6YfW5k*kRd2Mih}-0LLXQF&DD|0eF|(8ba1+VNu5D z`0jC?#&zA_C?&oaihk2$KVJgl&QmR^0!pb~4{`3q0rkNYq_hGY(EVV|!D-~Xr!+^R zGX%hD*EH$(Wtw0F>Fw1;(a6T81lA4Le88lKpp!271rU9RE|nhamyeY#!0z%lN{ZJC zt6MLbDE|PosM-EkF73XCZrR}m@WE{_C66nG!zl6p9VI1EyJ{(~WER?!{_7Jq6Td2- zqvU>eh{!^$j<8(zR7_B#xL(uPhgoUI+fHzIDR)D1AQv?J%&lzrw}L{J9eZ$I3n6hL zvEh?9cTVWpm8{jgIiTvJ?WMJQL_WK)odzz5MQ(+d=Ph)}zC|Rw$D4A7I)$ql(~AiI z^0y1A!`{dx#=26mPN8j-NhD4*?p5QErze3{Zl!7Fy)Mg}!J?)BQ|X>#_6@jCIx!a> zAlN3Huxq;X=!jx?^^o8fE<0z^>>q}p&s%Hr*)Z>J;iE^OGcjxmS?0miDcEHrV^zkt z9#9LTW>6fTB^BLeH&^*-CJr$Ck?eIhP`>S4`%Ee%;M2oUuYakyf63qZl5o4h0mbHC zC?WdPVm&Wr)9M&@d~9Vbx{UF^-1suSiy|+mh=&_*J&%Bujr{I(Ny8?}HK<8gG%4EW zhW=15WqBK=qv*zaWgQBry=AY4ElEGdgn4KU7sFVSlgk$C; z4Y*HZ;`j)%r+0LNd^cLQ!Ftty+tJ5!8TtZN>^g4Y-CJ>;2-hN+7p@vrQ&F6>q8}pZ z9$7UBuv2@Hu@iM(GO{x#W7e4K44aB$@r-TySp}rXB(n&Ak3sn{X}1p-lc2lN9|o1I zYFx>XCsu-IZVa^6DGU`2m?&hxQztU6Vwfbl(+kSjG1!l&I}j+ukmW;=zd_fmJ%q%2 zfkkiQ&!0#*f~HJ|@m3lDGawVoKP!pdlvQ8UlVUD1;5UBGBMfUpiJ|5RID+1rPUJzjj|Z4KJt4I zKg}v$ln((qyU?d+SEKSAHzgf8*4EHG`J_2+tPk*PcNLm^8~ipg*&-`ygLY(AA^g=t zR=4Z^ZFewZ_@P__Qqw|*zw`1#3KR?ozsPV48c}zi@@hs?hKV%QCXE2HVU$sXIU6Wf z0Qk5sutwsi2&j0TtZ}nZhZaD5Y3{M6ZL=yw*h&K_v%;zN{}HtSb~jAvQYRTYH4`M_ zX4r+zvAuIQZg8l7sd!JS=}+{B?~)lUXz+27-Vsa8oAxWfONpo}RlJBt@k8ifgZ`Tv0yjibn_97QHD{R80~8)j zDcbj+5ro!z(^}5=?J%&nra@({NS8G@WbFwL?7{pp473iKa@f>BFegdPbLf2?7iNt3 z^9vy|VucOUcj-4uS3v`0vUD!u0uisP!o9py!Kg$jHeNKhPo3GO1oAXkimcfSZYjh> zy}TsmNn(*%m`G>ozm^QB@pcR(Y?Wmzx{)42!9X=^tsGBVCBIsxnKuFl{q=^qiQ%4WyZoWk@nL)btz9OgK0pJ4d?nJ%= zMU9@jheB{ynsXpIpP+f_30K!$1qd(oh3?`JOZUc}%5d&AFdQAZRnBMx+k{fO3nnRC zS8=1Wyd;k6&_b$ZLiRM&^b30oQ5j5bkncv;sFP}%k z_V{@t>Z960``@~vRSAf|+;t<|=B!(-t@rH2|7D#2HP65koCu~8sH`geZD})hB^;#o z22%O)f&iVOSxJD?NTP;`U8PDw^v1Q`GyeivsTzq~oqutAP4v+g^7Rj{`YK7XqkOgS zGLhxpUbTE|SS;%okovKk3Gd-3c`WH^fC$* z)ze$z{5({(S{T}wU+p6R=!I?3Ol*{Z&w|M;Qqs`f7`33$zgz_qe*!Vq78P6c=%AeQ!s9KUbLvo}}xXvj~N(?v@=xrJoRiJEH zhS!cQ4;>ZuG~sb&pG$i$Pq(-2KQi!z#eMn^Ha4)hYq$$@npoybyE=3sr3Gm*_+*u7 zOrjaD!;t_sT13^D)7hp>*Hq$+i;bR{(OIyyZ(F z8Dv&^ARW(_)#)`&M}Y#b5KZO(>M@EeK1U$a2em~m)!`W0(_XLetgPgC@&i+pwS(yC*gBZa5m(c%KZxlwXcHm0;2R9H z!4Qz26n4=jvZ(RQ*BXG|ZeXEp-DEVxiVfina*+_)GWAAZ0GTNr5L;`YMzDBz$oF5D zbs2s!|e)dco8$0+pbsMsy9VDAid_I75==^Tx_@cNOR_S%s%k{`h2KIYRnsfxG0Ot~=^K?J@Mrp& z>TPf+9LT?3Z!3gdATws61**vJWlvW^YjP%5AK8T)Y@?1L?UhE+w6Yg9pXlM~;<%%$ z10of4zz3}J5s=aH`BI-sWW5Bw#6N{qz%TM2RY%IInr26^83+BtwJob;n2USOz9=BT zMaS~}#vL%}Z5V)S6i`;9k6K{As@X-{t+P|C85VOrP?P9#rR3gicw8h}$Zw`F<|Fe@ zOrUVSTWAiQ64(NqyE2ZQNs#LX_KKeai;k~2eO%a@q* zf9Y<{NfSZ7Wzen9q>ww&)~7LTlTztE_+z$~N2OVmSch+oI=du3UDq~OdNrhf5|LMc z>SSa=zB!&QqwReO#(z}(uMw_1oe>Z?ZJ6Kx#$XCX5`7XFA%e{GR?_dT0F^mi3XbK* zR9R0~H}+;G=ef*Tx6UcPq(rQky<5YFb>cjCg#52HGV3V_1NMB8bg5J`wjr2BwaOxF z7uYqqiEP&QWXns^p&%gzMcpMrKtadA^ZtXswy+XF+qaAd?LJaxBkMdSg8Nbze8FqB&IHJ)Co*|q0i@4pKzOMx6AaTo;YQjH{gggt=D1?k2_u`sD4(;s|m?#$%%-(XFY5S&WFb zBqyo?W^0xp@P9@bl$XV1Xa=oKI68~wlZ?O|SAz~Zv;sC2hT!e2nlOxe2KfybdTW`TbmWW1nc$P@c!lx1DO;MAIVTt>TO?hVwihjYnElK0K zY3_jdF>>#=;u~pR;zok2HIXq5vDv(#PO?T>Vs7Hkl^!|BU=h5$@r7h0#HzsN;Ne*-4dQi3X;Tl?>7 zb{D_xxRgG$HRv;B{{dj!%G+a{9B^^u`VR-w0J&m|J?K)j!gcaD79PEc!N{w zwn@zeo(0ON{jk~b zhg&|mdOC&^5?R0C@$n769VGO1Wm~*p8G;RWBQ zG+PqY6?Ex~9-f~2oKY91U;4jdU?7M>0wmy0022xNmVO7xVmecE5)2`+wqf_PG5UG| zZWopjs6dTY#-qJWm6GGV`h)>9z2)e0Es*v&NtjLK&G(M&-+vzudJcMmt)WbI~;__^3SqP(^nP zw)*yx=5)0^@tn9u97AH|*TkRXsozDL`guh(HLLkwixzxcyM}kl1xn-+x=t^|1U)_d zOWRYSJegU?u9*Yzw|8KR1D{RG_t*tDaj9ACIE|%6qSS9jEJN2Kl}mJYdGzrCmKgqU zM(^WV#bWzfq_+nNDBJMYEGI*6NR%)rn}1Bmf$wB4AvTHJM`NbcE%PnPS6W=nBYZOj zQA?*bVd9aTZ^%QCLOSA?S6*SdjHI#PP82ZYt$gyE`-s&%ImJcCFx+)L9@X99q_LW|hNEQo&TvC2*6vUk|y0Fu%K_S#d@%IX|*%zw{mW zv+083mmG~_6 zSS}{(us_a|TYqYpq0{b!S(qY_Fr%SIYm)+|l6N2M{Oy_Gks!Fk zfV|3O8Ef?Cz8pWdr#BM}B2ni6j6%36-kDy<@7nF5#*#;#xx7SD&Df)PLhCPAsF44H z0Ll>f!n&3XB4v0qeI+D4cmL9kKmseBJ`6t;5Zs9b{DWi$_I&_(ZIa<-6w09%ef4Qp zGyn#|qAA?Uh23}`;})|z>=a=0dYwRPNoZlE$qA7!o6_}m^=a$MK$7f<4sEkc6`;M8 zlvde21J@Vz$H^C3F8y@LzaNJB%{4qq$PyN*Y9R4ti5dVNt%DbW@-&L0yZy+Z;W7Id zxzjAKLqt;nMtir0`klR!)~wet!QgYdZ=;!=w(4BLO=rZAU)g8K(Og@6dBu^2l?{crR+U>2qv z)I$YF``8%t*wV(2$H%*7(p#$xia>zUkSRv&d7gkD=$MuzmSj}b90|kyl1>8~MG?`8 zQ}syq;a_Pwx~Q6(I0(+`nEer{c}6&Rd`G}n3y&-vKDKOGpLgf3tfCYb+wdBMZJ7S? zPaTpUoaYza>u=aJJd{b6a@pdOGuLpzlt9Oia$00hpYNtFt<+dSJwhZUim3`CS`@!H zKsQ@ZAu%%3p+DVZ7WhD}3{O@~Jaye6Ij6+f*6RKU7XU+6g<#ASO1q)U z)$f=D0KV%&D1{~AXWjWkdqrknxVj<-EgEj(wK)`ypW~ctd4mdLf#+JW`nJ_iZ&R_< z!wi*=wH#Yx?9V;N`r%D3@{wK*N7gwR#wZXmk^H>5*OwiQYR$J|l);@pq} z`_Mbd=QF(}-eXzvPY-q{hj>J=tkwtD`JyEEvu}RJc3#%@OEY0=y3Q@_U}bV+G&Jel zzAg0R@_UG8c(p((aziVACrm=}$3di8(Z1f`eD4dq!D z$api#a#1hG9PD|isEy%!sK+3bNgW?*%xy_{)rFF0pJzDLDMR_lY6w%C zL>|r=o5Iz(zkJ9KPu&O7tq;DbN+wVHkOM#5GJY43==$;Fc4GYhl`-j(jI|u4^E+9y z$wANgwlkZ7O}zULRve#Iccf1@{AL2-wGHnLM%tyq{`<^QB5rgLD!x^KjE59C%L7{Js8j1V{6Jg4Fnt1TL%QBUgB?FjkHF@|0kK z))e<|%{z_ykdpZFZ;?2`ES2)Sitb$ae_@6L%K)6aUVA4SoivlAR${fI93$u9beW0_ zpDna-f4~)hhX3@@7&tJCbAU21ei6gzP$+mwZosbI0-2qcyhTQ>>=iZ-F?bvI3IKJ-7^9XD23-TSG(koMkpm@CZgaZ zOxPr`(=iY2W6~Sdsdwe>5g5R#kZ!xPeYgETBLqra9aVhFTIkneUUi|tuXtTAQ&{Bj zhZUF70r0}4B!W^uX(Y^QFPW7WFSXt-6g5=~v#ynK#wMvmb{<4Fz9iM$wfq3KRQSC* zx4ATq9g_*UQdYrkHiUGM9V|l0e+cik1@gxF8<*$&3oxDBfC$bG%#^5C?Puwdx;EM1 z?`8VWIZuKm>@ifcLO45>6-ILheOpTcM4I5F6h`TZn~>4LpOsG1DjZV#5E=#?i9-H} zyhwCnOonQc7LnS94e#Zk2UHD<2G%{UQcM$RnQK3CQ0rZjwSHXG?K1j7XAp1TfvOi) z=u_bBDFqN;gbh@`7_DW}8sV&2S0=H#J>pCcG7I4=vg8T>(M-{q0{FcN+U8} zaUCA(=l^r=GLkeFZ=R)p&GXYa1|WjyaZ|ThAWJ`pQiy4&Z{#lwK29*>Ex|SaVHR_{ z+YVgPLbu(v!$SoF6kL2VL!?=NBAXVraldFq>Gk7!qv-5y#rVv%eMOqvqE><-P?9>q zf1kI+&^tEeP`RnzDC6XPqcY%zRF@Zc3%ciP?4vTD8*eh)>;iC6^E-E^V{$f-3j=)#f#!|pYLB#`3V+XuapDz5CsaYVd!%;gHt zRUl${Q!Dwu3HkGe7MC&OhR49j)ot53TQTfb*>^oP8R&2bo>j;AKurHky0hyP!nKe| z3%nVsD!^$%N^{BcrR5O(AL(uqQRsBDw_jG5z$I&WD8GU?pPQv*d9@uYs-e`Z*#?cB%LtKbHmsTl{q-nTl9FTl zPZC_pk${AjSEZfqa1;=I>v?~z1C;P+0{y?5d8Fwye-YBoGCxTL|Mp#zyk1Ncri;uc z+9GSfg9=KBG8xly5>OfC42VdRk4zpBUoo)pI>!fHJ)(*wmgADlP(~CYvw1`$6&Ib; z*`Bs)A-zTc5Uq+H7C))}2_)>9RaeX%qG*yq{*2^F3)J?Pg3psV+(Zgg$MbJ}_k;D$ zOitJZBllrGVb&iiwMs5&mWWgz!KO&JCZ8sF4UWo>MT>B)-m*bg@VQdl2r;HzdnITe zY&VIK$P6f)^lM`TOa&^drCaDl|B3inkA5yiUyY0^nOYzhf|#KNDjtsqKMfuIJaLF# zUJB))D1Y6VsY&aDM~<7XQu-+Ldxo;yJfQeJKOuSH#CK53c3#f{Qde87c!d<_E3R^k zsabY^FVhsg(+|xUDR_JC3QDCCUw*uov}!EO4w>7UzJn2zp>P z|1r#Iy36rT-~EG%b{YgyNdDhlJQ`bSz*o7&l8j_Oa;(xcI($TYt`HMqSy7&U@P?vs zt$$3@{{19ZK#GOAy@JsEmIc&3MjmNO*`g4ju2cRY1k84w*N7N;qXtgYh&d65L=ct7 zAF+WaO5M;xA_ST4QEFT;QMLubhiy%sFRj#fvVk%79kC2YNKMDq+cjZHCbZNsKpGAZ@Z#9_ z!qkuYNFM2qok`jpEq(@1hP-j$#btR1Vz<3SSu*VhJ+UR9WdX1VRjwk|yfYYwPv6K>p=m|nLj4T&C&)gK3SVbS?gj8Ws z1oxz(u6JVou%LI{IJMk~b%`RnJJVOy|I(#|cG@cHRpjzQ=#LCBUG-EB&X4Mh-GPT9 zo{*rUD^ymr@77V1R0H~r{6Ko`(IcQ)hM@j5mgu((O6Q8O^C?kv+`!P#fg8GrPD2vE z;#=vFe&rf;Wg`lrPP)hckCU-?p_9T*>7$bk^DWEB#FxxKt~(O?0!2*$v#e4S+y>wW zq!0Skx;b>7jvpvEg--t|RcSSBCO%FDJH3TPU8K3KQcc9y5=U3=8RBYiRE}pttp3Ex zw`H`Thw-5F9;*M;0&|VxC_K`|;eg6#GBuUn(T{Y+(g3xr-1bx5l*Uozl)AuQ^eH^R ztVryYmME3ilCTh+->#6!Y`hf{6{aDhP2~;qarHbaHJk}n2FyEPPiQF$=h$v&T~!Q2vRLF*H&Dq-SPR-kZQ{b99tW*wSaIH4N$h&Ec`{%gzL@Ln%kFhJR2>l@yS zGZzd$y%tfUU@q%EnH0MAWQ;wDN4I${0aYcPjH53y{<{7?J@mn+O7@cr7p{I4ju#5w zTV{Zo9w-GG!`=1ad&I5%?oY^jDu44Oh}NXe{Wnd+r@DBIJHjyD{JR|y4y+yGD&j`k zngyp9OAf&z7P`Ygk#kdzc#%f<>`oMVX^GbH)KWrGb z?dpuUGU;6JJPNIp=t9Cfn`>c)*!$BK_QIMdS8wAE=8}b1_ecs9%R!lO3+hqL1hib~ zg;aHW%k89~8`nsj!lj#2`{683BQ}shwrB54eMo^|bA+HgK1e{irH@t#%-YJY<@xx> z9&1Yhe$km<1L;q7bm}8kCP>Ca&9S7&|7qnr5g!$d%vp9@it6U0gQggjRS8{9_yzP) zJNs=kp4$9pxgsR}4JR)|G3#lxRn^${C&|TNsX%0;feMG1HG`{P2yxZhWuP+hTDps*;TepIvhWe?@kYHq3ABmCs29^ljS_ps9?vJs^>!7UnCanpW^kKInc zHq3@vZN0In8r4ebMPaaBxagKS=8)(?S~@6K^;^nTuN1q0UgKCXQ0+%`zxFR>1&9)N z(co0B7cGvTvJt4w-obyX7t}IF|^{jCdZNa2=kdAdHsOYC3mww>#!P$I|tZA zmW5V<@>TNoYx%qS(}e&OTs?tbg$qtp&@^ES4>JgZcl+eT(rif}tnYac z>_++=l3f1tQUTa_D0gHf{!W|kO<`DanG#>hr{g4Z>U2#6L!_4i&?Nen(d>~=>0b_$ zhl!~~*Jb$!U^J{t_Jfcu6y-|oY)Z36rDJoy3)aiP8!T&rMgdZDWw(9d5pz{d^s#c# z!k6YVe=S3dYPDFOoC~KZS)WPW3P}s1jaRO6^^UlN7={fcf{~=+ZHHNhl<1mt13*NS zgxCDcVaw2z5!yGi0GvGs8N+wcw;^B{82nJ;sK($VCXQfi)u%76r^{!p(NU0G#T8I| zwo%5{b$jyA@GDYPj2dSQnzJwVPAWnAyGdTZ&^4%_^UO^ifTuqHFdl1BJ|L>q_A-hu z%sxP}c6T&LiIFObF9FiWb_uwM-Z`XP9zhJbFI$|H^g*+eZU;vGq@zpTl@D@TEOP0{ z?K;>{Y^mh98Lz;&)9WrOPG0>kiVKspyvtv6{RZMCDOk_?c+9559K9}Ua757R*7^Fk zf=Y|%Pr6WeO4wPEv6YJ6x6#HO^Zu!S zg6wwH1PSStNp+cg=KRg)>p-Kh{Z?hO z5>Swx$t0oMiP`M2_Fgwhr4N^`Mhaz60^>lwc#x9wkGFk2W4Bfxt>>@Kav$(GTmzaO49s?YJ`nKru(ER!}CIZm-aozHz z61c2;&B(TD{5Hg*o2R~ZT%Es^9O2q3wW};!%66hWR;;6Qq;>i`e)ivr4QHhO#{WUa z0eO|A9So@zw)*k=GnT~MY=Zu9_5q*$@@+6bAT?@0;OjcgABKC7D?!$iGO}qjJfM{X z2Urwv+(B^Zmfglk);n;ITM{m8Chb@T13`#y>UecOu^xWNp~+0*Dwoa^NIhM#((>b=Iu|jX#ae$SlS5qUecgR zntLT_mZ2PA$|Z6?&E%fG{p|-L;#|HCxMBe`Aw6x?YVf!sNPSj+`EahZ7&?6GW2$6e z<9;`EqaMsQ>z}!j+%YlG$>f9J{Yd!s?+y;i^2}wmo)$|Z3dDh+>lAGyYe`sc7teMr z|8~VjeN@H$1E^);G>OyJC3$^OCs?&fMc{_2g@|dt%hdr2fATXB5`)aO(p?g69ev7~ zw|3h(ZDXt1ir6WOD%4BkS!`Et2fyV0c#B}{(~e-W`rC@YQytt_@@fk#g%T)8U9LP3 zH4u9z5}=upFTsoU?v8vEkn9M-r;wdQ2w^p7>nkQig>dvN%H#&<>ZzTPnb~xH1oJk4 zX1Svr-X2aEFAmc<;u$4FZL%R37P1#YJIEQuz|G}(|I`A}#%12m{n)2z3@?*Z$p-VX z9k>L`mh)sWmyZT7)`q%{Ax4sMtmfM|h`YQ$H*Vue-#-ufZ-lce)|}xSu#ggdxz3^P zBkF}@B??AL+(!xwg^1WQWqFPX5>-KT~oRS^aMeu=- zB0=x-qbp+;uchp?5-hfjSnMoJqu07rBKYW(Ahsv%*Xyc9RrKdUI4nsF05s|Zv&hs4 zfP>+V<_x8zrfIj=N1<&$y_vl`TIzVkU{4a8_MP@%jBJ8%Am$O~#W7VCi={r>&C7T3 zn4e7(Xh+-uy^+EHunA?!lrSE}44E@b1;Zg=jr{(jr z7~Q_Zd2gS};JX9DE0DnORNX9&$TG(V2N567;jN>Ekm=tX4qJb}Bvr+kS*%Yu?$at7 zM{m||NR@~U=2W_KTZs0K3hqvB+b~7f$be8G*05Vc8yN+<%jiC3=;pL5mORbg&MC_c zy0w0BWVU@T-zJ3NVi|Dtz+Ikxw#L~F@w zQyrjO)o`S?W-Yi%fcR2J?(zpPADZd2X}mV-+r4;vb4jUaT!8B|0Va(tWp9cAp-0p* zbeZ2|u$0>UWVUCLS^r{nLh$^|Yu2+xvl9_;!4?U!(9~^B6JbWH$!cOFMD;@hciz={aB!Z4` z9SY1itIy2v>FY04oM>-wF2QskiZz^HPy*@SKY_no78z=s3rYw3YXIi9fTh`%T=B`_ zY%A^?S@a4Sr7i#JB6D9C#|E;TdI=5I0(gThFAQGNBqm?}%Q zQRBI+hB9M|)~`B#j{~JodU2Xyc}9R_Av_*URgHeac{f_yTA1yn4Y|Q>Me#Lf`(zld z^?nYX%{`&_yyb6>D8r`;zp$y8h8g|zwpZ9F2rM*i2h>WLZ_WW87ry6C!#_Vt`GP(< zQ&_CSYEv?|dP7lf9l(!VA&cwVOK7W8sbT@h9Dey@^R-Xo&L(j(bjOdSu+WXgB?8$I z>bh>h=f-`a7p)VYlE-ffG+wUN0pybB(buM-v=v^2BX(OUru92&3it@y^=wTuRC)KV z1P-V9`d{^X1Y!wYdDWR444n;dC)qUNZAa@gBFNrIXRYG!U&MJ~n$3UWY36{m$vL(l z0*mrz6*@6qfX)>sbIM>X^)Q>i48r6)r5!N}zXftTr%rhE{sE!R;V_HhdG#tGQTQ8o zMSC27uY5OGhNGbU^|L<9l;F%}dfo;#g2%9?Aw|MBa(Ju)_98quuAS!DX4}`vm&T2m znOG$l4NgGX9r90IA%#vsfKWK{#8>zgwfy>}@;X6}q%{e#3UJhc{Q*|(4h9(54Tszy ziUhzRKQUsR1InuTE?2^wZxv!Y(v-muXRIPG_7#7O4PoaDn+T z-CSHzuN$UxTaw;`=O*C`NMLlD#Heu1{=aD)j-V{}_ z==Eh7oFr?8k4r3%I^Qmm9Xtn?6SqIS62PJ#GBuYLR(;sEud<{?%X;S|GN$baB6w+O zW^_Z`Tg>R3SvaRLyBvh2t(ezgpYeEL zdJukiMmx1m+h=y0d}^v$biKJj2JB>fa@&SOJ#B=NlT#vQ7DJWh%p^u4HaXX+w1y4g zNTN?yF=hvcMHH;#_Z(oz30K8<Ro@ulAn* z{cz%u?;f+3-3-3Le}@{(sK$Qcq+WxMCam9dFUR0IHfI=w+&>~zs>{j8S+>){o{oMO zgk6Wz^^6;uIM8F+w@ed?a&pvSgKk?fA*qeVx=ipDj$TLfSw&-6-w(tVqwHZf*u+h`wcH?XVHcgxI~85 zGZ(_CG1YKTVMKRh-pe^brh2nXw=L1c0vW8q19dMc!vG#Z*v>6BU*qB5C2`gYjQ3C7 zMnS#{%ccj`X&$4Sf^x)E_fD=hRA-5eB7bLiKANR1^h${{ExrKEu1Fsqg$zMZVBp1$ zU-^a^&LDf+)PyqksOo9MGHDLa=B)5!5D~2+Uec=vbjNUOg^R^|nVU{;g=6+pV++zi zkg{Rjf0=XTf!6F=GFVOI&$I&%!I7lSArFPrIe+rewp5H7ti)m5<;<ZN5?4UyuTlfg!xX^iP{O>3u@t!1%H(CzNrimOjQK42*T9}pQ=EI{Ra)V z=gbwRsK@keD1Id6{n~BzDAa$?d1JieZf@x+vNEVy9UCC~2Tp0xhjQWjlAkc9&(`9e zDQ7>Rt!FRjA4-@T>$;IlCMhdnf>|Ad=H0`vi$ePoiEc-+K-&4(M+D$};rWjctjx4v zE;gL6SfsDc=kH#UX?KhWd+bQ&aB-7g6c+HSZ*NH)V1)d1pFxuUc|F{9cl6_h{R#SF z%5=2d1@!;EX!qif0b3aPRTw)ZZ*yB}YsB|V<%Zi5p*af1f_GFh&< za$}GGvV^!fkeL)V9q6W<04s!&h0U^eO&x2|^vEiYu=yG@fM32DKu_ki4F{RUs?QM_0u;DxLt2#u)f`O+D zq2K%tiizyM-U=%<(fJl}1FiFWMVXOk-4|FUHxsjqB~lCxuX?1@>DZk^v~bUcG6TD% zZ0Ox}#;EBV&`f@|@W_P3d?2VyZ{VI1g;Mw;a$)l3zKG`?$DTa@!_@@H4978nlf>TgM4+rZVF*)saRoiX9|?gBUVYGFVvi(E&R3$O zJ{mF1hcFcsH&l4NEs!(2cIOR`d|E_7R{KL(LUNo?|HeUV&Hz-U=T6H|oE-@u{Gcvy zCPJ&8&nWyq1^co@By?XpXs)O3yPZI|1HPosnauG$pd4>M(vHcGygR_uDSF>3Q$Ozuzy&$vLgYHo=CQ*qZ%_dfe z#ex<-NKvA)+JZ-cWZ<6}%ryRBfF(DK2VJ5`=-#7J^jry2EPaw^usY9(p$lV>qa@nH z*~~nPy_=vtS_c{-iby;Jw$)2@00Ao)wMIfA>1|gvYjQB|G)Hq=!i&hu+$47Q)pc8K zoA=d0B3%eSVh;h>Q^DwjgM^UcA!`J+MFRCKUVRIe-2tyYkbIi#$UO&QaGQqC*_hr{ z`7UQ7)9l%Tp;dYF2DDgIR(@#uf;_v3!8_EVG)W6cO{ABT+z8mxp-m*&iiN+?^|s-d z<~xalh(UsX_`^q2If!nc{+nyl;U00nhpdS(h!M{0fJ9JabkgM8+xnC z2fS3t);~}rj$T5dJ+O^7twtmE4^&m44#2Igxyyn|$S3v9E*T!HWjlCmW{%Z&cC$NlA_4ETf+0)?N3!^c9h!+^ztggd*PeDJOkudY|1~-oWG??J} zOqi%P@m`bzD{cv&HaiNXKM2&-IG`T?%bxPhVCE5SXeRG*b_1CCKsS^)SK^Rp`*A8& z#Q)>ZW~uIo$-cvrsj3f1Cg72Mq9Mle+zmJ`K@r!+8|fG?Y)VUONm&WqQQ}E}7HS^U zfU&T6hU}jAY3GI(r^)EaO!sKo664~Q%O)6v{hkPeZs?Ky&qWzI811?)MpOMWyNq^= z;A1O)t)Y9T$Qe8$%*95!qv8%$k!K~>VG`y1B+!_L=wG5@T?r_w_m^+Ij1HF{%2Rx} zfI$u|yLnJQb%*hH{#|~n#=TD;S=K$OR!oT()wIU=@w;rt8I&fvzYCWTp7R3z1HR!R zn9L<;nmMD~_UP`ZDKV~nkvI0jY$8QMy{+Bs3PSTa@C@@LWvPRq5x1EH|E1w1{c$}g zz*tiZ27t7*7wtis#>>^4JMINL>C7)Jg!UnQ7-}ofzIYx~H%qrJvpsOM#97BYtrJ?P zTIrkFME%w^+Q(V4x88MgPijV^k_OTS7WX7r=xDFz~;oFT|`O-K;;IryS|~8iNEZucFLOw4ZWWLum$2! zyrq!);O^%K_u&p;Gfa74QJix0F@593z+ImjaVUawFC8TJSv2jv=bOosF#z9pN~Iof zgKbP!~iE*J9w;xb4(hkV9x0~=Q?LKjh2lVfQY z&sEE1xTvFN+~+e)*Cdi84@5L$ptaPfr zO44rHd4vhp0&Xt)IV!;ewMYlOJYGTaaVT(CsNh&^zIK{{@;zA{UgOIP?jy|(2VEEe zUI|t}`Ef~EV5h+uWmq@6Uo<`V==h@T&G&Zm%G_uDAwSF z@G6**GEokkGzX_Ib*8DV8Jz850e9RO4cjCE0u}%og^zqhWypF`eX*>``U2rXxPmNF z2Uv)IW);ZiGm{ZIzC&%A3hdeapi~_3YxnLzj29HWa(#t-sfs<98V8dGa`n#CzO zxorAia1051z&W{yTTc2h7^_TC>Id4-(OxsA5WVng3-m6Br1uvUvs2X_fuD%5^JXz^ znkWac18Y8Gz-raDb`-CzaPF33s`1yF4pSCG@b2bK(~7Ww_pyl&@m7H*;}33Y3XaEK z!)a*w+7>A-noiV<>V zMnaVi_G3%021qh>)7^dvDoc8k{Km+}gBzx;gs>+MdAesY(6YMZNT4>#JGlk~G8Rb4 zjo`;l4~AS0vPAbV(XU#nncJL}is~ItV{k8L?tZbFfUG(bke$lP=~~S$`%0d~cZU+E zsj_cO5nDyvp9>w*8WGvJ)(VaMxfxa$Y$sXiRpz=>t^x=-*e9PY7*>-%A?$Xqfy#mQ z?659~v6kM1`Ts78>2sobVe6W#iTd!)B`!?CiBVd*oUhy0rz!~)O)$Fr5u_`e^(Ocmx5okhM|W04DN zhJ+nZz5e^}dae?5eMejyo^q(McY&I)CxE7S3=EDl7AYCe9t@id!%UZ3qKfn;bUjVP z&?24IA6Kez`yo~=)=AO{?r!vXJE4ovM>BgiH4$TTIW`$6w0atAb$G9K_hFj{&UZDh%DSKR(}H8jpH`jx{{LXIKflr=%6b zd!0RMYlB!EwF5X*4z9R6Wd#(H&rS;M=_Qc#?9dH149#5dT5^Wm`r#zuBX?^*op0AV~GRdHpMnV{K6rZEE*>O?acjy zmjB`kZ8kSiL$!oJD4(C>L-qVRLTR2DEV@TImdXKJETxhOimF977!s)hK#+w_yBQYL zjFllaJ4p}vxZ8N;INtWTNjA(!I=AT>5=Yrq_IMkl%oHnV{rM}>8~M;$q#_(ZL23yO ziX*V^i(GKdsQ06akr11sB1oZmg@2QA8sn)K`v1E4_n#@0*^s;BSr+Fy;_RS4@8QB7^(rg}JucD+$ge zu<<-yIk)O=Gid@dl=^ZUK!#uJ%U&S*xz`q#Mc@3*M_|3V9SM3zrns<^?-{fM78%LO zAWC5CJ(T8yHtvsn=W=~SEoz5>PNA3EF}Pq5p*RUrWQ}3hA9dc8KcF4Dcl+iUfICE2 z5C5HGMFsmj@%Yyk{6zRt zym8uLi|e88gom&q?85bOcFVLkV(2Y8#*PGwd)^W@>p_A48!ZM3IysC)7HK*k_YjEW z{5BTKH;|^E0K5IV^}cV$3qpzhOLf|uwNzv-i0yP_9#Es#>c)dpR&D+tL;(W9{V`wl zutcj!-)K%_tM25YQw^`fbU}623D^&Y1Am`C>4or^vnUS2$wGPtLD5ET*S#Nt1$m)!^uv2e z`0Gb#_N-|d^V?a-g)^a5PF(yXd3#sBA6oB=*-SvHDk*bqZ;l&jX%SepGM&@*f&!Tw z{B+VC_v0ds&XCTDZ{&F>t%Or=w~#Z8s+7GBODlI6Rc$6^7 z3y+Fu8QSfn6S!sw30Q} zRHnsMt0>}!V2oCt0fh=7z~Rp^9ZwJ(lhLG0oRGJFUfT%O9tVtg0Uhz1=^Dj#M-fz(+8 z8#&w~%RU6AgCLn@HoY64Y+lBjA7Z8Jq z4WC=6`mmAd)k|Py3*_w@r|vmjx1q>th>npl@J1NHYy1VjVyiK`m~piYjqQfPS19Gl+%Ua_nku7*S$+c!LllEEs07NfQQXG*=P|F|4U zbY|GkvH6OX>cee{5Q{|K3q-+WdC$hnzKYV0!MkAlZFfsThM$M@f8b@q z^!=A+nN{*F#vEg7gz3flbwY3(GDdlg|B-y+Y|CyDg7(qmLCl~A zOKn7%CTC5Q^&~EdhnUIw*PB(4CR;@{Y=dCrTnYKCd- zSGThYsmxCbJeGN?k&k5FwQ*PXR(PHu7RUf8BEIgPoM4^Wj42UWeeRXsr(g=CU0m92Xbaj=G za)mGba&mv56dq5l!MXuUOtar)m;;!|hYgkORnXrX8D))iZ`lH)x4@~-@b6<365~Z_ zrfXZ%4d@}B!)~@1**1kh%Za2JuOs#>{I?6Re+W{S2K?PvY-_8d2NiE*l%=c|IYFl5 zvOZEscauze{?pMIqe$B2MD>R7vd6w66`Kp`#~o*uJ@XozmYcreR@K^~VOF*ph1Hp{2GRH9|nKuGQs4LQ^0 zfz1;Yu#pDieG2;2kr;`+A1F?Q;X{YIrIO|s-|68m;;DsNbz{5;<5)BC2kAK5>8h+s^#W8}9}{qr$!Gft z)Tr~-6x>ehM>fn$k}eD4)OifwFfy?f7Hx+bza1FoxY^OrJ~b53(Z=KK2+?HK4iEq~ z<^RqW7q+2)oj(Dv#JkCZk&*%qXJb|$uf9kvUK*5Jdu5nyp%J@xsW-R2`8;$3V&=vN2yo>-FaEXjJnaHd&oG{Ze#n}SeB*c&L zKz#ECBi=TJF4R!MC_Fzg$S;K3Ea%vLDSMu;O@$Am0XZe5)XjXYg33_A&oFOY-pxwk zQdmc1IE@2acCb0LfCY$X+!*kroARPkthJ_-!hn)GDeb=QR6hQvD@`dhlY03)bAe2~ z!aioYnRZ`_PRxdX=ktINajR~yhGL+q$X_gaQi-=d6ML$PJe?C8oM>8&W8Z>DPUMso z{$#52)Dpm?n=`&yRTde!wE?hTU{d`Q7b`*kvck}o!JC?DC`TSUmDQ!xQ3}wjV&Y{i zR|M_XGllcuQOz|!a&Z{vw~ND#7bm*G+peX@HFL_3t2}~rF(8B_j?{XyU=;o9^Q@-r zI#`>UCjF*cAT$jL)o1m$>^+>ckSM9*+p_v!Sr@cu)McnOdH3Y)JGeFR=ZN#mH@oCq zmt^@fYgCKn!JE}CI)+M5PH|}M1tR+|w$)*%drYgj43_srs7?+S?@_lWRtuzhj(NMatlb;?{tC!H1ZIsh4#`G4lvieH1KiMg}0I zt)F(m@w)#p1(p)>Fq6L~S#5w}wpXg6k)%Z_)IFCZAWO>|TAJlG=0M&dJ1nyya|&m@ z7CKuT0{EGpbFhrq3(ZTm!VHx1^R5`#v%i=b?Bn+<$S+?xxne7wlwSyT(QC0s;_!)B z;1^s%X-RJ}^nS2)l2#_^ri0qw5I9jkq*qbhG3qdox7+Ur7Y*y%b**CXSA8CG6n0Oy!VVHt!>Y7Ukh$cG!AW#t%)1Y6S25czl8otO-6p6W*DIX#P6Np$Y6?Z~u#GPn7UePbE&DqdiZcIE zT_KpHMjvO{BkY>vB|zGsuCJ(5a0EU*KUv6Api`;y;sX?H;P+qNpEJkh@uteM58J9& z;8gHsgWT49fuM!CM$LI{n5=@;JBG_CKxSL6l|)qH*N4LwK3=kHEUk!>UWSRaP}3aY zpGCiE$!M>m9qoHBQ z!Xsv40yjT2*RGl>YMxxc{c3*gTCu50CXFJ(w}x0CAHst`g3(_HN!jU&!9X~Fb^6?X ziht5K8Yn9A?d;lno(S8eJ42UZd9J4k^pP7%mgoS+vyj$bb!@UPmoQ^f?tT#OM+O!1 zO6JjrNR9pweeYz9En(5J>>Oc$6ZYh`txqEMgTw$pK)=5l$=qBkdC0aWOlXyLT6yVt z^Q-=Z4B4y>KI;i78d;V6@EPe9$C!*ld(14~?EO3n#qU=vj zad(bL@salzzA$&j&ma&=;D%ph1F3gQ`CLsWXJN-$fTur6COB@sGThRpwJGlF*#Cmc z?qKiaPh#k*=NshvWcCvbJduuluAQw3dU9V`|E(xB?6ML_LD)w0X%_08KDBm0 zQM#g6*8CCZ=3ciZxlD6WC0~P}@k0M~2@<(b%2zLIGHH4GXxbS0kKF-ORI1hcU@& zP5l-C<+(TlY!s#bC)BicI2GOmCq%r8NxXWu*k;@_5x;`<*1@E#I(b4wO8iG%@~o2~5oPn}!S^{jT<4XD7oR#UY>`fGNEZ~%fg>*7JNSN-*p zMJPD25!T+A3;q#_nf?+9mUu_E-9>>E6Gm0c}in;^A* z`fLWuWTK3%w(LvoyH_k6?!*`Q>S6Bge-sO|f%pl^T3>ZzsO-W;UTNwBQ6>yI3ZV;( zqtcHu|MF!rE^_je4m|ez&2y&|Q8VT4wvAgV2ZB#BaklNH?cFlDU~w{J6Ixw%un9cDMQg`kju(0Tgo^NQwI(I zmGZK`gPIuCSVu)jr29i~pdw4IMC^Lq;HtGI>B6?CM|ejywSb%Ylj<%crw|;=XNA&F zO#vnHYWJUliN|=>OT(T@ylW|yAVO+(k6?af)?Hd7Wxew_m6Fj3`FS};>X0HqIo1ZQ zYR_{FV(9p(^U^NOQgyM^4br)lB(;BlaZf4{yfBVf^CH$+9@@1s`;_pmNrr8kAX@+x z5pfHi2T%Si@`a61$%AlQuE_vc+^C(0j#JZWBczVX?cTx6Icj-}*tF1QAI~=;hr`i| zlNpfs2-6~(pfgWBEdsMs{^8C4%!uq|=!BwvSqt^Y8`Bn{eI>Pjd}H`SA$Tn&JnJ-S z8H9%l+pzq3R8l9iazQc%mqUS4*a|0|Ye7gMJyUSf;0;#D+V-oP-y*~#z3g^x32OD! z4|4BSX=IyahvGe}wkk9?vg&lxQmH3|uN?nH(~Om!UGZ91$2@m#gy_`HZ+r25y_PL( zw&it+<3?i`?y#^ES1XFjU>7R#6lqwV&eW})woZc)k{L+Esi^@x=$px!TzF|Ck=^Q) zb|4GldBt?*dAzZtI4HjQr*F8gPUaeVYX(SAI9jhhllIrx*qVc?%oZpx6|TH+Qz8albwzIt^$f-g6;> z@*{Ujb_ZwVvzQe-?P#|7!O2zXUGXPFYtPcq5|+KT|1INYc`wk{|9=qB5{Gl;{Pbrs z0pV1Ao`KDv1U+;yEi(4JrARr&saZHn{q%|;J=}&7AX)J@! zxy*mvSpV!>YM*kzJ@%<@P_-jV#ksuklqGc-HPUW&u-(IBQT~fGK>lP+8UYj={;6nl z#$i4?_zgj&K$|S;YyzTqCK9qU$I}j+IrEQ7sdt)&gpOXiw(i@xmUiN5bhVOi(9|n= z0SPE0wg8Wxu!oJvN>-eGy98%DwTx_f~=lJi!>^X99Q6xb`Uv)-*; zeGMpv^mwR~^?1glpY*i&2Gy2x-JW=rd|?734|CvXxwzV)ev$kYJAhR|C#r$C@uvLevNT1%yt)^!}-9A?X9YS z0na>(#J__G@F`?1Wc$$rgI~S{0gMW5w5%(ZG8Hy)!QvDUm_XlKoke01FI~Ll=p9e{ zeQF7MDNTB2a{vZ}@K>rHfI@EMA{EltbxE4B;(ykGtJ{h)a}P^aYzjX{3I05D4%cM% zF!Ass-P(gmA|Zx2Cocc4+KT=1bN6VQLB_UxHVbThE%d?iusZI++F3GyM}8PCQYArE zGfHDY4>y%-a-wZmX@?@!2Yg4DHQ<5<0jA zZcuqDfQS-) z1k}A5P14`@kju(kob^N=y^wS$U&v-)K9B}T{%h)?`*A$_lAV~>dG~QJu6Q=aMq?;L z*(;el>6?ck-1estj@a!(+2y8^sO2!iNB9inxpTNv;$qSU`mpk&WsK$(Oc+(V0GtUB znL`f9gOPr3zaR>Ed%f|1#gs1pVIfcEdkK+Lvx7J9-T%s5I~0nDElC(=jws~{R_8HL z02eNih<_P3{^jtupJx7{S?W%BgG;6~Z;Q6HhRGB3-T%+KY&Twp-Buf-XdHU<&#|EJ zv2b@F6BDIaftu?_a6wugsuZG+qVZ zfU;j)&kPQZBUQB7w9F!h)(}D3VKZ zVt47}C>IoXjr`zVPe!T6FRP9?TgtbAYrt4E!txaPxam7&4XZjE8&BRU^-sFDc`ny7 z+*7Hl^~s&f&EuX|?&Rg#a0o!t2UZ8hiYpML9q{;H0@J&5+qe$lhi8nXioC!QMz5-S zLMiK$7&}ImL^$ccB<=JS>S(JFAy^TlqLj!@JV-57pMMRCBrs_YGjScnSft(~DzYTV z4FD@5AI8F_ycnIOh%7B8ixcE^OKHJfMfW@ja3$HRncX0Gc@Gs39O!&hxR@o23DLid ze)o_5I%#Q~F7|!d@-p!ks$bqGC-H6TXB}Z(p_#09ccucc!Y5IG*5lqjGK>^PumQh* zczKnPDK_`gZ1yxTwb~}H0h9B{VC_34+KB<;HbdqPz-~#qRVdn}2BPYu#DYcFT2aaO ztdMv;@?5a_M}KzKoyYX095KT$Xl1(?PhS+1Qm4;`H!qps@+4;YKcy1XRjTDlOv(J{ z#xD9ai@SaZ3R06}@B4kt_Ul1GMmO6|O9}%)Ek7fyttx4%=&@Z(-@3T%cB=S@M-{Oy zq+)S@=BJ8UEW8KTOGWSrA?YIhx<{bO@1c{tPjMYOTztC1b##ctiHTj;k%^SQ-gvQY z`fFhSpI*(B7Qcl?Rg&y&{R$=4(~NvuFb&jNG$m85*~sD^Ti-r)aYynl5;1o@b-${q z*l$7uSUk0>G2Gv-1@pMYzCkG11n=%7k6y*qe4_6sCS}dM*E;6W?0wB@Df(kamaCD_ zeGK*SfakfavzDLc@vswk0kQG}DEniXSW?rsD8`lS!L-;Nk2pj;s%IZvgBOnJC!6Y( zrOw@LpA9Qf3Z(wO+uA3x9mXGvvqWyMv(6=R9kHUjZyss5q4l-+3d#%ckV}GBkIjqC zR3DDNLw#_9v{$;%ADqE-Q=uDX6FZ%cKiBJe#p3*EtYpID^V&45_?8D^b45Jfuxg5O zEj5~cFrqFuQ>Vu5wf2`>7#emPbxN}xS5!@|Mi1$>ATw5^oAok1<#&>ONONj=` ziB-Hkm(-8FHL}SY&aoTY;d!+$yGQK&mVrlcUgOO%sl9ni2vQXkjsF_U`=&|ypsBaZEs&_Ro2Y0S>8!7TV?3_1R43N&C&`f1f z-b3_;SZ6_84BkamJEo8rx>1(|GQDN*9h{8tA58a+c z-vl;cnHbII$>q7|yUiUCZZoDv~h(D^iPLr*SJ8oKS4=DEm zl(-!}WWeadL{&_lH#W3H3I8Qq%Ko=ReS(!g^(w0X%du_u&^DUzX)Mk4zXO_mpaAE! z!8huCac$r&0T(l4l7}QPEMN(T%ouRjgncoUzV`g6fksmEYHRx* zH4=TH1lhd1{($woe#&n&Te=S2M}#u`Zyw-i;j_&trrvBJc*BvSQ}TZr{2FuO^lFDv zQ=F=mJuMUh+$3J1c**D`wh}Z1?KhG*J8zM})!3i*r!Y{Jhj9t+rZo?uQ@ zLIE-VvNl#fsVS^YEBVWk>L*l4B!m78J^%1I(QQ6GKOm&WFa|k^fccZ9ECGC=u&%;c zl2gI9IL5EIdrBx^UO{)HVg?o0I?)0fW9IDUx>DauUF_eFQrpk8Z_RVk)^!!85LJQ9r#alF=_sE{dW_TW$&d zrCTWcx~b3hpfueYeMEVW3A=OII1GIfymPa0=ltJ8;fs86KtH-BYxU+AvTj?1Z!{A0 z3Gr;c`Dst`?5AX`Omj$}yW`s4e^cZ8;n;-+0YsE!a2te^#alg8`nfTKlZ(FG{pCwT zh^ACtqvS>TBS!AHgFRD>XQsV>?iD+djVv}dsQrVr*CK|)QcYxCQ=5O_W19YDo0@$w zBCP}z@!9~QQ&3mL9=Xg5e|*v%l+Ddb2*$jpEKaQu*h|Vk4tjxv2OF-j%Nz5)soOdh zYD+!lpDb0qIa}Q9XMc#2`R5e=4V$%m@q;!+_~t%SD*YIT3DFIk(Ux0&3zAhlOCjvp zve*IE*-Je&(14ybU$5fy6f1#LbJ5D15P9wT)?BaNL^CS0B{>zhN~E~n#MejrJg;*V z;Ca$5o8)WCqEMXlsMZ@2oMns1wSG#tp399zx-Z4fNd~4in2T=1G!;g1h|azJT&{uh zXD+=Sx+cW>OOB=>8z`Loj`MoWYb-RB?+f)ao^DWF;5}-6lfNtJZT>th--K_ny&m9B zg{R}BV`8T}WQ)^IpJD4mG?t+;sf^jzy|G^T4Er5}%vL5~oymOlZrlbaTLG*ofrcLA ziXHOlgU&Zsq?W<-Xi1lv(|)_BnFtR{y6GsT$WarAaM+cX-yRLf?B6$U&DMs~uUE(& zDe&Cm`pGtB*?0jJS!U>jAagRam@0~H;S3SJ4ev7cCoj-BR>G$+`}zp72%U zoGe@QK9-X?Rk*#z;11Ku3ks2mqzUvCkmxG=HPPf(LKZqQ`M>@efXMV_*vFi+QL8G9 zMZf*aJ(?hnnQZ^{Yu5m@F2xB&;9C6&FbEj5pcFCOj?zH%xgPVd>SC>JbZ(lI4oi%A zd2%QM(tcI^O63BrE~;-+!<5_l9}<}SY?~O-C%1;5-u5{z2ga`bl-hKEXVvxGpY^)i zb8p_7H_gH_ooNj5)h>oIvZ%NQvW3WM45%eGcJVUQv#c7Hi{~%fGuE^kI-hdN6rpcs zR4BFUfc~y;}vAtljQ?5 zup#=L^Rb^=Wv`?+hhsv?A!Pc!SQTMz(Q*J>w%hKC%l_~qTn_V4X7~l(%mGDZ> zaL0`es_{eC>9MoO%cqENM`K%tEFJr58_H!*3%ze>!)VSlg*9%Wif2DJ(%ynvFj9Pw zCWw>1dAH6tqB!derUMV`);K;8P)f!RqdoT+P2)>-Dfn`Q0_9f;ngjM$V>*F`j&5X_ z)jgOe!{W~>?aFC-h-^Y4-i|!gS$~4T;j$`>fgNB216XNpa-!M1b%-%0sdr=2CnLWQk;4=mZFRANiF~9BgD(!4uC4k0nk;8N@=6s%Ly5#6mHX}f zr4(Th-)Cf4k!eism=pa>T(P#a6ns!|9lrC@V0Rm6-$vu~u8T2O*Gky|_fp)OneF|q z*rcNUyA|p?o35nl6gjn+JC0vfh2N(0f@<* z<8J4wL6;|7!XI7e%3P*oynzefF_;zzW)YQ+N#_U3DYgaEYqP&>mz8I z=LT^O#pSe$J<+Z_d17J-l{VlZ%O3Zt%B5W3V!(Y^anaPOYPnL^i&Qf|@sVpu-Me0oL58 zpyid;5dE~HWB4(%e4X*MMtLm8ICWgV0Avk7Qou!f#z-KiM|CJIX$7PGkGj+G;0N*_ zl0lY21=*kl5*XMc$05AU5vpG*#GX_yLdZblDpokDt&XnDCFT17G?0h-iDK1^+xdi` z9T<=HEl4vKzWJaQfG*<^qO=_;K^iId?7^}Lo<0bfPL(k0MgKgd&z;eoX`uL=6CKUE zpGK&MM6Q&B{uQt4w?_(eW-e1FEEbI;3`VN-*ZUxJ>XK`2{u4<@q(&?>!TjpiBvL5t zs+b%=_Q?ka=llHFg34;Q-w;5vo#|%WTRrqRXzOSDQhzWN$Zga z7*GP3+VNQaY4rut0*b3>`A5GDUm82$$P6S3S^3gH%c}-Wa zvKnTEOTgm1r(SVJY%=zi0aJmpn3gDpCzTh%M~(c@vRNbBOZIDyG(yZcP4aNL^jAv} zgGl(~x(_}{*_oP;3ip>FP%4If8_4^KX;^yflv+1ay$W#QvBM1ptFMoiih*21enSwyLT{|mSFK7`1G|X@QJyUI zk6!Z2M219W-~b}!+sK0FW1{lMM0(sTJn}td`I%oyQ-kLX+6ITULB`P{VEyT>{ge`2 z!tqaAZ*!9NQ^ErMv8;7aMt*{vG$(V z1bfSVq)(ADT8E9Qarl-j&TD5WG0=?KOAs)IP}D?Xx{J2E$i3Jdo9L1b>56>o{RhK+ zIFxOX)}bP@f;2mIXT0&Ib7|XSFV&gPACmGQf+e?Mcb{k&qWM%;)XeW~O;8LnpLPY4 zps6UC{JlSB_k6AvMA1of^Zvq1P${erlVEc22JA= z0ISq@ZIIrTO#G4q@UPR{Ua$2+dMZfAEC~HW*2X4-nT-&zq^IV+6R;bq}p!06@GOPG*V zs#br819sOl$hSC5Ae?&I^B|duU1JL4SrG}AXJfdxqnkP~SBy%tuQLCD9GVS@q~mmk z{mYymB2%`QB{121?5_ZXY##w|i9P5a0!fl*BiZJ^=kYKSc2j1`8tR^A9$I7k;ry)d zKA_@K3Q|@F8D`r^=px&o@Tm8ESNPgqxM(sc7cl^}YeuQ6-@ttri!Vr;Cjp%vhC-t0 zlrJcHl_Dvgn(97>4nRWxeTbAa1uJ~8Ct*CIe4TZIiRl^>)HcaUG%EPQbQr*jQJ|jg zi26nd*4anO@WN-|Zk|E$jcgCXNIEfZI>)sKf?MO1c z9Ez4NR<>y^8zKd*Fl6i-&NZTDw)p=5(=Z?{c$t&WIC1XI{JCz7^3$8?6wf+eXIV zSh@bLb}S(oWgkIG=@|N?)(P?Le~pHhiv6At`EYV~6Bu-kzM7Aiot1HVaHM#IBuP?% zh-5)+jVp+h=jM6E~B^jiwY7< zzq)2oi!iJ14r&3B+NIzN(^L$4W+dtT ze9|-Bxn}OHp&}uwqeV?)SRXogPP#iWxft9@CSErlNhx5>E82}`qTm9z!_+TG=TuDR z7A0)s#h6|<2N&r>e$G3HmytjAP%db7b>iD^yq1(gjvagskOebWzS3$@MEFyX z4#-lAKsLS^^$}ArV1BuO9ryNIf}=D>=_rz zEA`z;54BPN)TvnK#S&ai-(4Z+c*T1^BlU`V@Vshf|K;Zvey79*F9twfV~0g#LNZIz z8`wxYS`Bn`XXIJ79PQBk7{x;PI)K62pK6o-VxqZ}D(jX4vMk!5x$Y=kqR+6G+j1Rr zWlPTbgyBQD_io&q!3dJ&r&!#lfE4V+`2&x}8H>p;@8Y1X4Q=#N{#7N>W;CZvQM2{M zjei9B{!w6I(n;C^ZG%aDjz4k!8TydBek)M znfW=tVhwL34*&)fZ;Y+aY~JWs$T!IylyWV!ZM#oKD}9?Q{SuPP!f74xR8+x?QZBW*_zF^h4oO92z_VRul>h|Mgyko<|C9y}f3DhFpZHs26V4d9CkX1W> zJSUw|XwZu#=W&=!4dHD&a!|-QUi&q;JRz_wG9iNhs{Y1z4pKsP{NqrXzmBU6)vS77 zmzRzDIxCkG30QGAb8SHmC4P#X5U)f)(?rtX;BVIo6w0im6yXu-;b6@571QY9=u?wW z>`Yok8Y1J)c~X-%>OB+DdU%(qgWzRqtiD^cSktmGd5}J@))*a=wDZuCc3U%(lkrrW zd%0+5V*7*7Kss)AOaG!RE7J(=$uU+2!2Z5DLFA@^gl@|lkBQxHa<3^mCM6&*R%a>s z4sQT*>l5lMu7y}K@GH&uUm>IzjX=(}2}~kHV4KvSZ4_qYXu0rbM*kbTG6GEqzMHzr zHAyq)x=mu$-X9!P3IwCphm!i0zs7mi$hz^qR}%Zx2iixwUo>q0W9ELo!pHc*F@U74JA~(o za-2$-$v}C?2EnDlSIYpC<^3mt;nM~%;A!yofEiWTtacFoxx0S@?$AA&~T?dch!3WNa}Cohusy; z$>{ww*_1%?u!a-%+O?e7XF(Nv=x)mIGxXd+-*9t%1^{tDfqcaed9V9xkzegJbK1KL z_G7_Z#{ioHv!SnZ>7AUsb@BBlJKL2No7XM6BWu!5gF+dIRpbpe0H5wq6VYqmY^C(1 zJWOQ>adyFX@(yLk`bno=V|C<>su!z=AtS*RXU^Xc)N~{BeLAiS8DSaEApSsvAfuNx|B#k9mq4WR_&T z;XS>Fb4N;#BLjD|bWsP^tbk5Q7>7c1q^Cl&Bys!=Un{wIxm~qgy@&1k_Dhx-V4Z0O zU>xlTLl&WVFsUJRX`P8`NI-a~tf1~%_4aVj+qFv57o#};IcD3JjzL9Iog-CyN7xDa z7xqYvM^yHZXC|*IC6s-yu!zFfhn6kVbtic?oW*;8I^t>I|b^ezcwbJ z&hAmOK^H1YR1;1adcSNesh0>X_lvauPxuycK`IE<59{E@Br}@qlYq8(F77O=g?G?y z(vm&btm9JHd|n!17>auyw*HUB$-85McC`~43f7sHVq2@J~^`>Z-3T zC~-o(ftIRkgjI~^{#xC>(DQA37v|5O$#MfS&Eo!-RBv$ME3`@QUM$T2=f(DdMfPEH z7E%TwWSTok`Y7wB5zTS<91?q!vBI}kMJL~St`}sz<{vMZ-$yhg0hL7brWu&G2*zbB zWJNki5(aFtzPN&>yJTlO@o|dA01jm)|Dcw|nICLPw47x3ymDJ!M<8)q9_ni?Jc=px zX)h6Hj0N-^o11q95kYKMw6a*N#u_5W$#p9IiFegWny}FsA{_AWI|FkXY70cai=ZdDiwg4l>)9(!uh6%!Clj%>E<2b zrBB{md+CilUrKq3onTU$bIX1u4|5eiEvR2zhKGylWN8(}LhY&A+&Y<^^VSm0l||j8 zp1{c+{0v25Bdl5ltFrxdkQX}h0hc^z7Yd*Qh_HkqPN|=Kj6Rx zXEw97QKXa9@#u5UkBT9GW~NK=7!le`iCDuN#RP3D-Q+7{2~xTpr5bE95V_acUponC z9GLn>7Fow~oj=j1z^1NsP)b|Dof?=_m$HDc1zk`MpLU=#IEv)>v!p89FWS;Po!X|W zlv4GN_nw%Q<3}z@Qgu&lo69wpyG_lWm>{)fjq%5&krQuvrmCp@mKzeWHMjhJ^K!v{ zMlf}~Z;<_+7VH`8#H8jk%k0Xz@u)l3wrXEGUusRn9B}6=ku=G~_`=YI5>F5&le6W< z>{!l9U#l%x^mM?By90i&JS(Ims94cln(wHoLZW*O^y#9POo5-J5a_(^R|j>^o+V85 zU5T-K&qB-4OsQns8=ModS#@BrpNYSPn(d_o38dz!ybA-W+6$5rV(q;{%r z&;G|UO*4U@Pl`E||L79}`K<&hgz_FlgzjP`G_MrDf{iP7-9V(&bO}Y*cnUy zzaLBJWyJQ=LU?JG&2mp*O;&M+hwk-@5ekUt%1XvHv0jts1F zF0!aJ$7O_g6A!dkZ5lZFU*AN+TcXB;g<*_84G_aUadv3?9kyp(i$_223l)Z6tK4gP2lq2!wd$}IsOs_NdG}cG4_kP34 z6DH`Sfcji9lsA7RdH$VD0%2}IvQqqu7A73Fxz}k#3q|*ZdpM)C%EyBRsP$dC0RF!V zd%*fXD(SZ9{Q7WA;}%NH^dsBfAVsbAZfkuv}g@G#nufv-=3eZEsFJV}|@*h0d4l}z;7`=Wke)3D2(+G7aN9&5dLrB$!2>G^0| z4)N67Pz5sLp`a)QY>zYCjUth#voze04L0ocRCqBBX8%XvXkJcUzL&Jd8?m1pS^J>% zYG)V9Qtz-$yXHPA-A_n%f$QIzjgjhC%Oo`tf40rccF$~O4S8(ylbpqXC)*DR&}tIm z#Zo7=0lf@Ol5|X{g?<)phK^u^0>al#&|Svyw3z>+uOM#s6$9hs_6O7xxuIi&iGFZr zF8@gJpAox{8IILs1-vB7`kSHL#`9uqWxhVBi*ur5ROOYgYqmMD1P-U_cXu!Hv9vKw zk8@|!@caPGiTbtm0V-Tq0jI0h>s8ijyPGJy@NJbR}J zwTriZ%*!-1+RAR;TJ4yt?nBfo2HDAr*%3y3Ovs(r7*SjPezVE74BY2o1NQXgWU9q) zQ~}&~(<5gkFzg}Axh|J7`}jhKg*GV{a0!FHWaCI-g2K&G4$GXXjna$KKjkrTBw#JC zbsh)$5KgcZy)WI1j9;AUY^nGWp8=*LU^mOdlfyr>0y@de!cw@Qk}@^HWh|}Bp_`a! zHqWGcTCi;9?J(v-PGGd3pQaNp+@jHT)`2IYRC^ydw;G%xFp_lN@>DhhYF54&=Y@F6 z@*u1|O?=aOx`crZ#1EQdG(35WFfDQkff>X41XPHZaR>v{8DAakACD^y-yuuI40A<3 zm-}<{>&;|n4?+nAf;8-lFPLc$m*Sg^N*8550iE!^ByTm>e68)4fq$z$cR^Ojjk1qd z*q(%%mf(g098jPc=YN5Jf>qECsE(T#(cBMe6r(fc8BfEfS(Z3DNo{0O4z|Z zFY>iGgFSkFDQApL05)<{oXMwx>CqM3Nh5S^KmsY8txO94b{=xZv=0k7$BllW-c(+1 zdXzBz_RYd1*Cs9mJ(Yt1BjPMSG4nNr8*BLz+G8&(Kw*0Uedz78_XQvlk|zEI{&u$? zmC9xpW44S2VKp!{t1Tl~d7!?Mrjh3G+pJPwfv2c zA^u$lD?9uw6!$&ZSUe}pY27ZS9Uh(nv;!^~EJ@x{0FGY)YZ~preHhN~X7L1uffqBv z8G=AJ-Vsa1yy?=8<}*WuYQHGDuU-&Oc8|xvH*;3$Ezz#c+R0mNRlny{!beIRTPLH+Vljw} zS_(A$v}2vsh9wvbo3sNRG5^@Snbs8}iQ+Jht~a=)7av>jX)@Xq+2*l}rK185TZ`Ld zy(DD=ET(2=yLk7JHD(uEqR112 z9csxm?r{X|?be^jkA$Y-Nxx$h^ZD$|8>Z~atFWNA5%)!qx4PdaTX9>D%S9xahV3){ z_5~&4f7&S>dR3mb$L&w1WvHm*PpB;JmIS;f^$s)+i$qd+C(fI!y?eU^a7&m7VyxlAsd7p>ciV)$O<50(p9Ht9>|86U`=c@?By=`594PW}7rc@mOXxbO z%m&zc&yoj$l5S1O2D>`ELHa!lN_|Fw13Q}32uPziKcN+>B;B~2#u*P-PEkTn#|Gap zZf0sqZ4fbiR| zL=uGcKi9%}xz=)VF!$P23G9lvNVvBA2p@b2X2Uk=M)Bsy%f?3d9Mbk+;k2N{3!kk^ zFz=|>v>Mw*VAmz9I}SP%Rq@M8d$T2iXImEz0fyB`1>_XIo<;GxJ($)+{Cx zxfF=kCbm&gfzW)Qyd*QxA)h^2ll1F*o4-?qTfV;_b-UBjf%Z{ZRz^i zEH9zBzg04Gg5QAoQ-TrARE87&5zI+VVLjmm!#_yP&efeoTJV%tliFH{I=WGp!BT@o zC&t($@ASXRGl(1)iU5YW73~rpFp_IGT%BNyNM+pnzHDFNvpKmLQRVs`l)yYUAOUlc zW*5;mYdjBIYjzSDZH2PX)Q)}YspUZ}^$f_Znq*2fz8BfZi^d@+l#GAZH2@elCSv~s4p?epbFn0XzHQoA`b8uk_ z_Usw4d_#cxZH?L!Z{@v&dRg3c#kdBT$*+}4jkCUpLC&4Hfpj_|`%hGavx)w4fZUsf zdo?=JF4GIawg|ogAdKzacMhcvHIH<>*VncVB( z3^PAKIh}p!MksD8S4X(oN$zmP9a0rKyPL7H*18ncLZNY}ifnRlYI}R5RZiA;6z{}j zyGESZxbNwjoOOlbrfT=ZG1EyBzg5FxDe8;89o19s>EKi4UDffgjyT-ok5T_sxt7@Z zL#TQtAUZZ-4;K8 zCE=_*aA1?R}>JX{{Z$c+I)-(jRQY~B|RKYPHd2#=T;owH02U&@ExAXZp zefED2>oKhBEbF5U9^nzWlS=b(@8zKLQTjw0aF+F3EJ^(uI$N`{sE=*;hxnWxhQ~7& z^O{rNm*|5l-V4a0Zx9ADieBy$DH6m}@8MBc zT;VpC+=HN;+>%ll&r;BY{^#nCS&K15*oK8I3_-c?hkP^KrXsKC0M91#0dMfBZDJ!L zlU@2XPkKUZW=&G!=@P;$Zwc13#gp<&v_c0LTsMe`&u!k@1N;yZ`>}*~*(L{rI5I;O zdWgWB8qisvRA?Mup%eYDlEsUE!-M#~oCnVW{3Ed&2uc9Otn?9O;;h zgVxh#S||ca(b|MFJk6OU4!?SCb=Z5B!aP-{iMOeI1(2Y}rI`yABm03JHrk5kJqA%y3Z5{T z_^Z&BH7KdZ-fi zUG5`uU3nQ;eSA%`tZ(D(BsN(BnINQ^n^(GSIz~LCgL#|O!M!Mmfi8MlCNNQ&ijSp> zzWVeZL0+fAlY%!i6RBsV+m)S^5oH9=wA++>axGcjwQQ>8GQ_BVFQbL1hQzo_?4^0x zzl|AW#Zy(5nsDcVdOaN9^6UNaa_c%fR<;i9*H>H3r6^<~N#Ws;{-lk2@5Xp(3B`K+ z5E5YN1xg*sgN{(VI|HUMBC%ylnh#G~db&p)7nKPWxYc;_mzzb>3p-I^4460=7Z{& zl33wD?HGIo-I1pO!bgL|j2}6xzND2h=9nQs%iTOkISWm6#RMvNqgW@MiMb=M{dFhu{pE^JC z9LAO$VqN!bPC$Sd72a?W+_7Q<7~dhq^Q|;P6Hq1WT~3Je0%R6p_L|tcvPnb`8B$dcPK*i@G~jxiajd#($^_NbLP z5?tkZy}5PJgcR$_aHQEaC_|>Y(YGbO+{}YDMSY5NWw21PZ^yPz$TGL79jbFl+Ry7I_*67A*3oZ|c< z;L#Z+WHLo2B#64DzHWkbLC-m@A-kBat?nycd7>O+U83k6+oT5!tTaiLVMfqP-;(50 zGp%GL!0(@&X-?RQzF}OW&h>FOA`NagFC}M5!aMS|xJ`uHF4fVP&7*Uv#eb(p}#d!AHSJK^bo2+gmUQSl053!wdTlXkl@*q z04p}nh(2&<_YV{mS-r%3|18fWZ0U^_;2sTh?-!58?aWf=pt|+#yx=*fw_&ee*&g6{ zh*`<3qnLZsoC+FdKJsw|Vv81B-eT%4$H}7;Blo=3ua5lp^!VO_ti-_synH?6!b5I$ zZGlV@zn0$ct(e*~EB(jWnyn>fFE9pmi}?iAiAnb-=!BM?!|U`B(z><>#pUIK_RWY) z*5}|VQF}_&fTeQvCFd@y3B*MG)&CD~_$4Cvwhn>VvHa-7+Vqg2ya>kg-E@kKx+S!)Fi+b-J zFk_kvU)&#yD_v72_7l!7T=Prnnp0WhnD(2Gu-4V_EZ=K^2IhK4@J0WR0npSvSO3kQ zN2cT1f9Mz03OGsbPQuI{1U>WulMmK-A&8s++|b%EX5=juhB2_nj_cI%c?m^@f}W7K zJAd+Ee==93&vCLs?j;Ej_N6GNy!KgZgZ_9xnD30>;L;-SKoU!bD*H61U~8eKGiFj# zi#)^!vl?4$^lKRR$@JZX5ChqbN`gbj}}CcXmS69^v?}Y zr+0hNvtv_M86aVBXrRb7g^gj8UuYtBniM1iC6@Hq-<6X(6qO6dZzTXB658*pV7LM3 z|9M`Uz&HswgTTxV-N~ts8wnnx{S!mxV&Lq96(w5S%XH>i56{IU%^*I^073M{KFVWy zbHHkAc#r0_Tx4{;w%2UYrP9y1j{qeG&xdM*f3uy3S> zQ>90;Q)4#`P9?IluJ}}MCr;?9UK4)_31IdAbEn?Fj7U zG*Dq=*Jt1?pg26-oP%Voj7qp3Sm=H1;Ns&MZ%zsTT&5r?a59Yo~%Os*t@Ji@%Y~v^$B{bW5x_6 z&vvKID2P63`CCflJ2#{Xj)i20H*K3QS$p&@q9UK`N2)xPTQh$hRcUFH$zYy8$SQT3 zesZ80kTc~%KFXA2<6@+T=jteybdkU1J@d(JqWP|eR&v9+fl6vlItA*9sIH|5lOi-3 zx{0~&6?Mybb4gD#C)SAx$h8iE$VdczXI@YN%E)kZ-M7)tI=$$ixNOryV@t;K*>Mi& z4^MeXlzvA^^t6CPR(kp2M2s1<^y{)`Aqn-K^S+YLv6yc{T%Lt~XrN72OJzN=hYe{l z9=^IzMN0f=EtGOY5iqp)`~dcqU)FjO6N|4f=#JF4`)Cjgz)i1J8A{JxA_4%I7Wf<; zsFA=FpMz=+3e4z&zvG&#^S*r-NRID>_|ZdbdbEXwnG#(`kP>{{EgOM4tADg~7##nO z`yUeduF`)(J=|_v{9j%pF1C%q4zjTBbF(MNR0t^bm$rt4BnVbS;bUVN0OeVD73IGt z1rl<*FM57mn3G64=tA>7ZOIaun&;831QH6!qaay^yGWC9hF_IrRB#X?$U*Mj9$#;p zPqD#uGT(I)kcee%@4k3I*T@GkG#?>HF(!*JxVvmpEwAwaRVnq`(nBEkrWtvgj2V)$$H zY*emzOEOC_79Ee$;fIg0rSQ*J{plQEQ`>n|EU97ehZ@*`WEz1_QIl~YQQ@1yyvP&f z$wlg#hMX0$^a>PVN~Ha{W@``GkQcF?q*B$qo(u@u!w-T`Afzjs{D@+gP*1IQ(<Ipu==GWQUHaCbbJ<8B?tIakRB1Wf(CZYTrGzx!n|$IJ*4{I| zk>SMXK&zMF`7@QJDvMy^vb1DZ8S)WB!sSE-9)^c5ZqvNO>n)UG3|{ChXgz%ZagCOG z+17EE+WOjR5vz3xFh&tfl$imB)=|JdA@WUha5R;k8puf9iK5m7rfdR#c<|9e9PXcIU3+7_K>Bmy|zn)j~z}%wlZpduztu| zQHe=#NdZ0~D*E#~gm!bCJ39E}f(yAH*nv zYPcQG$89R-E8wTr-s)$7G1MF#K#!Q}6*{gdBcYRnw~3Bm^@Lk?<&&5fw$nhXf@5uK zDie?#O^SuDCjGrnHAX0(M$7vzlm~`LO;A0!W)3yv8?dw6DkkkO3XYMV4y7Ji-Yj*M znERFa&WA+$q^tB@5*p9mM*kYQda7RL5hXBG94TY+;*>Wg>bR{BZ{6KgCnlS$yBi

-| -| -|

- -#data - -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 10 Expected closing tag. Unexpected end of file. -#document -| -| -| diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests10.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests10.dat deleted file mode 100644 index 4f8df86f208..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests10.dat +++ /dev/null @@ -1,799 +0,0 @@ -#data - -#errors -#document -| -| -| -| -| - -#data -a -#errors -29: Bogus comment -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| - -#data - -#errors -35: Stray “svg†start tag. -42: Stray end tag “svg†-#document -| -| -| -| -| -#errors -43: Stray “svg†start tag. -50: Stray end tag “svg†-#document -| -| -| -| -|

-#errors -34: Start tag “svg†seen in “tableâ€. -41: Stray end tag “svgâ€. -#document -| -| -| -| -| -| - -#data -
foo
-#errors -34: Start tag “svg†seen in “tableâ€. -46: Stray end tag “gâ€. -53: Stray end tag “svgâ€. -#document -| -| -| -| -| -| -| "foo" -| - -#data -
foobar
-#errors -34: Start tag “svg†seen in “tableâ€. -46: Stray end tag “gâ€. -58: Stray end tag “gâ€. -65: Stray end tag “svgâ€. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -| - -#data -
foobar
-#errors -41: Start tag “svg†seen in “tableâ€. -53: Stray end tag “gâ€. -65: Stray end tag “gâ€. -72: Stray end tag “svgâ€. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -| -| - -#data -
foobar
-#errors -45: Start tag “svg†seen in “tableâ€. -57: Stray end tag “gâ€. -69: Stray end tag “gâ€. -76: Stray end tag “svgâ€. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -| -| -| - -#data -
foobar
-#errors -#document -| -| -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" - -#data -
foobar

baz

-#errors -#document -| -| -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" -|

-| "baz" - -#data -
foobar

baz

-#errors -#document -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" -|

-| "baz" - -#data -
foobar

baz

quux -#errors -70: HTML start tag “p†in a foreign namespace context. -81: “table†closed but “caption†was still open. -#document -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" -|

-| "baz" -|

-| "quux" - -#data -
foobarbaz

quux -#errors -78: “table†closed but “caption†was still open. -78: Unclosed elements on stack. -#document -| -| -| -| -| -|
-| -| -| "foo" -| -| "bar" -| "baz" -|

-| "quux" - -#data -foobar

baz

quux -#errors -44: Start tag “svg†seen in “tableâ€. -56: Stray end tag “gâ€. -68: Stray end tag “gâ€. -71: HTML start tag “p†in a foreign namespace context. -71: Start tag “p†seen in “tableâ€. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -|

-| "baz" -| -| -|

-| "quux" - -#data -

quux -#errors -50: Stray “svg†start tag. -54: Stray “g†start tag. -62: Stray end tag “g†-66: Stray “g†start tag. -74: Stray end tag “g†-77: Stray “p†start tag. -88: “table†end tag with “select†open. -#document -| -| -| -| -| -| -| -|
-|

quux -#errors -36: Start tag “select†seen in “tableâ€. -42: Stray “svg†start tag. -46: Stray “g†start tag. -54: Stray end tag “g†-58: Stray “g†start tag. -66: Stray end tag “g†-69: Stray “p†start tag. -80: “table†end tag with “select†open. -#document -| -| -| -| -| -|

-| "quux" - -#data -foobar

baz -#errors -41: Stray “svg†start tag. -68: HTML start tag “p†in a foreign namespace context. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -|

-| "baz" - -#data -foobar

baz -#errors -34: Stray “svg†start tag. -61: HTML start tag “p†in a foreign namespace context. -#document -| -| -| -| -| -| -| "foo" -| -| "bar" -|

-| "baz" - -#data -

-#errors -31: Stray “svg†start tag. -35: Stray “g†start tag. -40: Stray end tag “g†-44: Stray “g†start tag. -49: Stray end tag “g†-52: Stray “p†start tag. -58: Stray “span†start tag. -58: End of file seen and there were open elements. -#document -| -| -| -| - -#data -

-#errors -42: Stray “svg†start tag. -46: Stray “g†start tag. -51: Stray end tag “g†-55: Stray “g†start tag. -60: Stray end tag “g†-63: Stray “p†start tag. -69: Stray “span†start tag. -#document -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| xlink:href="foo" -| -| xlink href="foo" - -#data - -#errors -#document -| -| -| -| -| xlink:href="foo" -| xml:lang="en" -| -| -| xlink href="foo" -| xml lang="en" - -#data - -#errors -#document -| -| -| -| -| xlink:href="foo" -| xml:lang="en" -| -| -| xlink href="foo" -| xml lang="en" - -#data -bar -#errors -#document -| -| -| -| -| xlink:href="foo" -| xml:lang="en" -| -| -| xlink href="foo" -| xml lang="en" -| "bar" - -#data - -#errors -#document -| -| -| -| - -#data -

a -#errors -#document -| -| -| -|
-| -| "a" - -#data -
a -#errors -#document -| -| -| -|
-| -| -| "a" - -#data -
-#errors -#document -| -| -| -|
-| -| -| - -#data -
a -#errors -#document -| -| -| -|
-| -| -| -| -| "a" - -#data -

a -#errors -#document -| -| -| -|

-| -| -| -|

-| "a" - -#data -
    a -#errors -40: HTML start tag “ul†in a foreign namespace context. -41: End of file in a foreign namespace context. -#document -| -| -| -| -| -| -|
    -| -|
      -| "a" - -#data -
        a -#errors -35: HTML start tag “ul†in a foreign namespace context. -36: End of file in a foreign namespace context. -#document -| -| -| -| -| -| -| -|
          -| "a" - -#data -

          -#errors -#document -| -| -| -| -|

          -| -| -|

          - -#data -

          -#errors -#document -| -| -| -| -|

          -| -| -|

          - -#data -

          -#errors -#document -| -| -| -|

          -| -| -| -|

          -|

          - -#data -
          -#errors -#document -| -| -| -| -| -|
          -| -|
          -| -| - -#data -
          -#errors -#document -| -| -| -| -| -| -| -|
          -|
          -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data -

-#errors -#document -| -| -| -| -|
-| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| - -#data -
-#errors -#document -| -| -| -| -| -| -| -|
-| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests11.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests11.dat deleted file mode 100644 index 638cde479f7..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests11.dat +++ /dev/null @@ -1,482 +0,0 @@ -#data - -#errors -#document -| -| -| -| -| -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data - -#errors -#document -| -| -| -| -| -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data - -#errors -#document -| -| -| -| -| -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data - -#errors -#document -| -| -| -| -| -| attributename="" -| attributetype="" -| basefrequency="" -| baseprofile="" -| calcmode="" -| clippathunits="" -| contentscripttype="" -| contentstyletype="" -| diffuseconstant="" -| edgemode="" -| externalresourcesrequired="" -| filterres="" -| filterunits="" -| glyphref="" -| gradienttransform="" -| gradientunits="" -| kernelmatrix="" -| kernelunitlength="" -| keypoints="" -| keysplines="" -| keytimes="" -| lengthadjust="" -| limitingconeangle="" -| markerheight="" -| markerunits="" -| markerwidth="" -| maskcontentunits="" -| maskunits="" -| numoctaves="" -| pathlength="" -| patterncontentunits="" -| patterntransform="" -| patternunits="" -| pointsatx="" -| pointsaty="" -| pointsatz="" -| preservealpha="" -| preserveaspectratio="" -| primitiveunits="" -| refx="" -| refy="" -| repeatcount="" -| repeatdur="" -| requiredextensions="" -| requiredfeatures="" -| specularconstant="" -| specularexponent="" -| spreadmethod="" -| startoffset="" -| stddeviation="" -| stitchtiles="" -| surfacescale="" -| systemlanguage="" -| tablevalues="" -| targetx="" -| targety="" -| textlength="" -| viewbox="" -| viewtarget="" -| xchannelselector="" -| ychannelselector="" -| zoomandpan="" - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests12.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests12.dat deleted file mode 100644 index 63107d277b6..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests12.dat +++ /dev/null @@ -1,62 +0,0 @@ -#data -

foobazeggs

spam

quuxbar -#errors -#document -| -| -| -| -|

-| "foo" -| -| -| -| "baz" -| -| -| -| -| "eggs" -| -| -|

-| "spam" -| -| -| -|
-| -| -| "quux" -| "bar" - -#data -foobazeggs

spam
quuxbar -#errors -#document -| -| -| -| -| "foo" -| -| -| -| "baz" -| -| -| -| -| "eggs" -| -| -|

-| "spam" -| -| -| -|
-| -| -| "quux" -| "bar" diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests14.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests14.dat deleted file mode 100644 index b8713f88582..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests14.dat +++ /dev/null @@ -1,74 +0,0 @@ -#data - -#errors -#document -| -| -| -| -| - -#data - -#errors -#document -| -| -| -| -| -| - -#data - -#errors -15: Unexpected start tag html -#document -| -| -| abc:def="gh" -| -| -| - -#data - -#errors -15: Unexpected start tag html -#document -| -| -| xml:lang="bar" -| -| - -#data - -#errors -#document -| -| -| 123="456" -| -| - -#data - -#errors -#document -| -| -| 123="456" -| 789="012" -| -| - -#data - -#errors -#document -| -| -| -| -| 789="012" diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests15.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests15.dat deleted file mode 100644 index 6ce1c0d1663..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests15.dat +++ /dev/null @@ -1,208 +0,0 @@ -#data -

X -#errors -Line: 1 Col: 31 Unexpected end tag (p). Ignored. -Line: 1 Col: 36 Expected closing tag. Unexpected end of file. -#document -| -| -| -| -|

-| -| -| -| -| -| -| " " -|

-| "X" - -#data -

-

X -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag (p). Ignored. -Line: 2 Col: 4 Expected closing tag. Unexpected end of file. -#document -| -| -| -|

-| -| -| -| -| -| -| " -" -|

-| "X" - -#data - -#errors -Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element. -#document -| -| -| -| -| " " - -#data - -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| -| -| -| -| - -#data - -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html) after the (implied) root element. -#document -| -| -| -| - -#data -X -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| -| -| -| -| -| "X" - -#data -<!doctype html><table> X<meta></table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " X" -| <meta> -| <table> - -#data -<!doctype html><table> x</table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> - -#data -<!doctype html><table> x </table> -#errors -Line: 1 Col: 25 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x " -| <table> - -#data -<!doctype html><table><tr> x</table> -#errors -Line: 1 Col: 28 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table>X<style> <tr>x </style> </table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <style> -| " <tr>x " -| " " - -#data -<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div> -#errors -Line: 1 Col: 30 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 37 Unexpected end tag (a) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <a> -| "foo" -| <table> -| " " -| <tbody> -| <tr> -| <td> -| "bar" -| " " - -#data -<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> -#errors -6: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>â€. -13: Stray start tag “frameâ€. -21: Stray end tag “frameâ€. -29: Stray end tag “frameâ€. -39: “frameset†start tag after “body†already open. -105: End of file seen inside an [R]CDATA element. -105: End of file seen and there were open elements. -XXX: These errors are wrong, please fix me! -#document -| <html> -| <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> -| "</frameset><noframes>" - -#data -<!DOCTYPE html><object></html> -#errors -1: Expected closing tag. Unexpected end of file -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests16.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests16.dat deleted file mode 100644 index c8ef66f0e6e..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests16.dat +++ /dev/null @@ -1,2299 +0,0 @@ -#data -<!doctype html><script> -#errors -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script>a -#errors -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<!doctype html><script>< -#errors -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<!doctype html><script></ -#errors -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<!doctype html><script></S -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<!doctype html><script></SC -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<!doctype html><script></SCR -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<!doctype html><script></SCRI -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<!doctype html><script></SCRIP -#errors -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script></s -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<!doctype html><script></sc -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<!doctype html><script></scr -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<!doctype html><script></scri -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<!doctype html><script></scrip -#errors -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<!doctype html><script></script -#errors -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<!doctype html><script></script -#errors -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script><! -#errors -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<!doctype html><script><!a -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<!doctype html><script><!- -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<!doctype html><script><!-a -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<!doctype html><script><!-- -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--a -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<!doctype html><script><!--< -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<!doctype html><script><!--<a -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<!doctype html><script><!--</ -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<!doctype html><script><!--</script -#errors -Line: 1 Col: 35 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<!doctype html><script><!--</script -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--<s -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<!doctype html><script><!--<script -#errors -Line: 1 Col: 34 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<!doctype html><script><!--<script -#errors -Line: 1 Col: 35 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<!doctype html><script><!--<script < -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<!doctype html><script><!--<script <a -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<!doctype html><script><!--<script </ -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<!doctype html><script><!--<script </s -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -Line: 1 Col: 43 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<!doctype html><script><!--<script </scripta -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script> -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<!doctype html><script><!--<script </script/ -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<!doctype html><script><!--<script </script < -#errors -Line: 1 Col: 45 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<!doctype html><script><!--<script </script <a -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<!doctype html><script><!--<script </script </ -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -Line: 1 Col: 52 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -Line: 1 Col: 53 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script/ -#errors -Line: 1 Col: 53 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script - -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<!doctype html><script><!--<script -a -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<!doctype html><script><!--<script -< -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -<" -| <body> - -#data -<!doctype html><script><!--<script -- -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<!doctype html><script><!--<script --a -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<!doctype html><script><!--<script --< -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --<" -| <body> - -#data -<!doctype html><script><!--<script --> -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script -->< -#errors -Line: 1 Col: 39 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<!doctype html><script><!--<script --></ -#errors -Line: 1 Col: 40 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -Line: 1 Col: 47 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script/ -#errors -Line: 1 Col: 47 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script><\/script>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<!doctype html><script><!--<script></scr'+'ipt>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>--><!--</script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-- ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- -></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- - ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<!doctype html><script><!--<script>--!></script>X -#errors -Line: 1 Col: 49 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<!doctype html><script><!--<scr'+'ipt></script>--></script> -#errors -Line: 1 Col: 59 Unexpected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<!doctype html><script><!--<script></scr'+'ipt></script>X -#errors -Line: 1 Col: 57 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<!doctype html><style><!--<style></style>--></style> -#errors -Line: 1 Col: 52 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<!doctype html><style><!--</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<!doctype html><style><!--...</style>...--></style> -#errors -Line: 1 Col: 51 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<!doctype html><style><!--...<style><!--...--!></style>--></style> -#errors -Line: 1 Col: 66 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<!doctype html><style><!--...</style><!-- --><style>@import ...</style> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<!doctype html><style>...<style><!--...</style><!-- --></style> -#errors -Line: 1 Col: 63 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<!doctype html><style>...<!--[if IE]><style>...</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<!doctype html><title><!--<title>--> -#errors -Line: 1 Col: 52 Unexpected end tag (title). -#document -| -| -| -| -| "<!--<title>" -| <body> -| "-->" - -#data -<!doctype html><title></title> -#errors -#document -| -| -| -| -| "" -| - -#data -foo/title><link></head><body>X -#errors -Line: 1 Col: 52 Unexpected end of file. Expected end tag (title). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<!doctype html><noscript><!--<noscript></noscript>--></noscript> -#errors -Line: 1 Col: 64 Unexpected end tag (noscript). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<!doctype html><noscript><!--</noscript>X<noscript>--></noscript> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<!doctype html><noscript><iframe></noscript>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<!doctype html><noframes><!--<noframes></noframes>--></noframes> -#errors -Line: 1 Col: 64 Unexpected end tag (noframes). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<!doctype html><noframes><body><script><!--...</script></body></noframes></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<!doctype html><textarea><!--<textarea></textarea>--></textarea> -#errors -Line: 1 Col: 64 Unexpected end tag (textarea). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<!doctype html><textarea></textarea></textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<!doctype html><textarea><</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "<" - -#data -<!doctype html><textarea>a<b</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "a<b" - -#data -<!doctype html><iframe><!--<iframe></iframe>--></iframe> -#errors -Line: 1 Col: 56 Unexpected end tag (iframe). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<!doctype html><iframe>...<!--X->...<!--/X->...</iframe> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<!doctype html><xmp><!--<xmp></xmp>--></xmp> -#errors -Line: 1 Col: 44 Unexpected end tag (xmp). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<!doctype html><noembed><!--<noembed></noembed>--></noembed> -#errors -Line: 1 Col: 60 Unexpected end tag (noembed). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script>a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<script>< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<script></ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<script></S -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<script></SC -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<script></SCR -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<script></SCRI -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<script></SCRIP -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<script></SCRIPT -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<script></SCRIPT -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script></s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<script></sc -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<script></scr -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<script></scri -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<script></scrip -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<script></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<script></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script><! -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<script><!a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<script><!- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<script><!-a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<script><!-- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<script><!--< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<script><!--<a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<script><!--</ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<script><!--</script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<script><!--</script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--<s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<script><!--<script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<script><!--<script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<script><!--<script < -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<script><!--<script <a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<script><!--<script </ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<script><!--<script </s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<script><!--<script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<script><!--<script </scripta -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<script><!--<script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<script><!--<script </script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<script><!--<script </script < -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<script><!--<script </script <a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<script><!--<script </script </ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<script><!--<script </script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<script><!--<script </script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script - -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<script><!--<script -a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<script><!--<script -- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<script><!--<script --a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<script><!--<script --> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script -->< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<script><!--<script --></ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<script><!--<script --></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<script><!--<script --></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script><\/script>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<script><!--<script></scr'+'ipt>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<script><!--<script></script><script></script></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<script><!--<script></script><script></script>--><!--</script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<script><!--<script></script><script></script>-- ></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<script><!--<script></script><script></script>- -></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<script><!--<script></script><script></script>- - ></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<script><!--<script></script><script></script>-></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<script><!--<script>--!></script>X -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 34 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<script><!--<scr'+'ipt></script>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 44 Unexpected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<script><!--<script></scr'+'ipt></script>X -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 42 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<style><!--<style></style>--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<style><!--</style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<style><!--...</style>...--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 36 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<style><!--...<style><!--...--!></style>--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 51 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<style><!--...</style><!-- --><style>@import ...</style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<style>...<style><!--...</style><!-- --></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 48 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<style>...<!--[if IE]><style>...</style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<title><!--<title>--> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end tag (title). -#document -| -| -| -| "<!--<title>" -| <body> -| "-->" - -#data -<title></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| -| -| -| "" -| - -#data -foo/title><link></head><body>X -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end of file. Expected end tag (title). -#document -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<noscript><!--<noscript></noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (noscript). -#document -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<noscript><!--</noscript>X<noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<noscript><iframe></noscript>X -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<noframes><!--<noframes></noframes>--></noframes> -#errors -Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (noframes). -#document -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<noframes><body><script><!--...</script></body></noframes></html> -#errors -Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE. -#document -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<textarea><!--<textarea></textarea>--></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (textarea). -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<textarea></textarea></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<iframe><!--<iframe></iframe>--></iframe> -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -Line: 1 Col: 41 Unexpected end tag (iframe). -#document -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<iframe>...<!--X->...<!--/X->...</iframe> -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<xmp><!--<xmp></xmp>--></xmp> -#errors -Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end tag (xmp). -#document -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<noembed><!--<noembed></noembed>--></noembed> -#errors -Line: 1 Col: 9 Unexpected start tag (noembed). Expected DOCTYPE. -Line: 1 Col: 45 Unexpected end tag (noembed). -#document -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<!doctype html><table> - -#errors -Line 2 Col 0 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " -" - -#data -<!doctype html><table><td><span><font></span><span> -#errors -Line 1 Col 26 Unexpected table cell start tag (td) in the table body phase. -Line 1 Col 45 Unexpected end tag (span). -Line 1 Col 51 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <span> -| <font> -| <font> -| <span> - -#data -<!doctype html><form><table></form><form></table></form> -#errors -35: Stray end tag “formâ€. -41: Start tag “form†seen in “tableâ€. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <table> -| <form> diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests17.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests17.dat deleted file mode 100644 index 7b555f888de..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests17.dat +++ /dev/null @@ -1,153 +0,0 @@ -#data -<!doctype html><table><tbody><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><tr><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<!doctype html><table><tr><td><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| <td> - -#data -<!doctype html><table><tr><th><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <th> -| <select> -| <td> - -#data -<!doctype html><table><caption><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <select> -| <tbody> -| <tr> - -#data -<!doctype html><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><th> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tbody> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><thead> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tfoot> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><caption> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><table><tr></table>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| "a" diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests18.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests18.dat deleted file mode 100644 index 680e1f068a6..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests18.dat +++ /dev/null @@ -1,269 +0,0 @@ -#data -<!doctype html><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> - -#data -<!doctype html><table><tbody><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> - -#data -<!doctype html><table><tbody><tr><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><tbody><tr><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><caption><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><tr><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <style> -| "</script>" - -#data -<!doctype html><table><tr><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <script> -| "</style>" - -#data -<!doctype html><table><caption><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><table><td><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" - -#data -<!doctype html><table><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> - -#data -<!doctype html><table><tr><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><frameset></frameset><noframes>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><frameset></frameset></html><noframes>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><table><tr></tbody><tfoot> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <tfoot> - -#data -<!doctype html><table><td><svg></svg>abc<td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| "abc" -| <td> diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests19.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests19.dat deleted file mode 100644 index 0d62f5a5b02..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests19.dat +++ /dev/null @@ -1,1237 +0,0 @@ -#data -<!doctype html><math><mn DefinitionUrl="foo"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| definitionURL="foo" - -#data -<!doctype html><html></p><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <!-- foo --> -| <head> -| <body> - -#data -<!doctype html><head></head></p><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- foo --> -| <body> - -#data -<!doctype html><body><p><pre> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <pre> - -#data -<!doctype html><body><p><listing> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <listing> - -#data -<!doctype html><p><plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <plaintext> - -#data -<!doctype html><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <h1> - -#data -<!doctype html><form><isindex> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> - -#data -<!doctype html><isindex action="POST"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| action="POST" -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex prompt="this is isindex"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "this is isindex" -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex type="hidden"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| type="hidden" -| <hr> - -#data -<!doctype html><isindex name="foo"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><ruby><p><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rp> - -#data -<!doctype html><ruby><div><span><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rp> - -#data -<!doctype html><ruby><div><p><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rp> - -#data -<!doctype html><ruby><p><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rt> - -#data -<!doctype html><ruby><div><span><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rt> - -#data -<!doctype html><ruby><div><p><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rt> - -#data -<!doctype html><math/><foo> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <foo> - -#data -<!doctype html><svg/><foo> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <foo> - -#data -<!doctype html><div></body><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <!-- foo --> - -#data -<!doctype html><h1><div><h3><span></h1>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h1> -| <div> -| <h3> -| <span> -| "foo" - -#data -<!doctype html><p></h3>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "foo" - -#data -<!doctype html><h3><li>abc</h2>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h3> -| <li> -| "abc" -| "foo" - -#data -<!doctype html><table>abc<!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <!-- foo --> - -#data -<!doctype html><table> <!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <!-- foo --> - -#data -<!doctype html><table> b <!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " b " -| <table> -| <!-- foo --> - -#data -<!doctype html><select><option><option> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><p><math><mi><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mi> -| <p> -| <h1> - -#data -<!doctype html><p><math><mo><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mo> -| <p> -| <h1> - -#data -<!doctype html><p><math><mn><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <p> -| <h1> - -#data -<!doctype html><p><math><ms><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math ms> -| <p> -| <h1> - -#data -<!doctype html><p><math><mtext><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mtext> -| <p> -| <h1> - -#data -<!doctype html><frameset></noframes> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html c=d><body></html><html a=b> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><html c=d><frameset></frameset></html><html a=b> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <!-- foo --> - -#data -<!doctype html><html><frameset></frameset></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| " " - -#data -<!doctype html><html><frameset></frameset></html>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html></p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<html><frameset></frameset></html><!doctype html> -#errors -#document -| <html> -| <head> -| <frameset> - -#data -<!doctype html><body><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html><p><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><p>a<frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "a" - -#data -<!doctype html><p> <frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><pre><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> - -#data -<!doctype html><listing><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <listing> - -#data -<!doctype html><li><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <li> - -#data -<!doctype html><dd><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dd> - -#data -<!doctype html><dt><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> - -#data -<!doctype html><button><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <button> - -#data -<!doctype html><applet><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <applet> - -#data -<!doctype html><marquee><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <marquee> - -#data -<!doctype html><object><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> - -#data -<!doctype html><table><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> - -#data -<!doctype html><area><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <area> - -#data -<!doctype html><basefont><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <basefont> -| <frameset> - -#data -<!doctype html><bgsound><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <bgsound> -| <frameset> - -#data -<!doctype html><br><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <br> - -#data -<!doctype html><embed><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <embed> - -#data -<!doctype html><img><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html><input><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> - -#data -<!doctype html><keygen><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <keygen> - -#data -<!doctype html><wbr><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <wbr> - -#data -<!doctype html><hr><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <hr> - -#data -<!doctype html><textarea></textarea><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> - -#data -<!doctype html><xmp></xmp><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> - -#data -<!doctype html><iframe></iframe><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> - -#data -<!doctype html><select></select><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><svg></svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><math></math><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg><foreignObject><div> <frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg>a</svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| "a" - -#data -<!doctype html><svg> </svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<html>aaa<frameset></frameset> -#errors -#document -| <html> -| <head> -| <body> -| "aaa" - -#data -<html> a <frameset></frameset> -#errors -#document -| <html> -| <head> -| <body> -| "a " - -#data -<!doctype html><div><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><div><body><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> - -#data -<!doctype html><p><math></p>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| "a" - -#data -<!doctype html><p><math><mn><span></p>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <span> -| <p> -| "a" - -#data -<!doctype html><math></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!doctype html><meta charset="ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| charset="ascii" -| <body> - -#data -<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| content="text/html;charset=ascii" -| http-equiv="content-type" -| <body> - -#data -<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --> -| <meta> -| charset="utf8" -| <body> - -#data -<!doctype html><html a=b><head></head><html c=d> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><image/> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html>a<i>b<table>c<b>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "a" -| <i> -| "bc" -| <b> -| "de" -| "f" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" - -#data -<!doctype html><table><i>a<b>b<div>c</i> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <i> -| "c" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><table><i>a<div>b<tr>c<b>d</i>e -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <div> -| "b" -| <i> -| "c" -| <b> -| "d" -| <b> -| "e" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><table><i>a<div>b<b>c</i>d -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <i> -| "a" -| <div> -| <i> -| "b" -| <b> -| "c" -| <b> -| "d" -| <table> - -#data -<!doctype html><body><bgsound> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <bgsound> - -#data -<!doctype html><body><basefont> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <basefont> - -#data -<!doctype html><a><b></a><basefont> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <basefont> - -#data -<!doctype html><a><b></a><bgsound> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <bgsound> - -#data -<!doctype html><figcaption><article></figcaption>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <figcaption> -| <article> -| "a" - -#data -<!doctype html><summary><article></summary>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <summary> -| <article> -| "a" - -#data -<!doctype html><p><a><plaintext>b -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <a> -| <plaintext> -| <a> -| "b" - -#data -<!DOCTYPE html><div>a<a></div>b<p>c</p>d -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| "a" -| <a> -| <a> -| "b" -| <p> -| "c" -| "d" diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests2.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests2.dat deleted file mode 100644 index 60d85922162..00000000000 --- a/vendor/golang.org/x/net/html/testdata/webkit/tests2.dat +++ /dev/null @@ -1,763 +0,0 @@ -#data -<!DOCTYPE html>Test -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Test" - -#data -<textarea>test</div>test -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 24 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <textarea> -| "test</div>test" - -#data -<table><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 11 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><td>test</tbody></table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "test" - -#data -<frame>test -#errors -Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected start tag frame. Ignored. -#document -| <html> -| <head> -| <body> -| "test" - -#data -<!DOCTYPE html><frameset>test -#errors -Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset><!DOCTYPE html> -#errors -Line: 1 Col: 40 Unexpected DOCTYPE. Ignored. -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><font><p><b>test</font> -#errors -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <p> -| <font> -| <b> -| "test" - -#data -<!DOCTYPE html><dt><div><dd> -#errors -Line: 1 Col: 28 Missing end tag (div, dt). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> -| <div> -| <dd> - -#data -<script></x -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</x" -| <body> - -#data -<table><plaintext><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode. -Line: 1 Col: 22 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <plaintext> -| "<td>" -| <table> - -#data -<plaintext></plaintext> -#errors -Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!DOCTYPE html><table><tr>TEST -#errors -Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "TEST" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4> -#errors -Line: 1 Col: 37 Unexpected start tag (body). -Line: 1 Col: 53 Unexpected start tag (body). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| t1="1" -| t2="2" -| t3="3" -| t4="4" - -#data -</b test -#errors -Line: 1 Col: 8 Unexpected end of file in attribute name. -Line: 1 Col: 8 End tag contains unexpected attributes. -Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element. -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html></b test<b &=&>X -#errors -Line: 1 Col: 32 Named entity didn't end with ';'. -Line: 1 Col: 33 End tag contains unexpected attributes. -Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" - -#data -<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 54 Unexpected end of file in the tag name. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| type="text/x-foobar;baz" -| "X</SCRipt" -| <body> - -#data -& -#errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&" - -#data -&# -#errors -Line: 1 Col: 1 Numeric entity expected. Got end of file instead. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#" - -#data -&#X -#errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#X" - -#data -&#x -#errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#x" - -#data -- -#errors -Line: 1 Col: 4 Numeric entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "-" - -#data -&x-test -#errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&x-test" - -#data -<!doctypehtml><p><li> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <li> - -#data -<!doctypehtml><p><dt> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dt> - -#data -<!doctypehtml><p><dd> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dd> - -#data -<!doctypehtml><p><form> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <form> - -#data -<!DOCTYPE html><p></P>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "X" - -#data -& -#errors -Line: 1 Col: 4 Named entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&" - -#data -&AMp; -#errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&AMp;" - -#data -<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> -#errors -Line: 1 Col: 110 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly> - -#data -<!DOCTYPE html>X</body>X -#errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "XX" - -#data -<!DOCTYPE html><!-- X -#errors -Line: 1 Col: 21 Unexpected end of file in comment. -#document -| <!DOCTYPE html> -| <!-- X --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><table><caption>test TEST</caption><td>test -#errors -Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| "test TEST" -| <tbody> -| <tr> -| <td> -| "test" - -#data -<!DOCTYPE html><select><option><optgroup> -#errors -Line: 1 Col: 41 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option> -#errors -Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 76 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <option> -| <option> - -#data -<!DOCTYPE html><select><optgroup><option><optgroup> -#errors -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><datalist><option>foo</datalist>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <datalist> -| <option> -| "foo" -| "bar" - -#data -<!DOCTYPE html><font><input><input></font> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <input> -| <input> - -#data -<!DOCTYPE html><!-- XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX -#errors -Line: 1 Col: 29 Unexpected end of file in comment (-) -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<isindex test=x name=x> -#errors -Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected start tag isindex. Don't use it! -#document -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| test="x" -| <hr> - -#data -test -test -#errors -Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "test -test" - -#data -<!DOCTYPE html><body><title>test</body> -#errors -#document -| -| -| -| -| -| "test</body>" - -#data -<!DOCTYPE html><body><title>X -#errors -#document -| -| -| -| -| -| "X" -| <meta> -| name="z" -| <link> -| rel="foo" -| <style> -| " -x { content:"</style" } " - -#data -<!DOCTYPE html><select><optgroup></optgroup></select> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> - -#data - - -#errors -Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html> <html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><script> -</script> <title>x -#errors -#document -| -| -| -| -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved. -#document -| -| -| -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved. -#document -| -| -| -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -#document -| -| -| -| -| "x" -| x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (style). -#document -| -| -| --> x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| -| -| x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| -| -| x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| -| -| x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| -| -|

-#errors -#document -| -| -| -| -| -| ddd -#errors -#document -| -| -| -#errors -#document -| -| -| -| -|
  • -| -| - - -

    /debug/events

    - -
  • - {{range $i, $fam := .Families}} - - - - {{range $j, $bucket := $.Buckets}} - {{$n := index $.Counts $i $j}} - - {{end}} - - {{end}} -
    {{$fam}} - {{if $n}}{{end}} - [{{$n}} {{$bucket.String}}] - {{if $n}}{{end}} -
    - -{{if $.EventLogs}} -


    -

    Family: {{$.Family}}

    - -{{if $.Expanded}}
    {{end}} -[Summary]{{if $.Expanded}}{{end}} - -{{if not $.Expanded}}{{end}} -[Expanded]{{if not $.Expanded}}{{end}} - - - - {{range $el := $.EventLogs}} - - - - - {{if $.Expanded}} - - - - - - {{range $el.Events}} - - - - - - {{end}} - {{end}} - {{end}} -
    WhenElapsed
    {{$el.When}}{{$el.ElapsedTime}}{{$el.Title}} -
    {{$el.Stack|trimSpace}}
    {{.WhenString}}{{elapsed .Elapsed}}.{{if .IsErr}}E{{else}}.{{end}}. {{.What}}
    -{{end}} - - -` diff --git a/vendor/golang.org/x/net/trace/histogram.go b/vendor/golang.org/x/net/trace/histogram.go deleted file mode 100644 index bb42aa5320d..00000000000 --- a/vendor/golang.org/x/net/trace/histogram.go +++ /dev/null @@ -1,356 +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 trace - -// This file implements histogramming for RPC statistics collection. - -import ( - "bytes" - "fmt" - "html/template" - "log" - "math" - - "golang.org/x/net/internal/timeseries" -) - -const ( - bucketCount = 38 -) - -// histogram keeps counts of values in buckets that are spaced -// out in powers of 2: 0-1, 2-3, 4-7... -// histogram implements timeseries.Observable -type histogram struct { - sum int64 // running total of measurements - sumOfSquares float64 // square of running total - buckets []int64 // bucketed values for histogram - value int // holds a single value as an optimization - valueCount int64 // number of values recorded for single value -} - -// AddMeasurement records a value measurement observation to the histogram. -func (h *histogram) addMeasurement(value int64) { - // TODO: assert invariant - h.sum += value - h.sumOfSquares += float64(value) * float64(value) - - bucketIndex := getBucket(value) - - if h.valueCount == 0 || (h.valueCount > 0 && h.value == bucketIndex) { - h.value = bucketIndex - h.valueCount++ - } else { - h.allocateBuckets() - h.buckets[bucketIndex]++ - } -} - -func (h *histogram) allocateBuckets() { - if h.buckets == nil { - h.buckets = make([]int64, bucketCount) - h.buckets[h.value] = h.valueCount - h.value = 0 - h.valueCount = -1 - } -} - -func log2(i int64) int { - n := 0 - for ; i >= 0x100; i >>= 8 { - n += 8 - } - for ; i > 0; i >>= 1 { - n += 1 - } - return n -} - -func getBucket(i int64) (index int) { - index = log2(i) - 1 - if index < 0 { - index = 0 - } - if index >= bucketCount { - index = bucketCount - 1 - } - return -} - -// Total returns the number of recorded observations. -func (h *histogram) total() (total int64) { - if h.valueCount >= 0 { - total = h.valueCount - } - for _, val := range h.buckets { - total += int64(val) - } - return -} - -// Average returns the average value of recorded observations. -func (h *histogram) average() float64 { - t := h.total() - if t == 0 { - return 0 - } - return float64(h.sum) / float64(t) -} - -// Variance returns the variance of recorded observations. -func (h *histogram) variance() float64 { - t := float64(h.total()) - if t == 0 { - return 0 - } - s := float64(h.sum) / t - return h.sumOfSquares/t - s*s -} - -// StandardDeviation returns the standard deviation of recorded observations. -func (h *histogram) standardDeviation() float64 { - return math.Sqrt(h.variance()) -} - -// PercentileBoundary estimates the value that the given fraction of recorded -// observations are less than. -func (h *histogram) percentileBoundary(percentile float64) int64 { - total := h.total() - - // Corner cases (make sure result is strictly less than Total()) - if total == 0 { - return 0 - } else if total == 1 { - return int64(h.average()) - } - - percentOfTotal := round(float64(total) * percentile) - var runningTotal int64 - - for i := range h.buckets { - value := h.buckets[i] - runningTotal += value - if runningTotal == percentOfTotal { - // We hit an exact bucket boundary. If the next bucket has data, it is a - // good estimate of the value. If the bucket is empty, we interpolate the - // midpoint between the next bucket's boundary and the next non-zero - // bucket. If the remaining buckets are all empty, then we use the - // boundary for the next bucket as the estimate. - j := uint8(i + 1) - min := bucketBoundary(j) - if runningTotal < total { - for h.buckets[j] == 0 { - j++ - } - } - max := bucketBoundary(j) - return min + round(float64(max-min)/2) - } else if runningTotal > percentOfTotal { - // The value is in this bucket. Interpolate the value. - delta := runningTotal - percentOfTotal - percentBucket := float64(value-delta) / float64(value) - bucketMin := bucketBoundary(uint8(i)) - nextBucketMin := bucketBoundary(uint8(i + 1)) - bucketSize := nextBucketMin - bucketMin - return bucketMin + round(percentBucket*float64(bucketSize)) - } - } - return bucketBoundary(bucketCount - 1) -} - -// Median returns the estimated median of the observed values. -func (h *histogram) median() int64 { - return h.percentileBoundary(0.5) -} - -// Add adds other to h. -func (h *histogram) Add(other timeseries.Observable) { - o := other.(*histogram) - if o.valueCount == 0 { - // Other histogram is empty - } else if h.valueCount >= 0 && o.valueCount > 0 && h.value == o.value { - // Both have a single bucketed value, aggregate them - h.valueCount += o.valueCount - } else { - // Two different values necessitate buckets in this histogram - h.allocateBuckets() - if o.valueCount >= 0 { - h.buckets[o.value] += o.valueCount - } else { - for i := range h.buckets { - h.buckets[i] += o.buckets[i] - } - } - } - h.sumOfSquares += o.sumOfSquares - h.sum += o.sum -} - -// Clear resets the histogram to an empty state, removing all observed values. -func (h *histogram) Clear() { - h.buckets = nil - h.value = 0 - h.valueCount = 0 - h.sum = 0 - h.sumOfSquares = 0 -} - -// CopyFrom copies from other, which must be a *histogram, into h. -func (h *histogram) CopyFrom(other timeseries.Observable) { - o := other.(*histogram) - if o.valueCount == -1 { - h.allocateBuckets() - copy(h.buckets, o.buckets) - } - h.sum = o.sum - h.sumOfSquares = o.sumOfSquares - h.value = o.value - h.valueCount = o.valueCount -} - -// Multiply scales the histogram by the specified ratio. -func (h *histogram) Multiply(ratio float64) { - if h.valueCount == -1 { - for i := range h.buckets { - h.buckets[i] = int64(float64(h.buckets[i]) * ratio) - } - } else { - h.valueCount = int64(float64(h.valueCount) * ratio) - } - h.sum = int64(float64(h.sum) * ratio) - h.sumOfSquares = h.sumOfSquares * ratio -} - -// New creates a new histogram. -func (h *histogram) New() timeseries.Observable { - r := new(histogram) - r.Clear() - return r -} - -func (h *histogram) String() string { - return fmt.Sprintf("%d, %f, %d, %d, %v", - h.sum, h.sumOfSquares, h.value, h.valueCount, h.buckets) -} - -// round returns the closest int64 to the argument -func round(in float64) int64 { - return int64(math.Floor(in + 0.5)) -} - -// bucketBoundary returns the first value in the bucket. -func bucketBoundary(bucket uint8) int64 { - if bucket == 0 { - return 0 - } - return 1 << bucket -} - -// bucketData holds data about a specific bucket for use in distTmpl. -type bucketData struct { - Lower, Upper int64 - N int64 - Pct, CumulativePct float64 - GraphWidth int -} - -// data holds data about a Distribution for use in distTmpl. -type data struct { - Buckets []*bucketData - Count, Median int64 - Mean, StandardDeviation float64 -} - -// maxHTMLBarWidth is the maximum width of the HTML bar for visualizing buckets. -const maxHTMLBarWidth = 350.0 - -// newData returns data representing h for use in distTmpl. -func (h *histogram) newData() *data { - // Force the allocation of buckets to simplify the rendering implementation - h.allocateBuckets() - // We scale the bars on the right so that the largest bar is - // maxHTMLBarWidth pixels in width. - maxBucket := int64(0) - for _, n := range h.buckets { - if n > maxBucket { - maxBucket = n - } - } - total := h.total() - barsizeMult := maxHTMLBarWidth / float64(maxBucket) - var pctMult float64 - if total == 0 { - pctMult = 1.0 - } else { - pctMult = 100.0 / float64(total) - } - - buckets := make([]*bucketData, len(h.buckets)) - runningTotal := int64(0) - for i, n := range h.buckets { - if n == 0 { - continue - } - runningTotal += n - var upperBound int64 - if i < bucketCount-1 { - upperBound = bucketBoundary(uint8(i + 1)) - } else { - upperBound = math.MaxInt64 - } - buckets[i] = &bucketData{ - Lower: bucketBoundary(uint8(i)), - Upper: upperBound, - N: n, - Pct: float64(n) * pctMult, - CumulativePct: float64(runningTotal) * pctMult, - GraphWidth: int(float64(n) * barsizeMult), - } - } - return &data{ - Buckets: buckets, - Count: total, - Median: h.median(), - Mean: h.average(), - StandardDeviation: h.standardDeviation(), - } -} - -func (h *histogram) html() template.HTML { - buf := new(bytes.Buffer) - if err := distTmpl.Execute(buf, h.newData()); err != nil { - buf.Reset() - log.Printf("net/trace: couldn't execute template: %v", err) - } - return template.HTML(buf.String()) -} - -// Input: data -var distTmpl = template.Must(template.New("distTmpl").Parse(` - - - - - - - -
    Count: {{.Count}}Mean: {{printf "%.0f" .Mean}}StdDev: {{printf "%.0f" .StandardDeviation}}Median: {{.Median}}
    -
    - -{{range $b := .Buckets}} -{{if $b}} - - - - - - - - - -{{end}} -{{end}} -
    [{{.Lower}},{{.Upper}}){{.N}}{{printf "%#.3f" .Pct}}%{{printf "%#.3f" .CumulativePct}}%
    -`)) diff --git a/vendor/golang.org/x/net/trace/trace.go b/vendor/golang.org/x/net/trace/trace.go deleted file mode 100644 index 0767c8c69d9..00000000000 --- a/vendor/golang.org/x/net/trace/trace.go +++ /dev/null @@ -1,1059 +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 trace implements tracing of requests and long-lived objects. -It exports HTTP interfaces on /debug/requests and /debug/events. - -A trace.Trace provides tracing for short-lived objects, usually requests. -A request handler might be implemented like this: - - func fooHandler(w http.ResponseWriter, req *http.Request) { - tr := trace.New("mypkg.Foo", req.URL.Path) - defer tr.Finish() - ... - tr.LazyPrintf("some event %q happened", str) - ... - if err := somethingImportant(); err != nil { - tr.LazyPrintf("somethingImportant failed: %v", err) - tr.SetError() - } - } - -The /debug/requests HTTP endpoint organizes the traces by family, -errors, and duration. It also provides histogram of request duration -for each family. - -A trace.EventLog provides tracing for long-lived objects, such as RPC -connections. - - // A Fetcher fetches URL paths for a single domain. - type Fetcher struct { - domain string - events trace.EventLog - } - - func NewFetcher(domain string) *Fetcher { - return &Fetcher{ - domain, - trace.NewEventLog("mypkg.Fetcher", domain), - } - } - - func (f *Fetcher) Fetch(path string) (string, error) { - resp, err := http.Get("http://" + f.domain + "/" + path) - if err != nil { - f.events.Errorf("Get(%q) = %v", path, err) - return "", err - } - f.events.Printf("Get(%q) = %s", path, resp.Status) - ... - } - - func (f *Fetcher) Close() error { - f.events.Finish() - return nil - } - -The /debug/events HTTP endpoint organizes the event logs by family and -by time since the last error. The expanded view displays recent log -entries and the log's call stack. -*/ -package trace // import "golang.org/x/net/trace" - -import ( - "bytes" - "fmt" - "html/template" - "io" - "log" - "net" - "net/http" - "runtime" - "sort" - "strconv" - "sync" - "sync/atomic" - "time" - - "golang.org/x/net/context" - "golang.org/x/net/internal/timeseries" -) - -// DebugUseAfterFinish controls whether to debug uses of Trace values after finishing. -// FOR DEBUGGING ONLY. This will slow down the program. -var DebugUseAfterFinish = false - -// AuthRequest determines whether a specific request is permitted to load the -// /debug/requests or /debug/events pages. -// -// It returns two bools; the first indicates whether the page may be viewed at all, -// and the second indicates whether sensitive events will be shown. -// -// AuthRequest may be replaced by a program to customise its authorisation requirements. -// -// The default AuthRequest function returns (true, true) iff the request comes from localhost/127.0.0.1/[::1]. -var AuthRequest = func(req *http.Request) (any, sensitive bool) { - host, _, err := net.SplitHostPort(req.RemoteAddr) - switch { - case err != nil: // Badly formed address; fail closed. - return false, false - case host == "localhost" || host == "127.0.0.1" || host == "::1": - return true, true - default: - return false, false - } -} - -func init() { - http.HandleFunc("/debug/requests", func(w http.ResponseWriter, req *http.Request) { - any, sensitive := AuthRequest(req) - if !any { - http.Error(w, "not allowed", http.StatusUnauthorized) - return - } - w.Header().Set("Content-Type", "text/html; charset=utf-8") - Render(w, req, sensitive) - }) - http.HandleFunc("/debug/events", func(w http.ResponseWriter, req *http.Request) { - any, sensitive := AuthRequest(req) - if !any { - http.Error(w, "not allowed", http.StatusUnauthorized) - return - } - w.Header().Set("Content-Type", "text/html; charset=utf-8") - RenderEvents(w, req, sensitive) - }) -} - -// Render renders the HTML page typically served at /debug/requests. -// It does not do any auth checking; see AuthRequest for the default auth check -// used by the handler registered on http.DefaultServeMux. -// req may be nil. -func Render(w io.Writer, req *http.Request, sensitive bool) { - data := &struct { - Families []string - ActiveTraceCount map[string]int - CompletedTraces map[string]*family - - // Set when a bucket has been selected. - Traces traceList - Family string - Bucket int - Expanded bool - Traced bool - Active bool - ShowSensitive bool // whether to show sensitive events - - Histogram template.HTML - HistogramWindow string // e.g. "last minute", "last hour", "all time" - - // If non-zero, the set of traces is a partial set, - // and this is the total number. - Total int - }{ - CompletedTraces: completedTraces, - } - - data.ShowSensitive = sensitive - if req != nil { - // Allow show_sensitive=0 to force hiding of sensitive data for testing. - // This only goes one way; you can't use show_sensitive=1 to see things. - if req.FormValue("show_sensitive") == "0" { - data.ShowSensitive = false - } - - if exp, err := strconv.ParseBool(req.FormValue("exp")); err == nil { - data.Expanded = exp - } - if exp, err := strconv.ParseBool(req.FormValue("rtraced")); err == nil { - data.Traced = exp - } - } - - completedMu.RLock() - data.Families = make([]string, 0, len(completedTraces)) - for fam := range completedTraces { - data.Families = append(data.Families, fam) - } - completedMu.RUnlock() - sort.Strings(data.Families) - - // We are careful here to minimize the time spent locking activeMu, - // since that lock is required every time an RPC starts and finishes. - data.ActiveTraceCount = make(map[string]int, len(data.Families)) - activeMu.RLock() - for fam, s := range activeTraces { - data.ActiveTraceCount[fam] = s.Len() - } - activeMu.RUnlock() - - var ok bool - data.Family, data.Bucket, ok = parseArgs(req) - switch { - case !ok: - // No-op - case data.Bucket == -1: - data.Active = true - n := data.ActiveTraceCount[data.Family] - data.Traces = getActiveTraces(data.Family) - if len(data.Traces) < n { - data.Total = n - } - case data.Bucket < bucketsPerFamily: - if b := lookupBucket(data.Family, data.Bucket); b != nil { - data.Traces = b.Copy(data.Traced) - } - default: - if f := getFamily(data.Family, false); f != nil { - var obs timeseries.Observable - f.LatencyMu.RLock() - switch o := data.Bucket - bucketsPerFamily; o { - case 0: - obs = f.Latency.Minute() - data.HistogramWindow = "last minute" - case 1: - obs = f.Latency.Hour() - data.HistogramWindow = "last hour" - case 2: - obs = f.Latency.Total() - data.HistogramWindow = "all time" - } - f.LatencyMu.RUnlock() - if obs != nil { - data.Histogram = obs.(*histogram).html() - } - } - } - - if data.Traces != nil { - defer data.Traces.Free() - sort.Sort(data.Traces) - } - - completedMu.RLock() - defer completedMu.RUnlock() - if err := pageTmpl.ExecuteTemplate(w, "Page", data); err != nil { - log.Printf("net/trace: Failed executing template: %v", err) - } -} - -func parseArgs(req *http.Request) (fam string, b int, ok bool) { - if req == nil { - return "", 0, false - } - fam, bStr := req.FormValue("fam"), req.FormValue("b") - if fam == "" || bStr == "" { - return "", 0, false - } - b, err := strconv.Atoi(bStr) - if err != nil || b < -1 { - return "", 0, false - } - - return fam, b, true -} - -func lookupBucket(fam string, b int) *traceBucket { - f := getFamily(fam, false) - if f == nil || b < 0 || b >= len(f.Buckets) { - return nil - } - return f.Buckets[b] -} - -type contextKeyT string - -var contextKey = contextKeyT("golang.org/x/net/trace.Trace") - -// NewContext returns a copy of the parent context -// and associates it with a Trace. -func NewContext(ctx context.Context, tr Trace) context.Context { - return context.WithValue(ctx, contextKey, tr) -} - -// FromContext returns the Trace bound to the context, if any. -func FromContext(ctx context.Context) (tr Trace, ok bool) { - tr, ok = ctx.Value(contextKey).(Trace) - return -} - -// Trace represents an active request. -type Trace interface { - // LazyLog adds x to the event log. It will be evaluated each time the - // /debug/requests page is rendered. Any memory referenced by x will be - // pinned until the trace is finished and later discarded. - LazyLog(x fmt.Stringer, sensitive bool) - - // LazyPrintf evaluates its arguments with fmt.Sprintf each time the - // /debug/requests page is rendered. Any memory referenced by a will be - // pinned until the trace is finished and later discarded. - LazyPrintf(format string, a ...interface{}) - - // SetError declares that this trace resulted in an error. - SetError() - - // SetRecycler sets a recycler for the trace. - // f will be called for each event passed to LazyLog at a time when - // it is no longer required, whether while the trace is still active - // and the event is discarded, or when a completed trace is discarded. - SetRecycler(f func(interface{})) - - // SetTraceInfo sets the trace info for the trace. - // This is currently unused. - SetTraceInfo(traceID, spanID uint64) - - // SetMaxEvents sets the maximum number of events that will be stored - // in the trace. This has no effect if any events have already been - // added to the trace. - SetMaxEvents(m int) - - // Finish declares that this trace is complete. - // The trace should not be used after calling this method. - Finish() -} - -type lazySprintf struct { - format string - a []interface{} -} - -func (l *lazySprintf) String() string { - return fmt.Sprintf(l.format, l.a...) -} - -// New returns a new Trace with the specified family and title. -func New(family, title string) Trace { - tr := newTrace() - tr.ref() - tr.Family, tr.Title = family, title - tr.Start = time.Now() - tr.events = make([]event, 0, maxEventsPerTrace) - - activeMu.RLock() - s := activeTraces[tr.Family] - activeMu.RUnlock() - if s == nil { - activeMu.Lock() - s = activeTraces[tr.Family] // check again - if s == nil { - s = new(traceSet) - activeTraces[tr.Family] = s - } - activeMu.Unlock() - } - s.Add(tr) - - // Trigger allocation of the completed trace structure for this family. - // This will cause the family to be present in the request page during - // the first trace of this family. We don't care about the return value, - // nor is there any need for this to run inline, so we execute it in its - // own goroutine, but only if the family isn't allocated yet. - completedMu.RLock() - if _, ok := completedTraces[tr.Family]; !ok { - go allocFamily(tr.Family) - } - completedMu.RUnlock() - - return tr -} - -func (tr *trace) Finish() { - tr.Elapsed = time.Now().Sub(tr.Start) - if DebugUseAfterFinish { - buf := make([]byte, 4<<10) // 4 KB should be enough - n := runtime.Stack(buf, false) - tr.finishStack = buf[:n] - } - - activeMu.RLock() - m := activeTraces[tr.Family] - activeMu.RUnlock() - m.Remove(tr) - - f := getFamily(tr.Family, true) - for _, b := range f.Buckets { - if b.Cond.match(tr) { - b.Add(tr) - } - } - // Add a sample of elapsed time as microseconds to the family's timeseries - h := new(histogram) - h.addMeasurement(tr.Elapsed.Nanoseconds() / 1e3) - f.LatencyMu.Lock() - f.Latency.Add(h) - f.LatencyMu.Unlock() - - tr.unref() // matches ref in New -} - -const ( - bucketsPerFamily = 9 - tracesPerBucket = 10 - maxActiveTraces = 20 // Maximum number of active traces to show. - maxEventsPerTrace = 10 - numHistogramBuckets = 38 -) - -var ( - // The active traces. - activeMu sync.RWMutex - activeTraces = make(map[string]*traceSet) // family -> traces - - // Families of completed traces. - completedMu sync.RWMutex - completedTraces = make(map[string]*family) // family -> traces -) - -type traceSet struct { - mu sync.RWMutex - m map[*trace]bool - - // We could avoid the entire map scan in FirstN by having a slice of all the traces - // ordered by start time, and an index into that from the trace struct, with a periodic - // repack of the slice after enough traces finish; we could also use a skip list or similar. - // However, that would shift some of the expense from /debug/requests time to RPC time, - // which is probably the wrong trade-off. -} - -func (ts *traceSet) Len() int { - ts.mu.RLock() - defer ts.mu.RUnlock() - return len(ts.m) -} - -func (ts *traceSet) Add(tr *trace) { - ts.mu.Lock() - if ts.m == nil { - ts.m = make(map[*trace]bool) - } - ts.m[tr] = true - ts.mu.Unlock() -} - -func (ts *traceSet) Remove(tr *trace) { - ts.mu.Lock() - delete(ts.m, tr) - ts.mu.Unlock() -} - -// FirstN returns the first n traces ordered by time. -func (ts *traceSet) FirstN(n int) traceList { - ts.mu.RLock() - defer ts.mu.RUnlock() - - if n > len(ts.m) { - n = len(ts.m) - } - trl := make(traceList, 0, n) - - // Fast path for when no selectivity is needed. - if n == len(ts.m) { - for tr := range ts.m { - tr.ref() - trl = append(trl, tr) - } - sort.Sort(trl) - return trl - } - - // Pick the oldest n traces. - // This is inefficient. See the comment in the traceSet struct. - for tr := range ts.m { - // Put the first n traces into trl in the order they occur. - // When we have n, sort trl, and thereafter maintain its order. - if len(trl) < n { - tr.ref() - trl = append(trl, tr) - if len(trl) == n { - // This is guaranteed to happen exactly once during this loop. - sort.Sort(trl) - } - continue - } - if tr.Start.After(trl[n-1].Start) { - continue - } - - // Find where to insert this one. - tr.ref() - i := sort.Search(n, func(i int) bool { return trl[i].Start.After(tr.Start) }) - trl[n-1].unref() - copy(trl[i+1:], trl[i:]) - trl[i] = tr - } - - return trl -} - -func getActiveTraces(fam string) traceList { - activeMu.RLock() - s := activeTraces[fam] - activeMu.RUnlock() - if s == nil { - return nil - } - return s.FirstN(maxActiveTraces) -} - -func getFamily(fam string, allocNew bool) *family { - completedMu.RLock() - f := completedTraces[fam] - completedMu.RUnlock() - if f == nil && allocNew { - f = allocFamily(fam) - } - return f -} - -func allocFamily(fam string) *family { - completedMu.Lock() - defer completedMu.Unlock() - f := completedTraces[fam] - if f == nil { - f = newFamily() - completedTraces[fam] = f - } - return f -} - -// family represents a set of trace buckets and associated latency information. -type family struct { - // traces may occur in multiple buckets. - Buckets [bucketsPerFamily]*traceBucket - - // latency time series - LatencyMu sync.RWMutex - Latency *timeseries.MinuteHourSeries -} - -func newFamily() *family { - return &family{ - Buckets: [bucketsPerFamily]*traceBucket{ - {Cond: minCond(0)}, - {Cond: minCond(50 * time.Millisecond)}, - {Cond: minCond(100 * time.Millisecond)}, - {Cond: minCond(200 * time.Millisecond)}, - {Cond: minCond(500 * time.Millisecond)}, - {Cond: minCond(1 * time.Second)}, - {Cond: minCond(10 * time.Second)}, - {Cond: minCond(100 * time.Second)}, - {Cond: errorCond{}}, - }, - Latency: timeseries.NewMinuteHourSeries(func() timeseries.Observable { return new(histogram) }), - } -} - -// traceBucket represents a size-capped bucket of historic traces, -// along with a condition for a trace to belong to the bucket. -type traceBucket struct { - Cond cond - - // Ring buffer implementation of a fixed-size FIFO queue. - mu sync.RWMutex - buf [tracesPerBucket]*trace - start int // < tracesPerBucket - length int // <= tracesPerBucket -} - -func (b *traceBucket) Add(tr *trace) { - b.mu.Lock() - defer b.mu.Unlock() - - i := b.start + b.length - if i >= tracesPerBucket { - i -= tracesPerBucket - } - if b.length == tracesPerBucket { - // "Remove" an element from the bucket. - b.buf[i].unref() - b.start++ - if b.start == tracesPerBucket { - b.start = 0 - } - } - b.buf[i] = tr - if b.length < tracesPerBucket { - b.length++ - } - tr.ref() -} - -// Copy returns a copy of the traces in the bucket. -// If tracedOnly is true, only the traces with trace information will be returned. -// The logs will be ref'd before returning; the caller should call -// the Free method when it is done with them. -// TODO(dsymonds): keep track of traced requests in separate buckets. -func (b *traceBucket) Copy(tracedOnly bool) traceList { - b.mu.RLock() - defer b.mu.RUnlock() - - trl := make(traceList, 0, b.length) - for i, x := 0, b.start; i < b.length; i++ { - tr := b.buf[x] - if !tracedOnly || tr.spanID != 0 { - tr.ref() - trl = append(trl, tr) - } - x++ - if x == b.length { - x = 0 - } - } - return trl -} - -func (b *traceBucket) Empty() bool { - b.mu.RLock() - defer b.mu.RUnlock() - return b.length == 0 -} - -// cond represents a condition on a trace. -type cond interface { - match(t *trace) bool - String() string -} - -type minCond time.Duration - -func (m minCond) match(t *trace) bool { return t.Elapsed >= time.Duration(m) } -func (m minCond) String() string { return fmt.Sprintf("≥%gs", time.Duration(m).Seconds()) } - -type errorCond struct{} - -func (e errorCond) match(t *trace) bool { return t.IsError } -func (e errorCond) String() string { return "errors" } - -type traceList []*trace - -// Free calls unref on each element of the list. -func (trl traceList) Free() { - for _, t := range trl { - t.unref() - } -} - -// traceList may be sorted in reverse chronological order. -func (trl traceList) Len() int { return len(trl) } -func (trl traceList) Less(i, j int) bool { return trl[i].Start.After(trl[j].Start) } -func (trl traceList) Swap(i, j int) { trl[i], trl[j] = trl[j], trl[i] } - -// An event is a timestamped log entry in a trace. -type event struct { - When time.Time - Elapsed time.Duration // since previous event in trace - NewDay bool // whether this event is on a different day to the previous event - Recyclable bool // whether this event was passed via LazyLog - What interface{} // string or fmt.Stringer - Sensitive bool // whether this event contains sensitive information -} - -// WhenString returns a string representation of the elapsed time of the event. -// It will include the date if midnight was crossed. -func (e event) WhenString() string { - if e.NewDay { - return e.When.Format("2006/01/02 15:04:05.000000") - } - return e.When.Format("15:04:05.000000") -} - -// discarded represents a number of discarded events. -// It is stored as *discarded to make it easier to update in-place. -type discarded int - -func (d *discarded) String() string { - return fmt.Sprintf("(%d events discarded)", int(*d)) -} - -// trace represents an active or complete request, -// either sent or received by this program. -type trace struct { - // Family is the top-level grouping of traces to which this belongs. - Family string - - // Title is the title of this trace. - Title string - - // Timing information. - Start time.Time - Elapsed time.Duration // zero while active - - // Trace information if non-zero. - traceID uint64 - spanID uint64 - - // Whether this trace resulted in an error. - IsError bool - - // Append-only sequence of events (modulo discards). - mu sync.RWMutex - events []event - - refs int32 // how many buckets this is in - recycler func(interface{}) - disc discarded // scratch space to avoid allocation - - finishStack []byte // where finish was called, if DebugUseAfterFinish is set -} - -func (tr *trace) reset() { - // Clear all but the mutex. Mutexes may not be copied, even when unlocked. - tr.Family = "" - tr.Title = "" - tr.Start = time.Time{} - tr.Elapsed = 0 - tr.traceID = 0 - tr.spanID = 0 - tr.IsError = false - tr.events = nil - tr.refs = 0 - tr.recycler = nil - tr.disc = 0 - tr.finishStack = nil -} - -// delta returns the elapsed time since the last event or the trace start, -// and whether it spans midnight. -// L >= tr.mu -func (tr *trace) delta(t time.Time) (time.Duration, bool) { - if len(tr.events) == 0 { - return t.Sub(tr.Start), false - } - prev := tr.events[len(tr.events)-1].When - return t.Sub(prev), prev.Day() != t.Day() -} - -func (tr *trace) addEvent(x interface{}, recyclable, sensitive bool) { - if DebugUseAfterFinish && tr.finishStack != nil { - buf := make([]byte, 4<<10) // 4 KB should be enough - n := runtime.Stack(buf, false) - log.Printf("net/trace: trace used after finish:\nFinished at:\n%s\nUsed at:\n%s", tr.finishStack, buf[:n]) - } - - /* - NOTE TO DEBUGGERS - - If you are here because your program panicked in this code, - it is almost definitely the fault of code using this package, - and very unlikely to be the fault of this code. - - The most likely scenario is that some code elsewhere is using - a requestz.Trace after its Finish method is called. - You can temporarily set the DebugUseAfterFinish var - to help discover where that is; do not leave that var set, - since it makes this package much less efficient. - */ - - e := event{When: time.Now(), What: x, Recyclable: recyclable, Sensitive: sensitive} - tr.mu.Lock() - e.Elapsed, e.NewDay = tr.delta(e.When) - if len(tr.events) < cap(tr.events) { - tr.events = append(tr.events, e) - } else { - // Discard the middle events. - di := int((cap(tr.events) - 1) / 2) - if d, ok := tr.events[di].What.(*discarded); ok { - (*d)++ - } else { - // disc starts at two to count for the event it is replacing, - // plus the next one that we are about to drop. - tr.disc = 2 - if tr.recycler != nil && tr.events[di].Recyclable { - go tr.recycler(tr.events[di].What) - } - tr.events[di].What = &tr.disc - } - // The timestamp of the discarded meta-event should be - // the time of the last event it is representing. - tr.events[di].When = tr.events[di+1].When - - if tr.recycler != nil && tr.events[di+1].Recyclable { - go tr.recycler(tr.events[di+1].What) - } - copy(tr.events[di+1:], tr.events[di+2:]) - tr.events[cap(tr.events)-1] = e - } - tr.mu.Unlock() -} - -func (tr *trace) LazyLog(x fmt.Stringer, sensitive bool) { - tr.addEvent(x, true, sensitive) -} - -func (tr *trace) LazyPrintf(format string, a ...interface{}) { - tr.addEvent(&lazySprintf{format, a}, false, false) -} - -func (tr *trace) SetError() { tr.IsError = true } - -func (tr *trace) SetRecycler(f func(interface{})) { - tr.recycler = f -} - -func (tr *trace) SetTraceInfo(traceID, spanID uint64) { - tr.traceID, tr.spanID = traceID, spanID -} - -func (tr *trace) SetMaxEvents(m int) { - // Always keep at least three events: first, discarded count, last. - if len(tr.events) == 0 && m > 3 { - tr.events = make([]event, 0, m) - } -} - -func (tr *trace) ref() { - atomic.AddInt32(&tr.refs, 1) -} - -func (tr *trace) unref() { - if atomic.AddInt32(&tr.refs, -1) == 0 { - if tr.recycler != nil { - // freeTrace clears tr, so we hold tr.recycler and tr.events here. - go func(f func(interface{}), es []event) { - for _, e := range es { - if e.Recyclable { - f(e.What) - } - } - }(tr.recycler, tr.events) - } - - freeTrace(tr) - } -} - -func (tr *trace) When() string { - return tr.Start.Format("2006/01/02 15:04:05.000000") -} - -func (tr *trace) ElapsedTime() string { - t := tr.Elapsed - if t == 0 { - // Active trace. - t = time.Since(tr.Start) - } - return fmt.Sprintf("%.6f", t.Seconds()) -} - -func (tr *trace) Events() []event { - tr.mu.RLock() - defer tr.mu.RUnlock() - return tr.events -} - -var traceFreeList = make(chan *trace, 1000) // TODO(dsymonds): Use sync.Pool? - -// newTrace returns a trace ready to use. -func newTrace() *trace { - select { - case tr := <-traceFreeList: - return tr - default: - return new(trace) - } -} - -// freeTrace adds tr to traceFreeList if there's room. -// This is non-blocking. -func freeTrace(tr *trace) { - if DebugUseAfterFinish { - return // never reuse - } - tr.reset() - select { - case traceFreeList <- tr: - default: - } -} - -func elapsed(d time.Duration) string { - b := []byte(fmt.Sprintf("%.6f", d.Seconds())) - - // For subsecond durations, blank all zeros before decimal point, - // and all zeros between the decimal point and the first non-zero digit. - if d < time.Second { - dot := bytes.IndexByte(b, '.') - for i := 0; i < dot; i++ { - b[i] = ' ' - } - for i := dot + 1; i < len(b); i++ { - if b[i] == '0' { - b[i] = ' ' - } else { - break - } - } - } - - return string(b) -} - -var pageTmpl = template.Must(template.New("Page").Funcs(template.FuncMap{ - "elapsed": elapsed, - "add": func(a, b int) int { return a + b }, -}).Parse(pageHTML)) - -const pageHTML = ` -{{template "Prolog" .}} -{{template "StatusTable" .}} -{{template "Epilog" .}} - -{{define "Prolog"}} - - - /debug/requests - - - - -

    /debug/requests

    -{{end}} {{/* end of Prolog */}} - -{{define "StatusTable"}} - - {{range $fam := .Families}} - - - - {{$n := index $.ActiveTraceCount $fam}} - - - {{$f := index $.CompletedTraces $fam}} - {{range $i, $b := $f.Buckets}} - {{$empty := $b.Empty}} - - {{end}} - - {{$nb := len $f.Buckets}} - - - - - - {{end}} -
    {{$fam}} - {{if $n}}{{end}} - [{{$n}} active] - {{if $n}}{{end}} - - {{if not $empty}}{{end}} - [{{.Cond}}] - {{if not $empty}}{{end}} - - [minute] - - [hour] - - [total] -
    -{{end}} {{/* end of StatusTable */}} - -{{define "Epilog"}} -{{if $.Traces}} -
    -

    Family: {{$.Family}}

    - -{{if or $.Expanded $.Traced}} - [Normal/Summary] -{{else}} - [Normal/Summary] -{{end}} - -{{if or (not $.Expanded) $.Traced}} - [Normal/Expanded] -{{else}} - [Normal/Expanded] -{{end}} - -{{if not $.Active}} - {{if or $.Expanded (not $.Traced)}} - [Traced/Summary] - {{else}} - [Traced/Summary] - {{end}} - {{if or (not $.Expanded) (not $.Traced)}} - [Traced/Expanded] - {{else}} - [Traced/Expanded] - {{end}} -{{end}} - -{{if $.Total}} -

    Showing {{len $.Traces}} of {{$.Total}} traces.

    -{{end}} - - - - - {{range $tr := $.Traces}} - - - - - {{/* TODO: include traceID/spanID */}} - - {{if $.Expanded}} - {{range $tr.Events}} - - - - - - {{end}} - {{end}} - {{end}} -
    - {{if $.Active}}Active{{else}}Completed{{end}} Requests -
    WhenElapsed (s)
    {{$tr.When}}{{$tr.ElapsedTime}}{{$tr.Title}}
    {{.WhenString}}{{elapsed .Elapsed}}{{if or $.ShowSensitive (not .Sensitive)}}... {{.What}}{{else}}[redacted]{{end}}
    -{{end}} {{/* if $.Traces */}} - -{{if $.Histogram}} -

    Latency (µs) of {{$.Family}} over {{$.HistogramWindow}}

    -{{$.Histogram}} -{{end}} {{/* if $.Histogram */}} - - - -{{end}} {{/* end of Epilog */}} -` diff --git a/vendor/golang.org/x/net/webdav/file.go b/vendor/golang.org/x/net/webdav/file.go deleted file mode 100644 index 9ba1ca16e5a..00000000000 --- a/vendor/golang.org/x/net/webdav/file.go +++ /dev/null @@ -1,795 +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 webdav - -import ( - "io" - "net/http" - "os" - "path" - "path/filepath" - "strings" - "sync" - "time" - - "golang.org/x/net/webdav/internal/xml" -) - -// slashClean is equivalent to but slightly more efficient than -// path.Clean("/" + name). -func slashClean(name string) string { - if name == "" || name[0] != '/' { - name = "/" + name - } - return path.Clean(name) -} - -// A FileSystem implements access to a collection of named files. The elements -// in a file path are separated by slash ('/', U+002F) characters, regardless -// of host operating system convention. -// -// Each method has the same semantics as the os package's function of the same -// name. -// -// Note that the os.Rename documentation says that "OS-specific restrictions -// might apply". In particular, whether or not renaming a file or directory -// overwriting another existing file or directory is an error is OS-dependent. -type FileSystem interface { - Mkdir(name string, perm os.FileMode) error - OpenFile(name string, flag int, perm os.FileMode) (File, error) - RemoveAll(name string) error - Rename(oldName, newName string) error - Stat(name string) (os.FileInfo, error) -} - -// A File is returned by a FileSystem's OpenFile method and can be served by a -// Handler. -// -// A File may optionally implement the DeadPropsHolder interface, if it can -// load and save dead properties. -type File interface { - http.File - io.Writer -} - -// A Dir implements FileSystem using the native file system restricted to a -// specific directory tree. -// -// While the FileSystem.OpenFile method takes '/'-separated paths, a Dir's -// string value is a filename on the native file system, not a URL, so it is -// separated by filepath.Separator, which isn't necessarily '/'. -// -// An empty Dir is treated as ".". -type Dir string - -func (d Dir) resolve(name string) string { - // This implementation is based on Dir.Open's code in the standard net/http package. - if filepath.Separator != '/' && strings.IndexRune(name, filepath.Separator) >= 0 || - strings.Contains(name, "\x00") { - return "" - } - dir := string(d) - if dir == "" { - dir = "." - } - return filepath.Join(dir, filepath.FromSlash(slashClean(name))) -} - -func (d Dir) Mkdir(name string, perm os.FileMode) error { - if name = d.resolve(name); name == "" { - return os.ErrNotExist - } - return os.Mkdir(name, perm) -} - -func (d Dir) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - if name = d.resolve(name); name == "" { - return nil, os.ErrNotExist - } - f, err := os.OpenFile(name, flag, perm) - if err != nil { - return nil, err - } - return f, nil -} - -func (d Dir) RemoveAll(name string) error { - if name = d.resolve(name); name == "" { - return os.ErrNotExist - } - if name == filepath.Clean(string(d)) { - // Prohibit removing the virtual root directory. - return os.ErrInvalid - } - return os.RemoveAll(name) -} - -func (d Dir) Rename(oldName, newName string) error { - if oldName = d.resolve(oldName); oldName == "" { - return os.ErrNotExist - } - if newName = d.resolve(newName); newName == "" { - return os.ErrNotExist - } - if root := filepath.Clean(string(d)); root == oldName || root == newName { - // Prohibit renaming from or to the virtual root directory. - return os.ErrInvalid - } - return os.Rename(oldName, newName) -} - -func (d Dir) Stat(name string) (os.FileInfo, error) { - if name = d.resolve(name); name == "" { - return nil, os.ErrNotExist - } - return os.Stat(name) -} - -// NewMemFS returns a new in-memory FileSystem implementation. -func NewMemFS() FileSystem { - return &memFS{ - root: memFSNode{ - children: make(map[string]*memFSNode), - mode: 0660 | os.ModeDir, - modTime: time.Now(), - }, - } -} - -// A memFS implements FileSystem, storing all metadata and actual file data -// in-memory. No limits on filesystem size are used, so it is not recommended -// this be used where the clients are untrusted. -// -// Concurrent access is permitted. The tree structure is protected by a mutex, -// and each node's contents and metadata are protected by a per-node mutex. -// -// TODO: Enforce file permissions. -type memFS struct { - mu sync.Mutex - root memFSNode -} - -// TODO: clean up and rationalize the walk/find code. - -// walk walks the directory tree for the fullname, calling f at each step. If f -// returns an error, the walk will be aborted and return that same error. -// -// dir is the directory at that step, frag is the name fragment, and final is -// whether it is the final step. For example, walking "/foo/bar/x" will result -// in 3 calls to f: -// - "/", "foo", false -// - "/foo/", "bar", false -// - "/foo/bar/", "x", true -// The frag argument will be empty only if dir is the root node and the walk -// ends at that root node. -func (fs *memFS) walk(op, fullname string, f func(dir *memFSNode, frag string, final bool) error) error { - original := fullname - fullname = slashClean(fullname) - - // Strip any leading "/"s to make fullname a relative path, as the walk - // starts at fs.root. - if fullname[0] == '/' { - fullname = fullname[1:] - } - dir := &fs.root - - for { - frag, remaining := fullname, "" - i := strings.IndexRune(fullname, '/') - final := i < 0 - if !final { - frag, remaining = fullname[:i], fullname[i+1:] - } - if frag == "" && dir != &fs.root { - panic("webdav: empty path fragment for a clean path") - } - if err := f(dir, frag, final); err != nil { - return &os.PathError{ - Op: op, - Path: original, - Err: err, - } - } - if final { - break - } - child := dir.children[frag] - if child == nil { - return &os.PathError{ - Op: op, - Path: original, - Err: os.ErrNotExist, - } - } - if !child.mode.IsDir() { - return &os.PathError{ - Op: op, - Path: original, - Err: os.ErrInvalid, - } - } - dir, fullname = child, remaining - } - return nil -} - -// find returns the parent of the named node and the relative name fragment -// from the parent to the child. For example, if finding "/foo/bar/baz" then -// parent will be the node for "/foo/bar" and frag will be "baz". -// -// If the fullname names the root node, then parent, frag and err will be zero. -// -// find returns an error if the parent does not already exist or the parent -// isn't a directory, but it will not return an error per se if the child does -// not already exist. The error returned is either nil or an *os.PathError -// whose Op is op. -func (fs *memFS) find(op, fullname string) (parent *memFSNode, frag string, err error) { - err = fs.walk(op, fullname, func(parent0 *memFSNode, frag0 string, final bool) error { - if !final { - return nil - } - if frag0 != "" { - parent, frag = parent0, frag0 - } - return nil - }) - return parent, frag, err -} - -func (fs *memFS) Mkdir(name string, perm os.FileMode) error { - fs.mu.Lock() - defer fs.mu.Unlock() - - dir, frag, err := fs.find("mkdir", name) - if err != nil { - return err - } - if dir == nil { - // We can't create the root. - return os.ErrInvalid - } - if _, ok := dir.children[frag]; ok { - return os.ErrExist - } - dir.children[frag] = &memFSNode{ - children: make(map[string]*memFSNode), - mode: perm.Perm() | os.ModeDir, - modTime: time.Now(), - } - return nil -} - -func (fs *memFS) OpenFile(name string, flag int, perm os.FileMode) (File, error) { - fs.mu.Lock() - defer fs.mu.Unlock() - - dir, frag, err := fs.find("open", name) - if err != nil { - return nil, err - } - var n *memFSNode - if dir == nil { - // We're opening the root. - if flag&(os.O_WRONLY|os.O_RDWR) != 0 { - return nil, os.ErrPermission - } - n, frag = &fs.root, "/" - - } else { - n = dir.children[frag] - if flag&(os.O_SYNC|os.O_APPEND) != 0 { - // memFile doesn't support these flags yet. - return nil, os.ErrInvalid - } - if flag&os.O_CREATE != 0 { - if flag&os.O_EXCL != 0 && n != nil { - return nil, os.ErrExist - } - if n == nil { - n = &memFSNode{ - mode: perm.Perm(), - } - dir.children[frag] = n - } - } - if n == nil { - return nil, os.ErrNotExist - } - if flag&(os.O_WRONLY|os.O_RDWR) != 0 && flag&os.O_TRUNC != 0 { - n.mu.Lock() - n.data = nil - n.mu.Unlock() - } - } - - children := make([]os.FileInfo, 0, len(n.children)) - for cName, c := range n.children { - children = append(children, c.stat(cName)) - } - return &memFile{ - n: n, - nameSnapshot: frag, - childrenSnapshot: children, - }, nil -} - -func (fs *memFS) RemoveAll(name string) error { - fs.mu.Lock() - defer fs.mu.Unlock() - - dir, frag, err := fs.find("remove", name) - if err != nil { - return err - } - if dir == nil { - // We can't remove the root. - return os.ErrInvalid - } - delete(dir.children, frag) - return nil -} - -func (fs *memFS) Rename(oldName, newName string) error { - fs.mu.Lock() - defer fs.mu.Unlock() - - oldName = slashClean(oldName) - newName = slashClean(newName) - if oldName == newName { - return nil - } - if strings.HasPrefix(newName, oldName+"/") { - // We can't rename oldName to be a sub-directory of itself. - return os.ErrInvalid - } - - oDir, oFrag, err := fs.find("rename", oldName) - if err != nil { - return err - } - if oDir == nil { - // We can't rename from the root. - return os.ErrInvalid - } - - nDir, nFrag, err := fs.find("rename", newName) - if err != nil { - return err - } - if nDir == nil { - // We can't rename to the root. - return os.ErrInvalid - } - - oNode, ok := oDir.children[oFrag] - if !ok { - return os.ErrNotExist - } - if oNode.children != nil { - if nNode, ok := nDir.children[nFrag]; ok { - if nNode.children == nil { - return errNotADirectory - } - if len(nNode.children) != 0 { - return errDirectoryNotEmpty - } - } - } - delete(oDir.children, oFrag) - nDir.children[nFrag] = oNode - return nil -} - -func (fs *memFS) Stat(name string) (os.FileInfo, error) { - fs.mu.Lock() - defer fs.mu.Unlock() - - dir, frag, err := fs.find("stat", name) - if err != nil { - return nil, err - } - if dir == nil { - // We're stat'ting the root. - return fs.root.stat("/"), nil - } - if n, ok := dir.children[frag]; ok { - return n.stat(path.Base(name)), nil - } - return nil, os.ErrNotExist -} - -// A memFSNode represents a single entry in the in-memory filesystem and also -// implements os.FileInfo. -type memFSNode struct { - // children is protected by memFS.mu. - children map[string]*memFSNode - - mu sync.Mutex - data []byte - mode os.FileMode - modTime time.Time - deadProps map[xml.Name]Property -} - -func (n *memFSNode) stat(name string) *memFileInfo { - n.mu.Lock() - defer n.mu.Unlock() - return &memFileInfo{ - name: name, - size: int64(len(n.data)), - mode: n.mode, - modTime: n.modTime, - } -} - -func (n *memFSNode) DeadProps() (map[xml.Name]Property, error) { - n.mu.Lock() - defer n.mu.Unlock() - if len(n.deadProps) == 0 { - return nil, nil - } - ret := make(map[xml.Name]Property, len(n.deadProps)) - for k, v := range n.deadProps { - ret[k] = v - } - return ret, nil -} - -func (n *memFSNode) Patch(patches []Proppatch) ([]Propstat, error) { - n.mu.Lock() - defer n.mu.Unlock() - pstat := Propstat{Status: http.StatusOK} - for _, patch := range patches { - for _, p := range patch.Props { - pstat.Props = append(pstat.Props, Property{XMLName: p.XMLName}) - if patch.Remove { - delete(n.deadProps, p.XMLName) - continue - } - if n.deadProps == nil { - n.deadProps = map[xml.Name]Property{} - } - n.deadProps[p.XMLName] = p - } - } - return []Propstat{pstat}, nil -} - -type memFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -func (f *memFileInfo) Name() string { return f.name } -func (f *memFileInfo) Size() int64 { return f.size } -func (f *memFileInfo) Mode() os.FileMode { return f.mode } -func (f *memFileInfo) ModTime() time.Time { return f.modTime } -func (f *memFileInfo) IsDir() bool { return f.mode.IsDir() } -func (f *memFileInfo) Sys() interface{} { return nil } - -// A memFile is a File implementation for a memFSNode. It is a per-file (not -// per-node) read/write position, and a snapshot of the memFS' tree structure -// (a node's name and children) for that node. -type memFile struct { - n *memFSNode - nameSnapshot string - childrenSnapshot []os.FileInfo - // pos is protected by n.mu. - pos int -} - -// A *memFile implements the optional DeadPropsHolder interface. -var _ DeadPropsHolder = (*memFile)(nil) - -func (f *memFile) DeadProps() (map[xml.Name]Property, error) { return f.n.DeadProps() } -func (f *memFile) Patch(patches []Proppatch) ([]Propstat, error) { return f.n.Patch(patches) } - -func (f *memFile) Close() error { - return nil -} - -func (f *memFile) Read(p []byte) (int, error) { - f.n.mu.Lock() - defer f.n.mu.Unlock() - if f.n.mode.IsDir() { - return 0, os.ErrInvalid - } - if f.pos >= len(f.n.data) { - return 0, io.EOF - } - n := copy(p, f.n.data[f.pos:]) - f.pos += n - return n, nil -} - -func (f *memFile) Readdir(count int) ([]os.FileInfo, error) { - f.n.mu.Lock() - defer f.n.mu.Unlock() - if !f.n.mode.IsDir() { - return nil, os.ErrInvalid - } - old := f.pos - if old >= len(f.childrenSnapshot) { - // The os.File Readdir docs say that at the end of a directory, - // the error is io.EOF if count > 0 and nil if count <= 0. - if count > 0 { - return nil, io.EOF - } - return nil, nil - } - if count > 0 { - f.pos += count - if f.pos > len(f.childrenSnapshot) { - f.pos = len(f.childrenSnapshot) - } - } else { - f.pos = len(f.childrenSnapshot) - old = 0 - } - return f.childrenSnapshot[old:f.pos], nil -} - -func (f *memFile) Seek(offset int64, whence int) (int64, error) { - f.n.mu.Lock() - defer f.n.mu.Unlock() - npos := f.pos - // TODO: How to handle offsets greater than the size of system int? - switch whence { - case os.SEEK_SET: - npos = int(offset) - case os.SEEK_CUR: - npos += int(offset) - case os.SEEK_END: - npos = len(f.n.data) + int(offset) - default: - npos = -1 - } - if npos < 0 { - return 0, os.ErrInvalid - } - f.pos = npos - return int64(f.pos), nil -} - -func (f *memFile) Stat() (os.FileInfo, error) { - return f.n.stat(f.nameSnapshot), nil -} - -func (f *memFile) Write(p []byte) (int, error) { - lenp := len(p) - f.n.mu.Lock() - defer f.n.mu.Unlock() - - if f.n.mode.IsDir() { - return 0, os.ErrInvalid - } - if f.pos < len(f.n.data) { - n := copy(f.n.data[f.pos:], p) - f.pos += n - p = p[n:] - } else if f.pos > len(f.n.data) { - // Write permits the creation of holes, if we've seek'ed past the - // existing end of file. - if f.pos <= cap(f.n.data) { - oldLen := len(f.n.data) - f.n.data = f.n.data[:f.pos] - hole := f.n.data[oldLen:] - for i := range hole { - hole[i] = 0 - } - } else { - d := make([]byte, f.pos, f.pos+len(p)) - copy(d, f.n.data) - f.n.data = d - } - } - - if len(p) > 0 { - // We should only get here if f.pos == len(f.n.data). - f.n.data = append(f.n.data, p...) - f.pos = len(f.n.data) - } - f.n.modTime = time.Now() - return lenp, nil -} - -// moveFiles moves files and/or directories from src to dst. -// -// See section 9.9.4 for when various HTTP status codes apply. -func moveFiles(fs FileSystem, src, dst string, overwrite bool) (status int, err error) { - created := false - if _, err := fs.Stat(dst); err != nil { - if !os.IsNotExist(err) { - return http.StatusForbidden, err - } - created = true - } else if overwrite { - // Section 9.9.3 says that "If a resource exists at the destination - // and the Overwrite header is "T", then prior to performing the move, - // the server must perform a DELETE with "Depth: infinity" on the - // destination resource. - if err := fs.RemoveAll(dst); err != nil { - return http.StatusForbidden, err - } - } else { - return http.StatusPreconditionFailed, os.ErrExist - } - if err := fs.Rename(src, dst); err != nil { - return http.StatusForbidden, err - } - if created { - return http.StatusCreated, nil - } - return http.StatusNoContent, nil -} - -func copyProps(dst, src File) error { - d, ok := dst.(DeadPropsHolder) - if !ok { - return nil - } - s, ok := src.(DeadPropsHolder) - if !ok { - return nil - } - m, err := s.DeadProps() - if err != nil { - return err - } - props := make([]Property, 0, len(m)) - for _, prop := range m { - props = append(props, prop) - } - _, err = d.Patch([]Proppatch{{Props: props}}) - return err -} - -// copyFiles copies files and/or directories from src to dst. -// -// See section 9.8.5 for when various HTTP status codes apply. -func copyFiles(fs FileSystem, src, dst string, overwrite bool, depth int, recursion int) (status int, err error) { - if recursion == 1000 { - return http.StatusInternalServerError, errRecursionTooDeep - } - recursion++ - - // TODO: section 9.8.3 says that "Note that an infinite-depth COPY of /A/ - // into /A/B/ could lead to infinite recursion if not handled correctly." - - srcFile, err := fs.OpenFile(src, os.O_RDONLY, 0) - if err != nil { - if os.IsNotExist(err) { - return http.StatusNotFound, err - } - return http.StatusInternalServerError, err - } - defer srcFile.Close() - srcStat, err := srcFile.Stat() - if err != nil { - if os.IsNotExist(err) { - return http.StatusNotFound, err - } - return http.StatusInternalServerError, err - } - srcPerm := srcStat.Mode() & os.ModePerm - - created := false - if _, err := fs.Stat(dst); err != nil { - if os.IsNotExist(err) { - created = true - } else { - return http.StatusForbidden, err - } - } else { - if !overwrite { - return http.StatusPreconditionFailed, os.ErrExist - } - if err := fs.RemoveAll(dst); err != nil && !os.IsNotExist(err) { - return http.StatusForbidden, err - } - } - - if srcStat.IsDir() { - if err := fs.Mkdir(dst, srcPerm); err != nil { - return http.StatusForbidden, err - } - if depth == infiniteDepth { - children, err := srcFile.Readdir(-1) - if err != nil { - return http.StatusForbidden, err - } - for _, c := range children { - name := c.Name() - s := path.Join(src, name) - d := path.Join(dst, name) - cStatus, cErr := copyFiles(fs, s, d, overwrite, depth, recursion) - if cErr != nil { - // TODO: MultiStatus. - return cStatus, cErr - } - } - } - - } else { - dstFile, err := fs.OpenFile(dst, os.O_RDWR|os.O_CREATE|os.O_TRUNC, srcPerm) - if err != nil { - if os.IsNotExist(err) { - return http.StatusConflict, err - } - return http.StatusForbidden, err - - } - _, copyErr := io.Copy(dstFile, srcFile) - propsErr := copyProps(dstFile, srcFile) - closeErr := dstFile.Close() - if copyErr != nil { - return http.StatusInternalServerError, copyErr - } - if propsErr != nil { - return http.StatusInternalServerError, propsErr - } - if closeErr != nil { - return http.StatusInternalServerError, closeErr - } - } - - if created { - return http.StatusCreated, nil - } - return http.StatusNoContent, nil -} - -// walkFS traverses filesystem fs starting at name up to depth levels. -// -// Allowed values for depth are 0, 1 or infiniteDepth. For each visited node, -// walkFS calls walkFn. If a visited file system node is a directory and -// walkFn returns filepath.SkipDir, walkFS will skip traversal of this node. -func walkFS(fs FileSystem, depth int, name string, info os.FileInfo, walkFn filepath.WalkFunc) error { - // This implementation is based on Walk's code in the standard path/filepath package. - err := walkFn(name, info, nil) - if err != nil { - if info.IsDir() && err == filepath.SkipDir { - return nil - } - return err - } - if !info.IsDir() || depth == 0 { - return nil - } - if depth == 1 { - depth = 0 - } - - // Read directory names. - f, err := fs.OpenFile(name, os.O_RDONLY, 0) - if err != nil { - return walkFn(name, info, err) - } - fileInfos, err := f.Readdir(0) - f.Close() - if err != nil { - return walkFn(name, info, err) - } - - for _, fileInfo := range fileInfos { - filename := path.Join(name, fileInfo.Name()) - fileInfo, err := fs.Stat(filename) - if err != nil { - if err := walkFn(filename, fileInfo, err); err != nil && err != filepath.SkipDir { - return err - } - } else { - err = walkFS(fs, depth, filename, fileInfo, walkFn) - if err != nil { - if !fileInfo.IsDir() || err != filepath.SkipDir { - return err - } - } - } - } - return nil -} diff --git a/vendor/golang.org/x/net/webdav/if.go b/vendor/golang.org/x/net/webdav/if.go deleted file mode 100644 index 416e81cdfdd..00000000000 --- a/vendor/golang.org/x/net/webdav/if.go +++ /dev/null @@ -1,173 +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 webdav - -// The If header is covered by Section 10.4. -// http://www.webdav.org/specs/rfc4918.html#HEADER_If - -import ( - "strings" -) - -// ifHeader is a disjunction (OR) of ifLists. -type ifHeader struct { - lists []ifList -} - -// ifList is a conjunction (AND) of Conditions, and an optional resource tag. -type ifList struct { - resourceTag string - conditions []Condition -} - -// parseIfHeader parses the "If: foo bar" HTTP header. The httpHeader string -// should omit the "If:" prefix and have any "\r\n"s collapsed to a " ", as is -// returned by req.Header.Get("If") for a http.Request req. -func parseIfHeader(httpHeader string) (h ifHeader, ok bool) { - s := strings.TrimSpace(httpHeader) - switch tokenType, _, _ := lex(s); tokenType { - case '(': - return parseNoTagLists(s) - case angleTokenType: - return parseTaggedLists(s) - default: - return ifHeader{}, false - } -} - -func parseNoTagLists(s string) (h ifHeader, ok bool) { - for { - l, remaining, ok := parseList(s) - if !ok { - return ifHeader{}, false - } - h.lists = append(h.lists, l) - if remaining == "" { - return h, true - } - s = remaining - } -} - -func parseTaggedLists(s string) (h ifHeader, ok bool) { - resourceTag, n := "", 0 - for first := true; ; first = false { - tokenType, tokenStr, remaining := lex(s) - switch tokenType { - case angleTokenType: - if !first && n == 0 { - return ifHeader{}, false - } - resourceTag, n = tokenStr, 0 - s = remaining - case '(': - n++ - l, remaining, ok := parseList(s) - if !ok { - return ifHeader{}, false - } - l.resourceTag = resourceTag - h.lists = append(h.lists, l) - if remaining == "" { - return h, true - } - s = remaining - default: - return ifHeader{}, false - } - } -} - -func parseList(s string) (l ifList, remaining string, ok bool) { - tokenType, _, s := lex(s) - if tokenType != '(' { - return ifList{}, "", false - } - for { - tokenType, _, remaining = lex(s) - if tokenType == ')' { - if len(l.conditions) == 0 { - return ifList{}, "", false - } - return l, remaining, true - } - c, remaining, ok := parseCondition(s) - if !ok { - return ifList{}, "", false - } - l.conditions = append(l.conditions, c) - s = remaining - } -} - -func parseCondition(s string) (c Condition, remaining string, ok bool) { - tokenType, tokenStr, s := lex(s) - if tokenType == notTokenType { - c.Not = true - tokenType, tokenStr, s = lex(s) - } - switch tokenType { - case strTokenType, angleTokenType: - c.Token = tokenStr - case squareTokenType: - c.ETag = tokenStr - default: - return Condition{}, "", false - } - return c, s, true -} - -// Single-rune tokens like '(' or ')' have a token type equal to their rune. -// All other tokens have a negative token type. -const ( - errTokenType = rune(-1) - eofTokenType = rune(-2) - strTokenType = rune(-3) - notTokenType = rune(-4) - angleTokenType = rune(-5) - squareTokenType = rune(-6) -) - -func lex(s string) (tokenType rune, tokenStr string, remaining string) { - // The net/textproto Reader that parses the HTTP header will collapse - // Linear White Space that spans multiple "\r\n" lines to a single " ", - // so we don't need to look for '\r' or '\n'. - for len(s) > 0 && (s[0] == '\t' || s[0] == ' ') { - s = s[1:] - } - if len(s) == 0 { - return eofTokenType, "", "" - } - i := 0 -loop: - for ; i < len(s); i++ { - switch s[i] { - case '\t', ' ', '(', ')', '<', '>', '[', ']': - break loop - } - } - - if i != 0 { - tokenStr, remaining = s[:i], s[i:] - if tokenStr == "Not" { - return notTokenType, "", remaining - } - return strTokenType, tokenStr, remaining - } - - j := 0 - switch s[0] { - case '<': - j, tokenType = strings.IndexByte(s, '>'), angleTokenType - case '[': - j, tokenType = strings.IndexByte(s, ']'), squareTokenType - default: - return rune(s[0]), "", s[1:] - } - if j < 0 { - return errTokenType, "", "" - } - return tokenType, s[1:j], s[j+1:] -} diff --git a/vendor/golang.org/x/net/webdav/internal/xml/README b/vendor/golang.org/x/net/webdav/internal/xml/README deleted file mode 100644 index 89656f48962..00000000000 --- a/vendor/golang.org/x/net/webdav/internal/xml/README +++ /dev/null @@ -1,11 +0,0 @@ -This is a fork of the encoding/xml package at ca1d6c4, the last commit before -https://go.googlesource.com/go/+/c0d6d33 "encoding/xml: restore Go 1.4 name -space behavior" made late in the lead-up to the Go 1.5 release. - -The list of encoding/xml changes is at -https://go.googlesource.com/go/+log/master/src/encoding/xml - -This fork is temporary, and I (nigeltao) expect to revert it after Go 1.6 is -released. - -See http://golang.org/issue/11841 diff --git a/vendor/golang.org/x/net/webdav/internal/xml/marshal.go b/vendor/golang.org/x/net/webdav/internal/xml/marshal.go deleted file mode 100644 index 3c3b6aca586..00000000000 --- a/vendor/golang.org/x/net/webdav/internal/xml/marshal.go +++ /dev/null @@ -1,1223 +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 xml - -import ( - "bufio" - "bytes" - "encoding" - "fmt" - "io" - "reflect" - "strconv" - "strings" -) - -const ( - // A generic XML header suitable for use with the output of Marshal. - // This is not automatically added to any output of this package, - // it is provided as a convenience. - Header = `` + "\n" -) - -// Marshal returns the XML encoding of v. -// -// Marshal handles an array or slice by marshalling each of the elements. -// Marshal handles a pointer by marshalling the value it points at or, if the -// pointer is nil, by writing nothing. Marshal handles an interface value by -// marshalling the value it contains or, if the interface value is nil, by -// writing nothing. Marshal handles all other data by writing one or more XML -// elements containing the data. -// -// The name for the XML elements is taken from, in order of preference: -// - the tag on the XMLName field, if the data is a struct -// - the value of the XMLName field of type xml.Name -// - the tag of the struct field used to obtain the data -// - the name of the struct field used to obtain the data -// - the name of the marshalled type -// -// The XML element for a struct contains marshalled elements for each of the -// exported fields of the struct, with these exceptions: -// - the XMLName field, described above, is omitted. -// - a field with tag "-" is omitted. -// - a field with tag "name,attr" becomes an attribute with -// the given name in the XML element. -// - a field with tag ",attr" becomes an attribute with the -// field name in the XML element. -// - a field with tag ",chardata" is written as character data, -// not as an XML element. -// - a field with tag ",innerxml" is written verbatim, not subject -// to the usual marshalling procedure. -// - a field with tag ",comment" is written as an XML comment, not -// subject to the usual marshalling procedure. It must not contain -// the "--" string within it. -// - a field with a tag including the "omitempty" option is omitted -// if the field value is empty. The empty values are false, 0, any -// nil pointer or interface value, and any array, slice, map, or -// string of length zero. -// - an anonymous struct field is handled as if the fields of its -// value were part of the outer struct. -// -// If a field uses a tag "a>b>c", then the element c will be nested inside -// parent elements a and b. Fields that appear next to each other that name -// the same parent will be enclosed in one XML element. -// -// See MarshalIndent for an example. -// -// Marshal will return an error if asked to marshal a channel, function, or map. -func Marshal(v interface{}) ([]byte, error) { - var b bytes.Buffer - if err := NewEncoder(&b).Encode(v); err != nil { - return nil, err - } - return b.Bytes(), nil -} - -// Marshaler is the interface implemented by objects that can marshal -// themselves into valid XML elements. -// -// MarshalXML encodes the receiver as zero or more XML elements. -// By convention, arrays or slices are typically encoded as a sequence -// of elements, one per entry. -// Using start as the element tag is not required, but doing so -// will enable Unmarshal to match the XML elements to the correct -// struct field. -// One common implementation strategy is to construct a separate -// value with a layout corresponding to the desired XML and then -// to encode it using e.EncodeElement. -// Another common strategy is to use repeated calls to e.EncodeToken -// to generate the XML output one token at a time. -// The sequence of encoded tokens must make up zero or more valid -// XML elements. -type Marshaler interface { - MarshalXML(e *Encoder, start StartElement) error -} - -// MarshalerAttr is the interface implemented by objects that can marshal -// themselves into valid XML attributes. -// -// MarshalXMLAttr returns an XML attribute with the encoded value of the receiver. -// Using name as the attribute name is not required, but doing so -// will enable Unmarshal to match the attribute to the correct -// struct field. -// If MarshalXMLAttr returns the zero attribute Attr{}, no attribute -// will be generated in the output. -// MarshalXMLAttr is used only for struct fields with the -// "attr" option in the field tag. -type MarshalerAttr interface { - MarshalXMLAttr(name Name) (Attr, error) -} - -// MarshalIndent works like Marshal, but each XML element begins on a new -// indented line that starts with prefix and is followed by one or more -// copies of indent according to the nesting depth. -func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) { - var b bytes.Buffer - enc := NewEncoder(&b) - enc.Indent(prefix, indent) - if err := enc.Encode(v); err != nil { - return nil, err - } - return b.Bytes(), nil -} - -// An Encoder writes XML data to an output stream. -type Encoder struct { - p printer -} - -// NewEncoder returns a new encoder that writes to w. -func NewEncoder(w io.Writer) *Encoder { - e := &Encoder{printer{Writer: bufio.NewWriter(w)}} - e.p.encoder = e - return e -} - -// Indent sets the encoder to generate XML in which each element -// begins on a new indented line that starts with prefix and is followed by -// one or more copies of indent according to the nesting depth. -func (enc *Encoder) Indent(prefix, indent string) { - enc.p.prefix = prefix - enc.p.indent = indent -} - -// Encode writes the XML encoding of v to the stream. -// -// See the documentation for Marshal for details about the conversion -// of Go values to XML. -// -// Encode calls Flush before returning. -func (enc *Encoder) Encode(v interface{}) error { - err := enc.p.marshalValue(reflect.ValueOf(v), nil, nil) - if err != nil { - return err - } - return enc.p.Flush() -} - -// EncodeElement writes the XML encoding of v to the stream, -// using start as the outermost tag in the encoding. -// -// See the documentation for Marshal for details about the conversion -// of Go values to XML. -// -// EncodeElement calls Flush before returning. -func (enc *Encoder) EncodeElement(v interface{}, start StartElement) error { - err := enc.p.marshalValue(reflect.ValueOf(v), nil, &start) - if err != nil { - return err - } - return enc.p.Flush() -} - -var ( - begComment = []byte("") - endProcInst = []byte("?>") - endDirective = []byte(">") -) - -// EncodeToken writes the given XML token to the stream. -// It returns an error if StartElement and EndElement tokens are not -// properly matched. -// -// EncodeToken does not call Flush, because usually it is part of a -// larger operation such as Encode or EncodeElement (or a custom -// Marshaler's MarshalXML invoked during those), and those will call -// Flush when finished. Callers that create an Encoder and then invoke -// EncodeToken directly, without using Encode or EncodeElement, need to -// call Flush when finished to ensure that the XML is written to the -// underlying writer. -// -// EncodeToken allows writing a ProcInst with Target set to "xml" only -// as the first token in the stream. -// -// When encoding a StartElement holding an XML namespace prefix -// declaration for a prefix that is not already declared, contained -// elements (including the StartElement itself) will use the declared -// prefix when encoding names with matching namespace URIs. -func (enc *Encoder) EncodeToken(t Token) error { - - p := &enc.p - switch t := t.(type) { - case StartElement: - if err := p.writeStart(&t); err != nil { - return err - } - case EndElement: - if err := p.writeEnd(t.Name); err != nil { - return err - } - case CharData: - escapeText(p, t, false) - case Comment: - if bytes.Contains(t, endComment) { - return fmt.Errorf("xml: EncodeToken of Comment containing --> marker") - } - p.WriteString("") - return p.cachedWriteError() - case ProcInst: - // First token to be encoded which is also a ProcInst with target of xml - // is the xml declaration. The only ProcInst where target of xml is allowed. - if t.Target == "xml" && p.Buffered() != 0 { - return fmt.Errorf("xml: EncodeToken of ProcInst xml target only valid for xml declaration, first token encoded") - } - if !isNameString(t.Target) { - return fmt.Errorf("xml: EncodeToken of ProcInst with invalid Target") - } - if bytes.Contains(t.Inst, endProcInst) { - return fmt.Errorf("xml: EncodeToken of ProcInst containing ?> marker") - } - p.WriteString(" 0 { - p.WriteByte(' ') - p.Write(t.Inst) - } - p.WriteString("?>") - case Directive: - if !isValidDirective(t) { - return fmt.Errorf("xml: EncodeToken of Directive containing wrong < or > markers") - } - p.WriteString("") - default: - return fmt.Errorf("xml: EncodeToken of invalid token type") - - } - return p.cachedWriteError() -} - -// isValidDirective reports whether dir is a valid directive text, -// meaning angle brackets are matched, ignoring comments and strings. -func isValidDirective(dir Directive) bool { - var ( - depth int - inquote uint8 - incomment bool - ) - for i, c := range dir { - switch { - case incomment: - if c == '>' { - if n := 1 + i - len(endComment); n >= 0 && bytes.Equal(dir[n:i+1], endComment) { - incomment = false - } - } - // Just ignore anything in comment - case inquote != 0: - if c == inquote { - inquote = 0 - } - // Just ignore anything within quotes - case c == '\'' || c == '"': - inquote = c - case c == '<': - if i+len(begComment) < len(dir) && bytes.Equal(dir[i:i+len(begComment)], begComment) { - incomment = true - } else { - depth++ - } - case c == '>': - if depth == 0 { - return false - } - depth-- - } - } - return depth == 0 && inquote == 0 && !incomment -} - -// Flush flushes any buffered XML to the underlying writer. -// See the EncodeToken documentation for details about when it is necessary. -func (enc *Encoder) Flush() error { - return enc.p.Flush() -} - -type printer struct { - *bufio.Writer - encoder *Encoder - seq int - indent string - prefix string - depth int - indentedIn bool - putNewline bool - defaultNS string - attrNS map[string]string // map prefix -> name space - attrPrefix map[string]string // map name space -> prefix - prefixes []printerPrefix - tags []Name -} - -// printerPrefix holds a namespace undo record. -// When an element is popped, the prefix record -// is set back to the recorded URL. The empty -// prefix records the URL for the default name space. -// -// The start of an element is recorded with an element -// that has mark=true. -type printerPrefix struct { - prefix string - url string - mark bool -} - -func (p *printer) prefixForNS(url string, isAttr bool) string { - // The "http://www.w3.org/XML/1998/namespace" name space is predefined as "xml" - // and must be referred to that way. - // (The "http://www.w3.org/2000/xmlns/" name space is also predefined as "xmlns", - // but users should not be trying to use that one directly - that's our job.) - if url == xmlURL { - return "xml" - } - if !isAttr && url == p.defaultNS { - // We can use the default name space. - return "" - } - return p.attrPrefix[url] -} - -// defineNS pushes any namespace definition found in the given attribute. -// If ignoreNonEmptyDefault is true, an xmlns="nonempty" -// attribute will be ignored. -func (p *printer) defineNS(attr Attr, ignoreNonEmptyDefault bool) error { - var prefix string - if attr.Name.Local == "xmlns" { - if attr.Name.Space != "" && attr.Name.Space != "xml" && attr.Name.Space != xmlURL { - return fmt.Errorf("xml: cannot redefine xmlns attribute prefix") - } - } else if attr.Name.Space == "xmlns" && attr.Name.Local != "" { - prefix = attr.Name.Local - if attr.Value == "" { - // Technically, an empty XML namespace is allowed for an attribute. - // From http://www.w3.org/TR/xml-names11/#scoping-defaulting: - // - // The attribute value in a namespace declaration for a prefix may be - // empty. This has the effect, within the scope of the declaration, of removing - // any association of the prefix with a namespace name. - // - // However our namespace prefixes here are used only as hints. There's - // no need to respect the removal of a namespace prefix, so we ignore it. - return nil - } - } else { - // Ignore: it's not a namespace definition - return nil - } - if prefix == "" { - if attr.Value == p.defaultNS { - // No need for redefinition. - return nil - } - if attr.Value != "" && ignoreNonEmptyDefault { - // We have an xmlns="..." value but - // it can't define a name space in this context, - // probably because the element has an empty - // name space. In this case, we just ignore - // the name space declaration. - return nil - } - } else if _, ok := p.attrPrefix[attr.Value]; ok { - // There's already a prefix for the given name space, - // so use that. This prevents us from - // having two prefixes for the same name space - // so attrNS and attrPrefix can remain bijective. - return nil - } - p.pushPrefix(prefix, attr.Value) - return nil -} - -// createNSPrefix creates a name space prefix attribute -// to use for the given name space, defining a new prefix -// if necessary. -// If isAttr is true, the prefix is to be created for an attribute -// prefix, which means that the default name space cannot -// be used. -func (p *printer) createNSPrefix(url string, isAttr bool) { - if _, ok := p.attrPrefix[url]; ok { - // We already have a prefix for the given URL. - return - } - switch { - case !isAttr && url == p.defaultNS: - // We can use the default name space. - return - case url == "": - // The only way we can encode names in the empty - // name space is by using the default name space, - // so we must use that. - if p.defaultNS != "" { - // The default namespace is non-empty, so we - // need to set it to empty. - p.pushPrefix("", "") - } - return - case url == xmlURL: - return - } - // TODO If the URL is an existing prefix, we could - // use it as is. That would enable the - // marshaling of elements that had been unmarshaled - // and with a name space prefix that was not found. - // although technically it would be incorrect. - - // Pick a name. We try to use the final element of the path - // but fall back to _. - prefix := strings.TrimRight(url, "/") - if i := strings.LastIndex(prefix, "/"); i >= 0 { - prefix = prefix[i+1:] - } - if prefix == "" || !isName([]byte(prefix)) || strings.Contains(prefix, ":") { - prefix = "_" - } - if strings.HasPrefix(prefix, "xml") { - // xmlanything is reserved. - prefix = "_" + prefix - } - if p.attrNS[prefix] != "" { - // Name is taken. Find a better one. - for p.seq++; ; p.seq++ { - if id := prefix + "_" + strconv.Itoa(p.seq); p.attrNS[id] == "" { - prefix = id - break - } - } - } - - p.pushPrefix(prefix, url) -} - -// writeNamespaces writes xmlns attributes for all the -// namespace prefixes that have been defined in -// the current element. -func (p *printer) writeNamespaces() { - for i := len(p.prefixes) - 1; i >= 0; i-- { - prefix := p.prefixes[i] - if prefix.mark { - return - } - p.WriteString(" ") - if prefix.prefix == "" { - // Default name space. - p.WriteString(`xmlns="`) - } else { - p.WriteString("xmlns:") - p.WriteString(prefix.prefix) - p.WriteString(`="`) - } - EscapeText(p, []byte(p.nsForPrefix(prefix.prefix))) - p.WriteString(`"`) - } -} - -// pushPrefix pushes a new prefix on the prefix stack -// without checking to see if it is already defined. -func (p *printer) pushPrefix(prefix, url string) { - p.prefixes = append(p.prefixes, printerPrefix{ - prefix: prefix, - url: p.nsForPrefix(prefix), - }) - p.setAttrPrefix(prefix, url) -} - -// nsForPrefix returns the name space for the given -// prefix. Note that this is not valid for the -// empty attribute prefix, which always has an empty -// name space. -func (p *printer) nsForPrefix(prefix string) string { - if prefix == "" { - return p.defaultNS - } - return p.attrNS[prefix] -} - -// markPrefix marks the start of an element on the prefix -// stack. -func (p *printer) markPrefix() { - p.prefixes = append(p.prefixes, printerPrefix{ - mark: true, - }) -} - -// popPrefix pops all defined prefixes for the current -// element. -func (p *printer) popPrefix() { - for len(p.prefixes) > 0 { - prefix := p.prefixes[len(p.prefixes)-1] - p.prefixes = p.prefixes[:len(p.prefixes)-1] - if prefix.mark { - break - } - p.setAttrPrefix(prefix.prefix, prefix.url) - } -} - -// setAttrPrefix sets an attribute name space prefix. -// If url is empty, the attribute is removed. -// If prefix is empty, the default name space is set. -func (p *printer) setAttrPrefix(prefix, url string) { - if prefix == "" { - p.defaultNS = url - return - } - if url == "" { - delete(p.attrPrefix, p.attrNS[prefix]) - delete(p.attrNS, prefix) - return - } - if p.attrPrefix == nil { - // Need to define a new name space. - p.attrPrefix = make(map[string]string) - p.attrNS = make(map[string]string) - } - // Remove any old prefix value. This is OK because we maintain a - // strict one-to-one mapping between prefix and URL (see - // defineNS) - delete(p.attrPrefix, p.attrNS[prefix]) - p.attrPrefix[url] = prefix - p.attrNS[prefix] = url -} - -var ( - marshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem() - marshalerAttrType = reflect.TypeOf((*MarshalerAttr)(nil)).Elem() - textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem() -) - -// marshalValue writes one or more XML elements representing val. -// If val was obtained from a struct field, finfo must have its details. -func (p *printer) marshalValue(val reflect.Value, finfo *fieldInfo, startTemplate *StartElement) error { - if startTemplate != nil && startTemplate.Name.Local == "" { - return fmt.Errorf("xml: EncodeElement of StartElement with missing name") - } - - if !val.IsValid() { - return nil - } - if finfo != nil && finfo.flags&fOmitEmpty != 0 && isEmptyValue(val) { - return nil - } - - // Drill into interfaces and pointers. - // This can turn into an infinite loop given a cyclic chain, - // but it matches the Go 1 behavior. - for val.Kind() == reflect.Interface || val.Kind() == reflect.Ptr { - if val.IsNil() { - return nil - } - val = val.Elem() - } - - kind := val.Kind() - typ := val.Type() - - // Check for marshaler. - if val.CanInterface() && typ.Implements(marshalerType) { - return p.marshalInterface(val.Interface().(Marshaler), p.defaultStart(typ, finfo, startTemplate)) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(marshalerType) { - return p.marshalInterface(pv.Interface().(Marshaler), p.defaultStart(pv.Type(), finfo, startTemplate)) - } - } - - // Check for text marshaler. - if val.CanInterface() && typ.Implements(textMarshalerType) { - return p.marshalTextInterface(val.Interface().(encoding.TextMarshaler), p.defaultStart(typ, finfo, startTemplate)) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - return p.marshalTextInterface(pv.Interface().(encoding.TextMarshaler), p.defaultStart(pv.Type(), finfo, startTemplate)) - } - } - - // Slices and arrays iterate over the elements. They do not have an enclosing tag. - if (kind == reflect.Slice || kind == reflect.Array) && typ.Elem().Kind() != reflect.Uint8 { - for i, n := 0, val.Len(); i < n; i++ { - if err := p.marshalValue(val.Index(i), finfo, startTemplate); err != nil { - return err - } - } - return nil - } - - tinfo, err := getTypeInfo(typ) - if err != nil { - return err - } - - // Create start element. - // Precedence for the XML element name is: - // 0. startTemplate - // 1. XMLName field in underlying struct; - // 2. field name/tag in the struct field; and - // 3. type name - var start StartElement - - // explicitNS records whether the element's name space has been - // explicitly set (for example an XMLName field). - explicitNS := false - - if startTemplate != nil { - start.Name = startTemplate.Name - explicitNS = true - start.Attr = append(start.Attr, startTemplate.Attr...) - } else if tinfo.xmlname != nil { - xmlname := tinfo.xmlname - if xmlname.name != "" { - start.Name.Space, start.Name.Local = xmlname.xmlns, xmlname.name - } else if v, ok := xmlname.value(val).Interface().(Name); ok && v.Local != "" { - start.Name = v - } - explicitNS = true - } - if start.Name.Local == "" && finfo != nil { - start.Name.Local = finfo.name - if finfo.xmlns != "" { - start.Name.Space = finfo.xmlns - explicitNS = true - } - } - if start.Name.Local == "" { - name := typ.Name() - if name == "" { - return &UnsupportedTypeError{typ} - } - start.Name.Local = name - } - - // defaultNS records the default name space as set by a xmlns="..." - // attribute. We don't set p.defaultNS because we want to let - // the attribute writing code (in p.defineNS) be solely responsible - // for maintaining that. - defaultNS := p.defaultNS - - // Attributes - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - if finfo.flags&fAttr == 0 { - continue - } - attr, err := p.fieldAttr(finfo, val) - if err != nil { - return err - } - if attr.Name.Local == "" { - continue - } - start.Attr = append(start.Attr, attr) - if attr.Name.Space == "" && attr.Name.Local == "xmlns" { - defaultNS = attr.Value - } - } - if !explicitNS { - // Historic behavior: elements use the default name space - // they are contained in by default. - start.Name.Space = defaultNS - } - // Historic behaviour: an element that's in a namespace sets - // the default namespace for all elements contained within it. - start.setDefaultNamespace() - - if err := p.writeStart(&start); err != nil { - return err - } - - if val.Kind() == reflect.Struct { - err = p.marshalStruct(tinfo, val) - } else { - s, b, err1 := p.marshalSimple(typ, val) - if err1 != nil { - err = err1 - } else if b != nil { - EscapeText(p, b) - } else { - p.EscapeString(s) - } - } - if err != nil { - return err - } - - if err := p.writeEnd(start.Name); err != nil { - return err - } - - return p.cachedWriteError() -} - -// fieldAttr returns the attribute of the given field. -// If the returned attribute has an empty Name.Local, -// it should not be used. -// The given value holds the value containing the field. -func (p *printer) fieldAttr(finfo *fieldInfo, val reflect.Value) (Attr, error) { - fv := finfo.value(val) - name := Name{Space: finfo.xmlns, Local: finfo.name} - if finfo.flags&fOmitEmpty != 0 && isEmptyValue(fv) { - return Attr{}, nil - } - if fv.Kind() == reflect.Interface && fv.IsNil() { - return Attr{}, nil - } - if fv.CanInterface() && fv.Type().Implements(marshalerAttrType) { - attr, err := fv.Interface().(MarshalerAttr).MarshalXMLAttr(name) - return attr, err - } - if fv.CanAddr() { - pv := fv.Addr() - if pv.CanInterface() && pv.Type().Implements(marshalerAttrType) { - attr, err := pv.Interface().(MarshalerAttr).MarshalXMLAttr(name) - return attr, err - } - } - if fv.CanInterface() && fv.Type().Implements(textMarshalerType) { - text, err := fv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return Attr{}, err - } - return Attr{name, string(text)}, nil - } - if fv.CanAddr() { - pv := fv.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - text, err := pv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return Attr{}, err - } - return Attr{name, string(text)}, nil - } - } - // Dereference or skip nil pointer, interface values. - switch fv.Kind() { - case reflect.Ptr, reflect.Interface: - if fv.IsNil() { - return Attr{}, nil - } - fv = fv.Elem() - } - s, b, err := p.marshalSimple(fv.Type(), fv) - if err != nil { - return Attr{}, err - } - if b != nil { - s = string(b) - } - return Attr{name, s}, nil -} - -// defaultStart returns the default start element to use, -// given the reflect type, field info, and start template. -func (p *printer) defaultStart(typ reflect.Type, finfo *fieldInfo, startTemplate *StartElement) StartElement { - var start StartElement - // Precedence for the XML element name is as above, - // except that we do not look inside structs for the first field. - if startTemplate != nil { - start.Name = startTemplate.Name - start.Attr = append(start.Attr, startTemplate.Attr...) - } else if finfo != nil && finfo.name != "" { - start.Name.Local = finfo.name - start.Name.Space = finfo.xmlns - } else if typ.Name() != "" { - start.Name.Local = typ.Name() - } else { - // Must be a pointer to a named type, - // since it has the Marshaler methods. - start.Name.Local = typ.Elem().Name() - } - // Historic behaviour: elements use the name space of - // the element they are contained in by default. - if start.Name.Space == "" { - start.Name.Space = p.defaultNS - } - start.setDefaultNamespace() - return start -} - -// marshalInterface marshals a Marshaler interface value. -func (p *printer) marshalInterface(val Marshaler, start StartElement) error { - // Push a marker onto the tag stack so that MarshalXML - // cannot close the XML tags that it did not open. - p.tags = append(p.tags, Name{}) - n := len(p.tags) - - err := val.MarshalXML(p.encoder, start) - if err != nil { - return err - } - - // Make sure MarshalXML closed all its tags. p.tags[n-1] is the mark. - if len(p.tags) > n { - return fmt.Errorf("xml: %s.MarshalXML wrote invalid XML: <%s> not closed", receiverType(val), p.tags[len(p.tags)-1].Local) - } - p.tags = p.tags[:n-1] - return nil -} - -// marshalTextInterface marshals a TextMarshaler interface value. -func (p *printer) marshalTextInterface(val encoding.TextMarshaler, start StartElement) error { - if err := p.writeStart(&start); err != nil { - return err - } - text, err := val.MarshalText() - if err != nil { - return err - } - EscapeText(p, text) - return p.writeEnd(start.Name) -} - -// writeStart writes the given start element. -func (p *printer) writeStart(start *StartElement) error { - if start.Name.Local == "" { - return fmt.Errorf("xml: start tag with no name") - } - - p.tags = append(p.tags, start.Name) - p.markPrefix() - // Define any name spaces explicitly declared in the attributes. - // We do this as a separate pass so that explicitly declared prefixes - // will take precedence over implicitly declared prefixes - // regardless of the order of the attributes. - ignoreNonEmptyDefault := start.Name.Space == "" - for _, attr := range start.Attr { - if err := p.defineNS(attr, ignoreNonEmptyDefault); err != nil { - return err - } - } - // Define any new name spaces implied by the attributes. - for _, attr := range start.Attr { - name := attr.Name - // From http://www.w3.org/TR/xml-names11/#defaulting - // "Default namespace declarations do not apply directly - // to attribute names; the interpretation of unprefixed - // attributes is determined by the element on which they - // appear." - // This means we don't need to create a new namespace - // when an attribute name space is empty. - if name.Space != "" && !name.isNamespace() { - p.createNSPrefix(name.Space, true) - } - } - p.createNSPrefix(start.Name.Space, false) - - p.writeIndent(1) - p.WriteByte('<') - p.writeName(start.Name, false) - p.writeNamespaces() - for _, attr := range start.Attr { - name := attr.Name - if name.Local == "" || name.isNamespace() { - // Namespaces have already been written by writeNamespaces above. - continue - } - p.WriteByte(' ') - p.writeName(name, true) - p.WriteString(`="`) - p.EscapeString(attr.Value) - p.WriteByte('"') - } - p.WriteByte('>') - return nil -} - -// writeName writes the given name. It assumes -// that p.createNSPrefix(name) has already been called. -func (p *printer) writeName(name Name, isAttr bool) { - if prefix := p.prefixForNS(name.Space, isAttr); prefix != "" { - p.WriteString(prefix) - p.WriteByte(':') - } - p.WriteString(name.Local) -} - -func (p *printer) writeEnd(name Name) error { - if name.Local == "" { - return fmt.Errorf("xml: end tag with no name") - } - if len(p.tags) == 0 || p.tags[len(p.tags)-1].Local == "" { - return fmt.Errorf("xml: end tag without start tag", name.Local) - } - if top := p.tags[len(p.tags)-1]; top != name { - if top.Local != name.Local { - return fmt.Errorf("xml: end tag does not match start tag <%s>", name.Local, top.Local) - } - return fmt.Errorf("xml: end tag in namespace %s does not match start tag <%s> in namespace %s", name.Local, name.Space, top.Local, top.Space) - } - p.tags = p.tags[:len(p.tags)-1] - - p.writeIndent(-1) - p.WriteByte('<') - p.WriteByte('/') - p.writeName(name, false) - p.WriteByte('>') - p.popPrefix() - return nil -} - -func (p *printer) marshalSimple(typ reflect.Type, val reflect.Value) (string, []byte, error) { - switch val.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return strconv.FormatInt(val.Int(), 10), nil, nil - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return strconv.FormatUint(val.Uint(), 10), nil, nil - case reflect.Float32, reflect.Float64: - return strconv.FormatFloat(val.Float(), 'g', -1, val.Type().Bits()), nil, nil - case reflect.String: - return val.String(), nil, nil - case reflect.Bool: - return strconv.FormatBool(val.Bool()), nil, nil - case reflect.Array: - if typ.Elem().Kind() != reflect.Uint8 { - break - } - // [...]byte - var bytes []byte - if val.CanAddr() { - bytes = val.Slice(0, val.Len()).Bytes() - } else { - bytes = make([]byte, val.Len()) - reflect.Copy(reflect.ValueOf(bytes), val) - } - return "", bytes, nil - case reflect.Slice: - if typ.Elem().Kind() != reflect.Uint8 { - break - } - // []byte - return "", val.Bytes(), nil - } - return "", nil, &UnsupportedTypeError{typ} -} - -var ddBytes = []byte("--") - -func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error { - s := parentStack{p: p} - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - if finfo.flags&fAttr != 0 { - continue - } - vf := finfo.value(val) - - // Dereference or skip nil pointer, interface values. - switch vf.Kind() { - case reflect.Ptr, reflect.Interface: - if !vf.IsNil() { - vf = vf.Elem() - } - } - - switch finfo.flags & fMode { - case fCharData: - if err := s.setParents(&noField, reflect.Value{}); err != nil { - return err - } - if vf.CanInterface() && vf.Type().Implements(textMarshalerType) { - data, err := vf.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - Escape(p, data) - continue - } - if vf.CanAddr() { - pv := vf.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - data, err := pv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - Escape(p, data) - continue - } - } - var scratch [64]byte - switch vf.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - Escape(p, strconv.AppendInt(scratch[:0], vf.Int(), 10)) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - Escape(p, strconv.AppendUint(scratch[:0], vf.Uint(), 10)) - case reflect.Float32, reflect.Float64: - Escape(p, strconv.AppendFloat(scratch[:0], vf.Float(), 'g', -1, vf.Type().Bits())) - case reflect.Bool: - Escape(p, strconv.AppendBool(scratch[:0], vf.Bool())) - case reflect.String: - if err := EscapeText(p, []byte(vf.String())); err != nil { - return err - } - case reflect.Slice: - if elem, ok := vf.Interface().([]byte); ok { - if err := EscapeText(p, elem); err != nil { - return err - } - } - } - continue - - case fComment: - if err := s.setParents(&noField, reflect.Value{}); err != nil { - return err - } - k := vf.Kind() - if !(k == reflect.String || k == reflect.Slice && vf.Type().Elem().Kind() == reflect.Uint8) { - return fmt.Errorf("xml: bad type for comment field of %s", val.Type()) - } - if vf.Len() == 0 { - continue - } - p.writeIndent(0) - p.WriteString("" is invalid grammar. Make it "- -->" - p.WriteByte(' ') - } - p.WriteString("-->") - continue - - case fInnerXml: - iface := vf.Interface() - switch raw := iface.(type) { - case []byte: - p.Write(raw) - continue - case string: - p.WriteString(raw) - continue - } - - case fElement, fElement | fAny: - if err := s.setParents(finfo, vf); err != nil { - return err - } - } - if err := p.marshalValue(vf, finfo, nil); err != nil { - return err - } - } - if err := s.setParents(&noField, reflect.Value{}); err != nil { - return err - } - return p.cachedWriteError() -} - -var noField fieldInfo - -// return the bufio Writer's cached write error -func (p *printer) cachedWriteError() error { - _, err := p.Write(nil) - return err -} - -func (p *printer) writeIndent(depthDelta int) { - if len(p.prefix) == 0 && len(p.indent) == 0 { - return - } - if depthDelta < 0 { - p.depth-- - if p.indentedIn { - p.indentedIn = false - return - } - p.indentedIn = false - } - if p.putNewline { - p.WriteByte('\n') - } else { - p.putNewline = true - } - if len(p.prefix) > 0 { - p.WriteString(p.prefix) - } - if len(p.indent) > 0 { - for i := 0; i < p.depth; i++ { - p.WriteString(p.indent) - } - } - if depthDelta > 0 { - p.depth++ - p.indentedIn = true - } -} - -type parentStack struct { - p *printer - xmlns string - parents []string -} - -// setParents sets the stack of current parents to those found in finfo. -// It only writes the start elements if vf holds a non-nil value. -// If finfo is &noField, it pops all elements. -func (s *parentStack) setParents(finfo *fieldInfo, vf reflect.Value) error { - xmlns := s.p.defaultNS - if finfo.xmlns != "" { - xmlns = finfo.xmlns - } - commonParents := 0 - if xmlns == s.xmlns { - for ; commonParents < len(finfo.parents) && commonParents < len(s.parents); commonParents++ { - if finfo.parents[commonParents] != s.parents[commonParents] { - break - } - } - } - // Pop off any parents that aren't in common with the previous field. - for i := len(s.parents) - 1; i >= commonParents; i-- { - if err := s.p.writeEnd(Name{ - Space: s.xmlns, - Local: s.parents[i], - }); err != nil { - return err - } - } - s.parents = finfo.parents - s.xmlns = xmlns - if commonParents >= len(s.parents) { - // No new elements to push. - return nil - } - if (vf.Kind() == reflect.Ptr || vf.Kind() == reflect.Interface) && vf.IsNil() { - // The element is nil, so no need for the start elements. - s.parents = s.parents[:commonParents] - return nil - } - // Push any new parents required. - for _, name := range s.parents[commonParents:] { - start := &StartElement{ - Name: Name{ - Space: s.xmlns, - Local: name, - }, - } - // Set the default name space for parent elements - // to match what we do with other elements. - if s.xmlns != s.p.defaultNS { - start.setDefaultNamespace() - } - if err := s.p.writeStart(start); err != nil { - return err - } - } - return nil -} - -// A MarshalXMLError is returned when Marshal encounters a type -// that cannot be converted into XML. -type UnsupportedTypeError struct { - Type reflect.Type -} - -func (e *UnsupportedTypeError) Error() string { - return "xml: unsupported type: " + e.Type.String() -} - -func isEmptyValue(v reflect.Value) bool { - switch v.Kind() { - case reflect.Array, reflect.Map, reflect.Slice, reflect.String: - return v.Len() == 0 - case reflect.Bool: - return !v.Bool() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Float32, reflect.Float64: - return v.Float() == 0 - case reflect.Interface, reflect.Ptr: - return v.IsNil() - } - return false -} diff --git a/vendor/golang.org/x/net/webdav/internal/xml/read.go b/vendor/golang.org/x/net/webdav/internal/xml/read.go deleted file mode 100644 index 75b9f2ba1b2..00000000000 --- a/vendor/golang.org/x/net/webdav/internal/xml/read.go +++ /dev/null @@ -1,692 +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 xml - -import ( - "bytes" - "encoding" - "errors" - "fmt" - "reflect" - "strconv" - "strings" -) - -// BUG(rsc): Mapping between XML elements and data structures is inherently flawed: -// an XML element is an order-dependent collection of anonymous -// values, while a data structure is an order-independent collection -// of named values. -// See package json for a textual representation more suitable -// to data structures. - -// Unmarshal parses the XML-encoded data and stores the result in -// the value pointed to by v, which must be an arbitrary struct, -// slice, or string. Well-formed data that does not fit into v is -// discarded. -// -// Because Unmarshal uses the reflect package, it can only assign -// to exported (upper case) fields. Unmarshal uses a case-sensitive -// comparison to match XML element names to tag values and struct -// field names. -// -// Unmarshal maps an XML element to a struct using the following rules. -// In the rules, the tag of a field refers to the value associated with the -// key 'xml' in the struct field's tag (see the example above). -// -// * If the struct has a field of type []byte or string with tag -// ",innerxml", Unmarshal accumulates the raw XML nested inside the -// element in that field. The rest of the rules still apply. -// -// * If the struct has a field named XMLName of type xml.Name, -// Unmarshal records the element name in that field. -// -// * If the XMLName field has an associated tag of the form -// "name" or "namespace-URL name", the XML element must have -// the given name (and, optionally, name space) or else Unmarshal -// returns an error. -// -// * If the XML element has an attribute whose name matches a -// struct field name with an associated tag containing ",attr" or -// the explicit name in a struct field tag of the form "name,attr", -// Unmarshal records the attribute value in that field. -// -// * If the XML element contains character data, that data is -// accumulated in the first struct field that has tag ",chardata". -// The struct field may have type []byte or string. -// If there is no such field, the character data is discarded. -// -// * If the XML element contains comments, they are accumulated in -// the first struct field that has tag ",comment". The struct -// field may have type []byte or string. If there is no such -// field, the comments are discarded. -// -// * If the XML element contains a sub-element whose name matches -// the prefix of a tag formatted as "a" or "a>b>c", unmarshal -// will descend into the XML structure looking for elements with the -// given names, and will map the innermost elements to that struct -// field. A tag starting with ">" is equivalent to one starting -// with the field name followed by ">". -// -// * If the XML element contains a sub-element whose name matches -// a struct field's XMLName tag and the struct field has no -// explicit name tag as per the previous rule, unmarshal maps -// the sub-element to that struct field. -// -// * If the XML element contains a sub-element whose name matches a -// field without any mode flags (",attr", ",chardata", etc), Unmarshal -// maps the sub-element to that struct field. -// -// * If the XML element contains a sub-element that hasn't matched any -// of the above rules and the struct has a field with tag ",any", -// unmarshal maps the sub-element to that struct field. -// -// * An anonymous struct field is handled as if the fields of its -// value were part of the outer struct. -// -// * A struct field with tag "-" is never unmarshalled into. -// -// Unmarshal maps an XML element to a string or []byte by saving the -// concatenation of that element's character data in the string or -// []byte. The saved []byte is never nil. -// -// Unmarshal maps an attribute value to a string or []byte by saving -// the value in the string or slice. -// -// Unmarshal maps an XML element to a slice by extending the length of -// the slice and mapping the element to the newly created value. -// -// Unmarshal maps an XML element or attribute value to a bool by -// setting it to the boolean value represented by the string. -// -// Unmarshal maps an XML element or attribute value to an integer or -// floating-point field by setting the field to the result of -// interpreting the string value in decimal. There is no check for -// overflow. -// -// Unmarshal maps an XML element to an xml.Name by recording the -// element name. -// -// Unmarshal maps an XML element to a pointer by setting the pointer -// to a freshly allocated value and then mapping the element to that value. -// -func Unmarshal(data []byte, v interface{}) error { - return NewDecoder(bytes.NewReader(data)).Decode(v) -} - -// Decode works like xml.Unmarshal, except it reads the decoder -// stream to find the start element. -func (d *Decoder) Decode(v interface{}) error { - return d.DecodeElement(v, nil) -} - -// DecodeElement works like xml.Unmarshal except that it takes -// a pointer to the start XML element to decode into v. -// It is useful when a client reads some raw XML tokens itself -// but also wants to defer to Unmarshal for some elements. -func (d *Decoder) DecodeElement(v interface{}, start *StartElement) error { - val := reflect.ValueOf(v) - if val.Kind() != reflect.Ptr { - return errors.New("non-pointer passed to Unmarshal") - } - return d.unmarshal(val.Elem(), start) -} - -// An UnmarshalError represents an error in the unmarshalling process. -type UnmarshalError string - -func (e UnmarshalError) Error() string { return string(e) } - -// Unmarshaler is the interface implemented by objects that can unmarshal -// an XML element description of themselves. -// -// UnmarshalXML decodes a single XML element -// beginning with the given start element. -// If it returns an error, the outer call to Unmarshal stops and -// returns that error. -// UnmarshalXML must consume exactly one XML element. -// One common implementation strategy is to unmarshal into -// a separate value with a layout matching the expected XML -// using d.DecodeElement, and then to copy the data from -// that value into the receiver. -// Another common strategy is to use d.Token to process the -// XML object one token at a time. -// UnmarshalXML may not use d.RawToken. -type Unmarshaler interface { - UnmarshalXML(d *Decoder, start StartElement) error -} - -// UnmarshalerAttr is the interface implemented by objects that can unmarshal -// an XML attribute description of themselves. -// -// UnmarshalXMLAttr decodes a single XML attribute. -// If it returns an error, the outer call to Unmarshal stops and -// returns that error. -// UnmarshalXMLAttr is used only for struct fields with the -// "attr" option in the field tag. -type UnmarshalerAttr interface { - UnmarshalXMLAttr(attr Attr) error -} - -// receiverType returns the receiver type to use in an expression like "%s.MethodName". -func receiverType(val interface{}) string { - t := reflect.TypeOf(val) - if t.Name() != "" { - return t.String() - } - return "(" + t.String() + ")" -} - -// unmarshalInterface unmarshals a single XML element into val. -// start is the opening tag of the element. -func (p *Decoder) unmarshalInterface(val Unmarshaler, start *StartElement) error { - // Record that decoder must stop at end tag corresponding to start. - p.pushEOF() - - p.unmarshalDepth++ - err := val.UnmarshalXML(p, *start) - p.unmarshalDepth-- - if err != nil { - p.popEOF() - return err - } - - if !p.popEOF() { - return fmt.Errorf("xml: %s.UnmarshalXML did not consume entire <%s> element", receiverType(val), start.Name.Local) - } - - return nil -} - -// unmarshalTextInterface unmarshals a single XML element into val. -// The chardata contained in the element (but not its children) -// is passed to the text unmarshaler. -func (p *Decoder) unmarshalTextInterface(val encoding.TextUnmarshaler, start *StartElement) error { - var buf []byte - depth := 1 - for depth > 0 { - t, err := p.Token() - if err != nil { - return err - } - switch t := t.(type) { - case CharData: - if depth == 1 { - buf = append(buf, t...) - } - case StartElement: - depth++ - case EndElement: - depth-- - } - } - return val.UnmarshalText(buf) -} - -// unmarshalAttr unmarshals a single XML attribute into val. -func (p *Decoder) unmarshalAttr(val reflect.Value, attr Attr) error { - if val.Kind() == reflect.Ptr { - if val.IsNil() { - val.Set(reflect.New(val.Type().Elem())) - } - val = val.Elem() - } - - if val.CanInterface() && val.Type().Implements(unmarshalerAttrType) { - // This is an unmarshaler with a non-pointer receiver, - // so it's likely to be incorrect, but we do what we're told. - return val.Interface().(UnmarshalerAttr).UnmarshalXMLAttr(attr) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(unmarshalerAttrType) { - return pv.Interface().(UnmarshalerAttr).UnmarshalXMLAttr(attr) - } - } - - // Not an UnmarshalerAttr; try encoding.TextUnmarshaler. - if val.CanInterface() && val.Type().Implements(textUnmarshalerType) { - // This is an unmarshaler with a non-pointer receiver, - // so it's likely to be incorrect, but we do what we're told. - return val.Interface().(encoding.TextUnmarshaler).UnmarshalText([]byte(attr.Value)) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - return pv.Interface().(encoding.TextUnmarshaler).UnmarshalText([]byte(attr.Value)) - } - } - - copyValue(val, []byte(attr.Value)) - return nil -} - -var ( - unmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem() - unmarshalerAttrType = reflect.TypeOf((*UnmarshalerAttr)(nil)).Elem() - textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() -) - -// Unmarshal a single XML element into val. -func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { - // Find start element if we need it. - if start == nil { - for { - tok, err := p.Token() - if err != nil { - return err - } - if t, ok := tok.(StartElement); ok { - start = &t - break - } - } - } - - // Load value from interface, but only if the result will be - // usefully addressable. - if val.Kind() == reflect.Interface && !val.IsNil() { - e := val.Elem() - if e.Kind() == reflect.Ptr && !e.IsNil() { - val = e - } - } - - if val.Kind() == reflect.Ptr { - if val.IsNil() { - val.Set(reflect.New(val.Type().Elem())) - } - val = val.Elem() - } - - if val.CanInterface() && val.Type().Implements(unmarshalerType) { - // This is an unmarshaler with a non-pointer receiver, - // so it's likely to be incorrect, but we do what we're told. - return p.unmarshalInterface(val.Interface().(Unmarshaler), start) - } - - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(unmarshalerType) { - return p.unmarshalInterface(pv.Interface().(Unmarshaler), start) - } - } - - if val.CanInterface() && val.Type().Implements(textUnmarshalerType) { - return p.unmarshalTextInterface(val.Interface().(encoding.TextUnmarshaler), start) - } - - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - return p.unmarshalTextInterface(pv.Interface().(encoding.TextUnmarshaler), start) - } - } - - var ( - data []byte - saveData reflect.Value - comment []byte - saveComment reflect.Value - saveXML reflect.Value - saveXMLIndex int - saveXMLData []byte - saveAny reflect.Value - sv reflect.Value - tinfo *typeInfo - err error - ) - - switch v := val; v.Kind() { - default: - return errors.New("unknown type " + v.Type().String()) - - case reflect.Interface: - // TODO: For now, simply ignore the field. In the near - // future we may choose to unmarshal the start - // element on it, if not nil. - return p.Skip() - - case reflect.Slice: - typ := v.Type() - if typ.Elem().Kind() == reflect.Uint8 { - // []byte - saveData = v - break - } - - // Slice of element values. - // Grow slice. - n := v.Len() - if n >= v.Cap() { - ncap := 2 * n - if ncap < 4 { - ncap = 4 - } - new := reflect.MakeSlice(typ, n, ncap) - reflect.Copy(new, v) - v.Set(new) - } - v.SetLen(n + 1) - - // Recur to read element into slice. - if err := p.unmarshal(v.Index(n), start); err != nil { - v.SetLen(n) - return err - } - return nil - - case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, reflect.String: - saveData = v - - case reflect.Struct: - typ := v.Type() - if typ == nameType { - v.Set(reflect.ValueOf(start.Name)) - break - } - - sv = v - tinfo, err = getTypeInfo(typ) - if err != nil { - return err - } - - // Validate and assign element name. - if tinfo.xmlname != nil { - finfo := tinfo.xmlname - if finfo.name != "" && finfo.name != start.Name.Local { - return UnmarshalError("expected element type <" + finfo.name + "> but have <" + start.Name.Local + ">") - } - if finfo.xmlns != "" && finfo.xmlns != start.Name.Space { - e := "expected element <" + finfo.name + "> in name space " + finfo.xmlns + " but have " - if start.Name.Space == "" { - e += "no name space" - } else { - e += start.Name.Space - } - return UnmarshalError(e) - } - fv := finfo.value(sv) - if _, ok := fv.Interface().(Name); ok { - fv.Set(reflect.ValueOf(start.Name)) - } - } - - // Assign attributes. - // Also, determine whether we need to save character data or comments. - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - switch finfo.flags & fMode { - case fAttr: - strv := finfo.value(sv) - // Look for attribute. - for _, a := range start.Attr { - if a.Name.Local == finfo.name && (finfo.xmlns == "" || finfo.xmlns == a.Name.Space) { - if err := p.unmarshalAttr(strv, a); err != nil { - return err - } - break - } - } - - case fCharData: - if !saveData.IsValid() { - saveData = finfo.value(sv) - } - - case fComment: - if !saveComment.IsValid() { - saveComment = finfo.value(sv) - } - - case fAny, fAny | fElement: - if !saveAny.IsValid() { - saveAny = finfo.value(sv) - } - - case fInnerXml: - if !saveXML.IsValid() { - saveXML = finfo.value(sv) - if p.saved == nil { - saveXMLIndex = 0 - p.saved = new(bytes.Buffer) - } else { - saveXMLIndex = p.savedOffset() - } - } - } - } - } - - // Find end element. - // Process sub-elements along the way. -Loop: - for { - var savedOffset int - if saveXML.IsValid() { - savedOffset = p.savedOffset() - } - tok, err := p.Token() - if err != nil { - return err - } - switch t := tok.(type) { - case StartElement: - consumed := false - if sv.IsValid() { - consumed, err = p.unmarshalPath(tinfo, sv, nil, &t) - if err != nil { - return err - } - if !consumed && saveAny.IsValid() { - consumed = true - if err := p.unmarshal(saveAny, &t); err != nil { - return err - } - } - } - if !consumed { - if err := p.Skip(); err != nil { - return err - } - } - - case EndElement: - if saveXML.IsValid() { - saveXMLData = p.saved.Bytes()[saveXMLIndex:savedOffset] - if saveXMLIndex == 0 { - p.saved = nil - } - } - break Loop - - case CharData: - if saveData.IsValid() { - data = append(data, t...) - } - - case Comment: - if saveComment.IsValid() { - comment = append(comment, t...) - } - } - } - - if saveData.IsValid() && saveData.CanInterface() && saveData.Type().Implements(textUnmarshalerType) { - if err := saveData.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil { - return err - } - saveData = reflect.Value{} - } - - if saveData.IsValid() && saveData.CanAddr() { - pv := saveData.Addr() - if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - if err := pv.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil { - return err - } - saveData = reflect.Value{} - } - } - - if err := copyValue(saveData, data); err != nil { - return err - } - - switch t := saveComment; t.Kind() { - case reflect.String: - t.SetString(string(comment)) - case reflect.Slice: - t.Set(reflect.ValueOf(comment)) - } - - switch t := saveXML; t.Kind() { - case reflect.String: - t.SetString(string(saveXMLData)) - case reflect.Slice: - t.Set(reflect.ValueOf(saveXMLData)) - } - - return nil -} - -func copyValue(dst reflect.Value, src []byte) (err error) { - dst0 := dst - - if dst.Kind() == reflect.Ptr { - if dst.IsNil() { - dst.Set(reflect.New(dst.Type().Elem())) - } - dst = dst.Elem() - } - - // Save accumulated data. - switch dst.Kind() { - case reflect.Invalid: - // Probably a comment. - default: - return errors.New("cannot unmarshal into " + dst0.Type().String()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - itmp, err := strconv.ParseInt(string(src), 10, dst.Type().Bits()) - if err != nil { - return err - } - dst.SetInt(itmp) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - utmp, err := strconv.ParseUint(string(src), 10, dst.Type().Bits()) - if err != nil { - return err - } - dst.SetUint(utmp) - case reflect.Float32, reflect.Float64: - ftmp, err := strconv.ParseFloat(string(src), dst.Type().Bits()) - if err != nil { - return err - } - dst.SetFloat(ftmp) - case reflect.Bool: - value, err := strconv.ParseBool(strings.TrimSpace(string(src))) - if err != nil { - return err - } - dst.SetBool(value) - case reflect.String: - dst.SetString(string(src)) - case reflect.Slice: - if len(src) == 0 { - // non-nil to flag presence - src = []byte{} - } - dst.SetBytes(src) - } - return nil -} - -// unmarshalPath walks down an XML structure looking for wanted -// paths, and calls unmarshal on them. -// The consumed result tells whether XML elements have been consumed -// from the Decoder until start's matching end element, or if it's -// still untouched because start is uninteresting for sv's fields. -func (p *Decoder) unmarshalPath(tinfo *typeInfo, sv reflect.Value, parents []string, start *StartElement) (consumed bool, err error) { - recurse := false -Loop: - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - if finfo.flags&fElement == 0 || len(finfo.parents) < len(parents) || finfo.xmlns != "" && finfo.xmlns != start.Name.Space { - continue - } - for j := range parents { - if parents[j] != finfo.parents[j] { - continue Loop - } - } - if len(finfo.parents) == len(parents) && finfo.name == start.Name.Local { - // It's a perfect match, unmarshal the field. - return true, p.unmarshal(finfo.value(sv), start) - } - if len(finfo.parents) > len(parents) && finfo.parents[len(parents)] == start.Name.Local { - // It's a prefix for the field. Break and recurse - // since it's not ok for one field path to be itself - // the prefix for another field path. - recurse = true - - // We can reuse the same slice as long as we - // don't try to append to it. - parents = finfo.parents[:len(parents)+1] - break - } - } - if !recurse { - // We have no business with this element. - return false, nil - } - // The element is not a perfect match for any field, but one - // or more fields have the path to this element as a parent - // prefix. Recurse and attempt to match these. - for { - var tok Token - tok, err = p.Token() - if err != nil { - return true, err - } - switch t := tok.(type) { - case StartElement: - consumed2, err := p.unmarshalPath(tinfo, sv, parents, &t) - if err != nil { - return true, err - } - if !consumed2 { - if err := p.Skip(); err != nil { - return true, err - } - } - case EndElement: - return true, nil - } - } -} - -// Skip reads tokens until it has consumed the end element -// matching the most recent start element already consumed. -// It recurs if it encounters a start element, so it can be used to -// skip nested structures. -// It returns nil if it finds an end element matching the start -// element; otherwise it returns an error describing the problem. -func (d *Decoder) Skip() error { - for { - tok, err := d.Token() - if err != nil { - return err - } - switch tok.(type) { - case StartElement: - if err := d.Skip(); err != nil { - return err - } - case EndElement: - return nil - } - } -} diff --git a/vendor/golang.org/x/net/webdav/internal/xml/typeinfo.go b/vendor/golang.org/x/net/webdav/internal/xml/typeinfo.go deleted file mode 100644 index c9a6421f280..00000000000 --- a/vendor/golang.org/x/net/webdav/internal/xml/typeinfo.go +++ /dev/null @@ -1,371 +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 xml - -import ( - "fmt" - "reflect" - "strings" - "sync" -) - -// typeInfo holds details for the xml representation of a type. -type typeInfo struct { - xmlname *fieldInfo - fields []fieldInfo -} - -// fieldInfo holds details for the xml representation of a single field. -type fieldInfo struct { - idx []int - name string - xmlns string - flags fieldFlags - parents []string -} - -type fieldFlags int - -const ( - fElement fieldFlags = 1 << iota - fAttr - fCharData - fInnerXml - fComment - fAny - - fOmitEmpty - - fMode = fElement | fAttr | fCharData | fInnerXml | fComment | fAny -) - -var tinfoMap = make(map[reflect.Type]*typeInfo) -var tinfoLock sync.RWMutex - -var nameType = reflect.TypeOf(Name{}) - -// getTypeInfo returns the typeInfo structure with details necessary -// for marshalling and unmarshalling typ. -func getTypeInfo(typ reflect.Type) (*typeInfo, error) { - tinfoLock.RLock() - tinfo, ok := tinfoMap[typ] - tinfoLock.RUnlock() - if ok { - return tinfo, nil - } - tinfo = &typeInfo{} - if typ.Kind() == reflect.Struct && typ != nameType { - n := typ.NumField() - for i := 0; i < n; i++ { - f := typ.Field(i) - if f.PkgPath != "" || f.Tag.Get("xml") == "-" { - continue // Private field - } - - // For embedded structs, embed its fields. - if f.Anonymous { - t := f.Type - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - if t.Kind() == reflect.Struct { - inner, err := getTypeInfo(t) - if err != nil { - return nil, err - } - if tinfo.xmlname == nil { - tinfo.xmlname = inner.xmlname - } - for _, finfo := range inner.fields { - finfo.idx = append([]int{i}, finfo.idx...) - if err := addFieldInfo(typ, tinfo, &finfo); err != nil { - return nil, err - } - } - continue - } - } - - finfo, err := structFieldInfo(typ, &f) - if err != nil { - return nil, err - } - - if f.Name == "XMLName" { - tinfo.xmlname = finfo - continue - } - - // Add the field if it doesn't conflict with other fields. - if err := addFieldInfo(typ, tinfo, finfo); err != nil { - return nil, err - } - } - } - tinfoLock.Lock() - tinfoMap[typ] = tinfo - tinfoLock.Unlock() - return tinfo, nil -} - -// structFieldInfo builds and returns a fieldInfo for f. -func structFieldInfo(typ reflect.Type, f *reflect.StructField) (*fieldInfo, error) { - finfo := &fieldInfo{idx: f.Index} - - // Split the tag from the xml namespace if necessary. - tag := f.Tag.Get("xml") - if i := strings.Index(tag, " "); i >= 0 { - finfo.xmlns, tag = tag[:i], tag[i+1:] - } - - // Parse flags. - tokens := strings.Split(tag, ",") - if len(tokens) == 1 { - finfo.flags = fElement - } else { - tag = tokens[0] - for _, flag := range tokens[1:] { - switch flag { - case "attr": - finfo.flags |= fAttr - case "chardata": - finfo.flags |= fCharData - case "innerxml": - finfo.flags |= fInnerXml - case "comment": - finfo.flags |= fComment - case "any": - finfo.flags |= fAny - case "omitempty": - finfo.flags |= fOmitEmpty - } - } - - // Validate the flags used. - valid := true - switch mode := finfo.flags & fMode; mode { - case 0: - finfo.flags |= fElement - case fAttr, fCharData, fInnerXml, fComment, fAny: - if f.Name == "XMLName" || tag != "" && mode != fAttr { - valid = false - } - default: - // This will also catch multiple modes in a single field. - valid = false - } - if finfo.flags&fMode == fAny { - finfo.flags |= fElement - } - if finfo.flags&fOmitEmpty != 0 && finfo.flags&(fElement|fAttr) == 0 { - valid = false - } - if !valid { - return nil, fmt.Errorf("xml: invalid tag in field %s of type %s: %q", - f.Name, typ, f.Tag.Get("xml")) - } - } - - // Use of xmlns without a name is not allowed. - if finfo.xmlns != "" && tag == "" { - return nil, fmt.Errorf("xml: namespace without name in field %s of type %s: %q", - f.Name, typ, f.Tag.Get("xml")) - } - - if f.Name == "XMLName" { - // The XMLName field records the XML element name. Don't - // process it as usual because its name should default to - // empty rather than to the field name. - finfo.name = tag - return finfo, nil - } - - if tag == "" { - // If the name part of the tag is completely empty, get - // default from XMLName of underlying struct if feasible, - // or field name otherwise. - if xmlname := lookupXMLName(f.Type); xmlname != nil { - finfo.xmlns, finfo.name = xmlname.xmlns, xmlname.name - } else { - finfo.name = f.Name - } - return finfo, nil - } - - if finfo.xmlns == "" && finfo.flags&fAttr == 0 { - // If it's an element no namespace specified, get the default - // from the XMLName of enclosing struct if possible. - if xmlname := lookupXMLName(typ); xmlname != nil { - finfo.xmlns = xmlname.xmlns - } - } - - // Prepare field name and parents. - parents := strings.Split(tag, ">") - if parents[0] == "" { - parents[0] = f.Name - } - if parents[len(parents)-1] == "" { - return nil, fmt.Errorf("xml: trailing '>' in field %s of type %s", f.Name, typ) - } - finfo.name = parents[len(parents)-1] - if len(parents) > 1 { - if (finfo.flags & fElement) == 0 { - return nil, fmt.Errorf("xml: %s chain not valid with %s flag", tag, strings.Join(tokens[1:], ",")) - } - finfo.parents = parents[:len(parents)-1] - } - - // If the field type has an XMLName field, the names must match - // so that the behavior of both marshalling and unmarshalling - // is straightforward and unambiguous. - if finfo.flags&fElement != 0 { - ftyp := f.Type - xmlname := lookupXMLName(ftyp) - if xmlname != nil && xmlname.name != finfo.name { - return nil, fmt.Errorf("xml: name %q in tag of %s.%s conflicts with name %q in %s.XMLName", - finfo.name, typ, f.Name, xmlname.name, ftyp) - } - } - return finfo, nil -} - -// lookupXMLName returns the fieldInfo for typ's XMLName field -// in case it exists and has a valid xml field tag, otherwise -// it returns nil. -func lookupXMLName(typ reflect.Type) (xmlname *fieldInfo) { - for typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - if typ.Kind() != reflect.Struct { - return nil - } - for i, n := 0, typ.NumField(); i < n; i++ { - f := typ.Field(i) - if f.Name != "XMLName" { - continue - } - finfo, err := structFieldInfo(typ, &f) - if finfo.name != "" && err == nil { - return finfo - } - // Also consider errors as a non-existent field tag - // and let getTypeInfo itself report the error. - break - } - return nil -} - -func min(a, b int) int { - if a <= b { - return a - } - return b -} - -// addFieldInfo adds finfo to tinfo.fields if there are no -// conflicts, or if conflicts arise from previous fields that were -// obtained from deeper embedded structures than finfo. In the latter -// case, the conflicting entries are dropped. -// A conflict occurs when the path (parent + name) to a field is -// itself a prefix of another path, or when two paths match exactly. -// It is okay for field paths to share a common, shorter prefix. -func addFieldInfo(typ reflect.Type, tinfo *typeInfo, newf *fieldInfo) error { - var conflicts []int -Loop: - // First, figure all conflicts. Most working code will have none. - for i := range tinfo.fields { - oldf := &tinfo.fields[i] - if oldf.flags&fMode != newf.flags&fMode { - continue - } - if oldf.xmlns != "" && newf.xmlns != "" && oldf.xmlns != newf.xmlns { - continue - } - minl := min(len(newf.parents), len(oldf.parents)) - for p := 0; p < minl; p++ { - if oldf.parents[p] != newf.parents[p] { - continue Loop - } - } - if len(oldf.parents) > len(newf.parents) { - if oldf.parents[len(newf.parents)] == newf.name { - conflicts = append(conflicts, i) - } - } else if len(oldf.parents) < len(newf.parents) { - if newf.parents[len(oldf.parents)] == oldf.name { - conflicts = append(conflicts, i) - } - } else { - if newf.name == oldf.name { - conflicts = append(conflicts, i) - } - } - } - // Without conflicts, add the new field and return. - if conflicts == nil { - tinfo.fields = append(tinfo.fields, *newf) - return nil - } - - // If any conflict is shallower, ignore the new field. - // This matches the Go field resolution on embedding. - for _, i := range conflicts { - if len(tinfo.fields[i].idx) < len(newf.idx) { - return nil - } - } - - // Otherwise, if any of them is at the same depth level, it's an error. - for _, i := range conflicts { - oldf := &tinfo.fields[i] - if len(oldf.idx) == len(newf.idx) { - f1 := typ.FieldByIndex(oldf.idx) - f2 := typ.FieldByIndex(newf.idx) - return &TagPathError{typ, f1.Name, f1.Tag.Get("xml"), f2.Name, f2.Tag.Get("xml")} - } - } - - // Otherwise, the new field is shallower, and thus takes precedence, - // so drop the conflicting fields from tinfo and append the new one. - for c := len(conflicts) - 1; c >= 0; c-- { - i := conflicts[c] - copy(tinfo.fields[i:], tinfo.fields[i+1:]) - tinfo.fields = tinfo.fields[:len(tinfo.fields)-1] - } - tinfo.fields = append(tinfo.fields, *newf) - return nil -} - -// A TagPathError represents an error in the unmarshalling process -// caused by the use of field tags with conflicting paths. -type TagPathError struct { - Struct reflect.Type - Field1, Tag1 string - Field2, Tag2 string -} - -func (e *TagPathError) Error() string { - return fmt.Sprintf("%s field %q with tag %q conflicts with field %q with tag %q", e.Struct, e.Field1, e.Tag1, e.Field2, e.Tag2) -} - -// value returns v's field value corresponding to finfo. -// It's equivalent to v.FieldByIndex(finfo.idx), but initializes -// and dereferences pointers as necessary. -func (finfo *fieldInfo) value(v reflect.Value) reflect.Value { - for i, x := range finfo.idx { - if i > 0 { - t := v.Type() - if t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Struct { - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - } - } - v = v.Field(x) - } - return v -} diff --git a/vendor/golang.org/x/net/webdav/internal/xml/xml.go b/vendor/golang.org/x/net/webdav/internal/xml/xml.go deleted file mode 100644 index ffab4a70c9d..00000000000 --- a/vendor/golang.org/x/net/webdav/internal/xml/xml.go +++ /dev/null @@ -1,1998 +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 xml implements a simple XML 1.0 parser that -// understands XML name spaces. -package xml - -// References: -// Annotated XML spec: http://www.xml.com/axml/testaxml.htm -// XML name spaces: http://www.w3.org/TR/REC-xml-names/ - -// TODO(rsc): -// Test error handling. - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "strconv" - "strings" - "unicode" - "unicode/utf8" -) - -// A SyntaxError represents a syntax error in the XML input stream. -type SyntaxError struct { - Msg string - Line int -} - -func (e *SyntaxError) Error() string { - return "XML syntax error on line " + strconv.Itoa(e.Line) + ": " + e.Msg -} - -// A Name represents an XML name (Local) annotated with a name space -// identifier (Space). In tokens returned by Decoder.Token, the Space -// identifier is given as a canonical URL, not the short prefix used in -// the document being parsed. -// -// As a special case, XML namespace declarations will use the literal -// string "xmlns" for the Space field instead of the fully resolved URL. -// See Encoder.EncodeToken for more information on namespace encoding -// behaviour. -type Name struct { - Space, Local string -} - -// isNamespace reports whether the name is a namespace-defining name. -func (name Name) isNamespace() bool { - return name.Local == "xmlns" || name.Space == "xmlns" -} - -// An Attr represents an attribute in an XML element (Name=Value). -type Attr struct { - Name Name - Value string -} - -// A Token is an interface holding one of the token types: -// StartElement, EndElement, CharData, Comment, ProcInst, or Directive. -type Token interface{} - -// A StartElement represents an XML start element. -type StartElement struct { - Name Name - Attr []Attr -} - -func (e StartElement) Copy() StartElement { - attrs := make([]Attr, len(e.Attr)) - copy(attrs, e.Attr) - e.Attr = attrs - return e -} - -// End returns the corresponding XML end element. -func (e StartElement) End() EndElement { - return EndElement{e.Name} -} - -// setDefaultNamespace sets the namespace of the element -// as the default for all elements contained within it. -func (e *StartElement) setDefaultNamespace() { - if e.Name.Space == "" { - // If there's no namespace on the element, don't - // set the default. Strictly speaking this might be wrong, as - // we can't tell if the element had no namespace set - // or was just using the default namespace. - return - } - // Don't add a default name space if there's already one set. - for _, attr := range e.Attr { - if attr.Name.Space == "" && attr.Name.Local == "xmlns" { - return - } - } - e.Attr = append(e.Attr, Attr{ - Name: Name{ - Local: "xmlns", - }, - Value: e.Name.Space, - }) -} - -// An EndElement represents an XML end element. -type EndElement struct { - Name Name -} - -// A CharData represents XML character data (raw text), -// in which XML escape sequences have been replaced by -// the characters they represent. -type CharData []byte - -func makeCopy(b []byte) []byte { - b1 := make([]byte, len(b)) - copy(b1, b) - return b1 -} - -func (c CharData) Copy() CharData { return CharData(makeCopy(c)) } - -// A Comment represents an XML comment of the form . -// The bytes do not include the comment markers. -type Comment []byte - -func (c Comment) Copy() Comment { return Comment(makeCopy(c)) } - -// A ProcInst represents an XML processing instruction of the form -type ProcInst struct { - Target string - Inst []byte -} - -func (p ProcInst) Copy() ProcInst { - p.Inst = makeCopy(p.Inst) - return p -} - -// A Directive represents an XML directive of the form . -// The bytes do not include the markers. -type Directive []byte - -func (d Directive) Copy() Directive { return Directive(makeCopy(d)) } - -// CopyToken returns a copy of a Token. -func CopyToken(t Token) Token { - switch v := t.(type) { - case CharData: - return v.Copy() - case Comment: - return v.Copy() - case Directive: - return v.Copy() - case ProcInst: - return v.Copy() - case StartElement: - return v.Copy() - } - return t -} - -// A Decoder represents an XML parser reading a particular input stream. -// The parser assumes that its input is encoded in UTF-8. -type Decoder struct { - // Strict defaults to true, enforcing the requirements - // of the XML specification. - // If set to false, the parser allows input containing common - // mistakes: - // * If an element is missing an end tag, the parser invents - // end tags as necessary to keep the return values from Token - // properly balanced. - // * In attribute values and character data, unknown or malformed - // character entities (sequences beginning with &) are left alone. - // - // Setting: - // - // d.Strict = false; - // d.AutoClose = HTMLAutoClose; - // d.Entity = HTMLEntity - // - // creates a parser that can handle typical HTML. - // - // Strict mode does not enforce the requirements of the XML name spaces TR. - // In particular it does not reject name space tags using undefined prefixes. - // Such tags are recorded with the unknown prefix as the name space URL. - Strict bool - - // When Strict == false, AutoClose indicates a set of elements to - // consider closed immediately after they are opened, regardless - // of whether an end element is present. - AutoClose []string - - // Entity can be used to map non-standard entity names to string replacements. - // The parser behaves as if these standard mappings are present in the map, - // regardless of the actual map content: - // - // "lt": "<", - // "gt": ">", - // "amp": "&", - // "apos": "'", - // "quot": `"`, - Entity map[string]string - - // CharsetReader, if non-nil, defines a function to generate - // charset-conversion readers, converting from the provided - // non-UTF-8 charset into UTF-8. If CharsetReader is nil or - // returns an error, parsing stops with an error. One of the - // the CharsetReader's result values must be non-nil. - CharsetReader func(charset string, input io.Reader) (io.Reader, error) - - // DefaultSpace sets the default name space used for unadorned tags, - // as if the entire XML stream were wrapped in an element containing - // the attribute xmlns="DefaultSpace". - DefaultSpace string - - r io.ByteReader - buf bytes.Buffer - saved *bytes.Buffer - stk *stack - free *stack - needClose bool - toClose Name - nextToken Token - nextByte int - ns map[string]string - err error - line int - offset int64 - unmarshalDepth int -} - -// NewDecoder creates a new XML parser reading from r. -// If r does not implement io.ByteReader, NewDecoder will -// do its own buffering. -func NewDecoder(r io.Reader) *Decoder { - d := &Decoder{ - ns: make(map[string]string), - nextByte: -1, - line: 1, - Strict: true, - } - d.switchToReader(r) - return d -} - -// Token returns the next XML token in the input stream. -// At the end of the input stream, Token returns nil, io.EOF. -// -// Slices of bytes in the returned token data refer to the -// parser's internal buffer and remain valid only until the next -// call to Token. To acquire a copy of the bytes, call CopyToken -// or the token's Copy method. -// -// Token expands self-closing elements such as
    -// into separate start and end elements returned by successive calls. -// -// Token guarantees that the StartElement and EndElement -// tokens it returns are properly nested and matched: -// if Token encounters an unexpected end element, -// it will return an error. -// -// Token implements XML name spaces as described by -// http://www.w3.org/TR/REC-xml-names/. Each of the -// Name structures contained in the Token has the Space -// set to the URL identifying its name space when known. -// If Token encounters an unrecognized name space prefix, -// it uses the prefix as the Space rather than report an error. -func (d *Decoder) Token() (t Token, err error) { - if d.stk != nil && d.stk.kind == stkEOF { - err = io.EOF - return - } - if d.nextToken != nil { - t = d.nextToken - d.nextToken = nil - } else if t, err = d.rawToken(); err != nil { - return - } - - if !d.Strict { - if t1, ok := d.autoClose(t); ok { - d.nextToken = t - t = t1 - } - } - switch t1 := t.(type) { - case StartElement: - // In XML name spaces, the translations listed in the - // attributes apply to the element name and - // to the other attribute names, so process - // the translations first. - for _, a := range t1.Attr { - if a.Name.Space == "xmlns" { - v, ok := d.ns[a.Name.Local] - d.pushNs(a.Name.Local, v, ok) - d.ns[a.Name.Local] = a.Value - } - if a.Name.Space == "" && a.Name.Local == "xmlns" { - // Default space for untagged names - v, ok := d.ns[""] - d.pushNs("", v, ok) - d.ns[""] = a.Value - } - } - - d.translate(&t1.Name, true) - for i := range t1.Attr { - d.translate(&t1.Attr[i].Name, false) - } - d.pushElement(t1.Name) - t = t1 - - case EndElement: - d.translate(&t1.Name, true) - if !d.popElement(&t1) { - return nil, d.err - } - t = t1 - } - return -} - -const xmlURL = "http://www.w3.org/XML/1998/namespace" - -// Apply name space translation to name n. -// The default name space (for Space=="") -// applies only to element names, not to attribute names. -func (d *Decoder) translate(n *Name, isElementName bool) { - switch { - case n.Space == "xmlns": - return - case n.Space == "" && !isElementName: - return - case n.Space == "xml": - n.Space = xmlURL - case n.Space == "" && n.Local == "xmlns": - return - } - if v, ok := d.ns[n.Space]; ok { - n.Space = v - } else if n.Space == "" { - n.Space = d.DefaultSpace - } -} - -func (d *Decoder) switchToReader(r io.Reader) { - // Get efficient byte at a time reader. - // Assume that if reader has its own - // ReadByte, it's efficient enough. - // Otherwise, use bufio. - if rb, ok := r.(io.ByteReader); ok { - d.r = rb - } else { - d.r = bufio.NewReader(r) - } -} - -// Parsing state - stack holds old name space translations -// and the current set of open elements. The translations to pop when -// ending a given tag are *below* it on the stack, which is -// more work but forced on us by XML. -type stack struct { - next *stack - kind int - name Name - ok bool -} - -const ( - stkStart = iota - stkNs - stkEOF -) - -func (d *Decoder) push(kind int) *stack { - s := d.free - if s != nil { - d.free = s.next - } else { - s = new(stack) - } - s.next = d.stk - s.kind = kind - d.stk = s - return s -} - -func (d *Decoder) pop() *stack { - s := d.stk - if s != nil { - d.stk = s.next - s.next = d.free - d.free = s - } - return s -} - -// Record that after the current element is finished -// (that element is already pushed on the stack) -// Token should return EOF until popEOF is called. -func (d *Decoder) pushEOF() { - // Walk down stack to find Start. - // It might not be the top, because there might be stkNs - // entries above it. - start := d.stk - for start.kind != stkStart { - start = start.next - } - // The stkNs entries below a start are associated with that - // element too; skip over them. - for start.next != nil && start.next.kind == stkNs { - start = start.next - } - s := d.free - if s != nil { - d.free = s.next - } else { - s = new(stack) - } - s.kind = stkEOF - s.next = start.next - start.next = s -} - -// Undo a pushEOF. -// The element must have been finished, so the EOF should be at the top of the stack. -func (d *Decoder) popEOF() bool { - if d.stk == nil || d.stk.kind != stkEOF { - return false - } - d.pop() - return true -} - -// Record that we are starting an element with the given name. -func (d *Decoder) pushElement(name Name) { - s := d.push(stkStart) - s.name = name -} - -// Record that we are changing the value of ns[local]. -// The old value is url, ok. -func (d *Decoder) pushNs(local string, url string, ok bool) { - s := d.push(stkNs) - s.name.Local = local - s.name.Space = url - s.ok = ok -} - -// Creates a SyntaxError with the current line number. -func (d *Decoder) syntaxError(msg string) error { - return &SyntaxError{Msg: msg, Line: d.line} -} - -// Record that we are ending an element with the given name. -// The name must match the record at the top of the stack, -// which must be a pushElement record. -// After popping the element, apply any undo records from -// the stack to restore the name translations that existed -// before we saw this element. -func (d *Decoder) popElement(t *EndElement) bool { - s := d.pop() - name := t.Name - switch { - case s == nil || s.kind != stkStart: - d.err = d.syntaxError("unexpected end element ") - return false - case s.name.Local != name.Local: - if !d.Strict { - d.needClose = true - d.toClose = t.Name - t.Name = s.name - return true - } - d.err = d.syntaxError("element <" + s.name.Local + "> closed by ") - return false - case s.name.Space != name.Space: - d.err = d.syntaxError("element <" + s.name.Local + "> in space " + s.name.Space + - "closed by in space " + name.Space) - return false - } - - // Pop stack until a Start or EOF is on the top, undoing the - // translations that were associated with the element we just closed. - for d.stk != nil && d.stk.kind != stkStart && d.stk.kind != stkEOF { - s := d.pop() - if s.ok { - d.ns[s.name.Local] = s.name.Space - } else { - delete(d.ns, s.name.Local) - } - } - - return true -} - -// If the top element on the stack is autoclosing and -// t is not the end tag, invent the end tag. -func (d *Decoder) autoClose(t Token) (Token, bool) { - if d.stk == nil || d.stk.kind != stkStart { - return nil, false - } - name := strings.ToLower(d.stk.name.Local) - for _, s := range d.AutoClose { - if strings.ToLower(s) == name { - // This one should be auto closed if t doesn't close it. - et, ok := t.(EndElement) - if !ok || et.Name.Local != name { - return EndElement{d.stk.name}, true - } - break - } - } - return nil, false -} - -var errRawToken = errors.New("xml: cannot use RawToken from UnmarshalXML method") - -// RawToken is like Token but does not verify that -// start and end elements match and does not translate -// name space prefixes to their corresponding URLs. -func (d *Decoder) RawToken() (Token, error) { - if d.unmarshalDepth > 0 { - return nil, errRawToken - } - return d.rawToken() -} - -func (d *Decoder) rawToken() (Token, error) { - if d.err != nil { - return nil, d.err - } - if d.needClose { - // The last element we read was self-closing and - // we returned just the StartElement half. - // Return the EndElement half now. - d.needClose = false - return EndElement{d.toClose}, nil - } - - b, ok := d.getc() - if !ok { - return nil, d.err - } - - if b != '<' { - // Text section. - d.ungetc(b) - data := d.text(-1, false) - if data == nil { - return nil, d.err - } - return CharData(data), nil - } - - if b, ok = d.mustgetc(); !ok { - return nil, d.err - } - switch b { - case '/': - // ' { - d.err = d.syntaxError("invalid characters between ") - return nil, d.err - } - return EndElement{name}, nil - - case '?': - // ' { - break - } - b0 = b - } - data := d.buf.Bytes() - data = data[0 : len(data)-2] // chop ?> - - if target == "xml" { - content := string(data) - ver := procInst("version", content) - if ver != "" && ver != "1.0" { - d.err = fmt.Errorf("xml: unsupported version %q; only version 1.0 is supported", ver) - return nil, d.err - } - enc := procInst("encoding", content) - if enc != "" && enc != "utf-8" && enc != "UTF-8" { - if d.CharsetReader == nil { - d.err = fmt.Errorf("xml: encoding %q declared but Decoder.CharsetReader is nil", enc) - return nil, d.err - } - newr, err := d.CharsetReader(enc, d.r.(io.Reader)) - if err != nil { - d.err = fmt.Errorf("xml: opening charset %q: %v", enc, err) - return nil, d.err - } - if newr == nil { - panic("CharsetReader returned a nil Reader for charset " + enc) - } - d.switchToReader(newr) - } - } - return ProcInst{target, data}, nil - - case '!': - // ' { - break - } - b0, b1 = b1, b - } - data := d.buf.Bytes() - data = data[0 : len(data)-3] // chop --> - return Comment(data), nil - - case '[': // . - data := d.text(-1, true) - if data == nil { - return nil, d.err - } - return CharData(data), nil - } - - // Probably a directive: , , etc. - // We don't care, but accumulate for caller. Quoted angle - // brackets do not count for nesting. - d.buf.Reset() - d.buf.WriteByte(b) - inquote := uint8(0) - depth := 0 - for { - if b, ok = d.mustgetc(); !ok { - return nil, d.err - } - if inquote == 0 && b == '>' && depth == 0 { - break - } - HandleB: - d.buf.WriteByte(b) - switch { - case b == inquote: - inquote = 0 - - case inquote != 0: - // in quotes, no special action - - case b == '\'' || b == '"': - inquote = b - - case b == '>' && inquote == 0: - depth-- - - case b == '<' && inquote == 0: - // Look for

    -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 diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-max.in b/vendor/github.com/klauspost/compress/flate/testdata/huffman-rand-max.in deleted file mode 100644 index 8418633d2ac9791cc75a316d53c8490a328daa39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65535 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 diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.dyn.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.dyn.expect deleted file mode 100644 index 7812c1c62da3cbaeb6399e9aa8ab65ae7efa9b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 ocmaEJ(2|$IfP>+{UeCQBetd7^G}D{T$iTpm^J~2nL&Iw}0NYm#xc~qF diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.dyn.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.dyn.expect-noinput deleted file mode 100644 index 7812c1c62da3cbaeb6399e9aa8ab65ae7efa9b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 ocmaEJ(2|$IfP>+{UeCQBetd7^G}D{T$iTpm^J~2nL&Iw}0NYm#xc~qF diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.golden b/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.golden deleted file mode 100644 index f5133778e1c783a6da12f76fec3f04014c77694e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1812 zcmZQM;K<8hAkcE4esWdg(f!+{1xLYX2#kinFbsi-|F1=5uiZLIjE2EzI>3_+tN@OD BEKdLc diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.in b/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.in deleted file mode 100644 index 7c7a50d1583..00000000000 --- a/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.in +++ /dev/null @@ -1,2 +0,0 @@ -101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 -232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323 \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.wb.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.wb.expect deleted file mode 100644 index 7812c1c62da3cbaeb6399e9aa8ab65ae7efa9b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 ocmaEJ(2|$IfP>+{UeCQBetd7^G}D{T$iTpm^J~2nL&Iw}0NYm#xc~qF diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.wb.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-shifts.wb.expect-noinput deleted file mode 100644 index 7812c1c62da3cbaeb6399e9aa8ab65ae7efa9b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 ocmaEJ(2|$IfP>+{UeCQBetd7^G}D{T$iTpm^J~2nL&Iw}0NYm#xc~qF diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text-shift.dyn.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-text-shift.dyn.expect deleted file mode 100644 index 71ce3aeb75a86e8375d9ac4350b7d83b9229a3ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmVb2j)h-%-Q8H+K zIkmg!?Y-=9be1Hi$&iwP9DQ6&foC2grh=5#ja@KiZ1-F{b`bob2j)h-%-Q8H+K zIkmg!?Y-=9be1Hi$&iwP9DQ6&foC2grh=5#ja@KiZ1-F{b`bow{lnwaYQ1@WJ+zb2j)h-%-Q8H+K zIkmg!?Y-=9be1Hi$&iwP9DQ6&foC2grh=5#ja@KiZ1-F{b`bob2j)h-%-Q8H+K zIkmg!?Y-=9be1Hi$&iwP9DQ6&foC2grh=5#ja@KiZ1-F{b`boç4 a˜¢=›Œ›Í-^ á1`_² 1 ìÃÌ ‘Å‘:ÁYÓà-‚F66!…A…Ž`Îa¤è©C;Aâþô°Nyr4ßœUä!™¡¤GKСøÖ#ÂóÓáør:B[G‚3Ω.òLè¥õ׶ýbFRuM]¼š­^⇳Å(#ZìÐË ÕŸí”i…›íöÿvÉÙB¯ð…»B‡H2S]™¢u/ýÚçÖ½üÖWóT¼G›©n—œýrö \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.dyn.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.dyn.expect-noinput deleted file mode 100644 index d448727c323..00000000000 --- a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.dyn.expect-noinput +++ /dev/null @@ -1 +0,0 @@ -Ë_Kó0Åñëò½ê`KÇó0AasÄ›)^ˆHšþ²„¥IÉŸbß»¬—_>ç4 a˜¢=›Œ›Í-^ á1`_² 1 ìÃÌ ‘Å‘:ÁYÓà-‚F66!…A…Ž`Îa¤è©C;Aâþô°Nyr4ßœUä!™¡¤GKСøÖ#ÂóÓáør:B[G‚3Ω.òLè¥õ׶ýbFRuM]¼š­^⇳Å(#ZìÐË ÕŸí”i…›íöÿvÉÙB¯ð…»B‡H2S]™¢u/ýÚçÖ½üÖWóT¼G›©n—œýrö \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.golden b/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.golden deleted file mode 100644 index 6d34c61fe0d..00000000000 --- a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.golden +++ /dev/null @@ -1,3 +0,0 @@ -ÀAKó0ðóx¾ÃŸžZØÚñ¾LPØaÎ!‚x™âADÒöI–&#I‹EüîþšÇp]¢LÆ¿íö¯Fðp˜² 1Õ88‡h“¢$‰³ô5SÓà- ‚F66!…)v‚.ô›0„Y¢—í…ûóÃ&åÅ SÓÀÙN|d£2:åÑ -t˜|ë‘àùéxz9Ÿ ­“š‰éªº‹£²ž‰ÉŽ×3Š -&&=ù£²¾¬ðôšUD‹=Fu‘òã³]²¬q³ÛýßUL+½Æîö©>FQYÊÂLZÊoüäÜfTßµõEÅ´Òõ{´Yʶbúeú \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.in b/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.in deleted file mode 100644 index 73398b98b54..00000000000 --- a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.in +++ /dev/null @@ -1,13 +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 main - -import "os" - -func main() { - var b = make([]byte, 65535) - f, _ := os.Create("huffman-null-max.in") - f.Write(b) -} diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.wb.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.wb.expect deleted file mode 100644 index d448727c323..00000000000 --- a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.wb.expect +++ /dev/null @@ -1 +0,0 @@ -Ë_Kó0Åñëò½ê`KÇó0AasÄ›)^ˆHšþ²„¥IÉŸbß»¬—_>ç4 a˜¢=›Œ›Í-^ á1`_² 1 ìÃÌ ‘Å‘:ÁYÓà-‚F66!…A…Ž`Îa¤è©C;Aâþô°Nyr4ßœUä!™¡¤GKСøÖ#ÂóÓáør:B[G‚3Ω.òLè¥õ׶ýbFRuM]¼š­^⇳Å(#ZìÐË ÕŸí”i…›íöÿvÉÙB¯ð…»B‡H2S]™¢u/ýÚçÖ½üÖWóT¼G›©n—œýrö \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.wb.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.wb.expect-noinput deleted file mode 100644 index d448727c323..00000000000 --- a/vendor/github.com/klauspost/compress/flate/testdata/huffman-text.wb.expect-noinput +++ /dev/null @@ -1 +0,0 @@ -Ë_Kó0Åñëò½ê`KÇó0AasÄ›)^ˆHšþ²„¥IÉŸbß»¬—_>ç4 a˜¢=›Œ›Í-^ á1`_² 1 ìÃÌ ‘Å‘:ÁYÓà-‚F66!…A…Ž`Îa¤è©C;Aâþô°Nyr4ßœUä!™¡¤GKСøÖ#ÂóÓáør:B[G‚3Ω.òLè¥õ׶ýbFRuM]¼š­^⇳Å(#ZìÐË ÕŸí”i…›íöÿvÉÙB¯ð…»B‡H2S]™¢u/ýÚçÖ½üÖWóT¼G›©n—œýrö \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.dyn.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.dyn.expect deleted file mode 100644 index 830348a79ad9ab38d0edc449e8335c056f7d185f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 XcmaEJU?T$%G#D)X^D^m0zK$>eMUV%O diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.dyn.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.dyn.expect-noinput deleted file mode 100644 index 830348a79ad9ab38d0edc449e8335c056f7d185f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 XcmaEJU?T$%G#D)X^D^m0zK$>eMUV%O diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.golden b/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.golden deleted file mode 100644 index 5abdbaff9a69ad9c71178ba3641fa548818c9030..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 VcmZQM(8vG+6IB0~f*Aw}2LPDS1Frx8 diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.in b/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.in deleted file mode 100644 index 349be0e6ec6..00000000000 --- a/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.in +++ /dev/null @@ -1 +0,0 @@ -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.wb.expect b/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.wb.expect deleted file mode 100644 index dbe401c54c4b6f45f3169376185a476dcf00dde9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmXq#U{zse0006o0CxZY diff --git a/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.wb.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/huffman-zero.wb.expect-noinput deleted file mode 100644 index dbe401c54c4b6f45f3169376185a476dcf00dde9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6 NcmXq#U{zse0006o0CxZY diff --git a/vendor/github.com/klauspost/compress/flate/testdata/null-long-match.dyn.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/null-long-match.dyn.expect-noinput deleted file mode 100644 index 8b92d9fc20f1ee1fea5e4cc84d18aeea26a6fdaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 ccmaEJz>txFf#HzC@8#d3xFvwhAq<`X0E^!Sx&QzG diff --git a/vendor/github.com/klauspost/compress/flate/testdata/null-long-match.wb.expect-noinput b/vendor/github.com/klauspost/compress/flate/testdata/null-long-match.wb.expect-noinput deleted file mode 100644 index 8b92d9fc20f1ee1fea5e4cc84d18aeea26a6fdaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 ccmaEJz>txFf#HzC@8#d3xFvwhAq<`X0E^!Sx&QzG diff --git a/vendor/github.com/klauspost/compress/flate/token.go b/vendor/github.com/klauspost/compress/flate/token.go index 94fa5eb93ab..4f275ea61df 100644 --- a/vendor/github.com/klauspost/compress/flate/token.go +++ b/vendor/github.com/klauspost/compress/flate/token.go @@ -4,6 +4,8 @@ package flate +import "fmt" + const ( // 2 bits: type 0 = literal 1=EOF 2=Match 3=Unused // 8 bits: xlength = length - MIN_MATCH_LENGTH @@ -68,8 +70,8 @@ var offsetCodes = [...]uint32{ type token uint32 type tokens struct { - tokens []token - n int + tokens [maxStoreBlockSize + 1]token + n uint16 // Must be able to contain maxStoreBlockSize } // Convert a literal into a literal token. @@ -80,6 +82,14 @@ func matchToken(xlength uint32, xoffset uint32) token { return token(matchType + xlength< maxMatchLength || xoffset > maxMatchOffset { + panic(fmt.Sprintf("Invalid match: len: %d, offset: %d\n", xlength, xoffset)) + return token(matchType) + } + return token(matchType + xlength<= len(z.buf) { - return "", ErrHeader - } - z.buf[i], err = z.r.ReadByte() - if err != nil { - return "", err - } - if z.buf[i] > 0x7f { - needconv = true - } - if z.buf[i] == 0 { - // GZIP (RFC 1952) specifies that strings are NUL-terminated ISO 8859-1 (Latin-1). - if needconv { - s := make([]rune, 0, i) - for _, v := range z.buf[0:i] { - s = append(s, rune(v)) - } - return string(s), nil - } - return string(z.buf[0:i]), nil - } - } -} - -func (z *Reader) read2() (uint32, error) { - _, err := io.ReadFull(z.r, z.buf[0:2]) - if err != nil { - return 0, err - } - return uint32(z.buf[0]) | uint32(z.buf[1])<<8, nil -} - -func (z *Reader) readHeader(save bool) error { - _, err := io.ReadFull(z.r, z.buf[0:10]) - if err != nil { - return err - } - if z.buf[0] != gzipID1 || z.buf[1] != gzipID2 || z.buf[2] != gzipDeflate { - return ErrHeader - } - z.flg = z.buf[3] - if save { - z.ModTime = time.Unix(int64(get4(z.buf[4:8])), 0) - // z.buf[8] is xfl, ignored - z.OS = z.buf[9] - } - z.digest.Reset() - z.digest.Write(z.buf[0:10]) - - if z.flg&flagExtra != 0 { - n, err := z.read2() - if err != nil { - return err - } - data := make([]byte, n) - if _, err = io.ReadFull(z.r, data); err != nil { - return err - } - if save { - z.Extra = data - } - } - - var s string - if z.flg&flagName != 0 { - if s, err = z.readString(); err != nil { - return err - } - if save { - z.Name = s - } - } - - if z.flg&flagComment != 0 { - if s, err = z.readString(); err != nil { - return err - } - if save { - z.Comment = s - } - } - - if z.flg&flagHdrCrc != 0 { - n, err := z.read2() - if err != nil { - return err - } - sum := z.digest.Sum32() & 0xFFFF - if n != sum { - return ErrHeader - } - } - - z.digest.Reset() - if z.decompressor == nil { - z.decompressor = flate.NewReader(z.r) - } else { - z.decompressor.(flate.Resetter).Reset(z.r, nil) - } - return nil -} - -func (z *Reader) Read(p []byte) (n int, err error) { - if z.err != nil { - return 0, z.err - } - if len(p) == 0 { - return 0, nil - } - - n, err = z.decompressor.Read(p) - z.digest.Write(p[0:n]) - z.size += uint32(n) - if n != 0 || err != io.EOF { - z.err = err - return - } - - // Finished file; check checksum + size. - if _, err := io.ReadFull(z.r, z.buf[0:8]); err != nil { - z.err = err - return 0, err - } - crc32, isize := get4(z.buf[0:4]), get4(z.buf[4:8]) - sum := z.digest.Sum32() - if sum != crc32 || isize != z.size { - z.err = ErrChecksum - return 0, z.err - } - - // File is ok; is there another? - if !z.multistream { - return 0, io.EOF - } - - if err = z.readHeader(false); err != nil { - z.err = err - return - } - - // Yes. Reset and read from it. - z.digest.Reset() - z.size = 0 - return z.Read(p) -} - -// Support the io.WriteTo interface for io.Copy and friends. -func (z *Reader) WriteTo(w io.Writer) (int64, error) { - total := int64(0) - for { - if z.err != nil { - if z.err == io.EOF { - return total, nil - } - return total, z.err - } - - // We write both to output and digest. - mw := io.MultiWriter(w, z.digest) - n, err := z.decompressor.(io.WriterTo).WriteTo(mw) - total += n - z.size += uint32(n) - if err != nil { - z.err = err - return total, z.err - } - - // Finished file; check checksum + size. - if _, err := io.ReadFull(z.r, z.buf[0:8]); err != nil { - z.err = err - return 0, err - } - crc32, isize := get4(z.buf[0:4]), get4(z.buf[4:8]) - sum := z.digest.Sum32() - if sum != crc32 || isize != z.size { - z.err = ErrChecksum - return 0, z.err - } - - // File is ok; is there another? - if !z.multistream { - return total, nil - } - - err = z.readHeader(false) - // There was not more - if err == io.EOF { - return total, nil - } - if err != nil { - z.err = err - return total, err - } - - // Yes. Reset and read from it. - z.digest.Reset() - z.size = 0 - } -} - -// Close closes the Reader. It does not close the underlying io.Reader. -func (z *Reader) Close() error { return z.decompressor.Close() } diff --git a/vendor/github.com/klauspost/compress/gzip/gzip.go b/vendor/github.com/klauspost/compress/gzip/gzip.go deleted file mode 100644 index a590c883cd1..00000000000 --- a/vendor/github.com/klauspost/compress/gzip/gzip.go +++ /dev/null @@ -1,274 +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. - -package gzip - -import ( - "errors" - "fmt" - "hash" - "io" - - "github.com/klauspost/compress/flate" - "github.com/klauspost/crc32" -) - -// These constants are copied from the flate package, so that code that imports -// "compress/gzip" does not also have to import "compress/flate". -const ( - NoCompression = flate.NoCompression - BestSpeed = flate.BestSpeed - BestCompression = flate.BestCompression - DefaultCompression = flate.DefaultCompression - ConstantCompression = flate.ConstantCompression -) - -// A Writer is an io.WriteCloser. -// Writes to a Writer are compressed and written to w. -type Writer struct { - Header - w io.Writer - level int - wroteHeader bool - compressor *flate.Writer - digest hash.Hash32 - size uint32 - closed bool - buf [10]byte - err error -} - -// NewWriter returns a new Writer. -// Writes to the returned writer are compressed and written to w. -// -// It is the caller's responsibility to call Close on the WriteCloser when done. -// Writes may be buffered and not flushed until Close. -// -// Callers that wish to set the fields in Writer.Header must do so before -// the first call to Write or Close. The Comment and Name header fields are -// UTF-8 strings in Go, but the underlying format requires NUL-terminated ISO -// 8859-1 (Latin-1). NUL or non-Latin-1 runes in those strings will lead to an -// error on Write. -func NewWriter(w io.Writer) *Writer { - z, _ := NewWriterLevel(w, DefaultCompression) - return z -} - -// NewWriterLevel is like NewWriter but specifies the compression level instead -// of assuming DefaultCompression. -// -// The compression level can be ConstantCompression, DefaultCompression, -// NoCompression, or any integer value between BestSpeed and BestCompression -// inclusive. The error returned will be nil if the level is valid. -func NewWriterLevel(w io.Writer, level int) (*Writer, error) { - if level < ConstantCompression || level > BestCompression { - return nil, fmt.Errorf("gzip: invalid compression level: %d", level) - } - z := new(Writer) - z.init(w, level) - return z, nil -} - -func (z *Writer) init(w io.Writer, level int) { - digest := z.digest - if digest != nil { - digest.Reset() - } else { - digest = crc32.NewIEEE() - } - compressor := z.compressor - if compressor != nil { - compressor.Reset(w) - } - *z = Writer{ - Header: Header{ - OS: 255, // unknown - }, - w: w, - level: level, - digest: digest, - compressor: compressor, - } -} - -// Reset discards the Writer z's state and makes it equivalent to the -// result of its original state from NewWriter or NewWriterLevel, but -// writing to w instead. This permits reusing a Writer rather than -// allocating a new one. -func (z *Writer) Reset(w io.Writer) { - z.init(w, z.level) -} - -// GZIP (RFC 1952) is little-endian, unlike ZLIB (RFC 1950). -func put2(p []byte, v uint16) { - p[0] = uint8(v >> 0) - p[1] = uint8(v >> 8) -} - -func put4(p []byte, v uint32) { - p[0] = uint8(v >> 0) - p[1] = uint8(v >> 8) - p[2] = uint8(v >> 16) - p[3] = uint8(v >> 24) -} - -// writeBytes writes a length-prefixed byte slice to z.w. -func (z *Writer) writeBytes(b []byte) error { - if len(b) > 0xffff { - return errors.New("gzip.Write: Extra data is too large") - } - put2(z.buf[0:2], uint16(len(b))) - _, err := z.w.Write(z.buf[0:2]) - if err != nil { - return err - } - _, err = z.w.Write(b) - return err -} - -// writeString writes a UTF-8 string s in GZIP's format to z.w. -// GZIP (RFC 1952) specifies that strings are NUL-terminated ISO 8859-1 (Latin-1). -func (z *Writer) writeString(s string) (err error) { - // GZIP stores Latin-1 strings; error if non-Latin-1; convert if non-ASCII. - needconv := false - for _, v := range s { - if v == 0 || v > 0xff { - return errors.New("gzip.Write: non-Latin-1 header string") - } - if v > 0x7f { - needconv = true - } - } - if needconv { - b := make([]byte, 0, len(s)) - for _, v := range s { - b = append(b, byte(v)) - } - _, err = z.w.Write(b) - } else { - _, err = io.WriteString(z.w, s) - } - if err != nil { - return err - } - // GZIP strings are NUL-terminated. - z.buf[0] = 0 - _, err = z.w.Write(z.buf[0:1]) - return err -} - -// Write writes a compressed form of p to the underlying io.Writer. The -// compressed bytes are not necessarily flushed until the Writer is closed. -func (z *Writer) Write(p []byte) (int, error) { - if z.err != nil { - return 0, z.err - } - var n int - // Write the GZIP header lazily. - if !z.wroteHeader { - z.wroteHeader = true - z.buf[0] = gzipID1 - z.buf[1] = gzipID2 - z.buf[2] = gzipDeflate - z.buf[3] = 0 - if z.Extra != nil { - z.buf[3] |= 0x04 - } - if z.Name != "" { - z.buf[3] |= 0x08 - } - if z.Comment != "" { - z.buf[3] |= 0x10 - } - put4(z.buf[4:8], uint32(z.ModTime.Unix())) - if z.level == BestCompression { - z.buf[8] = 2 - } else if z.level == BestSpeed { - z.buf[8] = 4 - } else { - z.buf[8] = 0 - } - z.buf[9] = z.OS - n, z.err = z.w.Write(z.buf[0:10]) - if z.err != nil { - return n, z.err - } - if z.Extra != nil { - z.err = z.writeBytes(z.Extra) - if z.err != nil { - return n, z.err - } - } - if z.Name != "" { - z.err = z.writeString(z.Name) - if z.err != nil { - return n, z.err - } - } - if z.Comment != "" { - z.err = z.writeString(z.Comment) - if z.err != nil { - return n, z.err - } - } - if z.compressor == nil { - z.compressor, _ = flate.NewWriter(z.w, z.level) - } - } - z.size += uint32(len(p)) - z.digest.Write(p) - n, z.err = z.compressor.Write(p) - return n, z.err -} - -// Flush flushes any pending compressed data to the underlying writer. -// -// It is useful mainly in compressed network protocols, to ensure that -// a remote reader has enough data to reconstruct a packet. Flush does -// not return until the data has been written. If the underlying -// writer returns an error, Flush returns that error. -// -// In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH. -func (z *Writer) Flush() error { - if z.err != nil { - return z.err - } - if z.closed { - return nil - } - if !z.wroteHeader { - z.Write(nil) - if z.err != nil { - return z.err - } - } - z.err = z.compressor.Flush() - return z.err -} - -// Close closes the Writer, flushing any unwritten data to the underlying -// io.Writer, but does not close the underlying io.Writer. -func (z *Writer) Close() error { - if z.err != nil { - return z.err - } - if z.closed { - return nil - } - z.closed = true - if !z.wroteHeader { - z.Write(nil) - if z.err != nil { - return z.err - } - } - z.err = z.compressor.Close() - if z.err != nil { - return z.err - } - put4(z.buf[0:4], z.digest.Sum32()) - put4(z.buf[4:8], z.size) - _, z.err = z.w.Write(z.buf[0:8]) - return z.err -} diff --git a/vendor/github.com/klauspost/compress/gzip/testdata/issue6550.gz b/vendor/github.com/klauspost/compress/gzip/testdata/issue6550.gz deleted file mode 100644 index 57972b636680170bbe26d3876481b24f54d4ab55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65536 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